/*************************************************************************************************** * @fn MT_TaskInit * * @brief MonitorTest Task Initialization. This function is put into the * task table. * * @param byte task_id - task ID of the MT Task * * @return void ***************************************************************************************************/ void MT_TaskInit(uint8 task_id) { /* Initialize the Serial port */ MT_UartInit(); /* Register taskID - Do this after UartInit() because it will reset the taskID */ MT_UartRegisterTaskID(task_id); /* Initialize MT */ MT_Init(task_id); }
/*************************************************************************************************** * @fn MT_TaskInit * * @brief MonitorTest Task Initialization. This function is put into the * task table. * * @param task_id - task ID of the MT Task * * @return void ***************************************************************************************************/ void MT_TaskInit(uint8 task_id) { MT_TaskID = task_id; /* Initialize the Serial port */ MT_UartInit(); /* Register taskID - Do this after UartInit() because it will reset the taskID */ MT_UartRegisterTaskID(task_id); osal_set_event(task_id, MT_SECONDARY_INIT_EVENT); }
/********************************************************************* * @fn GenericApp_Init * * @brief Initialization function for the Generic App Task. * This is called during initialization and should contain * any application specific initialization (ie. hardware * initialization/setup, table initialization, power up * notificaiton ... ). * * @param task_id - the ID assigned by OSAL. This ID should be * used to send messages and set timers. * * @return none */ void GenericApp_Init( byte task_id ) { GenericApp_TaskID = task_id; GenericApp_NwkState = DEV_INIT; GenericApp_TransID = 0; // Device hardware initialization can be added here or in main() (Zmain.c). // If the hardware is application specific - add it here. // If the hardware is other parts of the device add it in main(). GenericApp_DstAddr.addrMode = (afAddrMode_t)AddrNotPresent; GenericApp_DstAddr.endPoint = 0; GenericApp_DstAddr.addr.shortAddr = 0; // Fill out the endpoint description. GenericApp_epDesc.endPoint = GENERICAPP_ENDPOINT; GenericApp_epDesc.task_id = &GenericApp_TaskID; GenericApp_epDesc.simpleDesc = (SimpleDescriptionFormat_t *)&GenericApp_SimpleDesc; GenericApp_epDesc.latencyReq = noLatencyReqs; // Register the endpoint description with the AF afRegister( &GenericApp_epDesc ); // Register for all key events - This app will handle all key events RegisterForKeys( GenericApp_TaskID ); // Update the display #if defined ( LCD_SUPPORTED ) HalLcdWriteString( "GenericApp", HAL_LCD_LINE_1 ); #endif ZDO_RegisterForZDOMsg( GenericApp_TaskID, End_Device_Bind_rsp ); ZDO_RegisterForZDOMsg( GenericApp_TaskID, Match_Desc_rsp ); ZDO_RegisterForZDOMsg( GenericApp_TaskID, SPI_INCOMING_ZAPP_DATA ); /*****for SHP *************begin******************/{ //extern void shp_example_init_called_by_system(void); //shp_example_init_called_by_system(); /*****for SHP *************end********************/} //QBing MT_UartRegisterTaskID(GenericApp_TaskID); MT_UartZAppBufferLengthRegister(100); osal_start_timerEx(GenericApp_TaskID,GENERICAPP_TIMER_EVT,1000); }
/********************************************************************* * @fn SampleApp_Init * * @brief Initialization function for the Generic App Task. * This is called during initialization and should contain * any application specific initialization (ie. hardware * initialization/setup, table initialization, power up * notificaiton ... ). * * @param task_id - the ID assigned by OSAL. This ID should be * used to send messages and set timers. * * @return none */ void SampleApp_Init( uint8 task_id ) { SampleApp_TaskID = task_id; SampleApp_NwkState = DEV_INIT; SampleApp_TransID = 0; MT_UartInit();//串口初始化 MT_UartRegisterTaskID(task_id);//登记任务号 #ifdef MODE_ED //终端节点下才配置 /**************超声波***************/ #define trig P0_1 #define echo P0_0 P0DIR |= 0x02; //P01输出trig P0DIR &= ~0x01; //P00输入echo trig=0; /*定时器配置*/ HalTimerInit(); HalTimerConfig(HAL_TIMER_0, HAL_TIMER_MODE_CTC, HAL_TIMER_CHANNEL_SINGLE, HAL_TIMER_CH_MODE_OUTPUT_COMPARE, TRUE, timer_callback); /***********步进电机**************/ #define in1 P0_4 #define in2 P0_5 #define in3 P0_6 #define in4 P0_7 P0SEL &=~0xf0; P0DIR |= 0xf0; P0INP &=~0Xf0; //打开上拉 in1=0; in2=0; in3=0; in4=0; /*测试*/ int i=0; for(i=0;i<128;i++) { MotorCW(); } for(i=0;i<128;i++) { MotorCCW(); } HalLedBlink( HAL_LED_2, 2,50, 500); #endif // Device hardware initialization can be added here or in main() (Zmain.c). // If the hardware is application specific - add it here. // If the hardware is other parts of the device add it in main(). #if defined ( BUILD_ALL_DEVICES ) // The "Demo" target is setup to have BUILD_ALL_DEVICES and HOLD_AUTO_START // We are looking at a jumper (defined in SampleAppHw.c) to be jumpered // together - if they are - we will start up a coordinator. Otherwise, // the device will start as a router. if ( readCoordinatorJumper() ) zgDeviceLogicalType = ZG_DEVICETYPE_COORDINATOR; else zgDeviceLogicalType = ZG_DEVICETYPE_ROUTER; #endif // BUILD_ALL_DEVICES #if defined ( HOLD_AUTO_START ) // HOLD_AUTO_START is a compile option that will surpress ZDApp // from starting the device and wait for the application to // start the device. ZDOInitDevice(0); #endif // Setup for the periodic message's destination address // Broadcast to everyone SampleApp_Periodic_DstAddr.addrMode = (afAddrMode_t)AddrBroadcast; SampleApp_Periodic_DstAddr.endPoint = SAMPLEAPP_ENDPOINT; SampleApp_Periodic_DstAddr.addr.shortAddr = 0xFFFF; // Setup for the flash command's destination address - Group 1 SampleApp_Flash_DstAddr.addrMode = (afAddrMode_t)afAddrGroup; SampleApp_Flash_DstAddr.endPoint = SAMPLEAPP_ENDPOINT; SampleApp_Flash_DstAddr.addr.shortAddr = SAMPLEAPP_FLASH_GROUP; // 网蜂点对点通讯定义 Point_To_Point_DstAddr.addrMode = (afAddrMode_t)Addr16Bit;//点播 Point_To_Point_DstAddr.endPoint = SAMPLEAPP_ENDPOINT; Point_To_Point_DstAddr.addr.shortAddr = 0x0000; //发给协调器 // Fill out the endpoint description. SampleApp_epDesc.endPoint = SAMPLEAPP_ENDPOINT; SampleApp_epDesc.task_id = &SampleApp_TaskID; SampleApp_epDesc.simpleDesc = (SimpleDescriptionFormat_t *)&SampleApp_SimpleDesc; SampleApp_epDesc.latencyReq = noLatencyReqs; // Register the endpoint description with the AF afRegister( &SampleApp_epDesc ); // Register for all key events - This app will handle all key events RegisterForKeys( SampleApp_TaskID ); // By default, all devices start out in Group 1 SampleApp_Group.ID = 0x0001; osal_memcpy( SampleApp_Group.name, "Group 1", 7 ); aps_AddGroup( SAMPLEAPP_ENDPOINT, &SampleApp_Group ); #if defined ( LCD_SUPPORTED ) HalLcdWriteString( "SmartPark", HAL_LCD_LINE_1 ); #endif }
/********************************************************************* * @fn HVACTest_Init * * @brief Initialization function for the Generic App Task. * This is called during initialization and should contain * any application specific initialization (ie. hardware * initialization/setup, table initialization, power up * notificaiton ... ). * * @param task_id - the ID assigned by OSAL. This ID should be * used to send messages and set timers. * * @return none */ void HVACTest_Init( uint8 task_id ) { HVACTest_TaskID = task_id; HVACTest_NwkState = DEV_INIT; HVACTest_TransID = 0; uint8 initVersion = 0; uint8 startupMsg[4] = {0xFF,0xFF,0,0}; // use this code to trick compiler initVersion = firm_version + hardware_version + chip_version; (void)initVersion; // Device hardware initialization can be added here or in main() (Zmain.c). // If the hardware is application specific - add it here. // If the hardware is other parts of the device add it in main(). hvac_STM32ResetInit(); // Register UART, init UART MT_UartInit (); MT_UartRegisterTaskID (HVACTest_TaskID); HVACTest_DstAddr.addrMode = (afAddrMode_t)AddrNotPresent; HVACTest_DstAddr.endPoint = HVACQUEEN_ENDPOINT; HVACTest_DstAddr.addr.shortAddr = 0; // Fill out the endpoint description. HVACTest_epDesc.endPoint = HVACQUEEN_ENDPOINT; HVACTest_epDesc.task_id = &HVACTest_TaskID; HVACTest_epDesc.simpleDesc = (SimpleDescriptionFormat_t *)&HVACTest_SimpleDesc; HVACTest_epDesc.latencyReq = noLatencyReqs; // Register the endpoint description with the AF afRegister( &HVACTest_epDesc ); // Register ZDO Message ZDO_RegisterForZDOMsg( HVACTest_TaskID, Device_annce ); ZDO_RegisterForZDOMsg( HVACTest_TaskID, End_Device_Bind_rsp ); ZDO_RegisterForZDOMsg( HVACTest_TaskID, Match_Desc_rsp ); // Init critical resource ptl0_initPTL0Status(); // check valid MAC address? // // If a mac address copy is valid in flash, send "FF FF FF" Msg to // STM32 and start the zigbee network. // // If not, send "FF FF 00" Msg to STM32, and prepare to handle MAC // address message. // // The forth byte is the firmware version // Test program, no need init white list // However, to disable any device to join, enable the empty white list function // Add firmware version startupMsg[3] = firm_version; // send valid flash startup mag while(HalUARTWrite(0, startupMsg, 4) != 4) { #ifdef WDT_IN_PM1 // clear WDT WDCTL |= WDCLP1; WDCTL |= WDCLP2; #endif HalUARTPoll(); } // start network directly, form a network and check ZDOInitDevice(0); // Init timer osal_start_timerEx( HVACTest_TaskID, HVAC_PTL0_GUT_EVT, HVAC_PTL0_FAIL_TIMEOUT ); // WDT #ifdef WDT_IN_PM1 // Start WDT reset timer osal_start_timerEx( HVACTest_TaskID, HVAC_WDT_CLEAR_EVT, HVAC_WDT_CLEAR_TIMEOUT ); #endif #if defined( IAR_ARMCM3_LM ) // Register this task with RTOS task initiator RTOS_RegisterApp( task_id, HVACQUEEN_RTOS_MSG_EVT ); #endif }
void CurrentDetectionT1_Init(uint8 task_id) { IO_Init(); CurrentDetectionT1_TaskID = task_id; CurrentDetectionT1_NwkState = DEV_INIT; CurrentDetectionT1_TransID = 0; MT_UartInit(); MT_UartRegisterTaskID(task_id); // Device hardware initialization can be added here or in main() (Zmain.c). // If the hardware is application specific - add it here. // If the hardware is other parts of the device add it in main(). #if defined ( BUILD_ALL_DEVICES ) // The "Demo" target is setup to have BUILD_ALL_DEVICES and HOLD_AUTO_START // We are looking at a jumper (defined in CurrentDetectionT1Hw.c) to be jumpered // together - if they are - we will start up a coordinator. Otherwise, // the device will start as a router. if (readCoordinatorJumper()) zgDeviceLogicalType = ZG_DEVICETYPE_COORDINATOR; else zgDeviceLogicalType = ZG_DEVICETYPE_ROUTER; #endif // BUILD_ALL_DEVICES // Setup for the periodic message's destination address // Broadcast to everyone CurrentDetectionT1_Periodic_DstAddr.addrMode = (afAddrMode_t)Addr16Bit; CurrentDetectionT1_Periodic_DstAddr.endPoint = HEARTBEAT_ENDPOINT; CurrentDetectionT1_Periodic_DstAddr.addr.shortAddr = 0; // Fill out the endpoint description. CurrentDetectionT1_epDesc.endPoint = HEARTBEAT_ENDPOINT; CurrentDetectionT1_epDesc.task_id = &CurrentDetectionT1_TaskID; CurrentDetectionT1_epDesc.simpleDesc = (SimpleDescriptionFormat_t *)&CurrentDetectionT1_SimpleDesc; CurrentDetectionT1_epDesc.latencyReq = noLatencyReqs; // Register the endpoint description with the AF afRegister(&CurrentDetectionT1_epDesc); // Register for all key events - This app will handle all key events RegisterForKeys(CurrentDetectionT1_TaskID); nv_read_config(); HalAdcInit(); HalAdcSetReference(HAL_ADC_REF_AVDD); #ifdef DEBUG_TRACE //memset(serialNumber, 0, SN_LEN); //serialNumber[SN_LEN - 1] = 20; #endif memcpy(serialNumber, aExtendedAddress, SN_LEN); //Feed WatchDog WDCTL = 0xa0; WDCTL = 0x50; osal_start_timerEx(CurrentDetectionT1_TaskID, DTCT_HEARTBEAT_MSG_EVT, 10); osal_start_timerEx(CurrentDetectionT1_TaskID, DTCT_LED_WTD_EVT, 10); }
/********************************************************************* * @fn SampleApp_Init * * @brief Initialization function for the Generic App Task. * This is called during initialization and should contain * any application specific initialization (ie. hardware * initialization/setup, table initialization, power up * notificaiton ... ). * * @param task_id - the ID assigned by OSAL. This ID should be * used to send messages and set timers. * * @return none */ void SampleApp_Init( uint8 task_id ) { SampleApp_TaskID = task_id; SampleApp_NwkState = DEV_INIT; SampleApp_TransID = 0; P1DIR |= 0x01; P1INP |= 0x01; P0SEL &= 0xbf; MT_UartInit(); MT_UartRegisterTaskID(task_id); HalUARTWrite(0, "Ep Init\n", sizeof("Ep Init\n")-1); // Device hardware initialization can be added here or in main() (Zmain.c). // If the hardware is application specific - add it here. // If the hardware is other parts of the device add it in main(). #if defined ( BUILD_ALL_DEVICES ) // The "Demo" target is setup to have BUILD_ALL_DEVICES and HOLD_AUTO_START // We are looking at a jumper (defined in SampleAppHw.c) to be jumpered // together - if they are - we will start up a coordinator. Otherwise, // the device will start as a router. if ( readCoordinatorJumper() ) zgDeviceLogicalType = ZG_DEVICETYPE_COORDINATOR; else zgDeviceLogicalType = ZG_DEVICETYPE_ROUTER; #endif // BUILD_ALL_DEVICES #if defined ( HOLD_AUTO_START ) // HOLD_AUTO_START is a compile option that will surpress ZDApp // from starting the device and wait for the application to // start the device. ZDOInitDevice(0); #endif // Setup for the periodic message's destination address // Broadcast to everyone SampleApp_Periodic_DstAddr.addrMode = (afAddrMode_t)AddrBroadcast; SampleApp_Periodic_DstAddr.endPoint = SAMPLEAPP_ENDPOINT; SampleApp_Periodic_DstAddr.addr.shortAddr = 0xFFFF; // Setup for the flash command's destination address - Group 1 SampleApp_Flash_DstAddr.addrMode = (afAddrMode_t)afAddrGroup; SampleApp_Flash_DstAddr.endPoint = SAMPLEAPP_ENDPOINT; SampleApp_Flash_DstAddr.addr.shortAddr = SAMPLEAPP_FLASH_GROUP; SampleApp_Point_DstAddr.addrMode = (afAddrMode_t)afAddr16Bit; SampleApp_Point_DstAddr.endPoint = SAMPLEAPP_ENDPOINT; SampleApp_Point_DstAddr.addr.shortAddr = 0x00; // Fill out the endpoint description. SampleApp_epDesc.endPoint = SAMPLEAPP_ENDPOINT; SampleApp_epDesc.task_id = &SampleApp_TaskID; SampleApp_epDesc.simpleDesc = (SimpleDescriptionFormat_t *)&SampleApp_SimpleDesc; SampleApp_epDesc.latencyReq = noLatencyReqs; // Register the endpoint description with the AF afRegister( &SampleApp_epDesc ); // Register for all key events - This app will handle all key events RegisterForKeys( SampleApp_TaskID ); // By default, all devices start out in Group 1 SampleApp_Group.ID = 0x0001; osal_memcpy( SampleApp_Group.name, "Group 1", 7 ); aps_AddGroup( SAMPLEAPP_ENDPOINT, &SampleApp_Group ); #if defined ( LCD_SUPPORTED ) HalLcdWriteString( "SampleApp", HAL_LCD_LINE_1 ); #endif }