baidu_33742463 2016-01-14 07:11 采纳率: 0%
浏览 1566

有ZIGBEE程序大神马?帮忙解释下下面的代码,谢谢!

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)后面的是判断省略

  • 写回答

2条回答

  • devmiao 2016-01-18 20:45
    关注
    评论

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大