📄 nwk_globals.c
字号:
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 + -