int do_thing(void *data) { //char *portdev = "/dev/cu.usbserial"; //char *portdev = "/dev/ttyO1"; int serial_fd; serial_t *serial = (serial_t *)data; char *port_dev = serial->port_dev; struct termios options; int nbytes; char buffer[10]; ANSI_CHECK(__FILE__, open_serial(port_dev, &serial_fd)); config_serial(&options, serial_fd); serial->fQuit = 0; while(!serial->fQuit) { nbytes = read(serial_fd, buffer, sizeof(buffer)); if(nbytes > 0) { buffer[nbytes] = '\0'; serial->on_serial_data_received(serial, buffer, nbytes); } serial->process_command(serial, serial_fd); } close(serial_fd); return 0; }
void on_riuc4_status(int port, riuc4_signal_t signal, uart4_status_t *ustatus) { SHOW_LOG(4, "on_riuc4_status port:%d, signal:%s\n", port, RIUC4_SIGNAL_NAME[signal]); static pj_thread_desc s_desc; static pj_thread_t *s_thread; ANSI_CHECK(__FILE__, pj_thread_register("adv_server", s_desc, &s_thread)); switch(signal) { case RIUC_SIGNAL_SQ: SHOW_LOG(3, "Received SQ signal\n"); gb_sender_report_sq(&riuc_data.gb_sender, riuc_data.node[port].id, port, ustatus->sq); if (ustatus->sq == 1) { node_start_session(&riuc_data.node[port]); gb_sender_report_rx(&riuc_data.gb_sender, riuc_data.node[port].id, port, 1); } else { node_stop_session(&riuc_data.node[port]); gb_sender_report_rx(&riuc_data.gb_sender, riuc_data.node[port].id, port, 0); } break; case RIUC_SIGNAL_PTT: SHOW_LOG(3, "Received PTT signal - node[%d]\n", port); gb_sender_report_tx(&riuc_data.gb_sender, riuc_data.node[port].id, port, ustatus->ptt); break; case RIUC_SIGNAL_RX: SHOW_LOG(3, "Received RX signal\n"); break; case RIUC_SIGNAL_TX: SHOW_LOG(3, "Received TX signal\n"); break; default: EXIT_IF_TRUE(1, "Unknow signal\n"); } }