⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nwk_globals.c

📁 一些基于IRA环境开发的zigbee实例程序
💻 C
📖 第 1 页 / 共 2 页
字号:
  0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
#endif
};


/*********************************************************************
 * STATUS STRINGS
 */
#if defined ( LCD_SUPPORTED )
  const char PingStr[]         = "Ping Rcvd from";
  const char AssocCnfStr[]     = "Assoc Cnf";
  const char SuccessStr[]      = "Success";
  const char EndDeviceStr[]    = "EndDevice:";
  const char ParentStr[]       = "Parent:";
  const char ZigbeeCoordStr[]  = "ZigBee Coord";
  const char NetworkIDStr[]    = "Network ID:";
  const char RouterStr[]       = "Router:";
  const char OrphanRspStr[]    = "Orphan Response";
  const char SentStr[]         = "Sent";
  const char FailedStr[]       = "Failed";
  const char AssocRspFailStr[] = "Assoc Rsp fail";
  const char AssocIndStr[]     = "Assoc Ind";
  const char AssocCnfFailStr[] = "Assoc Cnf fail";
  const char EnergyLevelStr[]  = "Energy Level";
  const char ScanFailedStr[]   = "Scan Failed";
#endif

/*********************************************************************
 * @fn       nwk_globals_init()
 *
 * @brief
 *
 *   Initialize nwk layer globals.  These are the system defaults and
 *   should be changed by the user here.  The default definitions are
 *   defined in nwk.h or NLMEDE.h.
 *
 * @param   none
 *
 * @return  none
 */
void nwk_globals_init( void )
{
  AddrMgrInit( NWK_MAX_ADDRESSES );

#if defined ( RTR_NWK )
  // Initialize the Cskip Table
  Cskip = osal_mem_alloc(sizeof(uint16) *(MAX_NODE_DEPTH+1));
  RTG_FillCSkipTable(CskipChldrn, CskipRtrs, MAX_NODE_DEPTH, Cskip);
#endif
}

/*********************************************************************
 * @fn       NIB_init()
 *
 * @brief
 *
 *   Initialize attribute values in NIB
 *
 * @param   none
 *
 * @return  none
 */
void NIB_init()
{
#if defined ( AUTO_SOFT_START )
  byte extAddr[Z_EXTADDR_LEN];
  ZMacGetReq( ZMacExtAddr, extAddr );
  _NIB.SequenceNum = extAddr[0];
#else
  _NIB.SequenceNum = 1;
#endif

  _NIB.nwkProtocolVersion = ZB_PROT_VERS;
  _NIB.MaxDepth = MAX_NODE_DEPTH;

#if ( NWK_MODE == NWK_MODE_MESH )
  _NIB.beaconOrder = BEACON_ORDER_NO_BEACONS;
  _NIB.superFrameOrder = BEACON_ORDER_NO_BEACONS;
#endif

   // BROADCAST SETTINGS:
   // *******************
   //   Broadcast Delivery Time
   //     - set to multiples of 100ms
   //     - should be 500ms more than the retry time
   //       -  "retry time" = PassiveAckTimeout * (MaxBroadcastRetries + 1)
   //   Passive Ack Timeout
   //     - set to multiples of 100ms
   _NIB.BroadcastDeliveryTime = zgBcastDeliveryTime;
   _NIB.PassiveAckTimeout     = zgPassiveAckTimeout;
   _NIB.MaxBroadcastRetries   = zgMaxBcastRetires;

   _NIB.ReportConstantCost = 0;
   _NIB.RouteDiscRetries = 0;
   _NIB.SecureAllFrames = USE_NWK_SECURITY;
   _NIB.SecurityLevel = zgSecurityLevel;
   _NIB.SymLink = 0;
   _NIB.CapabilityInfo = ZDO_Config_Node_Descriptor.CapabilityFlags;

   _NIB.TransactionPersistenceTime = zgIndirectMsgTimeout;

   _NIB.RouteDiscoveryTime = 5;
   _NIB.RouteExpiryTime = zgRouteExpiryTime;

   _NIB.nwkDevAddress = INVALID_NODE_ADDR;
   _NIB.nwkLogicalChannel = 0;
   _NIB.nwkCoordAddress = INVALID_NODE_ADDR;
   osal_memset( _NIB.nwkCoordExtAddress, 0, Z_EXTADDR_LEN );
   _NIB.nwkPanId = INVALID_NODE_ADDR;

   osal_cpyExtAddr( _NIB.extendedPANID, zgExtendedPANID );

   _NIB.nwkKeyLoaded = FALSE;
}

/*********************************************************************
 * @fn       nwk_Status()
 *
 * @brief
 *
 *   Status report.
 *
 * @param   statusCode
 * @param   statusValue
 *
 * @return  none
 */
