add args and better delay logic
This commit is contained in:
parent
9abaae1e00
commit
6b48126f7e
63
src/main.c
63
src/main.c
@ -2,6 +2,8 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <time.h>
|
||||||
|
|
||||||
const int digit_bitmaps[10][5][3] = {
|
const int digit_bitmaps[10][5][3] = {
|
||||||
{{1,1,1},{1,0,1},{1,0,1},{1,0,1},{1,1,1}}, // 0
|
{{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
|
{{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;
|
*speed = rand() % 201;
|
||||||
*power = rand() % 1251;
|
*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;
|
*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) {
|
void win_clear(WINDOW *lwin) {
|
||||||
int y, x;
|
int y, x;
|
||||||
getmaxyx(lwin, y, x);
|
getmaxyx(lwin, y, x);
|
||||||
@ -81,8 +90,29 @@ void win_number(WINDOW *lwin, int data, int digits){
|
|||||||
wrefresh(lwin);
|
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();
|
initscr();
|
||||||
noecho();
|
noecho();
|
||||||
cbreak();
|
cbreak();
|
||||||
@ -135,23 +165,38 @@ int main()
|
|||||||
wrefresh(win[i]);
|
wrefresh(win[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
int speed, power, bat, rpm, eff;
|
int speed = 0, power = 0, bat = 0, rpm = 0, eff = 0;
|
||||||
float tq, bat_temp, var_temp, mot_temp;
|
float tq = 0.0f, bat_temp = 0.0f, var_temp = 0.0f, mot_temp = 0.0f;
|
||||||
|
long t100 = 0, t1000 = 0;
|
||||||
int ch = ERR;
|
int ch = ERR;
|
||||||
while(ch == ERR)
|
while(ch == ERR)
|
||||||
{
|
{
|
||||||
get_data(&speed, &power, &bat, &tq, &rpm, &eff, &bat_temp, &var_temp, &mot_temp);
|
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[0], speed, 3);
|
||||||
win_number(win[1], power, 4);
|
win_number(win[1], power, 4);
|
||||||
win_number(win[2], bat, 3);
|
|
||||||
//win[3]
|
//win[3]
|
||||||
//win[4]
|
//win[4]
|
||||||
//win[5]
|
//win[5]
|
||||||
//win_number(win[6], bat_temp, 3);
|
t100 = now;
|
||||||
//win_number(win[7], var_temp, 3);
|
}
|
||||||
//win_number(win[8], mot_temp, 3);
|
if (now - t1000 >= 1000 * delay){
|
||||||
|
win_number(win[2], bat, 3);
|
||||||
|
//win[6]
|
||||||
|
//win[7]
|
||||||
|
//win[8]
|
||||||
|
t1000 = now;
|
||||||
|
}
|
||||||
//win[9];
|
//win[9];
|
||||||
ch = getch();
|
ch = getch();
|
||||||
|
napms(10);
|
||||||
};
|
};
|
||||||
|
|
||||||
for (int i = 0; i < 10; i++) {
|
for (int i = 0; i < 10; i++) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user