 |
Wirepas SDK
|
|
Go to the documentation of this file.
22 #ifndef APP_LIB_SETTINGS_H_
23 #define APP_LIB_SETTINGS_H_
32 #define APP_LIB_SETTINGS_NAME 0x74ced676
35 #define APP_LIB_SETTINGS_VERSION 0x20d
44 #define APP_LIB_SETTINGS_AES_KEY_NUM_BYTES 16
64 #define CHANNEL_NO_CHANNEL 0
137 typedef struct __attribute__((packed))
141 const uint8_t (*encryption_key_p)
143 const uint8_t (*authentication_key_p)
146 } network_key_pair, management_key_pair;
154 uint8_t apply_flags : 1;
158 uint8_t app_key_management_supported : 1;
162 uint8_t app_key_management_configured : 1;
166 uint8_t revoke_keys : 1;
169 uint8_t reserved : 4;
295 const uint8_t * key_p);
460 const uint8_t * key_p);
497 const uint8_t * key_p);
521 uint16_t * ac_max_value_p);
573 uint16_t ac_max_value);
631 uint16_t * min_value_p, uint16_t * max_value_p);
648 uint16_t * min_value_p, uint16_t * max_value_p);
706 uint8_t * channels_p,
size_t num_bytes);
745 const uint8_t * channels_p,
size_t num_bytes);
799 #define REMOTE_API_CSAP_WRITE_UNICAST 0x1
803 #define REMOTE_API_CSAP_RESPONSE_NORMAL 0
805 #define REMOTE_API_CSAP_RESPONSE_NONE 1
807 #define REMOTE_API_CSAP_RESPONSE_ACCESS_DENIED 0xf8
809 #define REMOTE_API_CSAP_RESPONSE_WRITE_ONLY_ATTRIBUTE 0xf9
811 #define REMOTE_API_CSAP_RESPONSE_INVALID_BROADCAST_REQUEST 0xfa
813 #define REMOTE_API_CSAP_RESPONSE_INVALID_BEGIN 0xfb
815 #define REMOTE_API_CSAP_RESPONSE_NO_SPACE_FOR_RESPONSE 0xfc
817 #define REMOTE_API_CSAP_RESPONSE_INVALID_VALUE 0xfd
819 #define REMOTE_API_CSAP_RESPONSE_INVALID_LENGTH 0xfe
821 #define REMOTE_API_CSAP_RESPONSE_UNKNOWN_REQUEST 0xff
Struct containing the CSAP Read adn Write request and response information. Needed the requests are h...
app_res_e(* app_lib_settings_register_remote_api_csap_write_cb_f)(app_lib_settings_remote_api_csap_write_f cb)
Register a callback function which is to be called when a CSAP Write request is received and it needs...
app_lib_settings_is_valid_network_address_f isValidNetworkAddress
app_res_e(* app_lib_settings_get_reserved_channels_f)(uint8_t *channels_p, size_t num_bytes)
Get reserved channels.
app_res_e(* app_lib_settings_register_remote_api_csap_cancel_cb_f)(app_lib_settings_remote_api_csap_cancel_f cb)
Register a callback function which is to be called when a CSAP Cancel request is received and it need...
app_lib_settings_set_group_query_cb_f registerGroupQuery
app_res_e(* app_lib_settings_set_network_channel_f)(app_lib_settings_net_channel_t channel)
Set network channel.
app_res_e(* app_lib_settings_set_authentication_key_f)(const uint8_t *key_p)
Set authentication key.
uint8_t app_lib_settings_net_channel_t
Channel type definition.
@ APP_LIB_SETTINGS_ROLE_SUBNODE_LE
app_lib_settings_register_remote_api_csap_write_cb_f registerRemoteApiCsapWriteCb
app_res_e(* app_lib_settings_set_reserved_channels_f)(const uint8_t *channels_p, size_t num_bytes)
Set reserved channels.
@ APP_LIB_SETTINGS_ROLE_ADVERTISER
uint8_t response_buffer_len
app_res_e(* app_lib_settings_register_remote_api_csap_update_cb_f)(app_lib_settings_remote_api_csap_update_f cb)
Register a callback function which is to be called when a CSAP Update request is received and it need...
app_lib_settings_register_remote_api_csap_read_cb_f registerRemoteApiCsapReadCb
app_lib_settings_get_feature_lock_key_f getFeatureLockKey
app_lib_settings_get_authentication_key_f getAuthenticationKey
app_res_e(* app_lib_settings_set_node_address_f)(app_addr_t addr)
Set node address.
@ APP_LIB_SETTINGS_ROLE_HEADNODE_LE
app_lib_settings_get_ac_range_f getAcRange
app_res_e(* app_lib_settings_set_offline_scan_f)(uint16_t max_scan)
Set the maximum offline scan interval in seconds.
app_lib_settings_is_valid_node_role_f isValidNodeRole
app_res_e(* app_lib_settings_get_network_address_f)(app_lib_settings_net_addr_t *addr_p)
Get network address.
bool(* app_lib_settings_is_group_cb_f)(app_addr_t group_addr)
Callback used for determining on which multicast groups the device belongs.
void(* app_lib_settings_remote_api_csap_cancel_f)(void)
A callback function type used for providing the Remote API Cancel request information to application ...
app_res_e(* app_lib_settings_get_ac_range_f)(uint16_t *ac_min_value_p, uint16_t *ac_max_value_p)
Get the access cycle range.
app_res_e(* app_lib_settings_get_node_role_f)(app_lib_settings_role_t *role_p)
bool(* app_lib_settings_is_valid_network_channel_f)(uint8_t channel)
Check that the network channel is valid.
app_lib_settings_get_offline_scan_f getOfflineScan
app_lib_settings_set_encryption_key_f setEncryptionKey
app_res_e(* app_lib_settings_get_node_address_f)(app_addr_t *addr_p)
Get node address.
uint32_t app_lib_settings_net_addr_t
Network address type definition.
app_res_e(* app_lib_settings_get_network_channel_limits_f)(uint16_t *min_value_p, uint16_t *max_value_p)
Get network channel range.
app_lib_settings_set_node_role_f setNodeRole
app_res_e(* app_lib_settings_get_feature_lock_key_f)(uint8_t *key_p)
Check if feature lock key is set.
const uint8_t * request_buffer
app_lib_settings_register_remote_api_csap_cancel_cb_f registerRemoteApiCsapCancelCb
app_res_e(* app_lib_settings_get_offline_scan_f)(uint16_t *max_scan_p)
Get the maximum offline scan interval in seconds.
@ APP_LIB_SETTINGS_REMOTE_API_RES_OK
app_res_e(* app_lib_settings_reset_all_f)(void)
Reset all settings to default values.
app_res_e(* app_lib_settings_get_ac_range_limits_f)(uint16_t *min_value_p, uint16_t *max_value_p)
Get access cycle range limits.
bool(* app_lib_settings_is_valid_node_role_f)(app_lib_settings_role_t role)
Check that the node role is valid.
app_res_e(* app_lib_settings_set_feature_lock_key_f)(const uint8_t *key_p)
Set feature lock key.
@ APP_LIB_SETTINGS_REMOTE_API_RES_NONE
uint8_t network_key_pair_seq
app_lib_settings_get_network_channel_f getNetworkChannel
app_lib_settings_set_network_address_f setNetworkAddress
app_lib_settings_get_reserved_channels_f getReservedChannels
app_lib_settings_get_ac_range_limits_f getAcRangeLimits
app_res_e(* app_lib_settings_set_feature_lock_bits_f)(uint32_t bits)
Set feature lock bits.
app_res_e(* app_lib_settings_get_network_channel_f)(app_lib_settings_net_channel_t *channel_p)
Get network channel.
app_lib_settings_remote_api_res_e(* app_lib_settings_remote_api_csap_update_f)(void)
A callback function type used for providing the Remote API Update request information to application ...
app_lib_settings_register_remote_api_csap_update_cb_f registerRemoteApiCsapUpdateCb
app_res_e(* app_lib_settings_set_encryption_key_f)(const uint8_t *key_p)
Set encryption key.
app_res_e(* app_lib_settings_key_management_config_f)(const app_lib_settings_key_management_configuration_t *key_mgmt_cfg_p)
Key management configuration using the settings API.
app_lib_settings_get_node_address_f getNodeAddress
uint8_t management_key_pair_seq
app_lib_settings_set_node_address_f setNodeAddress
app_lib_settings_get_feature_lock_bits_f getFeatureLockBits
app_res_e(* app_lib_settings_set_ac_range_f)(uint16_t ac_min_value, uint16_t ac_max_value)
Set range for access cycle.
app_res_e(* app_lib_settings_set_network_address_f)(app_lib_settings_net_addr_t addr)
Set network address.
@ APP_LIB_SETTINGS_ROLE_SINK_LL
app_lib_settings_get_encryption_key_f getEncryptionKey
#define APP_LIB_SETTINGS_AES_KEY_NUM_BYTES
AES key size in bytes.
@ APP_LIB_SETTINGS_ROLE_AUTOROLE_LE
app_lib_settings_remote_api_res_e
app_lib_settings_set_network_channel_f setNetworkChannel
app_res_e(* app_lib_settings_get_encryption_key_f)(uint8_t *key_p)
Check if encryption key is set.
Structure to hold key management configuration information for the settings API.
@ APP_LIB_SETTINGS_ROLE_SINK_LE
@ APP_LIB_SETTINGS_ROLE_SUBNODE_LL
uint8_t(* app_lib_settings_remote_api_csap_read_f)(uint16_t attr_id, app_lib_settings_remote_api_csap_data_t *data)
A callback function type used for providing the Remote API CSAP Read request information to applicati...
app_res_e(* app_lib_settings_set_node_role_f)(app_lib_settings_role_t role)
Set node role.
bool(* app_lib_settings_is_valid_network_address_f)(app_lib_settings_net_addr_t addr)
Check that the network address is valid.
app_lib_settings_is_valid_node_address_f isValidNodeAddress
app_res_e(* app_lib_settings_set_group_query_cb_f)(app_lib_settings_is_group_cb_f cb)
Set the callback function for multicat groups.
app_lib_settings_set_feature_lock_key_f setFeatureLockKey
uint8_t app_lib_settings_role_t
Node role type.
app_lib_settings_get_network_address_f getNetworkAddress
app_res_e(* app_lib_settings_register_remote_api_csap_read_cb_f)(app_lib_settings_remote_api_csap_read_f cb)
Register a callback function which is to be called when a CSAP Read request is received and it needs ...
app_lib_settings_set_ac_range_f setAcRange
app_lib_settings_get_network_channel_limits_f getNetworkChannelLimits
app_lib_settings_set_reserved_channels_f setReservedChannels
app_lib_settings_key_management_config_f keyManagementConfiguration
app_res_e(* app_lib_settings_get_feature_lock_bits_f)(uint32_t *bits_p)
Get feature lock bits.
bool(* app_lib_settings_is_valid_node_address_f)(app_addr_t addr)
Check that the node address is valid.
uint8_t(* app_lib_settings_remote_api_csap_write_f)(uint16_t attr_id, uint32_t flags, app_lib_settings_remote_api_csap_data_t *data)
A callback function type used for providing the Remote API CSAP Write request information to applicat...
app_lib_settings_reset_all_f resetAll
@ APP_LIB_SETTINGS_REMOTE_API_RES_OK_RESET
app_lib_settings_set_feature_lock_bits_f setFeatureLockBits
app_lib_settings_get_node_role_f getNodeRole
app_lib_settings_is_valid_network_channel_f isValidNetworkChannel
uint8_t * response_buffer
@ APP_LIB_SETTINGS_ROLE_HEADNODE_LL
app_res_e(* app_lib_settings_get_authentication_key_f)(uint8_t *key_p)
Check if authentication key is set.
app_lib_settings_set_authentication_key_f setAuthenticationKey
app_lib_settings_set_offline_scan_f setOfflineScan
@ APP_LIB_SETTINGS_ROLE_AUTOROLE_LL
uint8_t request_buffer_len