请问:
uint8_t zclport_readNV(uint16_t id, uint16_t subId, uint16_t ndx, uint16_t len,void *buf)
中的subId – NV ID如何理解?
uint8 osal_nv_read( uint16 id, uint16 offset, uint16 len, void *buf );
这两者之间的id,分配规则,App中是独立的?还是延续
// NV Items Reserved for applications (user applications)
// 0x0401 ?0x0FFF
谢谢
Susan Yang:
在ZComDef.h 中定义了NV的ID , ID 都是协议栈中规定好的
// OSAL NV item IDs#define ZCD_NV_EXTADDR 0x0001#define ZCD_NV_BOOTCOUNTER 0x0002#define ZCD_NV_STARTUP_OPTION 0x0003#define ZCD_NV_START_DELAY 0x0004
// NWK Layer NV item IDs#define ZCD_NV_NIB 0x0021#define ZCD_NV_DEVICE_LIST 0x0022#define ZCD_NV_ADDRMGR 0x0023#define ZCD_NV_POLL_RATE 0x0024#define ZCD_NV_QUEUED_POLL_RATE 0x0025#define ZCD_NV_RESPONSE_POLL_RATE 0x0026#define ZCD_NV_REJOIN_POLL_RATE 0x0027#define ZCD_NV_DATA_RETRIES 0x0028#define ZCD_NV_POLL_FAILURE_RETRIES 0x0029#define ZCD_NV_STACK_PROFILE 0x002A#define ZCD_NV_INDIRECT_MSG_TIMEOUT 0x002B#define ZCD_NV_ROUTE_EXPIRY_TIME 0x002C#define ZCD_NV_EXTENDED_PAN_ID 0x002D#define ZCD_NV_BCAST_RETRIES 0x002E#define ZCD_NV_PASSIVE_ACK_TIMEOUT 0x002F#define ZCD_NV_BCAST_DELIVERY_TIME 0x0030#define ZCD_NV_NWK_MODE 0x0031#define ZCD_NV_CONCENTRATOR_ENABLE 0x0032#define ZCD_NV_CONCENTRATOR_DISCOVERY 0x0033#define ZCD_NV_CONCENTRATOR_RADIUS 0x0034#define ZCD_NV_CONCENTRATOR_RC 0x0036#define ZCD_NV_NWK_MGR_MODE 0x0037
// APS Layer NV item IDs#define ZCD_NV_BINDING_TABLE 0x0041#define ZCD_NV_GROUP_TABLE 0x0042#define ZCD_NV_APS_FRAME_RETRIES 0x0043#define ZCD_NV_APS_ACK_WAIT_DURATION 0x0044#define ZCD_NV_APS_ACK_WAIT_MULTIPLIER 0x0045#define ZCD_NV_BINDING_TIME 0x0046#define ZCD_NV_APS_USE_EXT_PANID 0x0047#define ZCD_NV_APS_USE_INSECURE_JOIN 0x0048#define ZCD_NV_APSF_WINDOW_SIZE 0x0049 // Window size for fregmentation#define ZCD_NV_APSF_INTERFRAME_DELAY 0x004A // The delay between tx blocks when using fragmentaition#define ZCD_NV_APS_NONMEMBER_RADIUS 0x004B // Multicast non_member radius#define ZCD_NV_APS_LINK_KEY_TABLE 0x004C
// Security NV Item IDs#define ZCD_NV_SECURITY_LEVEL 0x0061#define ZCD_NV_PRECFGKEY 0x0062#define ZCD_NV_PRECFGKEYS_ENABLE 0x0063#define ZCD_NV_SECURITY_MODE 0x0064#define ZCD_NV_SECURE_PERMIT_JOIN 0x0065#define ZCD_NV_lOCAL_CERTIFICATE 0x0069#define ZCD_NV_STATIC_PRIVATE_KEY 0x006a#define ZCD_NV_CA_PUBLIC_KEY 0x006b#define ZCD_NV_STATIC_PUBLIC_KEY 0x006c#define ZCD_NV_USE_DEFAULT_TCLK 0x006d#define ZCD_NV_TRUSTCENTER_ADDR 0x006e#define ZCD_NV_RNG_COUNTER 0x006f#define ZCD_NV_RANDOM_SEED 0x0070
// ZDO NV Item IDs#define ZCD_NV_USERDESC 0x0081#define ZCD_NV_NWKKEY 0x0082#define ZCD_NV_PANID 0x0083#define ZCD_NV_CHANLIST 0x0084#define ZCD_NV_LEAVE_CTRL 0x0085#define ZCD_NV_SCAN_DURATION 0x0086#define ZCD_NV_LOGICAL_TYPE 0x0087 #define ZCD_NV_ZDO_DIRECT_CB 0x008F
// ZCL NV item IDs#define ZCD_NV_SCENE_TABLE 0x0091
// Non-standard NV item IDs#define ZCD_NV_SAPI_ENDPOINT 0x00A1
// NV Items Reserved for Trust Center Link Key Table entries// 0x0101 – 0x01FF#define ZCD_NV_TCLK_TABLE_START 0x0101 // NV Items Reserved for applications (user applications)// 0x0201 – 0x0FFF
xin dong:
回复 Susan Yang:
我想问的是:
uint8_t zclport_readNV(uint16_t id, uint16_t subId, uint16_t ndx, uint16_t len,void *buf)
黄色标记的 subid?
void zclGeneral_ScenesInit(void){ uint16_t x;
for(x = 0; x < ZCL_GEN_MAX_SCENES; x++) { zclport_initializeNVItem(zclSceneNVID, x, sizeof(zclGenSceneNVItem_t), NULL); }}
此处应用中的zclSceneNVID 为 0X0001,这是为什么?
其次subid 为 x ?