add layout and remove update that was trash
This commit is contained in:
parent
b38ad16d13
commit
e65a407871
12
README.md
12
README.md
@ -2,3 +2,15 @@
|
|||||||
|
|
||||||
# Dependencies
|
# Dependencies
|
||||||
- ncurses (libncursesw.so.6)
|
- 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)
|
||||||
|
|||||||
121
src/main.c
121
src/main.c
@ -1,30 +1,17 @@
|
|||||||
#include <ncurses.h>
|
#include <ncurses.h>
|
||||||
#include <stdlib.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;
|
*speed = rand() % 201;
|
||||||
*capacity = rand() % 101;
|
*power = rand() % 1251;
|
||||||
}
|
*bat = rand() % 101;
|
||||||
|
*tq = 1.8 + (float)rand() / 3.5f * 1.7f;
|
||||||
void update(WINDOW *win, int data, int max)
|
*rpm = rand() % 6000;
|
||||||
{
|
*eff = rand() % 100;
|
||||||
int win_y, win_x;
|
*bat_temp = (float)rand() / (float)RAND_MAX * 150.0f;
|
||||||
char message[64];
|
*var_temp = (float)rand() / (float)RAND_MAX * 150.0f;
|
||||||
snprintf(message, sizeof(message), "%d", data);
|
*mot_temp = (float)rand() / (float)RAND_MAX * 150.0f;
|
||||||
|
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
@ -38,31 +25,93 @@ int main()
|
|||||||
int y,x;
|
int y,x;
|
||||||
getmaxyx(stdscr, y, x);
|
getmaxyx(stdscr, y, x);
|
||||||
|
|
||||||
WINDOW *top_win;
|
WINDOW *win_speed;
|
||||||
WINDOW *bottom_win;
|
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);
|
int x2 = x / 2;
|
||||||
bottom_win = newwin(y-y/2, x, y/2, 0);
|
int x2r = x - x2;
|
||||||
|
int x3 = x / 3;
|
||||||
|
int x3r = x - 2 * x3;
|
||||||
|
|
||||||
box(top_win, 0, 0);
|
int y2 = y / 2;
|
||||||
box(bottom_win, 0, 0);
|
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();
|
refresh();
|
||||||
wrefresh(top_win);
|
wrefresh(win_speed);
|
||||||
wrefresh(bottom_win);
|
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;
|
int ch = ERR;
|
||||||
while(ch == ERR)
|
while(ch == ERR)
|
||||||
{
|
{
|
||||||
get_data(&speed, &capacity);
|
get_data(&speed, &power, &bat, &tq, &rpm, &eff, &bat_temp, &var_temp, &mot_temp);
|
||||||
update(top_win, speed, 200);
|
|
||||||
update(bottom_win, capacity, 100);
|
|
||||||
ch = getch();
|
ch = getch();
|
||||||
};
|
};
|
||||||
|
|
||||||
delwin(top_win);
|
delwin(win_speed);
|
||||||
delwin(bottom_win);
|
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();
|
endwin();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user