12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- //void updateUptime()
- //{
- // sysUptime_mins++;
- // if (sysUptime_mins == 60)
- // {
- // sysUptime_mins = 0;
- // sysUptime_hours++;
- // }
- // if (sysUptime_hours == 24)
- // {
- // sysUptime_hours = 0;
- // sysUptime_days++;
- // }
- //}
- //void buildUptimeString()
- //{
- // if (sysUptime_days > 0)
- // sprintf(uptimeStr, "%dd %02d:%02d", sysUptime_days, sysUptime_hours, sysUptime_mins);
- // else
- // sprintf(uptimeStr, "%02d:%02d", sysUptime_hours, sysUptime_mins);
- //}
- void updateUptime()
- {
- if (millis() >= 3000000000) // save expected rollover
- {
- sysUptime.highMillis = 1;
- }
- if (millis() <= 100000 && sysUptime.highMillis == 1) // save actual rollover
- {
- sysUptime.rollover++;
- sysUptime.highMillis = 0;
- }
- unsigned long secsUp = millis() / 1000;
- sysUptime.sec = secsUp % 60;
- sysUptime.min = (secsUp / 60) % 60;
- sysUptime.hour = (secsUp / (60 * 60)) % 24;
- sysUptime.day = (sysUptime.rollover * 50) + (secsUp / (60 * 60 * 24)); // millis rollover ~50days
- }
- char* getUptimeStr(bool includeSeconds) {
- updateUptime();
- if(includeSeconds) {
- if(sysUptime.day == 0) sprintf(sysUptime.uptimeStr, "%02u:%02u:%02u", sysUptime.hour, sysUptime.min, sysUptime.sec);
- else sprintf(sysUptime.uptimeStr, "%ud %02u:%02u:%02u", sysUptime.day, sysUptime.hour, sysUptime.min, sysUptime.sec);
- }
- else {
- if(sysUptime.day == 0) sprintf(sysUptime.uptimeStr, "%02u:%02u", sysUptime.hour, sysUptime.min);
- else sprintf(sysUptime.uptimeStr, "%ud %02u:%02u", sysUptime.day, sysUptime.hour, sysUptime.min);
- }
- return sysUptime.uptimeStr;
- }
|