![]() |
Wirepas SDK
|
The Settings library provides access to node settings, which are stored in nonvolatile memory. When a node starts up it automatically uses these stored settings.
Settings such as node role, unique node address, network address and channel, encryption and authentication keys as well performance-related settings such as access cycle limits can be stored and recalled. Also see the State library wms_state.h for starting and stopping the stack.
Library services are accessed via lib_settings handle.
Definition in file wms_settings.h.
Go to the source code of this file.
Typedefs | |
| typedef uint32_t | app_lib_settings_net_addr_t |
| Network address type definition. More... | |
| typedef uint8_t | app_lib_settings_net_channel_t |
| Channel type definition. More... | |
| typedef uint8_t | app_lib_settings_role_t |
| Node role type. More... | |
| typedef bool(* | app_lib_settings_is_group_cb_f) (app_addr_t group_addr) |
| Callback used for determining on which multicast groups the device belongs. More... | |
| typedef app_res_e(* | app_lib_settings_reset_all_f) (void) |
| Reset all settings to default values. More... | |
| typedef app_res_e(* | app_lib_settings_get_feature_lock_bits_f) (uint32_t *bits_p) |
| Get feature lock bits. More... | |
| typedef app_res_e(* | app_lib_settings_set_feature_lock_bits_f) (uint32_t bits) |
| Set feature lock bits. More... | |
| typedef app_res_e(* | app_lib_settings_get_feature_lock_key_f) (uint8_t *key_p) |
| Check if feature lock key is set. More... | |
| typedef app_res_e(* | app_lib_settings_set_feature_lock_key_f) (const uint8_t *key_p) |
| Set feature lock key. More... | |
| typedef app_res_e(* | app_lib_settings_get_node_address_f) (app_addr_t *addr_p) |
| Get node address. More... | |
| typedef app_res_e(* | app_lib_settings_set_node_address_f) (app_addr_t addr) |
| Set node address. More... | |
| typedef app_res_e(* | app_lib_settings_get_network_address_f) (app_lib_settings_net_addr_t *addr_p) |
| Get network address. More... | |
| typedef app_res_e(* | app_lib_settings_set_network_address_f) (app_lib_settings_net_addr_t addr) |
| Set network address. More... | |
| typedef app_res_e(* | app_lib_settings_get_network_channel_f) (app_lib_settings_net_channel_t *channel_p) |
| Get network channel. More... | |
| typedef app_res_e(* | app_lib_settings_set_network_channel_f) (app_lib_settings_net_channel_t channel) |
| Set network channel. More... | |
| typedef app_res_e(* | app_lib_settings_get_node_role_f) (app_lib_settings_role_t *role_p) |
| typedef app_res_e(* | app_lib_settings_set_node_role_f) (app_lib_settings_role_t role) |
| Set node role. More... | |
| typedef app_res_e(* | app_lib_settings_get_authentication_key_f) (uint8_t *key_p) |
| Check if the authentication key is set and read the key value. More... | |
| typedef app_res_e(* | app_lib_settings_set_authentication_key_f) (const uint8_t *key_p) |
| Set authentication key. More... | |
| typedef app_res_e(* | app_lib_settings_get_encryption_key_f) (uint8_t *key_p) |
| Check if the encryption key is set and read the key value. More... | |
| typedef app_res_e(* | app_lib_settings_set_encryption_key_f) (const uint8_t *key_p) |
| Set encryption key. More... | |
| typedef 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. More... | |
| typedef 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. More... | |
| typedef app_res_e(* | app_lib_settings_get_offline_scan_f) (uint16_t *max_scan_p) |
| Get the maximum offline scan interval in seconds. More... | |
| typedef app_res_e(* | app_lib_settings_set_offline_scan_f) (uint16_t max_scan) |
| Set the maximum offline scan interval in seconds. More... | |
| typedef 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. More... | |
| typedef 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. More... | |
| typedef 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. More... | |
| typedef app_res_e(* | app_lib_settings_get_reserved_channels_f) (uint8_t *channels_p, size_t num_bytes) |
| Get reserved channels. More... | |
| typedef app_res_e(* | app_lib_settings_set_reserved_channels_f) (const uint8_t *channels_p, size_t num_bytes) |
| Set reserved channels. More... | |
| typedef bool(* | app_lib_settings_is_valid_network_address_f) (app_lib_settings_net_addr_t addr) |
| Check that the network address is valid. More... | |
| typedef bool(* | app_lib_settings_is_valid_network_channel_f) (uint8_t channel) |
| Check that the network channel is valid. More... | |
| typedef bool(* | app_lib_settings_is_valid_node_address_f) (app_addr_t addr) |
| Check that the node address is valid. More... | |
| typedef bool(* | app_lib_settings_is_valid_node_role_f) (app_lib_settings_role_t role) |
| Check that the node role is valid. More... | |
| typedef 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. More... | |
| typedef 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 application side and the response information back to Remote API on stack side. Note that the data can be cached into a temporary location until a call of the callback registered with lib_settings->registerRemoteApiCsapUpdateCb is received. This may be used to maintain data integrity if multiple CSAP Write attribute ID values has to come in action at the same time. More... | |
| typedef 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 to be handled on application side. More... | |
| typedef 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 application side and the response information back to Remote API on stack side. More... | |
| typedef 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 to be handled on application side. More... | |
| typedef 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 side. There is no need to respond the Update request on application side, thus no function arguments. Application may (optionally) cache the data received from CSAP Write Requests on application side and put them into action at the same time once this callback is called. More... | |
| typedef 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 needs to be handled on application side. More... | |
| typedef 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 side. In case the application has cached the data received from CSAP Write Requests, the cached data shall be cleared in a call to this function. .There is no need to respond the Cancel request on application side, thus no function arguments. More... | |
| typedef 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 needs to be handled on application side. More... | |
Data Structures | |
| struct | app_lib_settings_key_management_configuration_t |
| Structure to hold key management configuration information for the settings API. More... | |
| struct | app_lib_settings_remote_api_csap_data_t |
| Struct containing the CSAP Read adn Write request and response information. Needed the requests are handled on application side. More... | |
| struct | app_lib_settings_t |
| Settings library API. More... | |
| struct | app_lib_settings_key_management_configuration_t.network_key_pair |
| struct | app_lib_settings_key_management_configuration_t.management_key_pair |
| struct | app_lib_settings_key_management_configuration_t.flags |
Enumerations | |
| enum | app_lib_settings_role_e { APP_LIB_SETTINGS_ROLE_SINK_LE = 0x00, APP_LIB_SETTINGS_ROLE_SINK_LL = 0x10, APP_LIB_SETTINGS_ROLE_HEADNODE_LE = 0x01, APP_LIB_SETTINGS_ROLE_HEADNODE_LL = 0x11, APP_LIB_SETTINGS_ROLE_SUBNODE_LE = 0x02, APP_LIB_SETTINGS_ROLE_SUBNODE_LL = 0x12, APP_LIB_SETTINGS_ROLE_AUTOROLE_LE = 0x42, APP_LIB_SETTINGS_ROLE_AUTOROLE_LL = 0x52, APP_LIB_SETTINGS_ROLE_ADVERTISER = 0x04 } |
| enum | app_lib_settings_remote_api_res_e { APP_LIB_SETTINGS_REMOTE_API_RES_NONE = 0, APP_LIB_SETTINGS_REMOTE_API_RES_OK = 1, APP_LIB_SETTINGS_REMOTE_API_RES_OK_RESET = 2 } |
Macros | |
| #define | APP_LIB_SETTINGS_NAME 0x74ced676 |
| Library symbolic name. More... | |
| #define | APP_LIB_SETTINGS_VERSION 0x20d |
| Maximum supported library version. More... | |
| #define | APP_LIB_SETTINGS_AES_KEY_NUM_BYTES 16 |
| AES key size in bytes. More... | |
| #define | APP_LIB_SETTINGS_LL_ROLE_BIT 0x10 |
| LL role bit. More... | |
| #define | CHANNEL_NO_CHANNEL 0 |
| Reserved value for definition of 'no channel' for app_lib_settings_net_channel_t. More... | |
| #define | REMOTE_API_CSAP_WRITE_UNICAST 0x1 |
| #define | REMOTE_API_CSAP_RESPONSE_NORMAL 0 |
| #define | REMOTE_API_CSAP_RESPONSE_NONE 1 |
| #define | REMOTE_API_CSAP_RESPONSE_ACCESS_DENIED 0xf8 |
| #define | REMOTE_API_CSAP_RESPONSE_WRITE_ONLY_ATTRIBUTE 0xf9 |
| #define | REMOTE_API_CSAP_RESPONSE_INVALID_BROADCAST_REQUEST 0xfa |
| #define | REMOTE_API_CSAP_RESPONSE_INVALID_BEGIN 0xfb |
| #define | REMOTE_API_CSAP_RESPONSE_NO_SPACE_FOR_RESPONSE 0xfc |
| #define | REMOTE_API_CSAP_RESPONSE_INVALID_VALUE 0xfd |
| #define | REMOTE_API_CSAP_RESPONSE_INVALID_LENGTH 0xfe |
| #define | REMOTE_API_CSAP_RESPONSE_UNKNOWN_REQUEST 0xff |
| typedef 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.
The values are in milliseconds. This setting is only meaningful for nodes that route data for others, i.e. sinks and headnodes.
| ac_min_value_p | Pointer to store the minimum current access cycle value |
| ac_max_value_p | Pointer to store the maximum current access cycle value |
ac_min_value_p or ac_max_value_p is NULLExample:
Definition at line 544 of file wms_settings.h.
| typedef 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.
Return the minimum and maximum for valid access cycle range, in milliseconds, that can be used when setting the access cycle range with the lib_settings->setAcRange() function.
| min_value_p | Pointer to store the minimum access cycle value allowed |
| max_value_p | Pointer to store the maximum access cycle value allowed |
Definition at line 671 of file wms_settings.h.
| typedef app_res_e(* app_lib_settings_get_authentication_key_f) (uint8_t *key_p) |
Check if the authentication key is set and read the key value.
The return value indicates whether a valid key is set or not. If return value is APP_RES_OK then a value is written to the memory pointed by the argument key_p. The value written to key_p is
See app_lib_settings_key_management_config_f for more information about setting the management key pair.
| key_p | A pointer to an array of 16 bytes where the key value is written. If NULL pointer is provided the key value is not written. |
Definition at line 454 of file wms_settings.h.
| typedef app_res_e(* app_lib_settings_get_encryption_key_f) (uint8_t *key_p) |
Check if the encryption key is set and read the key value.
The return value indicates whether a valid key is set or not. If return value is APP_RES_OK then a value is written to the memory pointed by the argument key_p. The value written to key_p is
See app_lib_settings_key_management_config_f for more information about setting the management key pair.
| key_p | A pointer to an array of 16 bytes where the key value is written. If NULL pointer is provided the key value is not written. |
Definition at line 499 of file wms_settings.h.
| typedef app_res_e(* app_lib_settings_get_feature_lock_bits_f) (uint32_t *bits_p) |
Get feature lock bits.
Feature lock bits determine which features are permitted at runtime. A cleared bit marks that a feature is locked. Some features are governed by the stack, some checks are implemented on the application side, where applicable. Feature lock bits are active only when feature lock key is set. Feature lock bits are documented in WP-RM-100 Wirepas Mesh Dual-MCU API Reference Manual.
| bits_p | Pointer to store the result |
Definition at line 252 of file wms_settings.h.
| typedef app_res_e(* app_lib_settings_get_feature_lock_key_f) (uint8_t *key_p) |
Check if feature lock key is set.
If set the feature lock is locked. It is not possible to actually read the key from the stack. The key_p parameter is ignored.
| key_p | A dummy parameter, reserved for future, set to NULL |
Definition at line 280 of file wms_settings.h.
| typedef app_res_e(* app_lib_settings_get_network_address_f) (app_lib_settings_net_addr_t *addr_p) |
Get network address.
| addr_p | Pointer to store the result |
Definition at line 340 of file wms_settings.h.
| typedef app_res_e(* app_lib_settings_get_network_channel_f) (app_lib_settings_net_channel_t *channel_p) |
Get network channel.
| channel_p | Pointer to store the result |
channel_p is NULL Definition at line 366 of file wms_settings.h.
| typedef 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.
Return the minimum and maximum network channel value that can be used when setting the network channel with the lib_settings->setNetworkChannel() function
| min_value_p | Pointer to store the minimum network channel value allowed |
| max_value_p | Pointer to store the maximum network channel value allowed |
Definition at line 654 of file wms_settings.h.
| typedef app_res_e(* app_lib_settings_get_node_address_f) (app_addr_t *addr_p) |
Get node address.
| addr_p | Pointer to store the result |
addr_p is NULL Definition at line 313 of file wms_settings.h.
| typedef app_res_e(* app_lib_settings_get_node_role_f) (app_lib_settings_role_t *role_p) |
Get node role. Utility functions app_lib_settings_get_base_role() and app_lib_settings_get_flags_role() can be used to split the node value to a base role and role flag bits, respectively.
| role_p | Pointer to store the result |
role_p is NULL Definition at line 401 of file wms_settings.h.
| typedef app_res_e(* app_lib_settings_get_offline_scan_f) (uint16_t *max_scan_p) |
Get the maximum offline scan interval in seconds.
The maximum offline scan interval determines the maximum interval between two scans for neighbors when device has no route to a sink.
| max_scan_p | Pointer to store the scanning interval value |
max_scan_p is NULL Definition at line 611 of file wms_settings.h.
| typedef app_res_e(* app_lib_settings_get_reserved_channels_f) (uint8_t *channels_p, size_t num_bytes) |
Get reserved channels.
Get a bit array of reserved channels, or channels that are marked to be avoided by the Wirepas Mesh protocol. Each set bit marks a channel that is to be avoided. The least significant bit of the first byte is channel 1, the least significant bit of the next byte is channel 9 and so forth.
| channels_p | Pointer to store the reserved channels bit array Each set bit marks the channel as reserved LSb of first byte is channel 1, MSb of first byte is channel 8, LSb of second byte is channel 9, an so on etc |
| num_bytes | Number of bytes pointed by channels_p |
channels_p is NULL, APP_RES_INVALID_VALUE if last reserved channel does not fit in num_bytes channels_p bit array can be longer than the maximum reserved channel. Remaining channels are marked as not reserved Definition at line 729 of file wms_settings.h.
| typedef bool(* app_lib_settings_is_group_cb_f) (app_addr_t group_addr) |
Callback used for determining on which multicast groups the device belongs.
As an argument, the stack sets the address of the multicast group. If device belongs to that group, callback function returns true. If not, callback returns false.
This callback is called when device receives multicast packet. The return value is then determined whether data shall be received by standard means (i.e. data reception callback, see lib_data->setDataReceivedCb)
| group_addr | Group address (with APP_ADDR_MULTICAST bitmask set) |
Usage: see documentation of lib_settings->registerGroupQuery.
Definition at line 212 of file wms_settings.h.
| typedef bool(* app_lib_settings_is_valid_network_address_f) (app_lib_settings_net_addr_t addr) |
Check that the network address is valid.
| addr | The network address to check. |
Definition at line 777 of file wms_settings.h.
| typedef bool(* app_lib_settings_is_valid_network_channel_f) (uint8_t channel) |
Check that the network channel is valid.
| channel | The network channel to check. |
Definition at line 786 of file wms_settings.h.
| typedef bool(* app_lib_settings_is_valid_node_address_f) (app_addr_t addr) |
Check that the node address is valid.
| addr | The node address to check. |
Definition at line 794 of file wms_settings.h.
| typedef bool(* app_lib_settings_is_valid_node_role_f) (app_lib_settings_role_t role) |
Check that the node role is valid.
| role | The node role to check. |
Definition at line 802 of file wms_settings.h.
| typedef 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.
This function configures key management using the provided key configuration information.
| [in] | key_mgmt_cfg_p | Pointer to the key management information structure. |
Definition at line 818 of file wms_settings.h.
| typedef uint32_t app_lib_settings_net_addr_t |
Network address type definition.
All nodes on the network must have the same network address.
Definition at line 60 of file wms_settings.h.
| typedef uint8_t app_lib_settings_net_channel_t |
Channel type definition.
Definition at line 65 of file wms_settings.h.
| typedef 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 needs to be handled on application side.
| cb | A callback that handles a received Remote API CSAP Cancel request. See more details about the callback in app_lib_settings_remote_api_csap_cancel_f. |
Definition at line 1001 of file wms_settings.h.
| typedef 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 to be handled on application side.
| cb | A callback that handles a received Remote API CSAP Read request. See more details about the callback in app_lib_settings_remote_api_csap_read_f. |
Definition at line 949 of file wms_settings.h.
| typedef 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 needs to be handled on application side.
| cb | A callback that handles a received Remote API CSAP Update request. See more details about the callback in app_lib_settings_remote_api_csap_update_f. |
Definition at line 976 of file wms_settings.h.
| typedef 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 to be handled on application side.
| cb | A callback that handles a received Remote API CSAP Write request. See more details about the callback in app_lib_settings_remote_api_csap_write_f. |
Definition at line 910 of file wms_settings.h.
| typedef 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 side. In case the application has cached the data received from CSAP Write Requests, the cached data shall be cleared in a call to this function. .There is no need to respond the Cancel request on application side, thus no function arguments.
Definition at line 988 of file wms_settings.h.
| typedef 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 application side and the response information back to Remote API on stack side.
| attr_id | Attribute ID value recorded in the Remote API CSAP Read request. | |
| [in,out] | data | Pointer to a data structure that contains buffers for request and response data. Buffers are preallocated and the number of bytes that can be read and written, given in the *_buffer_length members, must be strictly obeyed. Commonly the request_buffer_len is zero and the attribute ID uniquely determines the response given. |
Definition at line 935 of file wms_settings.h.
| typedef 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 side. There is no need to respond the Update request on application side, thus no function arguments. Application may (optionally) cache the data received from CSAP Write Requests on application side and put them into action at the same time once this callback is called.
Definition at line 962 of file wms_settings.h.
| typedef 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 application side and the response information back to Remote API on stack side. Note that the data can be cached into a temporary location until a call of the callback registered with lib_settings->registerRemoteApiCsapUpdateCb is received. This may be used to maintain data integrity if multiple CSAP Write attribute ID values has to come in action at the same time.
| attr_id | Attribute ID value recorded in the CSAP Write request. | |
| flags | Additional flags. Bit 0: indicates if the Remote API data packet containing the CSAP Write Request was sent as unicast. | |
| [in,out] | data | Pointer to a data structure that contains buffers for request and response data. Buffers are preallocated and the number of bytes that can be read and written, given in the *_buffer_length members, must be strictly obeyed. |
Definition at line 896 of file wms_settings.h.
| typedef app_res_e(* app_lib_settings_reset_all_f) (void) |
Reset all settings to default values.
Definition at line 235 of file wms_settings.h.
| typedef uint8_t app_lib_settings_role_t |
Node role type.
List of possible roles are defined in app_lib_settings_role_e
Definition at line 189 of file wms_settings.h.
| typedef 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.
Set the access cycle range that this node uses to serve its neighbors. This setting is only meaningful for nodes that route data for others, i.e. sinks and headnodes.
By default, the stack automatically selects a suitable access cycle, between 2, 4 or 8 seconds, depending on current network traffic. Setting low access cycle range does not improve latency, however pining it to a higher value can reduce power consumption despite reducing the throughput.
The values are in milliseconds. Function lib_settings->getAcRangeLimits() can also be used to query the limits. Default range is min. 2000 ms, max. 8000 ms.
Valid values are:
| Value | Description |
|---|---|
| 2000 | 2 seconds |
| 4000 | 4 seconds |
| 8000 | 8 seconds |
If value is not set, or maximum > minimum, the stack selects an appropriate access cycle based on current network traffic. If maximum = minimum, the user can force the access cycle to a specific duration. Range is not set by default. Only a factory reset can restore range back to the unset state.
Example:
| ac_min_value | Minimum access cycle value to set |
| ac_max_value | Maximum access cycle value to set |
ac_min_value or ac_max_value is invalidAPP_LIB_SETTINGS_ROLE_FLAG_LL mode set. Instead, those devices always have automatic access cycle selection enabled. Definition at line 596 of file wms_settings.h.
| typedef app_res_e(* app_lib_settings_set_authentication_key_f) (const uint8_t *key_p) |
Set authentication key.
key_p must point to APP_LIB_SETTINGS_AES_KEY_NUM_BYTES bytes. By default, no authentication key is set.
A key of all 0xff (hex) bytes is considered an unset key. Setting such a key disables encryption and authentication.
| key_p | Pointer to AES-128 key, APP_LIB_SETTINGS_AES_KEY_NUM_BYTES bytes |
key_p is NULL Definition at line 475 of file wms_settings.h.
| typedef app_res_e(* app_lib_settings_set_encryption_key_f) (const uint8_t *key_p) |
Set encryption key.
key_p must point to APP_LIB_SETTINGS_AES_KEY_NUM_BYTES bytes. By default, no encryption key is set.
A key of all 0xff (hex) bytes is considered an unset key. Setting such a key disables encryption and authentication.
| key_p | Pointer to AES-128 key, APP_LIB_SETTINGS_AES_KEY_NUM_BYTES bytes |
key_p is NULL Definition at line 520 of file wms_settings.h.
| typedef app_res_e(* app_lib_settings_set_feature_lock_bits_f) (uint32_t bits) |
Set feature lock bits.
See lib_settings->getFeatureLockBits() for a description of feature lock bits. A cleared bit marks a feature locked. Reserved bits must remain set.
| bits | Feature lock bits |
Definition at line 266 of file wms_settings.h.
| typedef app_res_e(* app_lib_settings_set_feature_lock_key_f) (const uint8_t *key_p) |
Set feature lock key.
Lock or unlock the feature lock. key_p must point to APP_LIB_SETTINGS_AES_KEY_NUM_BYTES bytes. The feature lock key is not an AES-128 key, but it is guaranteed to be the same size as an AES-128 key.
Feature lock key can only be set when the feature lock is unlocked. Unlocking is done by setting the key using the same key as when locking it. A key of all 0xff (hex) bytes is considered an unset key. Setting such a key does not lock the feature lock.
| key_p | Pointer to key, APP_LIB_SETTINGS_AES_KEY_NUM_BYTES bytes |
key_p is NULL Definition at line 301 of file wms_settings.h.
| typedef 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.
The callback is called when stack needs to determine on which multicast groups the device belongs to. If callback is not defined, device does not belong to any multicast groups.
| cb | The function to be executed, or NULL to unset |
Example on use:
Definition at line 703 of file wms_settings.h.
| typedef app_res_e(* app_lib_settings_set_network_address_f) (app_lib_settings_net_addr_t addr) |
Set network address.
There is no default network address.
| addr | Network address to set |
Definition at line 355 of file wms_settings.h.
| typedef app_res_e(* app_lib_settings_set_network_channel_f) (app_lib_settings_net_channel_t channel) |
Set network channel.
Different radio architectures have different number of channels available. Function lib_settings->getNetworkChannelLimits() can be used to determine the minimum and maximum channel number available. There is no default network channel.
| channel | Network channel to set |
channel is invalid, APP_RES_INVALID_STACK_STATE if stack is running Definition at line 387 of file wms_settings.h.
| typedef app_res_e(* app_lib_settings_set_node_address_f) (app_addr_t addr) |
Set node address.
There is no default node address.
| addr | Own node address to set |
addr is invalid, APP_RES_INVALID_STACK_STATE if stack is running Definition at line 329 of file wms_settings.h.
| typedef app_res_e(* app_lib_settings_set_node_role_f) (app_lib_settings_role_t role) |
Set node role.
Default node role is headnode with the autorole flag set.
Code example:
| role | New role |
role is invalid, APP_RES_INVALID_STACK_STATE if stack is running Definition at line 429 of file wms_settings.h.
| typedef app_res_e(* app_lib_settings_set_offline_scan_f) (uint16_t max_scan) |
Set the maximum offline scan interval in seconds.
The maximum offline scan interval determines how often a node scans for neighbors when it has no route to a sink. Value is automatically limited to a valid range. The default value, before calling lib_settings->setOfflineScan() is 600 seconds (10 minutes) for Low Energy Mode and 30 seconds for Low Latency Mode.
Valid offline scan values:
| Value | Description |
|---|---|
| 20 | Minimum: 20 seconds |
| 600 | Maximum: 3600 seconds (1 hour) |
To manually start a neighbor scan, function startScanNbors() in the State library ( wms_state.h) can be used.
| max_scan | Minimum maximum scanning interval value |
max_scan is invalid Definition at line 637 of file wms_settings.h.
| typedef app_res_e(* app_lib_settings_set_reserved_channels_f) (const uint8_t *channels_p, size_t num_bytes) |
Set reserved channels.
Mark channels as reserved, or to be avoided by the Wirepas Mesh protocol. Each set bit marks a channel that is to be avoided. The least significant bit of the first byte is channel 1, the least significant bit of the next byte is channel 9 and so forth. The channels_p bit array may be shorter than the number of channels. In that case, the remaining channels are marked as not reserved. The bit array may be longer too, provided that the highest bit set in it corresponds to a valid channel number (see section 3.6.4.27), i.e. extra zeros are ignored.
A node may still transmit on a reserved channel if it has a neighbor that has not been configured to avoid the channel. For best results, all nodes in a network should be configured to have the same reserved channels. Reserving the network channel will result in undefined behavior.
The reserved channels array is not stored in permanent memory.
| channels | Pointer to bit array to load the reserved channels Each set bit marks the channel as reserved LSb of first byte is channel 1, MSb of first byte is channel 8, LSb of second byte is channel 9, an so on |
| num_bytes | Number of bytes pointed by channels_p |
channels_p is NULL, APP_RES_INVALID_VALUE if a bit in channels_p is set for a channel larger than the maximum channel number channels_p bit array can be shorter than the maximum number of channels. Remaining channels are marked as not reserved Definition at line 768 of file wms_settings.h.
| struct app_lib_settings_key_management_configuration_t |
Structure to hold key management configuration information for the settings API.
This structure contains the security key pairs and flags for the key management configuration.
Definition at line 144 of file wms_settings.h.
| Data Fields | ||
|---|---|---|
| struct app_lib_settings_key_management_configuration_t | flags | |
| struct app_lib_settings_key_management_configuration_t | management_key_pair | |
| uint8_t | management_key_pair_seq |
Management key pair sequence number for diagnostics |
| struct app_lib_settings_key_management_configuration_t | network_key_pair | |
| uint8_t | network_key_pair_seq |
Network key pair sequence number, 1-255 |
| struct app_lib_settings_remote_api_csap_data_t |
Struct containing the CSAP Read adn Write request and response information. Needed the requests are handled on application side.
Definition at line 852 of file wms_settings.h.
| struct app_lib_settings_t |
Settings library API.
This structure contains function pointers to all the settings library functions. The library is used to configure various network and node parameters.
Definition at line 1011 of file wms_settings.h.
| struct app_lib_settings_key_management_configuration_t.network_key_pair |
Definition at line 146 of file wms_settings.h.
| Data Fields | ||
|---|---|---|
| const uint8_t(* | authentication_key_p)[16] |
Authentication key pointer |
| const uint8_t(* | encryption_key_p)[16] |
Encryption key pointer |
| struct app_lib_settings_key_management_configuration_t.management_key_pair |
Definition at line 146 of file wms_settings.h.
| Data Fields | ||
|---|---|---|
| const uint8_t(* | authentication_key_p)[16] |
Authentication key pointer |
| const uint8_t(* | encryption_key_p)[16] |
Encryption key pointer |
| struct app_lib_settings_key_management_configuration_t.flags |
Definition at line 155 of file wms_settings.h.
This is the most common return type from library functions. Functions use these return values, unless more specific return values are required.
| Enumerator | |
|---|---|
| APP_LIB_SETTINGS_REMOTE_API_RES_NONE | Nothing was updated |
| APP_LIB_SETTINGS_REMOTE_API_RES_OK | Updates successful |
| APP_LIB_SETTINGS_REMOTE_API_RES_OK_RESET | Updates successful, reset required |
Definition at line 100 of file wms_settings.h.
Definition at line 73 of file wms_settings.h.
| #define APP_LIB_SETTINGS_AES_KEY_NUM_BYTES 16 |
AES key size in bytes.
This macro can be used as a buffer size for storing or copying a 128-bit AES key, or the 16-byte feature lock key. The feature lock key is not an AES-128 key, but it is guaranteed to be the same size as an AES-128 key.
Definition at line 44 of file wms_settings.h.
| #define APP_LIB_SETTINGS_LL_ROLE_BIT 0x10 |
LL role bit.
This bit indicates if the role is a Low Latency (LL) role
Definition at line 51 of file wms_settings.h.
| #define APP_LIB_SETTINGS_NAME 0x74ced676 |
| #define APP_LIB_SETTINGS_VERSION 0x20d |
Maximum supported library version.
Definition at line 35 of file wms_settings.h.
| #define CHANNEL_NO_CHANNEL 0 |
Reserved value for definition of 'no channel' for app_lib_settings_net_channel_t.
Definition at line 71 of file wms_settings.h.
| #define REMOTE_API_CSAP_RESPONSE_ACCESS_DENIED 0xf8 |
Failure: Access is denied, i.e. feature lock key is set
Definition at line 831 of file wms_settings.h.
| #define REMOTE_API_CSAP_RESPONSE_INVALID_BEGIN 0xfb |
Failure: No begin request issued, or update delay countdown running
Definition at line 837 of file wms_settings.h.
| #define REMOTE_API_CSAP_RESPONSE_INVALID_BROADCAST_REQUEST 0xfa |
Failure: Request is only valid for unicast, invalid when broadcasted
Definition at line 835 of file wms_settings.h.
| #define REMOTE_API_CSAP_RESPONSE_INVALID_LENGTH 0xfe |
Failure: Request has too many or too few parameters
Definition at line 843 of file wms_settings.h.
| #define REMOTE_API_CSAP_RESPONSE_INVALID_VALUE 0xfd |
Failure: A value in the request is invalid or value is not set
Definition at line 841 of file wms_settings.h.
| #define REMOTE_API_CSAP_RESPONSE_NO_SPACE_FOR_RESPONSE 0xfc |
Failure: No space in response, cannot carry out request
Definition at line 839 of file wms_settings.h.
| #define REMOTE_API_CSAP_RESPONSE_NONE 1 |
A special return value: no response needs to be generated
Definition at line 829 of file wms_settings.h.
| #define REMOTE_API_CSAP_RESPONSE_NORMAL 0 |
A special return value: normal response should be generated
Definition at line 827 of file wms_settings.h.
| #define REMOTE_API_CSAP_RESPONSE_UNKNOWN_REQUEST 0xff |
Failure: Request was not recognized
Definition at line 845 of file wms_settings.h.
| #define REMOTE_API_CSAP_RESPONSE_WRITE_ONLY_ATTRIBUTE 0xf9 |
Failure: Trying to read an attribute that is write-only
Definition at line 833 of file wms_settings.h.
| #define REMOTE_API_CSAP_WRITE_UNICAST 0x1 |
Bit value indicating that the CSAP Write request was sent in a unicast data packet
Definition at line 823 of file wms_settings.h.