修改TI SensorDemo例程,擺脫煩人的搖桿與按鍵吧!


TI提供的SensorDemo例程非常不錯,配合 ZigBee Sensor Monitor還可以觀察ZigBee的網絡拓撲結構。

但是按照原本SensorDemo來運行,collector、router和enddevice都有相應的按鍵或搖桿要操作,才能建立網絡、發送數據。

1、加多一個新配置-RouterEB

打開SensorDemo工程,在Project菜單下找到Edit Configurations,進去之后點擊New按鈕,彈出New Configuration對話框,如下圖所示填寫,點擊OK:

些時建立的RouterEB跟CollectorEB的配置是完全相同的。

 

2、選擇CollectorEB配置,打開Options選項,在Defined Symbols那里加多一個編譯選項:MY_TYPE_COLLECTOR

 

3、在sapi.c文件的 SAPI_Init()函數,找到下面語句:

afSetMatch(sapi_epDesc.simpleDesc->EndPoint, FALSE);

修改為:

#ifdef MY_TYPE_COLLECTOR
afSetMatch(sapi_epDesc.simpleDesc->EndPoint, TRUE);//FALSE
#else
afSetMatch(sapi_epDesc.simpleDesc->EndPoint, FALSE);//FALSE
#endif

 

4、找到DemoCollector.c文件的函數 void zb_HandleOsalEvent( uint16 event )

將if( event & ZB_ENTRY_EVENT )內的代碼修改為以下內容:

if( event & ZB_ENTRY_EVENT )
{
 // blind LED 1 to indicate starting/joining a network
HalLedBlink ( HAL_LED_1, 0, 50, 500 );
HalLedSet( HAL_LED_2, HAL_LED_MODE_OFF );

if ( appState == APP_INIT )
{
#ifdef MY_TYPE_COLLECTOR
logicalType = ZG_DEVICETYPE_COORDINATOR;
zb_WriteConfiguration(ZCD_NV_LOGICAL_TYPE, sizeof(uint8), &logicalType);
initUart(uartRxCB);
#else
logicalType = ZG_DEVICETYPE_ROUTER;
zb_WriteConfiguration(ZCD_NV_LOGICAL_TYPE, sizeof(uint8), &logicalType);
#endif
}
// Start the device
zb_StartRequest();
}


5、DemoSensor.c 和Democollector.c文件,找到void zb_BindConfirm( uint16 commandId, uint8 status )里的

if ( reportState ) 

將這行注釋掉。

如此路由器和終端在與協調器綁定成功后自動發送報告。

也可以將工程內所有跟reportState有關的代碼刪除。



 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM