ppwxkk

    1. Z-stack中,添加MAC地址过滤 14/8702 RF/无线 2014-04-01
      罗菜鸟 发表于 2014-3-31 15:31 另外,添加MAC地址,只有1分钟的时间,1分钟后,MAC白名单会清空,要重新添加。
      多谢指教。
    2. 罗菜鸟 发表于 2014-4-1 10:38 入网认证与MAC_MCPS_DATA_IND没有任何关系
      谢谢
    3. 罗菜鸟 发表于 2014-3-31 15:26 你函数用错了,函数MAC_CbackEvent接收到消息MAC_MLME_ASSOCIATE_IND才是节点入网请求。
      我在// Filter out non-zigbee packets else if(event == MAC_MLME_ASSOCIATE_IND) 判断后写的 // Filter out non-zigbee packets if ( event == MAC_MCPS_DATA_IND )     {       uint8 fcFrameType = (pData->dataInd.msdu.p[0] & 0x03);       uint8 fcProtoVer = ((pData->dataInd.msdu.p[0] >> 2) & 0x0F);       uint8 fcReserve = (pData->dataInd.msdu.p[1] & 0xE0);                  if ( (fcFrameType > 0x01) || (fcProtoVer != _NIB.nwkProtocolVersion) || (fcReserve != 0)           || (pData->dataInd.mac.srcAddr.addrMode != SADDR_MODE_SHORT) )       {         // Drop the message         mac_msg_deallocate( (uint8 **)&pData );         return;       }       else if(event == MAC_MLME_ASSOCIATE_IND )//回调函数       {           mact[0]=pData->associateInd.deviceAddress [0];  //     mact[1]=pData->associateInd.deviceAddress [1];     mact[2]=pData->associateInd.deviceAddress [2];     mact[3]=pData->associateInd.deviceAddress [3];     mact[4]=pData->associateInd.deviceAddress [4];     mact[5]=pData->associateInd.deviceAddress [5];     mact[6]=pData->associateInd.deviceAddress [6];     mact[7]=pData->associateInd.deviceAddress [7];                     } 还有这样也写过 if ( event == MAC_MCPS_DATA_IND )     {       uint8 fcFrameType = (pData->dataInd.msdu.p[0] & 0x03);       uint8 fcProtoVer = ((pData->dataInd.msdu.p[0] >> 2) & 0x0F);       uint8 fcReserve = (pData->dataInd.msdu.p[1] & 0xE0);       mact[0]=pData->dataInd.mac.dstAddr.addr.extAddr [0];  //     mact[1]=pData->dataInd.mac.dstAddr.addr.extAddr [1];     mact[2]=pData->dataInd.mac.dstAddr.addr.extAddr [2];     mact[3]=pData->dataInd.mac.dstAddr.addr.extAddr [3];     mact[4]=pData->dataInd.mac.dstAddr.addr.extAddr [4];     mact[5]=pData->dataInd.mac.dstAddr.addr.extAddr [5];     mact[6]=pData->dataInd.mac.dstAddr.addr.extAddr [6];     mact[7]=pData->dataInd.mac.dstAddr.addr.extAddr [7];           if ( (fcFrameType > 0x01) || (fcProtoVer != _NIB.nwkProtocolVersion) || (fcReserve != 0)           || (pData->dataInd.mac.srcAddr.addrMode != SADDR_MODE_SHORT) )       {         // Drop the message         mac_msg_deallocate( (uint8 **)&pData );         return;       } 各种试了,搜了一下上面还有一个,这个函数,写了传回结果不对,正确写法是在搜一下MAC_MLME_ASSOCIATE_IND下面写是吗? 我没试过。求教正确写法。 在 if (tmp == 0)   {     return;   }   waca(mact);//uint8 waca(unsigned char wac[8]) 利用函数发送值到系统层   // MAC_MCPS_DATA_IND is very special - it is the only event where the MAC does not free *pData.   if ( event == MAC_MCPS_DATA_IND )                                                                                         //另一个MAC_MCPS_DATA_IND事件   {     MAC_MlmeGetReq( MAC_SHORT_ADDRESS, &tmp );     if ((tmp == INVALID_NODE_ADDR) || (tmp == NWK_BROADCAST_SHORTADDR_DEVALL) ||         (pData->dataInd.msdu.len == 0))     {       mac_msg_deallocate( (uint8 **)&pData );       return;     }
    4. 我在 else if(event == MAC_MLME_ASSOCIATE_IND) 判断后写的 if ( event == MAC_MCPS_DATA_IND )     {       uint8 fcFrameType = (pData->dataInd.msdu.p[0] & 0x03);       uint8 fcProtoVer = ((pData->dataInd.msdu.p[0] >> 2) & 0x0F);       uint8 fcReserve = (pData->dataInd.msdu.p[1] & 0xE0);                  if ( (fcFrameType > 0x01) || (fcProtoVer != _NIB.nwkProtocolVersion) || (fcReserve != 0)           || (pData->dataInd.mac.srcAddr.addrMode != SADDR_MODE_SHORT) )       {         // Drop the message         mac_msg_deallocate( (uint8 **)&pData );         return;       }       else if(event == MAC_MLME_ASSOCIATE_IND )//回调函数       {           mact[0]=pData->associateInd.deviceAddress [0];  //     mact[1]=pData->associateInd.deviceAddress [1];     mact[2]=pData->associateInd.deviceAddress [2];     mact[3]=pData->associateInd.deviceAddress [3];     mact[4]=pData->associateInd.deviceAddress [4];     mact[5]=pData->associateInd.deviceAddress [5];     mact[6]=pData->associateInd.deviceAddress [6];     mact[7]=pData->associateInd.deviceAddress [7];                     } 还有这样也写过 if ( event == MAC_MCPS_DATA_IND )     {       uint8 fcFrameType = (pData->dataInd.msdu.p[0] & 0x03);       uint8 fcProtoVer = ((pData->dataInd.msdu.p[0] >> 2) & 0x0F);       uint8 fcReserve = (pData->dataInd.msdu.p[1] & 0xE0);       mact[0]=pData->dataInd.mac.dstAddr.addr.extAddr [0];  //     mact[1]=pData->dataInd.mac.dstAddr.addr.extAddr [1];     mact[2]=pData->dataInd.mac.dstAddr.addr.extAddr [2];     mact[3]=pData->dataInd.mac.dstAddr.addr.extAddr [3];     mact[4]=pData->dataInd.mac.dstAddr.addr.extAddr [4];     mact[5]=pData->dataInd.mac.dstAddr.addr.extAddr [5];     mact[6]=pData->dataInd.mac.dstAddr.addr.extAddr [6];     mact[7]=pData->dataInd.mac.dstAddr.addr.extAddr [7];           if ( (fcFrameType > 0x01) || (fcProtoVer != _NIB.nwkProtocolVersion) || (fcReserve != 0)           || (pData->dataInd.mac.srcAddr.addrMode != SADDR_MODE_SHORT) )       {         // Drop the message         mac_msg_deallocate( (uint8 **)&pData );         return;       } 各种试了,搜了一下上面还有一个,这个函数,写了传回结果不对,正确写法是在搜一下MAC_MLME_ASSOCIATE_IND下面写是吗? 我没试过。求教正确写法。
    5. Z-stack中,添加MAC地址过滤 14/8702 RF/无线 2014-03-31
      多谢指教。
    6. Z-stack中,添加MAC地址过滤 14/8702 RF/无线 2014-03-31
      ZDE_AcceptListInput和ZDE_JoinAcceptReq ,怎么用加不上网   ZDE_JoinAcceptReq_t *mac;   zAddrType_t *shortAddr_extAddr_byte_addrMode; //短地址+扩展+地址类型                                              //  AddrNotPresent = 0,                                              //  AddrGroup = 1,                                              //  Addr16Bit = 2,                                              //  Addr64Bit = 3,                                              //  AddrBroadcast = 15                                    //当 addrMode= Addr16Bit 时,对应点播方式;                                //   Addr64Bit = 3, MAC高级点对点                                //当 addrMode= AddrGroup 时,对应组播方式;                                //当 addrMode= AddrBroadcast 时,对应广播方式;             uint8 Security;//ZSecNoKey      0xa1                                       // ZSecOldFrmCount       0xa2                                       // ZSecMaxFrmCount       0xa3                                       // ZSecCcmFail           0xa4           Security=0xa2;           uint8 i;  //列表编号       i=0;                 //输入mac   mac->count=i;   mac->extAddrs[i][0]=0x00;   mac->extAddrs[i][1]=0x12;   mac->extAddrs[i][2]=0x4B;   mac->extAddrs[i][3]=0x00;   mac->extAddrs[i][4]=0x03;   mac->extAddrs[i][5]=0x98;   mac->extAddrs[i][6]=0xA1;   mac->extAddrs[i][7]=0xAB;   i++;   //00 12 4B 00 03 98 A1 AB//00124B000398A1AB   //输入安全绑定   shortAddr_extAddr_byte_addrMode->addrMode=15;//15广播   shortAddr_extAddr_byte_addrMode->addr.shortAddr=0xFFFF;                                                             //mac输入   shortAddr_extAddr_byte_addrMode->addr.extAddr[0]=0x00;   shortAddr_extAddr_byte_addrMode->addr.extAddr[1]=0x12;   shortAddr_extAddr_byte_addrMode->addr.extAddr[2]=0x4b;   shortAddr_extAddr_byte_addrMode->addr.extAddr[3]=0x00;   shortAddr_extAddr_byte_addrMode->addr.extAddr[4]=0x03;   shortAddr_extAddr_byte_addrMode->addr.extAddr[5]=0x98;   shortAddr_extAddr_byte_addrMode->addr.extAddr[6]=0xa1;   shortAddr_extAddr_byte_addrMode->addr.extAddr[7]=0xab;           //允许     ZDE_AcceptListInput(mac);   ZDE_JoinAcceptReq(shortAddr_extAddr_byte_addrMode,mac,Security);

最近访客

< 1/1 >

统计信息

已有6人来访过

  • 芯积分:22
  • 好友:--
  • 主题:1
  • 回复:6

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言