![]() |
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 authentication key is set. 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 encryption key is set. 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 | 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 520 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 647 of file wms_settings.h.
| typedef app_res_e(* app_lib_settings_get_authentication_key_f) (uint8_t *key_p) |
Check if authentication key is set.
It is not possible to actually read the key from the stack. The key_p parameter is ignored.
| key_p | If NULL, key is not return but return code will inform if keys are set or not. Otherwise, pointer to a ram area of 16 bytes where the key can be copied. It is updated only if return value is APP_RES_OK. |
Definition at line 438 of file wms_settings.h.
| typedef app_res_e(* app_lib_settings_get_encryption_key_f) (uint8_t *key_p) |
Check if encryption key is set.
It is not possible to actually read the key from the stack. The key_p parameter is ignored.
| key_p | If NULL, key is not return but return code will inform if keys are set or not. Otherwise, pointer to a ram area of 16 bytes where the key can be copied. It is updated only if return value is APP_RES_OK. |
Definition at line 475 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 245 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 273 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 333 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 359 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 630 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 306 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 394 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 587 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 705 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 205 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 753 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 762 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 770 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 778 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 794 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 53 of file wms_settings.h.
| typedef uint8_t app_lib_settings_net_channel_t |
Channel type definition.
Definition at line 58 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 977 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 925 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 952 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 886 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 964 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 911 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 938 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 872 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 228 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 182 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 572 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 459 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 496 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 259 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 294 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 679 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 348 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 380 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 322 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 422 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 613 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 744 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 137 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 828 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 987 of file wms_settings.h.
| struct app_lib_settings_key_management_configuration_t.network_key_pair |
Definition at line 139 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 139 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 148 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 93 of file wms_settings.h.
Definition at line 66 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_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 64 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 807 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 813 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 811 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 819 of file wms_settings.h.
| #define REMOTE_API_CSAP_RESPONSE_INVALID_VALUE 0xfd |
Failure: A value in the request is invalid
Definition at line 817 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 815 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 805 of file wms_settings.h.
| #define REMOTE_API_CSAP_RESPONSE_NORMAL 0 |
A special return value: normal response should be generated
Definition at line 803 of file wms_settings.h.
| #define REMOTE_API_CSAP_RESPONSE_UNKNOWN_REQUEST 0xff |
Failure: Request was not recognized
Definition at line 821 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 809 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 799 of file wms_settings.h.