Trident IoT Z-Wave SDK
 
Loading...
Searching...
No Matches
CC_Configuration.h
Go to the documentation of this file.
1 /***************************************************************************/
19#ifndef ZAF_COMMANDCLASSES_CONFIGURATION_CC_CONFIGURATION_H_
20#define ZAF_COMMANDCLASSES_CONFIGURATION_CC_CONFIGURATION_H_
21
22#include <stddef.h>
23#include <stdint.h>
24#include <stdbool.h>
25#include <ZAF_types.h>
26#include <ZW_classcmd.h>
27#include <zpal_nvm.h>
28
47
51typedef enum
52{
53 CC_CONFIG_PARAMETER_FORMAT_SIGNED_INTEGER = CONFIGURATION_PROPERTIES_REPORT_FORMAT_SIGNED_INTEGER_V3,
54 CC_CONFIG_PARAMETER_FORMAT_UNSIGNED_INTEGER = CONFIGURATION_PROPERTIES_REPORT_FORMAT_UNSIGNED_INTEGER_V3,
55 CC_CONFIG_PARAMETER_FORMAT_ENUMERATED = CONFIGURATION_PROPERTIES_REPORT_FORMAT_ENUMERATED_V3,
56 CC_CONFIG_PARAMETER_FORMAT_BIT_FIELD = CONFIGURATION_PROPERTIES_REPORT_FORMAT_BIT_FIELD_V3,
57}
59
63typedef union
64{
65 // Unsigned integers
66 uint32_t as_uint32;
67 uint16_t as_uint16;
68 uint8_t as_uint8;
69 // Signed integers
70 int32_t as_int32;
71 int16_t as_int16;
72 int8_t as_int8;
73 // Array representation
74 uint8_t as_uint8_array[4];
75}
77
92
94
95typedef struct {
96 const uint16_t number;
97 uint16_t next_number;
100 bool (*migration_handler)(cc_config_parameter_buffer_t* parameter_buffer);
102
107
118
127
132typedef struct {
133 bool (*write_handler)(zpal_nvm_object_key_t file_id, uint8_t const* data, size_t size);
134 bool (*read_handler)(zpal_nvm_object_key_t file_id, uint8_t *data, size_t size);
136
141
152 uint16_t number,
154
162bool
163cc_configuration_get(uint16_t parameter_number, cc_config_parameter_buffer_t* parameter_buffer);
164
170void
172
178void
180
188bool
190 cc_config_parameter_value_t * pNewValue);
195#endif /* ZAF_COMMANDCLASSES_CONFIGURATION_CC_CONFIGURATION_H_ */
bool cc_configuration_limit_value(cc_config_parameter_buffer_t const *parameter_buffer, cc_config_parameter_value_t *pNewValue)
cc_config_parameter_format_t
Definition CC_Configuration.h:52
bool cc_configuration_get(uint16_t parameter_number, cc_config_parameter_buffer_t *parameter_buffer)
bool CC_Configuration_SetValue(cc_configuration_handle_t handle, uint16_t number, cc_config_parameter_value_t value)
void * cc_configuration_handle_t
Definition CC_Configuration.h:140
void cc_configuration_set_interface(cc_configuration_io_interface_t const *interface)
cc_config_parameter_size_t
Definition CC_Configuration.h:40
void cc_configuration_set_default_configuration(cc_configuration_t const *configuration)
cc_config_configuration_set_return_value
Definition CC_Configuration.h:112
struct _cc_config_parameter_attributes_t cc_config_parameter_attributes_t
@ CC_CONFIG_PARAMETER_FORMAT_UNSIGNED_INTEGER
CC_CONFIG_PARAMETER_FORMAT_UNSIGNED_INTEGER.
Definition CC_Configuration.h:54
@ CC_CONFIG_PARAMETER_FORMAT_BIT_FIELD
CC_CONFIG_PARAMETER_FORMAT_BIT_FIELD.
Definition CC_Configuration.h:56
@ CC_CONFIG_PARAMETER_FORMAT_ENUMERATED
CC_CONFIG_PARAMETER_FORMAT_ENUMERATED.
Definition CC_Configuration.h:55
@ CC_CONFIG_PARAMETER_FORMAT_SIGNED_INTEGER
CC_CONFIG_PARAMETER_FORMAT_SIGNED_INTEGER.
Definition CC_Configuration.h:53
@ CC_CONFIG_PARAMETER_SIZE_8_BIT
CC_CONFIG_PARAMETER_SIZE_8_BIT.
Definition CC_Configuration.h:41
@ CC_CONFIG_PARAMETER_SIZE_NOT_SPECIFIED
CC_CONFIG_PARAMETER_SIZE_NOT_SPECIFIED.
Definition CC_Configuration.h:44
@ CC_CONFIG_PARAMETER_SIZE_32_BIT
CC_CONFIG_PARAMETER_SIZE_32_BIT.
Definition CC_Configuration.h:43
@ CC_CONFIG_PARAMETER_SIZE_16_BIT
CC_CONFIG_PARAMETER_SIZE_16_BIT.
Definition CC_Configuration.h:42
@ CC_CONFIG_RETURN_CODE_OK
Definition CC_Configuration.h:115
@ CC_CONFIG_RETURN_CODE_IO_FAIL
Definition CC_Configuration.h:114
@ CC_CONFIG_RETURN_CODE_NOT_SUPPORTED
Definition CC_Configuration.h:113
uint32_t zpal_nvm_object_key_t
Data id type. Only the 20 least significant bits are used.
Definition zpal_nvm.h:60
Definition CC_Configuration.h:78
const cc_config_parameter_value_t min_value
Minimum value.
Definition CC_Configuration.h:81
const cc_config_parameter_format_t format
Type of the parameter, e.g.: signed, unsigned.
Definition CC_Configuration.h:84
char const *const name
Human readable name.
Definition CC_Configuration.h:79
char const *const info
Human readable info.
Definition CC_Configuration.h:80
const cc_config_parameter_value_t max_value
Maximum value.
Definition CC_Configuration.h:82
bool advanced
Definition CC_Configuration.h:89
const struct _cc_config_parameter_attributes_t::@0 flags
cc_config_parameter_size_t size
Size of the parameter in bytes.
Definition CC_Configuration.h:83
bool altering_capabilities
Definition CC_Configuration.h:87
const cc_config_parameter_value_t default_value
Default data.
Definition CC_Configuration.h:85
bool read_only
Definition CC_Configuration.h:88
Definition CC_Configuration.h:103
cc_config_parameter_value_t data_buffer
Definition CC_Configuration.h:105
const cc_config_parameter_metadata_t * metadata
Definition CC_Configuration.h:104
Definition CC_Configuration.h:95
const uint16_t number
Unique id number of the parameter.
Definition CC_Configuration.h:96
cc_config_parameter_attributes_t attributes
Attributes of the parameters.
Definition CC_Configuration.h:99
uint16_t next_number
Next parameter number.
Definition CC_Configuration.h:97
const zpal_nvm_object_key_t file_id
ID of the configuration file.
Definition CC_Configuration.h:98
Definition CC_Configuration.h:132
Definition CC_Configuration.h:123
uint16_t numberOfParameters
Definition CC_Configuration.h:124
const cc_config_parameter_metadata_t * parameters
Definition CC_Configuration.h:125
Definition CC_Configuration.h:64
uint8_t as_uint8
Definition CC_Configuration.h:68
int16_t as_int16
Definition CC_Configuration.h:71
int8_t as_int8
Definition CC_Configuration.h:72
uint32_t as_uint32
Definition CC_Configuration.h:66
uint16_t as_uint16
Definition CC_Configuration.h:67
int32_t as_int32
Definition CC_Configuration.h:70