Zephyr API Documentation
3.0.0
A Scalable Open Source RTOS
|
|
3.0.0 |
LwM2M high-level API. More...
Data Structures | |
struct | lwm2m_obj_path |
struct | lwm2m_ctx |
LwM2M context structure to maintain information for a single LwM2M connection. More... | |
struct | lwm2m_objlnk |
LWM2M ObjLnk resource type structure. More... | |
Macros | |
#define | LWM2M_OBJECT_SECURITY_ID 0 |
LwM2M Objects managed by OMA for LwM2M tech specification. Objects in this range have IDs from 0 to 1023. For more information refer to Technical Specification OMA-TS-LightweightM2M-V1_0_2-20180209-A. More... | |
#define | LWM2M_OBJECT_SERVER_ID 1 |
#define | LWM2M_OBJECT_ACCESS_CONTROL_ID 2 |
#define | LWM2M_OBJECT_DEVICE_ID 3 |
#define | LWM2M_OBJECT_CONNECTIVITY_MONITORING_ID 4 |
#define | LWM2M_OBJECT_FIRMWARE_ID 5 |
#define | LWM2M_OBJECT_LOCATION_ID 6 |
#define | LWM2M_OBJECT_CONNECTIVITY_STATISTICS_ID 7 |
#define | LWM2M_OBJECT_SOFTWARE_MANAGEMENT_ID 9 |
#define | LWM2M_OBJECT_GATEWAY_ID 25 |
#define | IPSO_OBJECT_GENERIC_SENSOR_ID 3300 |
LwM2M Objects produced by 3rd party Standards Development Organizations. Objects in this range have IDs from 2048 to 10240 Refer to the OMA LightweightM2M (LwM2M) Object and Resource Registry: http://www.openmobilealliance.org/wp/OMNA/LwM2M/LwM2MRegistry.html. More... | |
#define | IPSO_OBJECT_TEMP_SENSOR_ID 3303 |
#define | IPSO_OBJECT_HUMIDITY_SENSOR_ID 3304 |
#define | IPSO_OBJECT_LIGHT_CONTROL_ID 3311 |
#define | IPSO_OBJECT_ACCELEROMETER_ID 3313 |
#define | IPSO_OBJECT_CURRENT_SENSOR_ID 3317 |
#define | IPSO_OBJECT_PRESSURE_ID 3323 |
#define | IPSO_OBJECT_BUZZER_ID 3338 |
#define | IPSO_OBJECT_TIMER_ID 3340 |
#define | IPSO_OBJECT_ONOFF_SWITCH_ID 3342 |
#define | IPSO_OBJECT_PUSH_BUTTON_ID 3347 |
#define | UCIFI_OBJECT_BATTERY_ID 3411 |
#define | IPSO_OBJECT_FILLING_LEVEL_SENSOR_ID 3435 |
#define | LWM2M_DEVICE_PWR_SRC_TYPE_DC_POWER 0 |
Power source types used for the "Available Power Sources" resource of the LwM2M Device object. More... | |
#define | LWM2M_DEVICE_PWR_SRC_TYPE_BAT_INT 1 |
#define | LWM2M_DEVICE_PWR_SRC_TYPE_BAT_EXT 2 |
#define | LWM2M_DEVICE_PWR_SRC_TYPE_UNUSED 3 |
#define | LWM2M_DEVICE_PWR_SRC_TYPE_PWR_OVER_ETH 4 |
#define | LWM2M_DEVICE_PWR_SRC_TYPE_USB 5 |
#define | LWM2M_DEVICE_PWR_SRC_TYPE_AC_POWER 6 |
#define | LWM2M_DEVICE_PWR_SRC_TYPE_SOLAR 7 |
#define | LWM2M_DEVICE_PWR_SRC_TYPE_MAX 8 |
#define | LWM2M_DEVICE_ERROR_NONE 0 |
Error codes used for the "Error Code" resource of the LwM2M Device object. An LwM2M client can register one of the following error codes via the lwm2m_device_add_err() function. More... | |
#define | LWM2M_DEVICE_ERROR_LOW_POWER 1 |
#define | LWM2M_DEVICE_ERROR_EXT_POWER_SUPPLY_OFF 2 |
#define | LWM2M_DEVICE_ERROR_GPS_FAILURE 3 |
#define | LWM2M_DEVICE_ERROR_LOW_SIGNAL_STRENGTH 4 |
#define | LWM2M_DEVICE_ERROR_OUT_OF_MEMORY 5 |
#define | LWM2M_DEVICE_ERROR_SMS_FAILURE 6 |
#define | LWM2M_DEVICE_ERROR_NETWORK_FAILURE 7 |
#define | LWM2M_DEVICE_ERROR_PERIPHERAL_FAILURE 8 |
#define | LWM2M_DEVICE_BATTERY_STATUS_NORMAL 0 |
Battery status codes used for the "Battery Status" resource (3/0/20) of the LwM2M Device object. As the battery status changes, an LwM2M client can set one of the following codes via: lwm2m_engine_set_u8("3/0/20", [battery status]) More... | |
#define | LWM2M_DEVICE_BATTERY_STATUS_CHARGING 1 |
#define | LWM2M_DEVICE_BATTERY_STATUS_CHARGE_COMP 2 |
#define | LWM2M_DEVICE_BATTERY_STATUS_DAMAGED 3 |
#define | LWM2M_DEVICE_BATTERY_STATUS_LOW 4 |
#define | LWM2M_DEVICE_BATTERY_STATUS_NOT_INST 5 |
#define | LWM2M_DEVICE_BATTERY_STATUS_UNKNOWN 6 |
#define | STATE_IDLE 0 |
LWM2M Firmware Update object states. More... | |
#define | STATE_DOWNLOADING 1 |
#define | STATE_DOWNLOADED 2 |
#define | STATE_UPDATING 3 |
#define | RESULT_DEFAULT 0 |
LWM2M Firmware Update object result codes. More... | |
#define | RESULT_SUCCESS 1 |
#define | RESULT_NO_STORAGE 2 |
#define | RESULT_OUT_OF_MEM 3 |
#define | RESULT_CONNECTION_LOST 4 |
#define | RESULT_INTEGRITY_FAILED 5 |
#define | RESULT_UNSUP_FW 6 |
#define | RESULT_INVALID_URI 7 |
#define | RESULT_UPDATE_FAILED 8 |
#define | RESULT_UNSUP_PROTO 9 |
#define | LWM2M_OBJLNK_MAX_ID USHRT_MAX |
Maximum value for ObjLnk resource fields. More... | |
#define | LWM2M_RES_DATA_READ_ONLY 0 |
Resource read-only value bit. More... | |
#define | LWM2M_RES_DATA_FLAG_RO BIT(LWM2M_RES_DATA_READ_ONLY) |
Resource read-only flag. More... | |
#define | LWM2M_HAS_RES_FLAG(res, f) ((res->data_flags & f) == f) |
Read resource flags helper macro. More... | |
#define | LWM2M_RD_CLIENT_FLAG_BOOTSTRAP BIT(0) |
Run bootstrap procedure in current session. More... | |
#define | LWM2M_MAX_PATH_STR_LEN sizeof("65535/65535/65535/65535") |
LwM2M path maximum length. More... | |
Typedefs | |
typedef void(* | lwm2m_socket_fault_cb_t) (int error) |
typedef void(* | lwm2m_observe_cb_t) (enum lwm2m_observe_event event, struct lwm2m_obj_path *path, void *user_data) |
Observe callback indicating observer adds and deletes, and notification ACKs and timeouts. More... | |
typedef void *(* | lwm2m_engine_get_data_cb_t) (uint16_t obj_inst_id, uint16_t res_id, uint16_t res_inst_id, size_t *data_len) |
Asynchronous callback to get a resource buffer and length. More... | |
typedef int(* | lwm2m_engine_set_data_cb_t) (uint16_t obj_inst_id, uint16_t res_id, uint16_t res_inst_id, uint8_t *data, uint16_t data_len, bool last_block, size_t total_size) |
Asynchronous callback when data has been set to a resource buffer. More... | |
typedef int(* | lwm2m_engine_user_cb_t) (uint16_t obj_inst_id) |
Asynchronous event notification callback. More... | |
typedef int(* | lwm2m_engine_execute_cb_t) (uint16_t obj_inst_id, uint8_t *args, uint16_t args_len) |
Asynchronous execute notification callback. More... | |
typedef void(* | lwm2m_ctx_event_cb_t) (struct lwm2m_ctx *ctx, enum lwm2m_rd_client_event event) |
Asynchronous RD client event callback. More... | |
Functions | |
int | lwm2m_device_add_err (uint8_t error_code) |
Register a new error code with LwM2M Device object. More... | |
int | lwm2m_engine_update_observer_min_period (const char *pathstr, uint32_t period_s) |
Change an observer's pmin value. More... | |
int | lwm2m_engine_update_observer_max_period (const char *pathstr, uint32_t period_s) |
Change an observer's pmax value. More... | |
int | lwm2m_engine_create_obj_inst (const char *pathstr) |
Create an LwM2M object instance. More... | |
int | lwm2m_engine_delete_obj_inst (const char *pathstr) |
Delete an LwM2M object instance. More... | |
int | lwm2m_engine_set_opaque (const char *pathstr, char *data_ptr, uint16_t data_len) |
Set resource (instance) value (opaque buffer) More... | |
int | lwm2m_engine_set_string (const char *pathstr, char *data_ptr) |
Set resource (instance) value (string) More... | |
int | lwm2m_engine_set_u8 (const char *pathstr, uint8_t value) |
Set resource (instance) value (u8) More... | |
int | lwm2m_engine_set_u16 (const char *pathstr, uint16_t value) |
Set resource (instance) value (u16) More... | |
int | lwm2m_engine_set_u32 (const char *pathstr, uint32_t value) |
Set resource (instance) value (u32) More... | |
int | lwm2m_engine_set_u64 (const char *pathstr, uint64_t value) |
Set resource (instance) value (u64) More... | |
int | lwm2m_engine_set_s8 (const char *pathstr, int8_t value) |
Set resource (instance) value (s8) More... | |
int | lwm2m_engine_set_s16 (const char *pathstr, int16_t value) |
Set resource (instance) value (s16) More... | |
int | lwm2m_engine_set_s32 (const char *pathstr, int32_t value) |
Set resource (instance) value (s32) More... | |
int | lwm2m_engine_set_s64 (const char *pathstr, int64_t value) |
Set resource (instance) value (s64) More... | |
int | lwm2m_engine_set_bool (const char *pathstr, bool value) |
Set resource (instance) value (bool) More... | |
int | lwm2m_engine_set_float (const char *pathstr, double *value) |
Set resource (instance) value (double) More... | |
int | lwm2m_engine_set_objlnk (const char *pathstr, struct lwm2m_objlnk *value) |
Set resource (instance) value (ObjLnk) More... | |
int | lwm2m_engine_get_opaque (const char *pathstr, void *buf, uint16_t buflen) |
Get resource (instance) value (opaque buffer) More... | |
int | lwm2m_engine_get_string (const char *pathstr, void *str, uint16_t strlen) |
Get resource (instance) value (string) More... | |
int | lwm2m_engine_get_u8 (const char *pathstr, uint8_t *value) |
Get resource (instance) value (u8) More... | |
int | lwm2m_engine_get_u16 (const char *pathstr, uint16_t *value) |
Get resource (instance) value (u16) More... | |
int | lwm2m_engine_get_u32 (const char *pathstr, uint32_t *value) |
Get resource (instance) value (u32) More... | |
int | lwm2m_engine_get_u64 (const char *pathstr, uint64_t *value) |
Get resource (instance) value (u64) More... | |
int | lwm2m_engine_get_s8 (const char *pathstr, int8_t *value) |
Get resource (instance) value (s8) More... | |
int | lwm2m_engine_get_s16 (const char *pathstr, int16_t *value) |
Get resource (instance) value (s16) More... | |
int | lwm2m_engine_get_s32 (const char *pathstr, int32_t *value) |
Get resource (instance) value (s32) More... | |
int | lwm2m_engine_get_s64 (const char *pathstr, int64_t *value) |
Get resource (instance) value (s64) More... | |
int | lwm2m_engine_get_bool (const char *pathstr, bool *value) |
Get resource (instance) value (bool) More... | |
int | lwm2m_engine_get_float (const char *pathstr, double *buf) |
Get resource (instance) value (double) More... | |
int | lwm2m_engine_get_objlnk (const char *pathstr, struct lwm2m_objlnk *buf) |
Get resource (instance) value (ObjLnk) More... | |
int | lwm2m_engine_register_read_callback (const char *pathstr, lwm2m_engine_get_data_cb_t cb) |
Set resource (instance) read callback. More... | |
int | lwm2m_engine_register_pre_write_callback (const char *pathstr, lwm2m_engine_get_data_cb_t cb) |
Set resource (instance) pre-write callback. More... | |
int | lwm2m_engine_register_validate_callback (const char *pathstr, lwm2m_engine_set_data_cb_t cb) |
Set resource (instance) validation callback. More... | |
int | lwm2m_engine_register_post_write_callback (const char *pathstr, lwm2m_engine_set_data_cb_t cb) |
Set resource (instance) post-write callback. More... | |
int | lwm2m_engine_register_exec_callback (const char *pathstr, lwm2m_engine_execute_cb_t cb) |
Set resource execute event callback. More... | |
int | lwm2m_engine_register_create_callback (uint16_t obj_id, lwm2m_engine_user_cb_t cb) |
Set object instance create event callback. More... | |
int | lwm2m_engine_register_delete_callback (uint16_t obj_id, lwm2m_engine_user_cb_t cb) |
Set object instance delete event callback. More... | |
int | lwm2m_engine_set_res_data (const char *pathstr, void *data_ptr, uint16_t data_len, uint8_t data_flags) |
Set data buffer for a resource. More... | |
int | lwm2m_engine_get_res_data (const char *pathstr, void **data_ptr, uint16_t *data_len, uint8_t *data_flags) |
Get data buffer for a resource. More... | |
int | lwm2m_engine_create_res_inst (const char *pathstr) |
Create a resource instance. More... | |
int | lwm2m_engine_delete_res_inst (const char *pathstr) |
Delete a resource instance. More... | |
int | lwm2m_engine_update_service_period (k_work_handler_t service, uint32_t period_ms) |
Update the period of a given service. More... | |
int | lwm2m_update_device_service_period (uint32_t period_ms) |
Update the period of the device service. More... | |
int | lwm2m_engine_start (struct lwm2m_ctx *client_ctx) |
Start the LwM2M engine. More... | |
void | lwm2m_acknowledge (struct lwm2m_ctx *client_ctx) |
Acknowledge the currently processed request with an empty ACK. More... | |
void | lwm2m_rd_client_start (struct lwm2m_ctx *client_ctx, const char *ep_name, uint32_t flags, lwm2m_ctx_event_cb_t event_cb, lwm2m_observe_cb_t observe_cb) |
Start the LwM2M RD (Registration / Discovery) Client. More... | |
void | lwm2m_rd_client_stop (struct lwm2m_ctx *client_ctx, lwm2m_ctx_event_cb_t event_cb, bool deregister) |
Stop the LwM2M RD (De-register) Client. More... | |
void | lwm2m_rd_client_update (void) |
Trigger a Registration Update of the LwM2M RD Client. More... | |
char * | lwm2m_path_log_strdup (char *buf, struct lwm2m_obj_path *path) |
Helper function to print path objects' contents to log. More... | |
LwM2M high-level API.
LwM2M high-level interface is defined in this header.
#define IPSO_OBJECT_ACCELEROMETER_ID 3313 |
#include <include/net/lwm2m.h>
#define IPSO_OBJECT_BUZZER_ID 3338 |
#include <include/net/lwm2m.h>
#define IPSO_OBJECT_CURRENT_SENSOR_ID 3317 |
#include <include/net/lwm2m.h>
#define IPSO_OBJECT_FILLING_LEVEL_SENSOR_ID 3435 |
#include <include/net/lwm2m.h>
#define IPSO_OBJECT_GENERIC_SENSOR_ID 3300 |
#include <include/net/lwm2m.h>
LwM2M Objects produced by 3rd party Standards Development Organizations. Objects in this range have IDs from 2048 to 10240 Refer to the OMA LightweightM2M (LwM2M) Object and Resource Registry: http://www.openmobilealliance.org/wp/OMNA/LwM2M/LwM2MRegistry.html.
#define IPSO_OBJECT_HUMIDITY_SENSOR_ID 3304 |
#include <include/net/lwm2m.h>
#define IPSO_OBJECT_LIGHT_CONTROL_ID 3311 |
#include <include/net/lwm2m.h>
#define IPSO_OBJECT_ONOFF_SWITCH_ID 3342 |
#include <include/net/lwm2m.h>
#define IPSO_OBJECT_PRESSURE_ID 3323 |
#include <include/net/lwm2m.h>
#define IPSO_OBJECT_PUSH_BUTTON_ID 3347 |
#include <include/net/lwm2m.h>
#define IPSO_OBJECT_TEMP_SENSOR_ID 3303 |
#include <include/net/lwm2m.h>
#define IPSO_OBJECT_TIMER_ID 3340 |
#include <include/net/lwm2m.h>
#define LWM2M_DEVICE_BATTERY_STATUS_CHARGE_COMP 2 |
#include <include/net/lwm2m.h>
#define LWM2M_DEVICE_BATTERY_STATUS_CHARGING 1 |
#include <include/net/lwm2m.h>
#define LWM2M_DEVICE_BATTERY_STATUS_DAMAGED 3 |
#include <include/net/lwm2m.h>
#define LWM2M_DEVICE_BATTERY_STATUS_LOW 4 |
#include <include/net/lwm2m.h>
#define LWM2M_DEVICE_BATTERY_STATUS_NORMAL 0 |
#include <include/net/lwm2m.h>
Battery status codes used for the "Battery Status" resource (3/0/20) of the LwM2M Device object. As the battery status changes, an LwM2M client can set one of the following codes via: lwm2m_engine_set_u8("3/0/20", [battery status])
#define LWM2M_DEVICE_BATTERY_STATUS_NOT_INST 5 |
#include <include/net/lwm2m.h>
#define LWM2M_DEVICE_BATTERY_STATUS_UNKNOWN 6 |
#include <include/net/lwm2m.h>
#define LWM2M_DEVICE_ERROR_EXT_POWER_SUPPLY_OFF 2 |
#include <include/net/lwm2m.h>
#define LWM2M_DEVICE_ERROR_GPS_FAILURE 3 |
#include <include/net/lwm2m.h>
#define LWM2M_DEVICE_ERROR_LOW_POWER 1 |
#include <include/net/lwm2m.h>
#define LWM2M_DEVICE_ERROR_LOW_SIGNAL_STRENGTH 4 |
#include <include/net/lwm2m.h>
#define LWM2M_DEVICE_ERROR_NETWORK_FAILURE 7 |
#include <include/net/lwm2m.h>
#define LWM2M_DEVICE_ERROR_NONE 0 |
#include <include/net/lwm2m.h>
Error codes used for the "Error Code" resource of the LwM2M Device object. An LwM2M client can register one of the following error codes via the lwm2m_device_add_err() function.
#define LWM2M_DEVICE_ERROR_OUT_OF_MEMORY 5 |
#include <include/net/lwm2m.h>
#define LWM2M_DEVICE_ERROR_PERIPHERAL_FAILURE 8 |
#include <include/net/lwm2m.h>
#define LWM2M_DEVICE_ERROR_SMS_FAILURE 6 |
#include <include/net/lwm2m.h>
#define LWM2M_DEVICE_PWR_SRC_TYPE_AC_POWER 6 |
#include <include/net/lwm2m.h>
#define LWM2M_DEVICE_PWR_SRC_TYPE_BAT_EXT 2 |
#include <include/net/lwm2m.h>
#define LWM2M_DEVICE_PWR_SRC_TYPE_BAT_INT 1 |
#include <include/net/lwm2m.h>
#define LWM2M_DEVICE_PWR_SRC_TYPE_DC_POWER 0 |
#include <include/net/lwm2m.h>
Power source types used for the "Available Power Sources" resource of the LwM2M Device object.
#define LWM2M_DEVICE_PWR_SRC_TYPE_MAX 8 |
#include <include/net/lwm2m.h>
#define LWM2M_DEVICE_PWR_SRC_TYPE_PWR_OVER_ETH 4 |
#include <include/net/lwm2m.h>
#define LWM2M_DEVICE_PWR_SRC_TYPE_SOLAR 7 |
#include <include/net/lwm2m.h>
#define LWM2M_DEVICE_PWR_SRC_TYPE_UNUSED 3 |
#include <include/net/lwm2m.h>
#define LWM2M_DEVICE_PWR_SRC_TYPE_USB 5 |
#include <include/net/lwm2m.h>
#include <include/net/lwm2m.h>
Read resource flags helper macro.
#define LWM2M_MAX_PATH_STR_LEN sizeof("65535/65535/65535/65535") |
#include <include/net/lwm2m.h>
LwM2M path maximum length.
#define LWM2M_OBJECT_ACCESS_CONTROL_ID 2 |
#include <include/net/lwm2m.h>
#define LWM2M_OBJECT_CONNECTIVITY_MONITORING_ID 4 |
#include <include/net/lwm2m.h>
#define LWM2M_OBJECT_CONNECTIVITY_STATISTICS_ID 7 |
#include <include/net/lwm2m.h>
#define LWM2M_OBJECT_DEVICE_ID 3 |
#include <include/net/lwm2m.h>
#define LWM2M_OBJECT_FIRMWARE_ID 5 |
#include <include/net/lwm2m.h>
#define LWM2M_OBJECT_GATEWAY_ID 25 |
#include <include/net/lwm2m.h>
#define LWM2M_OBJECT_LOCATION_ID 6 |
#include <include/net/lwm2m.h>
#define LWM2M_OBJECT_SECURITY_ID 0 |
#include <include/net/lwm2m.h>
LwM2M Objects managed by OMA for LwM2M tech specification. Objects in this range have IDs from 0 to 1023. For more information refer to Technical Specification OMA-TS-LightweightM2M-V1_0_2-20180209-A.
#define LWM2M_OBJECT_SERVER_ID 1 |
#include <include/net/lwm2m.h>
#define LWM2M_OBJECT_SOFTWARE_MANAGEMENT_ID 9 |
#include <include/net/lwm2m.h>
#define LWM2M_OBJLNK_MAX_ID USHRT_MAX |
#include <include/net/lwm2m.h>
Maximum value for ObjLnk resource fields.
#define LWM2M_RD_CLIENT_FLAG_BOOTSTRAP BIT(0) |
#include <include/net/lwm2m.h>
Run bootstrap procedure in current session.
#define LWM2M_RES_DATA_FLAG_RO BIT(LWM2M_RES_DATA_READ_ONLY) |
#include <include/net/lwm2m.h>
Resource read-only flag.
#define LWM2M_RES_DATA_READ_ONLY 0 |
#include <include/net/lwm2m.h>
Resource read-only value bit.
#define RESULT_CONNECTION_LOST 4 |
#include <include/net/lwm2m.h>
#define RESULT_DEFAULT 0 |
#include <include/net/lwm2m.h>
LWM2M Firmware Update object result codes.
After processing a firmware update, the client sets the result via one of the following codes via lwm2m_engine_set_u8("5/0/5", [result code])
#define RESULT_INTEGRITY_FAILED 5 |
#include <include/net/lwm2m.h>
#define RESULT_INVALID_URI 7 |
#include <include/net/lwm2m.h>
#define RESULT_NO_STORAGE 2 |
#include <include/net/lwm2m.h>
#define RESULT_OUT_OF_MEM 3 |
#include <include/net/lwm2m.h>
#define RESULT_SUCCESS 1 |
#include <include/net/lwm2m.h>
#define RESULT_UNSUP_FW 6 |
#include <include/net/lwm2m.h>
#define RESULT_UNSUP_PROTO 9 |
#include <include/net/lwm2m.h>
#define RESULT_UPDATE_FAILED 8 |
#include <include/net/lwm2m.h>
#define STATE_DOWNLOADED 2 |
#include <include/net/lwm2m.h>
#define STATE_DOWNLOADING 1 |
#include <include/net/lwm2m.h>
#define STATE_IDLE 0 |
#include <include/net/lwm2m.h>
LWM2M Firmware Update object states.
An LwM2M client or the LwM2M Firmware Update object use the following codes to represent the LwM2M Firmware Update state (5/0/3).
#define STATE_UPDATING 3 |
#include <include/net/lwm2m.h>
#define UCIFI_OBJECT_BATTERY_ID 3411 |
#include <include/net/lwm2m.h>
typedef void(* lwm2m_ctx_event_cb_t) (struct lwm2m_ctx *ctx, enum lwm2m_rd_client_event event) |
#include <include/net/lwm2m.h>
Asynchronous RD client event callback.
[in] | ctx | LwM2M context generating the event |
[in] | event | LwM2M RD client event code |
#include <include/net/lwm2m.h>
Asynchronous execute notification callback.
Resource executes trigger a callback of this type.
Register a function of this type via: lwm2m_engine_register_exec_callback()
[in] | obj_inst_id | Object instance ID generating the callback. |
[in] | args | Pointer to execute arguments payload. (This can be NULL if no arguments are provided) |
[in] | args_len | Length of argument payload in bytes. |
typedef void *(* lwm2m_engine_get_data_cb_t) (uint16_t obj_inst_id, uint16_t res_id, uint16_t res_inst_id, size_t *data_len) |
#include <include/net/lwm2m.h>
Asynchronous callback to get a resource buffer and length.
Prior to accessing the data buffer of a resource, the engine can use this callback to get the buffer pointer and length instead of using the resource's data buffer.
The client or LwM2M objects can register a function of this type via: lwm2m_engine_register_read_callback() lwm2m_engine_register_pre_write_callback()
[in] | obj_inst_id | Object instance ID generating the callback. |
[in] | res_id | Resource ID generating the callback. |
[in] | res_inst_id | Resource instance ID generating the callback (typically 0 for non-multi instance resources). |
[out] | data_len | Length of the data buffer. |
typedef int(* lwm2m_engine_set_data_cb_t) (uint16_t obj_inst_id, uint16_t res_id, uint16_t res_inst_id, uint8_t *data, uint16_t data_len, bool last_block, size_t total_size) |
#include <include/net/lwm2m.h>
Asynchronous callback when data has been set to a resource buffer.
After changing the data of a resource buffer, the LwM2M engine can make use of this callback to pass the data back to the client or LwM2M objects.
A function of this type can be registered via: lwm2m_engine_register_validate_callback() lwm2m_engine_register_post_write_callback()
[in] | obj_inst_id | Object instance ID generating the callback. |
[in] | res_id | Resource ID generating the callback. |
[in] | res_inst_id | Resource instance ID generating the callback (typically 0 for non-multi instance resources). |
[in] | data | Pointer to data. |
[in] | data_len | Length of the data. |
[in] | last_block | Flag used during block transfer to indicate the last block of data. For non-block transfers this is always false. |
[in] | total_size | Expected total size of data for a block transfer. For non-block transfers this is 0. |
typedef int(* lwm2m_engine_user_cb_t) (uint16_t obj_inst_id) |
#include <include/net/lwm2m.h>
Asynchronous event notification callback.
Various object instance and resource-based events in the LwM2M engine can trigger a callback of this function type: object instance create, and object instance delete.
Register a function of this type via: lwm2m_engine_register_create_callback() lwm2m_engine_register_delete_callback()
[in] | obj_inst_id | Object instance ID generating the callback. |
typedef void(* lwm2m_observe_cb_t) (enum lwm2m_observe_event event, struct lwm2m_obj_path *path, void *user_data) |
#include <include/net/lwm2m.h>
Observe callback indicating observer adds and deletes, and notification ACKs and timeouts.
[in] | event | Observer add/delete or notification ack/timeout |
[in] | path | LwM2M path |
[in] | user_data | Pointer to user_data buffer, as provided in send_traceable_notification(). Used to determine for which data the ACKed/timed out notification was. |
typedef void(* lwm2m_socket_fault_cb_t) (int error) |
#include <include/net/lwm2m.h>
enum lwm2m_observe_event |
#include <include/net/lwm2m.h>
Observe callback events.
Enumerator | |
---|---|
LWM2M_OBSERVE_EVENT_OBSERVER_ADDED | |
LWM2M_OBSERVE_EVENT_OBSERVER_REMOVED | |
LWM2M_OBSERVE_EVENT_NOTIFY_ACK | |
LWM2M_OBSERVE_EVENT_NOTIFY_TIMEOUT |
#include <include/net/lwm2m.h>
LwM2M RD client events.
LwM2M client events are passed back to the event_cb function in lwm2m_rd_client_start()
void lwm2m_acknowledge | ( | struct lwm2m_ctx * | client_ctx | ) |
#include <include/net/lwm2m.h>
Acknowledge the currently processed request with an empty ACK.
LwM2M engine by default sends piggybacked responses for requests. This function allows to send an empty ACK for a request earlier (from the application callback). The LwM2M engine will then send the actual response as a separate CON message after all callbacks are executed.
[in] | client_ctx | LwM2M context |
int lwm2m_device_add_err | ( | uint8_t | error_code | ) |
#include <include/net/lwm2m.h>
Register a new error code with LwM2M Device object.
[in] | error_code | New error code. |
int lwm2m_engine_create_obj_inst | ( | const char * | pathstr | ) |
#include <include/net/lwm2m.h>
Create an LwM2M object instance.
LwM2M clients use this function to create non-default LwM2M objects: Example to create first temperature sensor object: lwm2m_engine_create_obj_inst("3303/0");
[in] | pathstr | LwM2M path string "obj/obj-inst" |
int lwm2m_engine_create_res_inst | ( | const char * | pathstr | ) |
#include <include/net/lwm2m.h>
Create a resource instance.
LwM2M clients use this function to create multi-resource instances: Example to create 0 instance of device available power sources: lwm2m_engine_create_res_inst("3/0/6/0");
[in] | pathstr | LwM2M path string "obj/obj-inst/res/res-inst" |
int lwm2m_engine_delete_obj_inst | ( | const char * | pathstr | ) |
#include <include/net/lwm2m.h>
Delete an LwM2M object instance.
LwM2M clients use this function to delete LwM2M objects.
[in] | pathstr | LwM2M path string "obj/obj-inst" |
int lwm2m_engine_delete_res_inst | ( | const char * | pathstr | ) |
#include <include/net/lwm2m.h>
Delete a resource instance.
Use this function to remove an existing resource instance
[in] | pathstr | LwM2M path string "obj/obj-inst/res/res-inst" |
int lwm2m_engine_get_bool | ( | const char * | pathstr, |
bool * | value | ||
) |
#include <include/net/lwm2m.h>
Get resource (instance) value (bool)
[in] | pathstr | LwM2M path string "obj/obj-inst/res(/res-inst)" |
[out] | value | bool buffer to copy data into |
int lwm2m_engine_get_float | ( | const char * | pathstr, |
double * | buf | ||
) |
#include <include/net/lwm2m.h>
Get resource (instance) value (double)
[in] | pathstr | LwM2M path string "obj/obj-inst/res(/res-inst)" |
[out] | buf | double buffer to copy data into |
int lwm2m_engine_get_objlnk | ( | const char * | pathstr, |
struct lwm2m_objlnk * | buf | ||
) |
#include <include/net/lwm2m.h>
Get resource (instance) value (ObjLnk)
[in] | pathstr | LwM2M path string "obj/obj-inst/res(/res-inst)" |
[out] | buf | lwm2m_objlnk buffer to copy data into |
int lwm2m_engine_get_opaque | ( | const char * | pathstr, |
void * | buf, | ||
uint16_t | buflen | ||
) |
#include <include/net/lwm2m.h>
Get resource (instance) value (opaque buffer)
[in] | pathstr | LwM2M path string "obj/obj-inst/res(/res-inst)" |
[out] | buf | Data buffer to copy data into |
[in] | buflen | Length of buffer |
int lwm2m_engine_get_res_data | ( | const char * | pathstr, |
void ** | data_ptr, | ||
uint16_t * | data_len, | ||
uint8_t * | data_flags | ||
) |
#include <include/net/lwm2m.h>
Get data buffer for a resource.
Use this function to get the data buffer information for the specified LwM2M resource.
[in] | pathstr | LwM2M path string "obj/obj-inst/res(/res-inst)" |
[out] | data_ptr | Data buffer pointer |
[out] | data_len | Length of buffer |
[out] | data_flags | Data buffer flags (such as read-only, etc) |
int lwm2m_engine_get_s16 | ( | const char * | pathstr, |
int16_t * | value | ||
) |
#include <include/net/lwm2m.h>
Get resource (instance) value (s16)
[in] | pathstr | LwM2M path string "obj/obj-inst/res(/res-inst)" |
[out] | value | s16 buffer to copy data into |
int lwm2m_engine_get_s32 | ( | const char * | pathstr, |
int32_t * | value | ||
) |
#include <include/net/lwm2m.h>
Get resource (instance) value (s32)
[in] | pathstr | LwM2M path string "obj/obj-inst/res(/res-inst)" |
[out] | value | s32 buffer to copy data into |
int lwm2m_engine_get_s64 | ( | const char * | pathstr, |
int64_t * | value | ||
) |
#include <include/net/lwm2m.h>
Get resource (instance) value (s64)
[in] | pathstr | LwM2M path string "obj/obj-inst/res(/res-inst)" |
[out] | value | s64 buffer to copy data into |
int lwm2m_engine_get_s8 | ( | const char * | pathstr, |
int8_t * | value | ||
) |
#include <include/net/lwm2m.h>
Get resource (instance) value (s8)
[in] | pathstr | LwM2M path string "obj/obj-inst/res(/res-inst)" |
[out] | value | s8 buffer to copy data into |
int lwm2m_engine_get_string | ( | const char * | pathstr, |
void * | str, | ||
uint16_t | strlen | ||
) |
#include <include/net/lwm2m.h>
Get resource (instance) value (string)
[in] | pathstr | LwM2M path string "obj/obj-inst/res(/res-inst)" |
[out] | str | String buffer to copy data into |
[in] | strlen | Length of buffer |
int lwm2m_engine_get_u16 | ( | const char * | pathstr, |
uint16_t * | value | ||
) |
#include <include/net/lwm2m.h>
Get resource (instance) value (u16)
[in] | pathstr | LwM2M path string "obj/obj-inst/res(/res-inst)" |
[out] | value | u16 buffer to copy data into |
int lwm2m_engine_get_u32 | ( | const char * | pathstr, |
uint32_t * | value | ||
) |
#include <include/net/lwm2m.h>
Get resource (instance) value (u32)
[in] | pathstr | LwM2M path string "obj/obj-inst/res(/res-inst)" |
[out] | value | u32 buffer to copy data into |
int lwm2m_engine_get_u64 | ( | const char * | pathstr, |
uint64_t * | value | ||
) |
#include <include/net/lwm2m.h>
Get resource (instance) value (u64)
[in] | pathstr | LwM2M path string "obj/obj-inst/res(/res-inst)" |
[out] | value | u64 buffer to copy data into |
int lwm2m_engine_get_u8 | ( | const char * | pathstr, |
uint8_t * | value | ||
) |
#include <include/net/lwm2m.h>
Get resource (instance) value (u8)
[in] | pathstr | LwM2M path string "obj/obj-inst/res(/res-inst)" |
[out] | value | u8 buffer to copy data into |
int lwm2m_engine_register_create_callback | ( | uint16_t | obj_id, |
lwm2m_engine_user_cb_t | cb | ||
) |
#include <include/net/lwm2m.h>
Set object instance create event callback.
This event is triggered when an object instance is created.
[in] | obj_id | LwM2M object id |
[in] | cb | Create object instance callback |
int lwm2m_engine_register_delete_callback | ( | uint16_t | obj_id, |
lwm2m_engine_user_cb_t | cb | ||
) |
#include <include/net/lwm2m.h>
Set object instance delete event callback.
This event is triggered when an object instance is deleted.
[in] | obj_id | LwM2M object id |
[in] | cb | Delete object instance callback |
int lwm2m_engine_register_exec_callback | ( | const char * | pathstr, |
lwm2m_engine_execute_cb_t | cb | ||
) |
#include <include/net/lwm2m.h>
Set resource execute event callback.
This event is triggered when the execute method of a resource is enabled.
[in] | pathstr | LwM2M path string "obj/obj-inst/res" |
[in] | cb | Execute resource callback |
int lwm2m_engine_register_post_write_callback | ( | const char * | pathstr, |
lwm2m_engine_set_data_cb_t | cb | ||
) |
#include <include/net/lwm2m.h>
Set resource (instance) post-write callback.
This callback is triggered after setting the value of a resource to the resource data buffer.
It allows an LwM2M client or object to post-process the value of a resource or trigger other related resource calculations.
[in] | pathstr | LwM2M path string "obj/obj-inst/res(/res-inst)" |
[in] | cb | Post-write resource callback |
int lwm2m_engine_register_pre_write_callback | ( | const char * | pathstr, |
lwm2m_engine_get_data_cb_t | cb | ||
) |
#include <include/net/lwm2m.h>
Set resource (instance) pre-write callback.
This callback is triggered before setting the value of a resource. It can pass a special data buffer to the engine so that the actual resource value can be calculated later, etc.
[in] | pathstr | LwM2M path string "obj/obj-inst/res(/res-inst)" |
[in] | cb | Pre-write resource callback |
int lwm2m_engine_register_read_callback | ( | const char * | pathstr, |
lwm2m_engine_get_data_cb_t | cb | ||
) |
#include <include/net/lwm2m.h>
Set resource (instance) read callback.
LwM2M clients can use this to set the callback function for resource reads.
[in] | pathstr | LwM2M path string "obj/obj-inst/res(/res-inst)" |
[in] | cb | Read resource callback |
int lwm2m_engine_register_validate_callback | ( | const char * | pathstr, |
lwm2m_engine_set_data_cb_t | cb | ||
) |
#include <include/net/lwm2m.h>
Set resource (instance) validation callback.
This callback is triggered before setting the value of a resource to the resource data buffer.
The callback allows an LwM2M client or object to validate the data before writing and notify an error if the data should be discarded for any reason (by returning a negative error code).
CONFIG_LWM2M_ENGINE_VALIDATION_BUFFER_SIZE
is large enough to store each of the validated resources (individually).[in] | pathstr | LwM2M path string "obj/obj-inst/res(/res-inst)" |
[in] | cb | Validate resource data callback |
int lwm2m_engine_set_bool | ( | const char * | pathstr, |
bool | value | ||
) |
#include <include/net/lwm2m.h>
Set resource (instance) value (bool)
[in] | pathstr | LwM2M path string "obj/obj-inst/res(/res-inst)" |
[in] | value | bool value |
int lwm2m_engine_set_float | ( | const char * | pathstr, |
double * | value | ||
) |
#include <include/net/lwm2m.h>
Set resource (instance) value (double)
[in] | pathstr | LwM2M path string "obj/obj-inst/res(/res-inst)" |
[in] | value | double value |
int lwm2m_engine_set_objlnk | ( | const char * | pathstr, |
struct lwm2m_objlnk * | value | ||
) |
#include <include/net/lwm2m.h>
Set resource (instance) value (ObjLnk)
[in] | pathstr | LwM2M path string "obj/obj-inst/res(/res-inst)" |
[in] | value | pointer to the lwm2m_objlnk structure |
int lwm2m_engine_set_opaque | ( | const char * | pathstr, |
char * | data_ptr, | ||
uint16_t | data_len | ||
) |
#include <include/net/lwm2m.h>
Set resource (instance) value (opaque buffer)
[in] | pathstr | LwM2M path string "obj/obj-inst/res(/res-inst)" |
[in] | data_ptr | Data buffer |
[in] | data_len | Length of buffer |
int lwm2m_engine_set_res_data | ( | const char * | pathstr, |
void * | data_ptr, | ||
uint16_t | data_len, | ||
uint8_t | data_flags | ||
) |
#include <include/net/lwm2m.h>
Set data buffer for a resource.
Use this function to set the data buffer and flags for the specified LwM2M resource.
[in] | pathstr | LwM2M path string "obj/obj-inst/res(/res-inst)" |
[in] | data_ptr | Data buffer pointer |
[in] | data_len | Length of buffer |
[in] | data_flags | Data buffer flags (such as read-only, etc) |
int lwm2m_engine_set_s16 | ( | const char * | pathstr, |
int16_t | value | ||
) |
#include <include/net/lwm2m.h>
Set resource (instance) value (s16)
[in] | pathstr | LwM2M path string "obj/obj-inst/res(/res-inst)" |
[in] | value | s16 value |
int lwm2m_engine_set_s32 | ( | const char * | pathstr, |
int32_t | value | ||
) |
#include <include/net/lwm2m.h>
Set resource (instance) value (s32)
[in] | pathstr | LwM2M path string "obj/obj-inst/res(/res-inst)" |
[in] | value | s32 value |
int lwm2m_engine_set_s64 | ( | const char * | pathstr, |
int64_t | value | ||
) |
#include <include/net/lwm2m.h>
Set resource (instance) value (s64)
[in] | pathstr | LwM2M path string "obj/obj-inst/res(/res-inst)" |
[in] | value | s64 value |
int lwm2m_engine_set_s8 | ( | const char * | pathstr, |
int8_t | value | ||
) |
#include <include/net/lwm2m.h>
Set resource (instance) value (s8)
[in] | pathstr | LwM2M path string "obj/obj-inst/res(/res-inst)" |
[in] | value | s8 value |
int lwm2m_engine_set_string | ( | const char * | pathstr, |
char * | data_ptr | ||
) |
#include <include/net/lwm2m.h>
Set resource (instance) value (string)
[in] | pathstr | LwM2M path string "obj/obj-inst/res(/res-inst)" |
[in] | data_ptr | NULL terminated char buffer |
int lwm2m_engine_set_u16 | ( | const char * | pathstr, |
uint16_t | value | ||
) |
#include <include/net/lwm2m.h>
Set resource (instance) value (u16)
[in] | pathstr | LwM2M path string "obj/obj-inst/res(/res-inst)" |
[in] | value | u16 value |
int lwm2m_engine_set_u32 | ( | const char * | pathstr, |
uint32_t | value | ||
) |
#include <include/net/lwm2m.h>
Set resource (instance) value (u32)
[in] | pathstr | LwM2M path string "obj/obj-inst/res(/res-inst)" |
[in] | value | u32 value |
int lwm2m_engine_set_u64 | ( | const char * | pathstr, |
uint64_t | value | ||
) |
#include <include/net/lwm2m.h>
Set resource (instance) value (u64)
[in] | pathstr | LwM2M path string "obj/obj-inst/res(/res-inst)" |
[in] | value | u64 value |
int lwm2m_engine_set_u8 | ( | const char * | pathstr, |
uint8_t | value | ||
) |
#include <include/net/lwm2m.h>
Set resource (instance) value (u8)
[in] | pathstr | LwM2M path string "obj/obj-inst/res(/res-inst)" |
[in] | value | u8 value |
int lwm2m_engine_start | ( | struct lwm2m_ctx * | client_ctx | ) |
#include <include/net/lwm2m.h>
Start the LwM2M engine.
LwM2M clients normally do not need to call this function as it is called by lwm2m_rd_client_start(). However, if the client does not use the RD client implementation, it will need to be called manually.
[in] | client_ctx | LwM2M context |
int lwm2m_engine_update_observer_max_period | ( | const char * | pathstr, |
uint32_t | period_s | ||
) |
#include <include/net/lwm2m.h>
Change an observer's pmax value.
LwM2M clients use this function to modify the pmax attribute for an observation being made. Example to update the pmax of a temperature sensor value being observed: lwm2m_engine_update_observer_max_period("3303/0/5700",5);
[in] | pathstr | LwM2M path string "obj/obj-inst/res" |
[in] | period_s | Value of pmax to be given (in seconds). |
int lwm2m_engine_update_observer_min_period | ( | const char * | pathstr, |
uint32_t | period_s | ||
) |
#include <include/net/lwm2m.h>
Change an observer's pmin value.
LwM2M clients use this function to modify the pmin attribute for an observation being made. Example to update the pmin of a temperature sensor value being observed: lwm2m_engine_update_observer_min_period("3303/0/5700",5);
[in] | pathstr | LwM2M path string "obj/obj-inst/res" |
[in] | period_s | Value of pmin to be given (in seconds). |
int lwm2m_engine_update_service_period | ( | k_work_handler_t | service, |
uint32_t | period_ms | ||
) |
#include <include/net/lwm2m.h>
Update the period of a given service.
Allow the period modification on an existing service created with lwm2m_engine_add_service(). Example to frequency at which a periodic_service changes it's values : lwm2m_engine_update_service(device_periodic_service,5*MSEC_PER_SEC);
[in] | service | Handler of the periodic_service |
[in] | period_ms | New period for the periodic_service (in milliseconds) |
char * lwm2m_path_log_strdup | ( | char * | buf, |
struct lwm2m_obj_path * | path | ||
) |
#include <include/net/lwm2m.h>
Helper function to print path objects' contents to log.
[in] | buf | The buffer to use for formatting the string |
[in] | path | The path to stringify |
void lwm2m_rd_client_start | ( | struct lwm2m_ctx * | client_ctx, |
const char * | ep_name, | ||
uint32_t | flags, | ||
lwm2m_ctx_event_cb_t | event_cb, | ||
lwm2m_observe_cb_t | observe_cb | ||
) |
#include <include/net/lwm2m.h>
Start the LwM2M RD (Registration / Discovery) Client.
The RD client sits just above the LwM2M engine and performs the necessary actions to implement the "Registration interface". For more information see Section 5.3 "Client Registration Interface" of the LwM2M Technical Specification.
NOTE: lwm2m_engine_start() is called automatically by this function.
[in] | client_ctx | LwM2M context |
[in] | ep_name | Registered endpoint name |
[in] | flags | Flags used to configure current LwM2M session. |
[in] | event_cb | Client event callback function |
[in] | observe_cb | Observe callback function called when an observer was added or deleted, and when a notification was acked or has timed out |
void lwm2m_rd_client_stop | ( | struct lwm2m_ctx * | client_ctx, |
lwm2m_ctx_event_cb_t | event_cb, | ||
bool | deregister | ||
) |
#include <include/net/lwm2m.h>
Stop the LwM2M RD (De-register) Client.
The RD client sits just above the LwM2M engine and performs the necessary actions to implement the "Registration interface". For more information see Section 5.3 "Client Registration Interface" of the LwM2M Technical Specification.
[in] | client_ctx | LwM2M context |
[in] | event_cb | Client event callback function |
[in] | deregister | True to deregister the client if registered. False to force close the connection. |
void lwm2m_rd_client_update | ( | void | ) |
#include <include/net/lwm2m.h>
Trigger a Registration Update of the LwM2M RD Client.
int lwm2m_update_device_service_period | ( | uint32_t | period_ms | ) |
#include <include/net/lwm2m.h>
Update the period of the device service.
Change the duration of the periodic device service that notifies the current time.
[in] | period_ms | New period for the device service (in milliseconds) |