Well that's pretty novel

This commit is contained in:
XANTRONIX Development 2019-02-21 00:17:53 -06:00
parent 84171424ea
commit ff59b0c936

View file

@ -27,7 +27,6 @@ int main(int argc, char **argv) {
WINDOW *win;
hexagram_can_if *can_if;
struct can_frame frame;
uint8_t last_gear = 0;
struct timeval now, last;
@ -51,29 +50,37 @@ int main(int argc, char **argv) {
while (hexagram_can_if_read(can_if, &frame) >= 0) {
gettimeofday(&now, NULL);
char lever_states[16] = " PRNDS ";
char manual_gears[16] = " 123456 ";
if (frame.can_id == 0x280) {
double rpm = 0.25 * (double)(frame.data[2] | (frame.data[3] << 8));
wmove(win, 1, 0);
wprintw(win, "%6.1lf RPM\n", rpm);
wprintw(win, "%6.1lf RPM", rpm);
} else if (frame.can_id == 0x540) {
if (frame.data[7] != last_gear) {
wmove(win, 3, 8);
wmove(win, 5, 0);
if ((frame.data[7] & 0xc) == 0xc) {
wprintw(win, " %c\n",
manual_gears[(frame.data[7] & 0xf0) >> 4]);
if ((frame.data[7] & 0xc) == 0xc) {
uint8_t gear = ((frame.data[7] & 0xf0) >> 4) - 2;
} else {
wprintw(win, "%c \n",
lever_states[(frame.data[7] & 0xf0) >> 4]);
}
wprintw(win, "1 2 3 4 5 6");
last_gear = frame.data[7];
wmove(win, 6, 0);
wprintw(win, " ");
wmove(win, 6, gear * 2);
wprintw(win, "_");
} else {
uint8_t pos = ((frame.data[7] & 0xf0) >> 4) - 2;
wprintw(win, "P R N D S ");
wmove(win, 6, 0);
wprintw(win, " ");
wmove(win, 6, pos * 2);
wprintw(win, "_");
}
} else if (frame.can_id == 0x5a0) {
/*
@ -87,9 +94,15 @@ int main(int argc, char **argv) {
wmove(win, 2, 0);
wprintw(win, "%6.1lf kph", kph);
} else if (frame.can_id == 0x420) {
double temp = ((double)frame.data[1] - 100) / 2.0;
wmove(win, 3, 0);
wprintw(win, "%6.1lf °C", temp);
}
if (((now.tv_sec * 1000000) + now.tv_usec) - ((last.tv_sec * 1000000) + last.tv_usec) > 100000) {
if (((now.tv_sec * 1000000) + now.tv_usec) - ((last.tv_sec * 1000000) + last.tv_usec) > 500000) {
memcpy(&last, &now, sizeof(now));
wrefresh(win);