1.具体实现:终端通过无线把数据传给协调器,协调器再将数据通过串口传给电脑显示~
打开之前的串口程序,串口部分就不用讲了,直接进入无线的收发
2.代码的增加:
1). 接收数据 (红色字体为新增代码)
SampleApp_MessageMSGCB, , 在 函数 case SAMPLEAPP_PERIODIC_CLUSTERID: 下 面增 加 三
行代码,修改后如下:
void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt ) // 接收数据
{
uint16 flashTime;
switch ( pkt->clusterId )
{
case SAMPLEAPP_PERIODIC_CLUSTERID:
HalUARTWrite(0, "Rx:", 3); // 提示信息
HalUARTWrite(0, pkt->cmd.Data, pkt->cmd.DataLength); // 输出接收到的数据
HalUARTWrite(0, "\n", 1); // 回车换行
break;
case SAMPLEAPP_FLASH_CLUSTERID: // 此实验没有使用,到后面实验详解
flashTime = BUILD_UINT16(pkt->cmd.Data[1], pkt->cmd.Data[2] );
HalLedBlink( HAL_LED_4, 4, 50, (flashTime / 4) );
break;
}
}
2). 发送数据 (红色字体为新增代码)
void SampleApp_SendPeriodicMessage( void ) // 周期发送函数
{
uint8 data[11]="0123456789";
// 调用 AF_DataRequest 将数据无线广播出去,在第一个实验详解里就不重复了。
if ( AF_DataRequest( &SampleApp_Periodic_DstAddr, &SampleApp_epDesc,
SAMPLEAPP_PERIODIC_CLUSTERID,
10,