BOOL RELAYER_start(int serial_port, int serial_speed) { if (EM_BT_init()){ DBG("BT device power on success\n"); } else { ERR("BT device power on failed\n"); return FALSE; } uart_fd = init_uart2pc(serial_port, serial_speed); if (uart_fd < 0){ ERR("Initialize serial port to PC failed\n"); EM_BT_deinit(); return FALSE; } /* Create Tx monitor thread */ pthread_create(&txThread, NULL, bt_tx_monitor, (void*)NULL); /* Create RX monitor thread */ pthread_create(&rxThread, NULL, bt_rx_monitor, (void*)NULL); DBG("BT Relayer mode start\n"); fExit = FALSE; return TRUE; }
void RELAYER_exit() { fExit = TRUE; /* Wait until thread exist */ pthread_join(txThread, NULL); pthread_join(rxThread, NULL); close(uart_fd); uart_fd = -1; EM_BT_deinit(); }
void RELAYER_exit() { TRC(); /* Wait until thread exit */ pthread_kill(txThread, SIGRTMIN); pthread_join(txThread, NULL); pthread_kill(rxThread, SIGRTMIN); pthread_join(rxThread, NULL); close(serial_fd); serial_fd = -1; EM_BT_deinit(); }