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

转自:http://blog.csdn.net/jecan123/article/details/7547456

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有关的代码删除。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值