コード例 #1
0
ファイル: serial_utils.c プロジェクト: flyzjhz/serial-1
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;
}
コード例 #2
0
ファイル: riuc4.c プロジェクト: mocidis/riuc-v1
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");
    } 
}