/********************************************************************* * @fn osalInitTasks * * @brief This function invokes the initialization function for each task. * * @param void * * @return none */ void osalInitTasks( void ) { uint8 taskID = 0; tasksEvents = (uint16 *)osal_mem_alloc( sizeof( uint16 ) * tasksCnt); osal_memset( tasksEvents, 0, (sizeof( uint16 ) * tasksCnt)); znpInit( taskID++ ); macTaskInit( taskID++ ); nwk_init( taskID++ ); APS_Init( taskID++ ); #if defined ( ZIGBEE_FRAGMENTATION ) APSF_Init( taskID++ ); #endif ZDApp_Init( taskID++ ); #if defined ( ZIGBEE_FREQ_AGILITY ) || defined ( ZIGBEE_PANID_CONFLICT ) ZDNwkMgr_Init( taskID++ ); #endif #if defined( INTER_PAN ) StubAPS_Init( taskID++ ); #endif SAPI_Init( taskID++ ); #if defined ( TC_LINKKEY_JOIN ) zclGeneral_KeyEstablish_Init( taskID++ ); #endif Hal_Init( taskID ); }
/********************************************************************* * @fn osalInitTasks * * @brief This function invokes the initialization function for each task. * * @param void * * @return none */ void osalInitTasks( void ) { uint8 taskID = 0; tasksEvents = (uint16 *)osal_mem_alloc( sizeof( uint16 ) * tasksCnt); osal_memset( tasksEvents, 0, (sizeof( uint16 ) * tasksCnt)); macTaskInit( taskID++ ); nwk_init( taskID++ ); Hal_Init( taskID++ ); #if defined( MT_TASK ) MT_TaskInit( taskID++ ); #endif APS_Init( taskID++ ); #if defined ( ZIGBEE_FRAGMENTATION ) APSF_Init( taskID++ ); #endif ZDApp_Init( taskID++ ); #if defined ( ZIGBEE_FREQ_AGILITY ) || defined ( ZIGBEE_PANID_CONFLICT ) ZDNwkMgr_Init( taskID++ ); #endif zcl_Init( taskID++ ); zclSampleSw_Init( taskID ); //¨Ï¥ÎªÌ¥i·s¼W©Ò»ÝTask (Application layer) }
/********************************************************************* * @fn osalInitTasks * * @brief This function invokes the initialization function for each task. * * @param void * * @return none */ void osalInitTasks( void ) { uint8 taskID = 0; //分配内存,返回指向缓冲区的指针 tasksEvents = (uint16 *)osal_mem_alloc( sizeof( uint16 ) * tasksCnt); //设置所分配的内存空间单元值位0 osal_memset( tasksEvents, 0, (sizeof( uint16 ) * tasksCnt)); //任务优先级由高到低依次排列,高优先级对应taskID的值反而小 macTaskInit( taskID++ ); //macTaskInit(0),用户不需要考虑 nwk_init( taskID++ ); //nwk_init(1),用户不需要考虑 Hal_Init( taskID++ ); //Hal_Init(2),用户需要考虑 #if defined( MT_TASK ) MT_TaskInit( taskID++ ); #endif APS_Init( taskID++ ); //APS_Init(3),用户不需要考虑 #if defined ( ZIGBEE_FRAGMENTATION ) APSF_Init( taskID++ ); #endif ZDApp_Init( taskID++ ); //ZDApp_Init(4),用户需要考虑 #if defined ( ZIGBEE_FREQ_AGILITY ) || defined ( ZIGBEE_PANID_CONFLICT ) ZDNwkMgr_Init( taskID++ ); #endif SampleApp_Init( taskID ); //SampleApp_Init(5),用户需要考虑 }
/********************************************************************* * @fn osalInitTasks * * @brief This function invokes the initialization function for each task. * * @param void * * @return none */ void osalInitTasks( void ) { uint8 taskID = 0; tasksEvents = (uint16 *)osal_mem_alloc( sizeof( uint16 ) * tasksCnt); osal_memset( tasksEvents, 0, (sizeof( uint16 ) * tasksCnt)); macTaskInit( taskID++ ); nwk_init( taskID++ ); Hal_Init( taskID++ ); #if defined( MT_TASK ) MT_TaskInit( taskID++ ); #endif APS_Init( taskID++ ); #if defined ( ZIGBEE_FRAGMENTATION ) APSF_Init( taskID++ ); #endif ZDApp_Init( taskID++ ); #if defined ( ZIGBEE_FREQ_AGILITY ) || defined ( ZIGBEE_PANID_CONFLICT ) ZDNwkMgr_Init( taskID++ ); #endif #if defined( INTER_PAN ) StubAPS_Init( taskID++ ); #endif zcl_Init( taskID++ ); #if defined ( ZCL_KEY_ESTABLISH ) zclGeneral_KeyEstablish_Init( taskID++ ); #endif ipd_Init( taskID ); }
void osalInitTasks( void ) { uint8 taskID = 0; osal_pwrmgr_device(PWRMGR_BATTERY);//11111 tasksEvents = (uint16 *)osal_mem_alloc( sizeof( uint16 ) * tasksCnt); osal_memset( tasksEvents, 0, (sizeof( uint16 ) * tasksCnt)); macTaskInit( taskID++ ); nwk_init( taskID++ ); Hal_Init( taskID++ ); #if defined( MT_TASK ) MT_TaskInit( taskID++ ); #endif APS_Init( taskID++ ); #if defined ( ZIGBEE_FRAGMENTATION ) APSF_Init( taskID++ ); #endif ZDApp_Init( taskID++ ); #if defined ( ZIGBEE_FREQ_AGILITY ) || defined ( ZIGBEE_PANID_CONFLICT ) ZDNwkMgr_Init( taskID++ ); #endif SampleApp_Init( taskID ); }
/********************************************************************* * @fn osalInitTasks * * @brief This function invokes the initialization function for each task. * * @param void * * @return none */ void osalInitTasks( void ) { uint8 taskID = 0; tasksEvents = (uint16 *)osal_mem_alloc( sizeof( uint16 ) * tasksCnt); osal_memset( tasksEvents, 0, (sizeof( uint16 ) * tasksCnt)); macTaskInit( taskID++ ); nwk_init( taskID++ ); Hal_Init( taskID++ ); #if defined( MT_TASK ) MT_TaskInit( taskID++ ); #endif APS_Init( taskID++ ); #if defined ( ZIGBEE_FRAGMENTATION ) APSF_Init( taskID++ ); #endif #if defined ( INTER_PAN) StubAPS_Init( taskID++ ); #endif ZDApp_Init( taskID++ ); #if defined ( ZIGBEE_FREQ_AGILITY ) || defined ( ZIGBEE_PANID_CONFLICT ) ZDNwkMgr_Init( taskID++ ); #endif BaseED_Init( taskID++ ); EndDeviceTask_Init( taskID++ ); #if defined ( MSP_REPROGRAM ) MSPTask_Init( taskID++ ); #endif }
/* @fn osalInitTasks * @brief This function invokes the initialization function for each task. * @param void * @return none*/ void osalInitTasks( void ) { uint8 taskID = 0; tasksEvents = (uint16 *)osal_mem_alloc( sizeof( uint16 ) * tasksCnt); osal_memset( tasksEvents, 0, (sizeof( uint16 ) * tasksCnt)); #if defined( ZMAC_F8W ) macTaskInit( taskID++ ); #endif #if !defined( NONWK ) nwk_init( taskID++ ); #endif Hal_Init( taskID++ ); #if defined( MT_TASK ) MT_TaskInit( taskID++ ); #endif #if !defined( NONWK ) APS_Init( taskID++ ); ZDApp_Init( taskID++ ); #endif LoacationApp_Init( taskID++ ); #if defined ( LOCATION_REFNODE ) RefNode_Init( taskID ); #endif #if defined ( LOCATION_BLINDNODE ) BlindNode_Init( taskID ); #endif #if defined ( LOCATION_GATEWAY ) Gateway_Init( taskID ); #endif }
/********************************************************************* * @fn osalInitTasks * * @brief This function invokes the initialization function for each task. * * @param void * * @return none */ void osalInitTasks( void ) { uint8 taskID = 0; tasksEvents = (uint16 *)osal_mem_alloc( sizeof( uint16 ) * tasksCnt); osal_memset( tasksEvents, 0, (sizeof( uint16 ) * tasksCnt)); macTaskInit( taskID++ ); nwk_init( taskID++ ); Hal_Init( taskID++ ); #if defined( MT_TASK ) MT_TaskInit( taskID++ ); #endif APS_Init( taskID++ ); #if defined ( ZIGBEE_FRAGMENTATION ) APSF_Init( taskID++ ); #endif ZDApp_Init( taskID++ ); #if defined ( ZIGBEE_FREQ_AGILITY ) || defined ( ZIGBEE_PANID_CONFLICT ) ZDNwkMgr_Init( taskID++ ); #endif zcl_Init( taskID++ ); zclSampleSw_Init( taskID++ ); #if (defined OTA_CLIENT) && (OTA_CLIENT == TRUE) zclOTA_Init( taskID ); #endif }
/** * Main function, initialization and main message loop * */ int main(void) { irq_initialize_vectors(); /* Initialize the board.*/ board_init(); /* Initialize the Software timer */ sw_timer_init(); /* Init the RF4CE Network layer */ if (nwk_init()!= NWK_SUCCESS) { app_alert(); } #ifdef RF4CE_CALLBACK_PARAM /* Register the ZID Callback indication */ zid_ind.zid_report_data_indication_cb = zid_report_data_indication; zid_ind.zid_get_report_indication_cb = zid_get_report_indication; register_zid_indication_callback(&zid_ind); #endif /* * The stack is initialized above, * hence the global interrupts are enabled here. */ cpu_irq_enable(); sw_timer_get_id(&APP_TIMER_ACC_READ); if (get_zid_keyrc_button(button_scan()) == ZID_COLD_START) { /* Cold start */ LED_On(ZID_APP_LED); node_status = COLD_START; nlme_reset_request(true #ifdef RF4CE_CALLBACK_PARAM ,(FUNC_PTR)nlme_reset_confirm #endif ); } else { /* Warm start */ node_status = WARM_START; nlme_reset_request(false #ifdef RF4CE_CALLBACK_PARAM ,(FUNC_PTR)nlme_reset_confirm #endif ); } /* Endless while loop */ while (1) { app_task(); /* Application task */ nwk_task(); /* RF4CE network layer task */ } }
/** * @brief Main function of the Terminal Target application */ int main(void) { irq_initialize_vectors(); sysclk_init(); /* Initialize the board. * The board-specific conf_board.h file contains the configuration of * the board initialization. */ board_init(); sw_timer_init(); if (nwk_init()!= NWK_SUCCESS) { app_alert(); } zrc_ind.vendor_data_ind_cb = vendor_data_ind; #ifdef ZRC_CMD_DISCOVERY zrc_ind.zrc_cmd_disc_indication_cb = zrc_cmd_disc_indication; #endif zrc_ind.zrc_cmd_indication_cb = zrc_cmd_indication; register_zrc_indication_callback(&zrc_ind); nwk_ind.nwk_ch_agility_indication_cb = nwk_ch_agility_indication; nwk_ind.nlme_unpair_indication_cb = nlme_unpair_indication; register_nwk_indication_callback(&nwk_ind); /* Initialize LEDs. */ LED_On(LED_START); /* indicating application is started */ LED_Off(LED_NWK_SETUP); /* indicating network is started */ LED_Off(LED_DATA); /* indicating data reception */ /* * The stack is initialized above, hence the global interrupts are *enabled * here. */ cpu_irq_enable(); #ifdef SIO_HUB /* Initialize the serial interface used for communication with terminal *program. */ sio2host_init(); #endif sw_timer_get_id(&led_timer); /* Endless while loop */ while (1) { app_task(); /* Application task */ nwk_task(); /* RF4CE network layer task */ } }
/** * @brief Main function of the Terminal Target application * @ingroup App_API */ int main(void) { /* Initialize all layers */ if (nwk_init() != NWK_SUCCESS) { /* something went wrong during initialization */ pal_alert(); } /* disable pull-ups */ MCUCR |= (1u << PUD); #ifdef FLASH_NVRAM pal_ps_set(EE_IEEE_ADDR,IEEE_ADDRESS_BYTES, &tal_pib_IeeeAddress); #endif /* Initialize LEDs. */ pal_led_init(); pal_led(LED_START, LED_ON); /* indicating application is started */ pal_led(LED_NWK_SETUP, LED_OFF); /* indicating network is started */ pal_led(LED_DATA, LED_OFF); /* indicating data reception */ /* * The stack is initialized above, hence the global interrupts are enabled * here. */ pal_global_irq_enable(); /** * @brief TWI and QT600 interface initialization */ int i; twi_master_init(); RESET_QT600_PIN_INIT(); RESET_QT600_ON(); for (i = 0; i < 100 ; i++) asm("nop"); /* Endless while loop */ while (1) { app_task(); /* Application task */ if(rf4ce_new_msg == 1) { twi_send_message(); TX_index = 0; rf4ce_new_msg = 0; } nwk_task(); /* RF4CE network layer task */ } }
/********************************************************************* * @fn osalInitTasks * * @brief This function invokes the initialization function for each task. * * @param void * * @return none */ void osalInitTasks( void ) { uint8 taskID = 0; tasksEvents = (uint16 *)osal_mem_alloc( sizeof( uint16 ) * tasksCnt); osal_memset( tasksEvents, 0, (sizeof( uint16 ) * tasksCnt)); macTaskInit( taskID++ ); nwk_init( taskID++ ); Hal_Init( taskID++ ); #if defined( MT_TASK ) MT_TaskInit( taskID++ ); #endif APS_Init( taskID++ ); ZDApp_Init( taskID++ ); SAPI_Init( taskID ); }
/** * \brief Run Wireless Module unit tests * * Initializes the clock system, board and USB. * Then runs the wireless task continuously. */ int main(void) { irq_initialize_vectors(); board_init(); sysclk_init(); sw_timer_init(); nwk_init(); /* Enable interrupts */ cpu_irq_enable(); stdio_usb_init(); while (1) { nwk_task(); } }
/** * Main function, initialization and main message loop * * @return error code */ int main(void) { irq_initialize_vectors(); #if SAMD21 || SAMD20 || SAMR21 system_init(); delay_init(); #else sysclk_init(); /* Initialize the board. * The board-specific conf_board.h file contains the configuration of * the board initialization. */ board_init(); #endif sw_timer_init(); if (nwk_init() != NWK_SUCCESS) { app_alert(); } stack_indication_callback_init(); #ifdef FLASH_NVRAM pal_ps_set(EE_IEEE_ADDR, 8, &tal_pib.IeeeAddress); #endif /* Initialize LEDs */ /* pal_led_init(); */ cpu_irq_enable(); /* * The global interrupt has to be enabled here as TAL uses the timer * delay which in turn requires interrupt to be enabled */ /* pal_global_irq_enable(); */ serial_interface_init(); /* Loop forever, the interrupts are doing the rest */ while (1) { nwk_task(); serial_data_handler(); } /* No return statement here, because this code is unreachable */ }
void freakz_init() { drvr_init(); mmem_init(); ctimer_init(); mac_init(); nwk_init(); aps_init(); af_init(); zdo_init(); buf_init(); slow_clock_init(); #if (TEST_SIM == 1) test_app_init(); #endif }
/** * Main function, initialization and main message loop * */ int main (void) { irq_initialize_vectors(); /* Initialize the board.ss * The board-specific conf_board.h file contains the configuration of * the board initialization. */ sysclk_init(); board_init(); sw_timer_init(); if (nwk_init()!= NWK_SUCCESS) { app_alert(); } zid_indication_callback_init(); /* * The stack is initialized above, hence the global interrupts are enabled * here. */ cpu_irq_enable(); /* Initializing udc stack as HID composite device*/ udc_start(); sw_timer_get_id(&APP_TIMER); /* Endless while loop */ //udi_hid_gpd_up(16); while (1) { app_task(); /* Application task */ nwk_task(); /* RF4CE network layer task */ } }
/********************************************************************* * @fn osalInitTasks * * @brief This function invokes the initialization function for each task. * * @param void * * @return none */ void osalInitTasks( void ) { uint8 taskID = 0; tasksEvents = (uint16 *)osal_mem_alloc( sizeof( uint16 ) * tasksCnt); osal_memset( tasksEvents, 0, (sizeof( uint16 ) * tasksCnt)); macTaskInit( taskID++ ); nwk_init( taskID++ ); Hal_Init( taskID++ ); APS_Init( taskID++ ); #if defined ( ZIGBEE_FRAGMENTATION ) APSF_Init( taskID++ ); #endif ZDApp_Init( taskID++ ); #if defined ( ZIGBEE_FREQ_AGILITY ) || defined ( ZIGBEE_PANID_CONFLICT ) ZDNwkMgr_Init( taskID++ ); #endif zcl_Init( taskID++ ); ZTouchButton_Init( taskID++ ); }
/********************************************************************* * @fn osalInitTasks * * @brief This function invokes the initialization function for each task. * * @param void * * @return none */ void osalInitTasks( void ) { uint8 taskID = 0; tasksEvents = (uint16 *)osal_mem_alloc( sizeof( uint16 ) * tasksCnt); osal_memset( tasksEvents, 0, (sizeof( uint16 ) * tasksCnt)); macTaskInit( taskID++ ); nwk_init( taskID++ ); Hal_Init( taskID++ ); #if defined( MT_TASK ) MT_TaskInit( taskID++ ); #endif APS_Init( taskID++ ); #if defined ( ZIGBEE_FRAGMENTATION ) APSF_Init( taskID++ ); #endif ZDApp_Init( taskID++ ); #if defined ( ZIGBEE_FREQ_AGILITY ) || defined ( ZIGBEE_PANID_CONFLICT ) ZDNwkMgr_Init( taskID++ ); #endif CurrentDetectionT1_Init( taskID ); }
/** * Main function, initialization and main message loop * * @return error code */ int main (void) { irq_initialize_vectors(); /* Initialize the board. * The board-specific conf_board.h file contains the configuration of * the board initialization. */ board_init(); sysclk_init(); sw_timer_init(); if (nwk_init() != NWK_SUCCESS) { app_alert(); } zid_indication_callback_init(); cpu_irq_enable(); /* * The global interrupt has to be enabled here as TAL uses the timer * delay which in turn requires interrupt to be enabled */ serial_interface_init(); /* Loop forever, the interrupts are doing the rest */ while (1) { nwk_task(); serial_data_handler(); } /* No return statement here, because this code is unreachable */ }
/********************************************************************* * @fn MT_NwkCommandProcessing * * @brief * * Process all the NWK commands that are issued by test tool * * @param cmd_id - Command ID * @param len - Length of received SPI data message * @param pData - pointer to received SPI data message * * @return void */ void MT_NwkCommandProcessing( uint16 cmd_id , byte len , byte *pData ) { byte ret; #if defined ( MT_NWK_FUNC ) uint8 dummyExPANID[Z_EXTADDR_LEN] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }; uint16 dstAddr; #endif #if defined ( MT_NWK_FUNC ) //NWK commands byte attr; byte index; byte dataLen; byte *dataPtr; uint32 channelList; byte databuf[SPI_RESP_LEN_NWK_DEFAULT + NWK_DEFAULT_GET_RESPONSE_LEN]; #if defined( ZDO_COORDINATOR ) uint16 panId; #else byte i,j; #endif #endif // MT_NWK_FUNC len = SPI_0DATA_MSG_LEN + SPI_RESP_LEN_NWK_DEFAULT; ret = (byte)ZSuccess; switch (cmd_id) { #if defined( RTR_NWK ) case SPI_CMD_NLME_PERMIT_JOINING_REQ: //The only information is PermitDuration ret = (byte)NLME_PermitJoiningRequest( *pData ); break; #endif #if defined ( MT_NWK_FUNC ) //NWK commands case SPI_CMD_NWK_INIT: nwk_init( NWK_TaskID ); break; case SPI_CMD_NLDE_DATA_REQ: //First read the DstAddr dstAddr = BUILD_UINT16( pData[1], pData[0] ); pData += sizeof( dstAddr ); //Get the NSDU details dataLen = *pData++; dataPtr = pData; /* For now, skip a length of ZTEST_DEFAULT_DATA_LEN, instead of dataLen. In future ZTOOL releases the data buffer will be only as long as dataLen */ //pData += dataLen; pData += ZTEST_DEFAULT_DATA_LEN; /* pData[0] = NSDUHandlde pData[1] = NSDUHandleOptions pData[3] = SecurityEnable pData[4] = DiscoverRoute pData[5] = RadiusCounter */ ret = (byte)MT_Nwk_DataRequest( dstAddr, dataLen, dataPtr, pData[0], BUILD_UINT16( pData[2], pData[1] ), pData[3], pData[4], pData[5]); break; #if defined( ZDO_COORDINATOR ) case SPI_CMD_NLME_INIT_COORD_REQ: panId = BUILD_UINT16( pData[1], pData[0] ); MT_ReverseBytes( &pData[2], 4 ); channelList = osal_build_uint32( &pData[2], 4 ); ret = (byte)NLME_NetworkFormationRequest( panId, channelList, pData[6], pData[7], pData[8], pData[9] ); break; #endif // ZDO #if defined( RTR_NWK ) case SPI_CMD_NLME_START_ROUTER_REQ: // NOTE: first two parameters are not used, see NLMEDE.h for details ret = (byte)NLME_StartRouterRequest( pData[0], pData[1], pData[2] ); break; #endif // RTR case SPI_CMD_NLME_JOIN_REQ: ret = (byte)NLME_JoinRequest( dummyExPANID, BUILD_UINT16( pData[1], pData[0] ), pData[2], pData[3] ); if ( pData[3] & CAPINFO_RCVR_ON_IDLE ) { // The receiver is on, turn network layer polling off. NLME_SetPollRate( 0 ); NLME_SetQueuedPollRate( 0 ); NLME_SetResponseRate( 0 ); } break; case SPI_CMD_NLME_LEAVE_REQ: { NLME_LeaveReq_t req; // if extAddr is all zeros, it means null pointer.. for( index = 0; ( ( index < Z_EXTADDR_LEN ) && ( pData[index] == 0 ) ) ; index++ ); if ( index == Z_EXTADDR_LEN ) { req.extAddr = NULL; } else { MT_ReverseBytes( pData, Z_EXTADDR_LEN ); req.extAddr = pData; } pData += Z_EXTADDR_LEN; req.removeChildren = FALSE; req.rejoin = FALSE; req.silent = FALSE; ret = (byte)NLME_LeaveReq( &req ); } break; case SPI_CMD_NLME_RESET_REQ: //Its a direct call to reset NWK ret = (byte)NLME_ResetRequest(); break; case SPI_CMD_NLME_GET_REQ: attr = *pData++; index = *pData; databuf[0] = (byte)NLME_GetRequest( (ZNwkAttributes_t )attr, index, &databuf[1] ); len = SPI_0DATA_MSG_LEN + SPI_RESP_LEN_NWK_DEFAULT + NWK_DEFAULT_GET_RESPONSE_LEN; MT_BuildAndSendZToolResponse( len, (SPI_RESPONSE_BIT | SPI_CMD_NLME_GET_REQ), (SPI_RESP_LEN_NWK_DEFAULT + NWK_DEFAULT_GET_RESPONSE_LEN), databuf ); return; // Don't return to this function case SPI_CMD_NLME_SET_REQ: ret = (byte)NLME_SetRequest( (ZNwkAttributes_t)pData[0], pData[1], &pData[2] ); osal_start_timerEx( ZDAppTaskID, ZDO_NWK_UPDATE_NV, 1000 ); break; case SPI_CMD_NLME_NWK_DISC_REQ: MT_ReverseBytes( pData, 4 ); ret = (byte)NLME_NetworkDiscoveryRequest( osal_build_uint32( pData, 4 ), pData[4] ); break; #if !defined( ZDO_COORDINATOR ) case SPI_CMD_NLME_ORPHAN_JOIN_REQ: // Channel list bit mask MT_ReverseBytes( pData, 4 ); channelList = osal_build_uint32( pData, 4 ); // Count number of channels j = attr = 0; for ( i = 0; i < ED_SCAN_MAXCHANNELS; i++ ) { if ( channelList & (1 << i) ) { j++; attr = i; } } // If only one channel specified... if ( j == 1 ) { _NIB.scanDuration = pData[4]; _NIB.nwkLogicalChannel = attr; _NIB.channelList = channelList; if ( !_NIB.CapabilityInfo ) _NIB.CapabilityInfo = ZDO_Config_Node_Descriptor.CapabilityFlags; devState = DEV_NWK_ORPHAN; ret = (byte)NLME_OrphanJoinRequest( channelList, pData[4] ); } else ret = ZNwkInvalidParam; break; #endif // !ZDO #if defined (RTR_NWK) case SPI_CMD_NLME_ROUTE_DISC_REQ: ret = (byte)NLME_RouteDiscoveryRequest( BUILD_UINT16( pData[1], pData[0] ), pData[2] ); break; case SPI_CMD_NLME_DIRECT_JOIN_REQ: MT_ReverseBytes( pData, 8 ); ret = (byte)NLME_DirectJoinRequest( pData, pData[8] ); break; #endif // RTR #endif // MT_NWK_FUNC default: ret = (byte)ZUnsupportedMode; break; } #if defined ( MT_NWK_FUNC ) MT_SendSPIRespMsg( ret, cmd_id, len, SPI_RESP_LEN_NWK_DEFAULT ); #endif (void)len; (void)ret; }
/*************************************************************************************************** * @fn MT_NwkCommandProcessing * * @brief * * Process all the NWK commands that are issued by test tool * * @param cmd_id - Command ID * @param len - Length of received SPI data message * @param pData - pointer to received SPI data message * * @return status ***************************************************************************************************/ uint8 MT_NwkCommandProcessing(uint8 *pBuf) { uint8 status = MT_RPC_SUCCESS; switch (pBuf[MT_RPC_POS_CMD1]) { case MT_NWK_INIT: nwk_init(NWK_TaskID); break; case MT_NLDE_DATA_REQ: MT_NldeDataRequest(pBuf); break; case MT_NLME_NETWORK_FORMATION_REQ: MT_NlmeNetworkFormationRequest(pBuf); break; case MT_NLME_PERMIT_JOINING_REQ: MT_NlmePermitJoiningRequest(pBuf); break; case MT_NLME_JOIN_REQ: MT_NlmeJoinRequest(pBuf); break; case MT_NLME_LEAVE_REQ: MT_NlmeLeaveRequest(pBuf); break; case MT_NLME_RESET_REQ: MT_NlmeResetRequest(pBuf); break; case MT_NLME_GET_REQ: MT_NlmeGetRequest(pBuf); break; case MT_NLME_SET_REQ: MT_NlmeSetRequest(pBuf); break; case MT_NLME_NETWORK_DISCOVERY_REQ: MT_NlmeNetworkDiscoveryRequest(pBuf); break; case MT_NLME_ROUTE_DISCOVERY_REQ: MT_NlmeRouteDiscoveryRequest(pBuf); break; case MT_NLME_DIRECT_JOIN_REQ: MT_NlmeDirectJoinRequest(pBuf); break; case MT_NLME_ORPHAN_JOIN_REQ: MT_NlmeOrphanJoinRequest(pBuf); break; case MT_NLME_START_ROUTER_REQ: MT_NlmeStartRouterRequest(pBuf); break; default: status = MT_RPC_ERR_COMMAND_ID; break; } return status; }