werent using date, reconsider how time/date works

This commit is contained in:
2026-07-03 00:43:26 +02:00
parent 6b035a0b81
commit 6920f9f34f
3 changed files with 19 additions and 14 deletions

View File

@@ -3,10 +3,8 @@
#include <stdint.h>
struct time_date_t {
char date[12];
char time[12];
};
#define SYS_GET_TIME_STR(t) sys_get_time_string((char[16]){0}, 16, t)
#define SYS_GET_DATE_STR(t) sys_get_date_string((char[16]){0}, 16, t)
struct memory_t {
uint64_t free;
@@ -28,10 +26,12 @@ struct network_t {
struct syssensors_t {
char hwmon[64];
// uint16_t fan_speed[1]; // just one fan (pump) we monitor
int16_t t_sensor; // ntc temp sensor
int16_t t_sensor; // ntc temp sensor
};
void sys_get_time(struct time_date_t *td);
char *sys_get_time_string(char *buf, size_t bufsz, time_t t);
char *sys_get_date_string(char *buf, size_t bufsz, time_t t);
void sys_get_load_avg(double *load_avg);

View File

@@ -28,6 +28,7 @@ struct control_t {
} control;
struct sensors_t { // NOLINT yes it is
time_t ts;
struct memory_t ram;
struct disk_t home;
struct disk_t gry;
@@ -36,7 +37,6 @@ struct sensors_t { // NOLINT yes it is
struct cpu_sensors_t cpu;
struct gpu_sensors_t gpu;
struct aio_t aio;
struct time_date_t td;
double loadavg[3];
};
@@ -62,7 +62,7 @@ static void *sensors_thread(void *arg) {
pthread_mutex_lock(&control.sensors_mtx);
{
sys_get_time(&sensors->td);
sensors->ts = time(nullptr);
sys_get_load_avg(sensors->loadavg);
sys_get_ram(&sensors->ram);
sys_get_disk(&sensors->home);
@@ -134,7 +134,7 @@ static void *display_thread(void *arg) {
lcd_writef(&lcd, 0, 0, "%c%s", 2, P_BYTES(sensors->home.usage.free, 1));
lcd_writef(&lcd, 7, 0, "%c%s", 5, P_BYTES(sensors->gry.usage.free, 1));
lcd_writef(&lcd, 15, 0, "%s%c", sensors->td.time, lcd_bar(&lcd, 6, sensors->gpu.usage_core / 100.0));
lcd_writef(&lcd, 15, 0, "%s%c", SYS_GET_TIME_STR(sensors->ts), lcd_bar(&lcd, 6, sensors->gpu.usage_core / 100.0));
lcd_writef(&lcd, 26, 0, "%s %s %s", P_NUM(sensors->loadavg[0]), P_NUM(sensors->loadavg[1]), P_NUM(sensors->loadavg[2]));
lcd_writef(&lcd, 0, 1, "%d/%d%c", sensors->cpu.tctl, sensors->cpu.tccd1, 0);

View File

@@ -8,13 +8,18 @@
#include "sys.h"
#include "utils.h"
void sys_get_time(struct time_date_t *td) {
char *sys_get_time_string(char *buf, const size_t bufsz, const time_t t) {
const struct tm *tm = localtime(&t);
snprintf(buf, bufsz, "%02d:%02d:%02d", tm->tm_hour, tm->tm_min, tm->tm_sec);
return buf;
}
char *sys_get_date_string(char *buf, const size_t bufsz, const time_t t) {
const struct tm *tm = localtime(&t);
constexpr char months[][4] = {"sty", "lut", "mar", "kwi", "maj", "cze", "lip", "sie", "wrz", "paz", "lis", "gru"};
constexpr char wdays[][4] = {"Nie", "Pon", "Wto", "Sro", "Czw", "Pia", "Sob"};
const time_t t = time(nullptr);
const struct tm *tm = localtime(&t);
snprintf(td->time, sizeof(td->time), "%02d:%02d:%02d", tm->tm_hour, tm->tm_min, tm->tm_sec);
snprintf(td->date, sizeof(td->date), "%s, %02d %s", wdays[tm->tm_wday], tm->tm_mday, months[tm->tm_mon]);
snprintf(buf, bufsz, "%s, %02d %s", wdays[tm->tm_wday], tm->tm_mday, months[tm->tm_mon]);
return buf;
}
void sys_get_load_avg(double *load_avg) {