add args and better delay logic
This commit is contained in:
parent
9abaae1e00
commit
6b48126f7e
73
src/main.c
73
src/main.c
@ -2,6 +2,8 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <time.h>
|
||||
|
||||
const int digit_bitmaps[10][5][3] = {
|
||||
{{1,1,1},{1,0,1},{1,0,1},{1,0,1},{1,1,1}}, // 0
|
||||
@ -16,7 +18,7 @@ const int digit_bitmaps[10][5][3] = {
|
||||
{{1,1,1},{1,0,1},{1,1,1},{0,0,1},{1,1,1}} // 9
|
||||
};
|
||||
|
||||
void get_data(int *speed, int *power, int *bat, float *tq, int *rpm, int *eff, float *bat_temp, float *var_temp, float *mot_temp)
|
||||
void get_fake_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;
|
||||
*power = rand() % 1251;
|
||||
@ -29,6 +31,13 @@ void get_data(int *speed, int *power, int *bat, float *tq, int *rpm, int *eff, f
|
||||
*mot_temp = (float)rand() / (float)RAND_MAX * 150.0f;
|
||||
}
|
||||
|
||||
long now_ms(void)
|
||||
{
|
||||
struct timespec ts;
|
||||
clock_gettime(CLOCK_MONOTONIC, &ts);
|
||||
return ts.tv_sec * 1000 + ts.tv_nsec / 1000000;
|
||||
}
|
||||
|
||||
void win_clear(WINDOW *lwin) {
|
||||
int y, x;
|
||||
getmaxyx(lwin, y, x);
|
||||
@ -81,8 +90,29 @@ void win_number(WINDOW *lwin, int data, int digits){
|
||||
wrefresh(lwin);
|
||||
}
|
||||
|
||||
int main()
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
int option;
|
||||
int delay = 1;
|
||||
int fake_data = 0;
|
||||
|
||||
while ((option = getopt(argc, argv, "d:hf")) !=-1) {
|
||||
switch (option) {
|
||||
case 'd' :
|
||||
delay = atoi(optarg);
|
||||
if (delay < 0) {
|
||||
delay = 0;
|
||||
}
|
||||
break;
|
||||
case 'f' :
|
||||
fake_data = 1;
|
||||
break;
|
||||
case 'h' :
|
||||
printf("Usage: ./dashboard [-d int DELAY by how much to slow down] [-h HELP] [-f generate fake data]\n");
|
||||
return(0);
|
||||
}
|
||||
}
|
||||
|
||||
initscr();
|
||||
noecho();
|
||||
cbreak();
|
||||
@ -135,23 +165,38 @@ int main()
|
||||
wrefresh(win[i]);
|
||||
}
|
||||
|
||||
int speed, power, bat, rpm, eff;
|
||||
float tq, bat_temp, var_temp, mot_temp;
|
||||
int speed = 0, power = 0, bat = 0, rpm = 0, eff = 0;
|
||||
float tq = 0.0f, bat_temp = 0.0f, var_temp = 0.0f, mot_temp = 0.0f;
|
||||
long t100 = 0, t1000 = 0;
|
||||
int ch = ERR;
|
||||
while(ch == ERR)
|
||||
{
|
||||
get_data(&speed, &power, &bat, &tq, &rpm, &eff, &bat_temp, &var_temp, &mot_temp);
|
||||
win_number(win[0], speed, 3);
|
||||
win_number(win[1], power, 4);
|
||||
win_number(win[2], bat, 3);
|
||||
//win[3]
|
||||
//win[4]
|
||||
//win[5]
|
||||
//win_number(win[6], bat_temp, 3);
|
||||
//win_number(win[7], var_temp, 3);
|
||||
//win_number(win[8], mot_temp, 3);
|
||||
if (fake_data) {
|
||||
get_fake_data(&speed, &power, &bat, &tq, &rpm, &eff, &bat_temp, &var_temp, &mot_temp);
|
||||
} else {
|
||||
//real_data()
|
||||
}
|
||||
|
||||
long now = now_ms();
|
||||
|
||||
if (now - t100 >= 100 * delay) {
|
||||
win_number(win[0], speed, 3);
|
||||
win_number(win[1], power, 4);
|
||||
//win[3]
|
||||
//win[4]
|
||||
//win[5]
|
||||
t100 = now;
|
||||
}
|
||||
if (now - t1000 >= 1000 * delay){
|
||||
win_number(win[2], bat, 3);
|
||||
//win[6]
|
||||
//win[7]
|
||||
//win[8]
|
||||
t1000 = now;
|
||||
}
|
||||
//win[9];
|
||||
ch = getch();
|
||||
napms(10);
|
||||
};
|
||||
|
||||
for (int i = 0; i < 10; i++) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user