int main() { int fd = obd_open(OBD_PORT); int avr_fd = avr_open(AVR_PORT); FILE* timelog = open_timing_log(); int RPM = 0; int speed = 0; time_t start, end; obd_setup(fd); printf("Beginning read cycle...\n"); while (true) { start = time(0); RPM = get_rpm(fd); end = time(0); log_time(timelog, end - start); speed = get_speed(fd); if ((RPM != -1) && (speed != -1)) { send_to_avr(avr_fd, speed, RPM); printf("RPM: %d\nSpeed: %d\n", RPM, speed); } //flush buffers just in case tcflush(fd, TCIOFLUSH); } return 0; }
static Bool avr_on_event ( void *udta, GF_Event *evt, Bool consumed_by_compositor ) { GF_AVRedirect *avr = udta; switch ( evt->type ) { case GF_EVENT_CONNECT: if ( evt->connect.is_connected ) { avr_open ( avr ); } else { avr_close ( avr ); } break; } return 0; }