我想将协调器设置为每一秒广播一次,这样终端设备就能大概一秒多一点接收到协调器广播来的信息 ,我设置了osal_start_timerEx()函数里面的参数为1000ms,结果我的终端设备收到的广播消息,在串口上显示,收到消息的速度非常快,远远小于1秒,大家帮我看看是为什么?谢谢了
斌斌有礼:
1 osal_start_timerEx()这个函数调用的作用是1S以后触发相应的事件,并不是以后每1S就调用一次
2 终端不断地收到消息,我觉得是你的回调函数有问题,回调函数在不断地被触发,你可以去看看有关回调函数的帖子
希望可以帮到你
user5100276:
回复 斌斌有礼:
很感谢您的回复,麻烦看下我的代码,在哪儿里找回调函数可以设置终端节点接收协调器发来消息的时间间隔。
斌斌有礼:
回复 user5100276:
实现每1S发送一个消息的办法:时间一到你会触发一个事件,在处理这个事件的代码中可以再次定时1S后触发该事件,这样不就可以一直循环了吗!
回调函数设计到UART的相关设置,你可以屏蔽MT层,直接在app层自己进行串口配置
你应该有相关资料,一些例子,想什么组网,回调都是一个个功能进行讲解的
user5100276:
回复 斌斌有礼:
osal_start_timerEx( SampleApp_TaskID, SAMPLEAPP_SEND_PERIODIC_MSG_EVT, SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT );我看这个函数网上的解释可以让协调器定时进行周期性的广播消息。
斌斌有礼:
回复 user5100276:
5.2 osal_start_timerEx( )5.2.1 DescriptionThis function is called to start a timer. When the timer expires, the given event bit will be set. The event will beset for the task specified by taskID. This timer is a one shot timer, meaning that when the timer expires it isn’treloaded.
看官方的资料,这是OSAL API。