werent using date, reconsider how time/date works
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
15
src/sys.c
15
src/sys.c
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user