mirror of
https://github.com/meshtastic/firmware.git
synced 2025-12-15 23:32:34 +00:00
* Unify uptime formatting * Fix small label alignment item --------- Co-authored-by: Ben Meadors <benmmeadors@gmail.com> Co-authored-by: Jason P <applewiz@mac.com>
34 lines
1.3 KiB
C++
34 lines
1.3 KiB
C++
#pragma once
|
|
|
|
#include "configuration.h"
|
|
#include "gps/RTC.h"
|
|
#include <airtime.h>
|
|
#include <cstdint>
|
|
|
|
/**
|
|
* Convert a delta in seconds ago to timestamp information (hours, minutes, days ago).
|
|
*
|
|
* @param secondsAgo Number of seconds ago to convert
|
|
* @param hours Pointer to store the hours (0-23)
|
|
* @param minutes Pointer to store the minutes (0-59)
|
|
* @param daysAgo Pointer to store the number of days ago
|
|
* @return true if conversion was successful, false if invalid input or time not available
|
|
*/
|
|
bool deltaToTimestamp(uint32_t secondsAgo, uint8_t *hours, uint8_t *minutes, int32_t *daysAgo);
|
|
|
|
/**
|
|
* Get a human-readable string representing the time ago in a format like "2 days, 3 hours, 15 minutes".
|
|
*
|
|
* @param agoSecs Number of seconds ago to convert
|
|
* @param timeStr Pointer to store the resulting string
|
|
* @param maxLength Maximum length of the resulting string buffer
|
|
*/
|
|
void getTimeAgoStr(uint32_t agoSecs, char *timeStr, uint8_t maxLength);
|
|
|
|
/**
|
|
* Get a compact human-readable string that only shows the largest non-zero time components.
|
|
* For example, 0 days 1 hour 2 minutes will display as "1h 2m" but 1 day 2 hours 3 minutes
|
|
* will display as "1d 2h".
|
|
*/
|
|
void getUptimeStr(uint32_t uptimeMillis, const char *prefix, char *uptimeStr, uint8_t maxLength, bool includeSecs = false);
|