void main() { uart_init(9600); vt_init(); sonar_t so; sonar_t so2; sonar_init(&so, A0, A1); sonar_init(&so2, A2, A3); sei(); // end int16_t res; while(1) { vt_clear(); vt_home(); uart_puts_pgm(PSTR("SONAR\r\n===================")); // first vt_goto(99, 99); // move cursor away sonar_start(&so); while(sonar_busy()); res = sonar_result(); // print value vt_goto(0, 2); uart_puts_pgm(PSTR("A: ")); if (res < 0) { uart_puts_pgm(PSTR("No Obstacle")); } else { uart_puti(res, 1); uart_puts_pgm(PSTR(" cm")); } // second vt_goto(99, 99); // move cursor away sonar_start(&so2); while(sonar_busy()); res = sonar_result(); // print value vt_goto(0, 3); uart_puts_pgm(PSTR("B: ")); if (res < 0) { uart_puts_pgm(PSTR("No Obstacle")); } else { uart_puti(res, 1); uart_puts_pgm(PSTR(" cm")); } vt_goto(99, 99); // move cursor away _delay_ms(200); } }
} payload; } train_req; CHAR_BUFFER(128) static int train_server_tid; static void __attribute__((noreturn)) train_server_ui() { train_req req = { .type = UI }; int bytes[2]; char twirl = '|'; char buffer[64]; char* ptr = vt_goto(buffer, TRAIN_BANDWIDTH_ROW, TRAIN_BANDWIDTH_COL); ptr = sprintf(ptr, "TRAIN 0 B/s Up 0 B/s Down %c", (twirl = ui_twirl(twirl))); Puts(buffer, ptr - buffer); FOREVER { Delay(100); int result = Send(train_server_tid, (char*)&req, sizeof(treq_type), (char*)bytes, sizeof(bytes)); if (result < 0) ABORT("Failed to send to train server (%d)", result);