您的位置:首页 > 其它

修改TI SensorDemo例程,摆脱烦人的摇杆与按键吧!

2012-05-08 19:29 246 查看
来自:/article/5899198.html

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有关的代码删除。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: