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
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器