NVDSNVDS 是一个key-value存储库,在NVDS 中 key 用tag 标识,用户可以通过tag 去存储数据,同样可以通过tag 去检索数据。 SDK 默认使用最后16K的前12K 作为存储空间。
enum NVDS_TAGS { /// SYSTEM reserved (1-99) NVDS_TAG_BD_ADDRESS = 1, NVDS_TAG_DEVICE_NAME = 2, NVDS_TAG_SCA = 3, NVDS_TAG_XTAL32M_CTUNE = 4, NVDS_TAG_XTAL32K_CTUNE = 5, NVDS_TAG_FREQ_OFFSET = 6, NVDS_TAG_DCDC_ENABLE = 7, NVDS_TAG_PRE_WAKEUP_TIME = 8, NVDS_TAG_SMP_BOND_INFO = 9, /// User define begin NVDS_TAG_USER_BEGIN = 100, /// Tag value MUST be less than or equal to 254 NVDS_TAG_MAX = 254, } 具体使用实例如下: #include "om_driver.h" #include "nvds.h" #include "nvds_tags.h" #define NVDS_TAG_USER_1 101 #define NVDS_TAG_USER_2 102 void example_nvds(void) { nvds_tag_len_t rd_len; uint8_t wr_data[] = {0x11, 0x22, 0x33, 0x44, 0x55, 0x66}; uint8_t rd_data[10]; // sdk 默认已经初始化 // nvds_init(0); // put tags nvds_put((nvds_tag_id_t)NVDS_TAG_USER_1, 2, wr_data); nvds_put((nvds_tag_id_t)NVDS_TAG_USER_2, 3, wr_data); // get tags nvds_get((nvds_tag_id_t)NVDS_TAG_USER_1, &rd_len, rd_data); if (memcmp(rd_data, wr_data, 2) != 0) { /* error handle */ OM_LOG_DEBUG("failed to put and get data\n"); } else { OM_LOG_DEBUG("sucessed\n"); } // show all tags nvds_dump(om_printf); // delete tags nvds_del((nvds_tag_id_t)NVDS_TAG_USER_1); nvds_dump(om_printf); nvds_del((nvds_tag_id_t)NVDS_TAG_USER_2); nvds_dump(om_printf); } |