ZigBee學習二 LED點對點通信


ZigBee學習二 LED點對點通信

終端上電后,自動連接協調器進行組網,成功后,開始發送LED字符數據。當協調器接收到數據后,終端和協調器的LED1都開始閃爍。

 

工程搭建和文件添加 步驟這里就省了。。。直接修改代碼。。。

1)修改coordinator.c文件

因為協調器是接收終端的信息並進行相應的處理,所有只修改消息處理函數就行了

static void GenericApp_MessageMSGCB( afIncomingMSGPacket_t *pkt )
{
  unsigned char buffer[4]="";
  switch ( pkt->clusterId )
  {
    case GENERICAPP_CLUSTERID:
      osal_memcpy(buffer,pkt->cmd.Data,3);
      if((buffer[0]=='L'))
      {
        HalLedBlink(HAL_LED_1,0,50,500);
      }else{
        HalLedSet(HAL_LED_1,HAL_LED_MODE_ON);
      }
    break;
  }
}

 

2)修改enddevice.c文件

uint16 GenericApp_ProcessEvent( uint8 task_id, uint16 events )
{  ... ...

  while ( MSGpkt )
  {
    switch ( MSGpkt->hdr.event )
    {
      case ZDO_CB_MSG:  ... ...
        break;

      case KEY_CHANGE:  ... ...
        break;

      case AF_DATA_CONFIRM_CMD:  ... ...

        break;

      case AF_INCOMING_MSG_CMD:  ... ...
        break;

      case ZDO_STATE_CHANGE:
        GenericApp_NwkState = (devStates_t)(MSGpkt->hdr.status);
        if ( (GenericApp_NwkState == DEV_ZB_COORD)
        || (GenericApp_NwkState == DEV_ROUTER)
        || (GenericApp_NwkState == DEV_END_DEVICE) )
        {
          GenericApp_SendTheMessage();
        }
        break;

      default:
        break;
     }

      ... ...

  }

}

static void GenericApp_SendTheMessage( void )
{
  char theMessageData[] = "LED";
  afAddrType_t my_DstAddr;
  my_DstAddr.addrMode = (afAddrMode_t)Addr16Bit;
  my_DstAddr.endPoint = GENERICAPP_ENDPOINT;
  my_DstAddr.addr.shortAddr = 0x0000;

  if ( AF_DataRequest( &my_DstAddr, &GenericApp_epDesc,
    GENERICAPP_CLUSTERID,
    (byte)osal_strlen( theMessageData ) + 1,
    (byte *)&theMessageData,
    &GenericApp_TransID,
    AF_DISCV_ROUTE, AF_DEFAULT_RADIUS ) == afStatus_SUCCESS )
  {
    // Successfully requested to be sent.
    HalLedBlink(HAL_LED_1,0,50,500);
  }else
  {
    // Error occurred in request to send.
  }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM