系統NV區:
初始化nv數據項 osal_nv_item_init()
讀取nv數據項 osal_nv_read()
寫入nv數據項 osal_nv_write()
在使用osal_nv_read()或osal_nv_write()之前必須調用
osal_nv_item_init()。
函數原型:
uint8 osal_nv_item_init( uint16 id, uint16 len, void *buf )
--id: NV項的ID
--len: 項的長度
-- buf: 初始化項的數據,如果沒有設置爲NULL
uint8 osal_nv_read( uint16 id, uint16 ndx, uint16 len, void *buf )
-- id: NV項的ID
-- ndx: 項中的索引
-- len: 項的長度
-- buf: 項的數據
uint8 osal_nv_write( uint16 id, uint16 ndx, uint16 len, void *buf )
-- id: NV項的ID
-- ndx: 項中的索引
-- len: 項的長度
-- buf: 項的數據
0x0000 保留
0x0001-0x0020 OSAL
0x0021-0x0040 NWK
0x0041-0x0060 APS
0x0061-0x0080 Sec
0x0081-0x00A0 ZDO
0x00A1-0x0200 保留
0x0201-0x0FFF APP
0x1000-0xFFFF 保留
系統已定義NV的項:
// osal 的項
ZCD_NV_EXTADDR 0x0001 64位擴展地址
ZCD_NV_BOOTCOUNTER 0x0002 boot計數器
ZCD_NV_STARTUP_OPTION 0x0003 開始的控制選項
(ZCD_STARTOPT_DEFAULT_CONFIG_STATE)
(ZCD_STARTOPT_DEFAULT_NETWORK_STATE)
ZCD_NV_START_DELAY 0x0004 開始延遲時間
// NWK層的項
ZCD_NV_NIB 0x0021
ZCD_NV_DEVICE_LIST 0x0022
ZCD_NV_ADDRMGR 0x0023
ZCD_NV_POLL_RATE 0x0024 輪詢率
ZCD_NV_QUEUED_POLL_RATE 0x0025 隊列輪詢率
ZCD_NV_RESPONSE_POLL_RATE 0x0026 響應輪詢率
ZCD_NV_REJOIN_POLL_RATE 0x0027 重新連接輪詢率
ZCD_NV_DATA_RETRIES 0x0028 傳輸數據重試次數
ZCD_NV_POLL_FAILURE_RETRIES 0x0029 輪詢失敗重試次數
ZCD_NV_STACK_PROFILE 0x002A 使用的profile ID
ZCD_NV_INDIRECT_MSG_TIMEOUT 0x002B 默認間接消息舉手超時
ZCD_NV_ROUTE_EXPIRY_TIME 0x002C 路由的有效期
ZCD_NV_EXTENDED_PAN_ID 0x002D 擴展PAN ID
ZCD_NV_BCAST_RETRIES 0x002E 廣播參數
ZCD_NV_PASSIVE_ACK_TIMEOUT 0x002F 廣播參數
ZCD_NV_BCAST_DELIVERY_TIME 0x0030 廣播參數
ZCD_NV_NWK_MODE 0x0031 網絡模式
ZCD_NV_CONCENTRATOR_ENABLE 0x0032 多對一的value
ZCD_NV_CONCENTRATOR_DISCOVERY 0x0033 多對一的value
ZCD_NV_CONCENTRATOR_RADIUS 0x0034 多對一的value
ZCD_NV_MAX_SOURCE_ROUTE 0x0035 多對一的value
// APS層的項
ZCD_NV_BINDING_TABLE 0x0041 綁定表
ZCD_NV_GROUP_TABLE 0x0042 組表
ZCD_NV_APS_FRAME_RETRIES 0x0043 傳輸失敗允許傳輸的最大次數
ZCD_NV_APS_ACK_WAIT_DURATION 0x0044 這個數被用做輪詢設備
ZCD_NV_APS_ACK_WAIT_MULTIPLIER 0x0045 這個數被用做非輪詢設備
ZCD_NV_BINDING_TIME 0x0046 終端設備綁定時間數
// 安全層的項
ZCD_NV_SECURITY_LEVEL 0x0061 安全等級
ZCD_NV_PRECFGKEY 0x0062 預先配置的安全密鑰
ZCD_NV_PRECFGKEYS_ENABLE 0x0063 密鑰配置爲整個網絡還是協調器
//ZDO層的項
ZCD_NV_USERDESC 0x0081
ZCD_NV_NWKKEY 0x0082 網絡密鑰
ZCD_NV_PANID 0x0083 PAN ID
ZCD_NV_CHANLIST 0x0084 默認的信道列表
ZCD_NV_LEAVE_CTRL 0x0085 控制等級
ZCD_NV_SCAN_DURATION 0x0086 默認開始掃描的期限
ZCD_NV_LOGICAL_TYPE 0x0087 邏輯設備類型
// ZCL 層的項
ZCD_NV_SCENE_TABLE 0x0091
// Non-standard NV item IDs
ZCD_NV_SAPI_ENDPOINT 0x00A1
用戶自定義NV項:
爲用戶保留的NV項目號從 0x0201 --- 0x0FFF
原語操作NV:
1、 初始化 byte NLME_InitNV(
void )
2、 設置默認的NIB,設備表,綁定表 void NLME_SetDefaultNV( void )
3、 從NV中恢復網絡存儲器項 byte NLME_RestoreFromNV( void )
4、 把NIB寫入到NV中 void NLME_UpdateNV(
byte enables )
--NWK_NV_NIB_ENABLE 0x01 保存網絡NIB
--NWK_NV_DEVICELIST_ENABLE 0x02 保存設備列表
--NWK_NV_BINDING_ENABLE 0x04 保存綁定表
--NWK_NV_ADDRMGR_ENABLE 0x08 保存管理表地址