add layout and remove update that was trash

This commit is contained in:
smayzy 2025-12-22 21:43:19 +01:00
parent b38ad16d13
commit e65a407871
2 changed files with 97 additions and 36 deletions

View File

@ -2,3 +2,15 @@
# Dependencies
- ncurses (libncursesw.so.6)
# Data Shown
- speed (km/h)
- power (W)
- rpm (tr/min)
- bat (%)
- torque (Nm)
- eff (Wh/Km)
- bat_temp (°C)
- var_temp (°C)
- mot_temp (°C)
- warn (message)

View File

@ -1,30 +1,17 @@
#include <ncurses.h>
#include <stdlib.h>
#include <string.h>
void get_data(int *speed, int *capacity)
void get_data(int *speed, int *power, int *bat, float *tq, int *rpm, int *eff, float *bat_temp, float *var_temp, float *mot_temp)
{
*speed = rand() % 201;
*capacity = rand() % 101;
}
void update(WINDOW *win, int data, int max)
{
int win_y, win_x;
char message[64];
snprintf(message, sizeof(message), "%d", data);
werase(win);
box(win, 0, 0);
getmaxyx(win, win_y, win_x);
mvwprintw(win, win_y/2, win_x/4 - strlen(message)/2, "%s", message);
mvwprintw(win, win_y/2, win_x/2, "x");
int i;
for (i = 0; i < ((data * (win_x / 3)) / max); i++) {
wprintw(win, "x");
}
wrefresh(win);
*power = rand() % 1251;
*bat = rand() % 101;
*tq = 1.8 + (float)rand() / 3.5f * 1.7f;
*rpm = rand() % 6000;
*eff = rand() % 100;
*bat_temp = (float)rand() / (float)RAND_MAX * 150.0f;
*var_temp = (float)rand() / (float)RAND_MAX * 150.0f;
*mot_temp = (float)rand() / (float)RAND_MAX * 150.0f;
}
int main()
@ -38,31 +25,93 @@ int main()
int y,x;
getmaxyx(stdscr, y, x);
WINDOW *top_win;
WINDOW *bottom_win;
WINDOW *win_speed;
WINDOW *win_power;
WINDOW *win_bat;
WINDOW *win_tq;
WINDOW *win_rpm;
WINDOW *win_eff;
WINDOW *win_bat_temp;
WINDOW *win_var_temp;
WINDOW *win_mot_temp;
WINDOW *win_warn;
top_win = newwin(y/2, x, 0, 0);
bottom_win = newwin(y-y/2, x, y/2, 0);
int x2 = x / 2;
int x2r = x - x2;
int x3 = x / 3;
int x3r = x - 2 * x3;
box(top_win, 0, 0);
box(bottom_win, 0, 0);
int y2 = y / 2;
int y2r = y - y2;
int y4 = y2 / 2;
int y4r = y2 - y4;
int y6 = y2r / 3;
int y6r = y2r - 2 * y6;
win_speed = newwin(y2, x3, 0, 0);
win_power = newwin(y2, x3, 0, x3);
win_bat = newwin(y4, x3r, 0, x - x3r);
win_tq = newwin(y4r, x3r, y4, x - x3r);
win_rpm = newwin(y6, x2, y2, 0);
win_eff = newwin(y6, x2r, y2, x2);
win_bat_temp = newwin(y6, x3, y2 + y6, 0);
win_var_temp = newwin(y6, x3, y2 + y6, x3);
win_mot_temp = newwin(y6, x3r, y2 + y6, x - x3r);
win_warn = newwin(y6r, x, y - y6r, 0);
box(win_speed , 0, 0);
box(win_power , 0, 0);
box(win_bat , 0, 0);
box(win_tq , 0, 0);
box(win_rpm , 0, 0);
box(win_eff , 0, 0);
box(win_bat_temp, 0, 0);
box(win_var_temp, 0, 0);
box(win_mot_temp, 0, 0);
box(win_warn , 0, 0);
mvwprintw(win_speed, 0, 2, "speed (km/h)");
mvwprintw(win_power, 0, 2, "power (W)");
mvwprintw(win_bat, 0, 2, "batteries (%%)");
mvwprintw(win_tq, 0, 2, "torque (N/m)");
mvwprintw(win_rpm, 0, 2, "rpm (tr/min)");
mvwprintw(win_eff, 0, 2, "efficiency (Wh/Km)");
mvwprintw(win_bat_temp, 0, 2, "batteries temperature (deg C)");
mvwprintw(win_var_temp, 0, 2, "variator temperature (deg C)");
mvwprintw(win_mot_temp, 0, 2, "motor temperature (deg C)");
mvwprintw(win_warn, 0, 2, "warnings (warnings + fixs)");
refresh();
wrefresh(top_win);
wrefresh(bottom_win);
wrefresh(win_speed);
wrefresh(win_power);
wrefresh(win_bat);
wrefresh(win_tq);
wrefresh(win_rpm);
wrefresh(win_eff);
wrefresh(win_bat_temp);
wrefresh(win_var_temp);
wrefresh(win_mot_temp);
wrefresh(win_warn);
int speed, capacity;
int speed, power, bat, rpm, eff;
float tq, bat_temp, var_temp, mot_temp;
int ch = ERR;
while(ch == ERR)
{
get_data(&speed, &capacity);
update(top_win, speed, 200);
update(bottom_win, capacity, 100);
get_data(&speed, &power, &bat, &tq, &rpm, &eff, &bat_temp, &var_temp, &mot_temp);
ch = getch();
};
delwin(top_win);
delwin(bottom_win);
delwin(win_speed);
delwin(win_power);
delwin(win_bat);
delwin(win_tq);
delwin(win_rpm);
delwin(win_eff);
delwin(win_bat_temp);
delwin(win_var_temp);
delwin(win_mot_temp);
delwin(win_warn);
endwin();
return 0;