void nwk_Status( uint16 statusCode, uint16 statusValue )
{
#if defined ( LCD_SUPPORTED )
  switch ( statusCode )
  {

#if defined( RTR_NWK )
    case NWK_STATUS_COORD_ADDR:
      //HalLcdWriteString( (char*)ZigbeeCoordStr, HAL_LCD_LINE_1 );
     // HalLcdWriteStringValue( (char*)NetworkIDStr, (uint32)statusValue, 16, HAL_LCD_LINE_2 );
      ClearScreen();
      Print8(HAL_LCD_LINE_1,10,(INT8U*)ZigbeeCoordStr,1);
      Print8(HAL_LCD_LINE_2,10,(INT8U*)NetworkIDStr,1);
      Printn8(HAL_LCD_LINE_3,10,statusValue,1,4);
      BuzzerControl( BUZZER_BLIP );
      break;

    case NWK_STATUS_ROUTER_ADDR:
      //HalLcdWriteStringValue( (char*)RouterStr, (uint32)statusValue, 16, HAL_LCD_LINE_1 );
      ClearScreen();
      Print8(HAL_LCD_LINE_1,10,(INT8U*)RouterStr,1);
      Printn8(HAL_LCD_LINE_1,40,statusValue,1,4);
      break;

    case NWK_STATUS_ORPHAN_RSP:
      if( statusValue == ZSuccess )
      {
        //HalLcdWriteScreen( (char*)OrphanRspStr, (char*)SentStr );
         ClearScreen();
        Print8(HAL_LCD_LINE_1,10,(INT8U*)OrphanRspStr,1);
        Print8(HAL_LCD_LINE_2,10,(INT8U*)SentStr,1);
      }
      else{
      //else
        //HalLcdWriteScreen( (char*)OrphanRspStr, (char*)FailedStr );
       ClearScreen();
       Print8(HAL_LCD_LINE_1,10,(INT8U*)OrphanRspStr,1);
       Print8(HAL_LCD_LINE_2,10,(INT8U*)FailedStr,1);
      }
      break;

    case NWK_ERROR_ASSOC_RSP:
      //HalLcdWriteString( (char*)AssocRspFailStr, HAL_LCD_LINE_1 );
     // HalLcdWriteValue( (uint32)(statusValue), 16, HAL_LCD_LINE_2 );
       ClearScreen();
       Print8(HAL_LCD_LINE_1,10,(INT8U*)AssocRspFailStr,1);
       Printn8(HAL_LCD_LINE_2,10,statusValue,1,4);

      break;
#else
    case NWK_STATUS_ED_ADDR:
            //HalLcdWriteStringValue( (char*)EndDeviceStr, (uint32)statusValue, 16, HAL_LCD_LINE_1 );
        //ClearScreen();
        Print8(HAL_LCD_LINE_1,10,(INT8U*)EndDeviceStr,1);
        Printn8(HAL_LCD_LINE_1,60,statusValue,1,4);
      break;
#endif

    case NWK_STATUS_PARENT_ADDR:
            //HalLcdWriteStringValue( (char*)ParentStr, (uint32)statusValue, 16, HAL_LCD_LINE_2 );

            Print8(HAL_LCD_LINE_2,10,(INT8U*)ParentStr,1);
            Printn8(HAL_LCD_LINE_3,10,statusValue,1,4);
      break;

    case NWK_STATUS_ASSOC_CNF:
     // HalLcdWriteScreen( (char*)AssocCnfStr, (char*)SuccessStr );
       ClearScreen();
      Print8(HAL_LCD_LINE_1,10,(INT8U*)AssocCnfStr,1);
      Print8(HAL_LCD_LINE_2,10,(INT8U*)SuccessStr,1);
      break;

    case NWK_ERROR_ASSOC_CNF_DENIED:
      //HalLcdWriteString((char*)AssocCnfFailStr, HAL_LCD_LINE_1 );
      //HalLcdWriteValue( (uint32)(statusValue), 16, HAL_LCD_LINE_2 );
       ClearScreen();
      Print8(HAL_LCD_LINE_1,10,(INT8U*)AssocCnfFailStr,1);
      Printn8(HAL_LCD_LINE_2,10,statusValue,1,4);
      break;

    case NWK_ERROR_ENERGY_SCAN_FAILED:
     // HalLcdWriteScreen( (char*)EnergyLevelStr, (char*)ScanFailedStr );
       ClearScreen();
       Print8(HAL_LCD_LINE_1,10,(INT8U*)EnergyLevelStr,1);
       Print8(HAL_LCD_LINE_2,10,(INT8U*)ScanFailedStr ,1);
      break;
  }
#endif
}

/*********************************************************************
*********************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -