示例#1
0
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 ;
    }
}
示例#2
0
/*
 * \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;
}
示例#6
0
static void LWiFiOnDisconnect(void *userData, vm_wlan_req_res_enum res)
{
  LWiFiDisconnectContext *pContext = (LWiFiDisconnectContext*)userData;
  pContext->result = res;
  vm_signal_post(pContext->sigDisconnect);
}