void __handle_sysevt(VMINT message, VMINT param) { if(message == VM_MSG_ARDUINO_CALL) { msg_struct* pMsg = (msg_struct*)param; if(pMsg->remote_func(pMsg->userdata)) { vm_signal_post(pMsg->signal); } return ; } }
/* * \brief System event callback */ void __handle_sysevt(VMINT message, VMINT param) { /* Special event for arduino application, when arduino thead need call LinkIt 2.0 inteface, it will use this event */ if(message == VM_MSG_ARDUINO_CALL) { msg_struct* pMsg = (msg_struct*)param; if(pMsg->remote_func(pMsg->userdata)) { vm_signal_post(pMsg->signal); } return ; } }
void __retarget_irq_handler(void* parameter, VM_DCL_EVENT event, VM_DCL_HANDLE device_handle) { if(event == VM_DCL_SIO_UART_READY_TO_READ) { char data[SERIAL_BUFFER_SIZE]; int i; VM_DCL_STATUS status; VM_DCL_BUFFER_LENGTH returned_len = 0; status = vm_dcl_read(device_handle, (VM_DCL_BUFFER *)data, SERIAL_BUFFER_SIZE, &returned_len, g_owner_id); if(status < VM_DCL_STATUS_OK) { // vm_log_info((char*)"read failed"); } else if (returned_len) { if (retarget_rx_buffer_head == retarget_rx_buffer_tail) { vm_signal_post(retarget_rx_signal_id); } for (i = 0; i < returned_len; i++) { retarget_rx_buffer[retarget_rx_buffer_head % SERIAL_BUFFER_SIZE] = data[i]; retarget_rx_buffer_head++; if ((unsigned)(retarget_rx_buffer_head - retarget_rx_buffer_tail) > SERIAL_BUFFER_SIZE) { retarget_rx_buffer_tail = retarget_rx_buffer_head - SERIAL_BUFFER_SIZE; } } } } else { } }
void LBTServerClass::post_signal_read() { APP_LOG((char*)"LBTServerClass::post_signal_read"); vm_signal_post(m_signal_read); m_post_read = 1; }
void LBTServerClass::post_signal_write() { APP_LOG((char*)"LBTServerClass::post_signal_write"); vm_signal_post(m_signal_write); m_post_write = 1; }
static void LWiFiOnDisconnect(void *userData, vm_wlan_req_res_enum res) { LWiFiDisconnectContext *pContext = (LWiFiDisconnectContext*)userData; pContext->result = res; vm_signal_post(pContext->sigDisconnect); }