2 baidu 33742463 baidu_33742463 于 2016.01.14 15:11 提问

有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
devmiao   Ds   Rxr 2016.01.19 04:45
devmiao
devmiao   Ds   Rxr 2016.01.19 04:46
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!