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 提建议
- 追加酬金
- 关注问题
- 邀请回答
-