make it pointy, idk if i like the names

This commit is contained in:
Drath
2025-09-22 21:08:41 +02:00
parent f72a6ca139
commit f7cb927a7e
3 changed files with 25 additions and 22 deletions

View File

@@ -8,15 +8,20 @@
#include <string>
#include <utils.hpp>
struct mem_usage_t {
std::string getAvgs();
std::array<std::string, 2> getTimeDate();
namespace sys {
struct Memory {
uint64_t free = 0;
uint64_t used = 0;
uint64_t total = 0;
};
std::string getAvgs();
std::array<std::string, 2> getTimeDate();
mem_usage_t getDisk(std::string mount);
mem_usage_t getRam();
void getDisk(Memory* disk, std::string mount);
void getRam(Memory* mem);
} // namespace sys
#endif

View File

@@ -33,8 +33,8 @@ std::binary_semaphore main{0};
struct Sensors {
std::array<std::string, 2> td;
std::string loadavg;
mem_usage_t ram;
mem_usage_t home;
sys::Memory ram;
sys::Memory home;
cpu::sensors cpu;
gpu::sensors gpu;
float hass_state = 0.0f;
@@ -76,8 +76,8 @@ void sensorsThread(std::stop_token st, Sensors* s) {
// maybe make these take pointers too
s->td = getTimeDate();
s->loadavg = getAvgs();
s->ram = getRam();
s->home = getDisk("/home/drath");
sys::getRam(&s->ram);
sys::getDisk(&s->home, "/home/drath");
cpu::update(&s->cpu);
gpu::update(&s->gpu);
}

View File

@@ -25,26 +25,24 @@ std::array<std::string, 2> getTimeDate() {
return {time.str(), date.str()};
}
mem_usage_t getRam() {
mem_usage_t mem;
void sys::getRam(Memory* mem) {
std::ifstream proc_meminfo("/proc/meminfo");
if (proc_meminfo.good()) {
std::string content((std::istreambuf_iterator<char>(proc_meminfo)), std::istreambuf_iterator<char>());
mem.free = get_val("MemAvailable:", content);
mem.total = get_val("MemTotal:", content);
mem.used = mem.total - mem.free;
mem->free = get_val("MemAvailable:", content);
mem->total = get_val("MemTotal:", content);
mem->used = mem->total - mem->free;
}
proc_meminfo.close();
return mem;
return;
}
mem_usage_t getDisk(std::string mount) {
mem_usage_t disk;
void sys::getDisk(Memory* disk, std::string mount) {
struct statvfs diskData;
statvfs(mount.c_str(), &diskData);
disk.free = diskData.f_bfree * diskData.f_frsize;
disk.used = (diskData.f_blocks - diskData.f_bfree) * diskData.f_frsize;
disk.total = diskData.f_blocks * diskData.f_frsize;
return disk;
}
disk->free = diskData.f_bfree * diskData.f_frsize;
disk->used = (diskData.f_blocks - diskData.f_bfree) * diskData.f_frsize;
disk->total = diskData.f_blocks * diskData.f_frsize;
return;
}