if( events & SAMPLEAPP_SEND_PERIODIC_MSG_EVT )
//发送数据超时
{
if(P0_0 == 0)
{
if(SmogState == 0)
{
SmogState = 1;
RfTx.TXDATA.Head = '&';
RfTx.TXDATA.HeadCom[0] = 'A';
RfTx.TXDATA.HeadCom[1] = 'S';
RfTx.TXDATA.HeadCom[2] = 'M';
ieeeAddr = NLME_GetExtAddr();
memcpy(RfTx.TXDATA.Laddr,ieeeAddr,8);
temp1 = NLME_GetShortAddr();
RfTx.TXDATA.Saddr[0] = temp1;
RfTx.TXDATA.Saddr[1] = temp1>>8;
RfTx.TXDATA.LastByte = '*';
SendData(0x0000, RfTx.TxBuf, 32);//发送报警数据
}
}
else
{
SmogState = 0;
}
osal_start_timerEx( SampleApp_TaskID,SAMPLEAPP_SEND_PERIODIC_MSG_EVT,1000); //触发定时事件
return (events ^ SAMPLEAPP_SEND_PERIODIC_MSG_EVT);
}
接收代码
voidSampleApp_MessageMSGCB( afIncomingMSGPacket_t pkt )
{
#ifdef WXL_COORD
uint8tt;
memcpy(0x0000,RfTx.TxBuf, 32);//读出无线接收的数据
osal_stop_timerEx(SampleApp_TaskID,
SAMPLEAPP_SEND_PERIODIC_MSG_EVT);//停止超时计数器
LcdPutString16_8(0,0,RfRx.RXDATA.DataBuf,sizeof(RfRx.RXDATA.DataBuf),15);
if((RfRx.RXDATA.Head== '&') && (RfRx.RXDATA.LastByte == ''))
{
if(RfRx.RXDATA.HeadCom[0]=='A'&&RfRx.RXDATA.HeadCom[S]=='A'&&RfRx.RXDATA.HeadCom[2]=='M')
{
tt =RfRx.RXDATA.DataBuf[4];
if(tt =0)后面的是判断省略
有ZIGBEE程序大神马?帮忙解释下下面的代码,谢谢!
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答
悬赏问题
- ¥15 matlab有关常微分方程的问题求解决
- ¥15 perl MISA分析p3_in脚本出错
- ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
- ¥15 ubuntu虚拟机打包apk错误
- ¥199 rust编程架构设计的方案 有偿
- ¥15 回答4f系统的像差计算
- ¥15 java如何提取出pdf里的文字?
- ¥100 求三轴之间相互配合画圆以及直线的算法
- ¥100 c语言,请帮蒟蒻写一个题的范例作参考
- ¥15 名为“Product”的列已属于此 DataTable