Data Structures | |
struct | zb_production_config_hdr_t |
struct | zb_production_config_s |
Macros | |
#define | ZB_INVALID_TX_POWER_VALUE 0x7F |
#define | ZB_PRODUCTION_CONFIG_MAX_SIZE 128 |
Typedefs | |
typedef enum zb_nvram_dataset_types_e | zb_nvram_dataset_types_t |
typedef void(* | zb_nvram_read_app_data_t )(zb_uint8_t page, zb_uint32_t pos, zb_uint16_t payload_length) |
typedef zb_ret_t(* | zb_nvram_write_app_data_t )(zb_uint8_t page, zb_uint32_t pos) |
typedef zb_uint16_t(* | zb_nvram_get_app_data_size_t )(void) |
typedef struct zb_production_config_hdr_t | zb_production_config_hdr_t |
typedef struct zb_production_config_s | zb_production_config_t |
Enumerations | |
enum | zb_nvram_dataset_types_e { ZB_NVRAM_RESERVED = 0, ZB_NVRAM_COMMON_DATA = 1, ZB_NVRAM_HA_DATA = 2, ZB_NVRAM_ZCL_REPORTING_DATA = 3, ZB_NVRAM_APS_SECURE_DATA_GAP = 4, ZB_NVRAM_APS_BINDING_DATA_GAP = 5, ZB_NVRAM_HA_POLL_CONTROL_DATA = 6, ZB_IB_COUNTERS = 7, ZB_NVRAM_DATASET_GRPW_DATA = 8, ZB_NVRAM_APP_DATA1 = 9, ZB_NVRAM_APP_DATA2 = 10, ZB_NVRAM_ADDR_MAP = 11, ZB_NVRAM_NEIGHBOUR_TBL = 12, ZB_NVRAM_INSTALLCODES = 13, ZB_NVRAM_APS_SECURE_DATA = 14, ZB_NVRAM_APS_BINDING_DATA = 15, ZB_NVRAM_DATASET_GP_PRPOXYT = 16, ZB_NVRAM_DATASET_GP_SINKT = 17, ZB_NVRAM_DATASET_GP_CLUSTER = 18, ZB_NVRAM_APS_GROUPS_DATA = 19, ZB_NVRAM_DATASET_NUMBER, ZB_NVRAM_DATA_SET_TYPE_PAGE_HDR = 0x1e } |
Functions | |
void | zb_nvram_register_app1_read_cb (zb_nvram_read_app_data_t cb) |
void | zb_nvram_register_app2_read_cb (zb_nvram_read_app_data_t cb) |
void | zb_nvram_register_app1_write_cb (zb_nvram_write_app_data_t wcb, zb_nvram_get_app_data_size_t gcb) |
void | zb_nvram_register_app2_write_cb (zb_nvram_write_app_data_t wcb, zb_nvram_get_app_data_size_t gcb) |
void | zb_nvram_write_dataset (zb_nvram_dataset_types_t t) |
zb_void_t | zb_set_nvram_erase_at_start (zb_bool_t erase) |
zb_void_t | zb_set_nvram_erase_at_reset (zb_bool_t erase) |
void | zb_nvram_transaction_start (void) |
void | zb_nvram_transaction_commit (void) |
There are two predefined dataset IDs for a user application: ZB_NVRAM_APP_DATA1 and ZB_NVRAM_APP_DATA2. It's up to the application to decide what data to store in NVRAM. However, the total data size (all datasets) stored in the NVRAM storage should be less than one virtual page size. To start using NVRAM in the application, the following steps should be done in the application:
typedef enum zb_nvram_dataset_types_e zb_nvram_dataset_types_t |
Enum All NVRAM dataset types
ZB_NVRAM_DATASET_NUMBER - count of dataset types. Not a real dataset type!
typedef zb_uint16_t(* zb_nvram_get_app_data_size_t)(void) |
Returns size of application datasets
typedef void(* zb_nvram_read_app_data_t)(zb_uint8_t page, zb_uint32_t pos, zb_uint16_t payload_length) |
Declares application callback used for reading application datasets from NVRAM.
page | - page in NVRAM from data will be read |
pos | - offset in page |
payload_length | - number of bytes to read |
typedef zb_ret_t(* zb_nvram_write_app_data_t)(zb_uint8_t page, zb_uint32_t pos) |
Declares application callback used for writing application datasets into NVRAM.
page | - page in NVRAM where data will be stotred |
pos | - offset in page |
Enum All NVRAM dataset types
ZB_NVRAM_DATASET_NUMBER - count of dataset types. Not a real dataset type!
void zb_nvram_register_app1_read_cb | ( | zb_nvram_read_app_data_t | cb | ) |
Register application callback for reading ZB_NVRAM_APP_DATA1 from NVRAM
cb | - callback that will be called upon reading dataset |
void zb_nvram_register_app1_write_cb | ( | zb_nvram_write_app_data_t | wcb, |
zb_nvram_get_app_data_size_t | gcb | ||
) |
Register application callback for writing ZB_NVRAM_APP_DATA1 to NVRAM
wcb | - callback that will be called upon writing |
gcb | - this callback will be called upon writing to determine dataset size |
void zb_nvram_register_app2_read_cb | ( | zb_nvram_read_app_data_t | cb | ) |
Register application callback for reading ZB_NVRAM_APP_DATA2 from NVRAM
cb | - callback that will be called upon reading dataset |
void zb_nvram_register_app2_write_cb | ( | zb_nvram_write_app_data_t | wcb, |
zb_nvram_get_app_data_size_t | gcb | ||
) |
Register application callback for writing ZB_NVRAM_APP_DATA2 to NVRAM
wcb | - callback that will be called upon writing |
gcb | - this callback will be called upon writing to determine dataset size |
void zb_nvram_transaction_commit | ( | void | ) |
Commit NVRAM transaction.
Finish writing multiple datasets at once. A transaction must started by calling zb_nvram_transaction_start().
void zb_nvram_transaction_start | ( | void | ) |
Start NVRAM transaction.
Start writing multiple datasets at once. A transaction must finished by calling zb_nvram_transaction_commit().
void zb_nvram_write_dataset | ( | zb_nvram_dataset_types_t | t | ) |
Write specified dataset into NVRAM
t | - dataset index, see zb_nvram_dataset_types_e |
Example #1:
Example #2 (Using application callbacks):
Define user dataset type:
Callback prototypes:
Register application callbacks:
Callback implementation and usage:
See CN-NSA-TC-02