device.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2019 HAW Hamburg
3  *
4  * This file is subject to the terms and conditions of the GNU Lesser
5  * General Public License v2.1. See the file LICENSE in the top level
6  * directory for more details.
7  */
8 
9 #pragma once
10 
49 #ifdef __cplusplus
50 extern "C" {
51 #endif
52 
53 #include <stdio.h>
54 #include <stdlib.h>
55 #include <string.h>
56 
57 #include "liblwm2m.h"
58 #include "lwm2m_client.h"
59 #include "lwm2m_client_config.h"
60 
91 };
92 
108 };
109 
120 #ifndef CONFIG_LWM2M_DEVICE_NAME
121 #define CONFIG_LWM2M_DEVICE_NAME "testRIOTDevice"
122 #endif
123 
127 #ifndef CONFIG_LWM2M_DEVICE_MANUFACTURER
128 #define CONFIG_LWM2M_DEVICE_MANUFACTURER "A RIOT maker"
129 #endif
130 
136 #ifndef CONFIG_LWM2M_DEVICE_MODEL
137 #define CONFIG_LWM2M_DEVICE_MODEL RIOT_BOARD
138 #endif
139 
143 #ifndef CONFIG_LWM2M_DEVICE_SERIAL
144 #define CONFIG_LWM2M_DEVICE_SERIAL "undefined"
145 #endif
146 
152 #ifndef CONFIG_LWM2M_DEVICE_FW_VERSION
153 #define CONFIG_LWM2M_DEVICE_FW_VERSION RIOT_VERSION
154 #endif
155 
170 #ifdef DOXYGEN
174 #define CONFIG_LWM2M_DEVICE_BINDING_U
175 
179 #define CONFIG_LWM2M_DEVICE_BINDING_UQ
180 
184 #define CONFIG_LWM2M_DEVICE_BINDING_S
185 
189 #define CONFIG_LWM2M_DEVICE_BINDING_SQ
190 
194 #define CONFIG_LWM2M_DEVICE_BINDING_US
195 
199 #define CONFIG_LWM2M_DEVICE_BINDING_UQS
200 #endif
206 #ifndef CONFIG_LWM2M_DEVICE_TYPE
207 #define CONFIG_LWM2M_DEVICE_TYPE "RIOT device"
208 #endif
209 
215 #ifndef CONFIG_LWM2M_DEVICE_HW_VERSION
216 #define CONFIG_LWM2M_DEVICE_HW_VERSION RIOT_BOARD
217 #endif
218 
224 #ifndef CONFIG_LWM2M_DEVICE_SW_VERSION
225 #define CONFIG_LWM2M_DEVICE_SW_VERSION RIOT_VERSION
226 #endif
234 #if defined(CONFIG_LWM2M_DEVICE_BINDING_U)
235 #define CONFIG_LWM2M_DEVICE_BINDINGS "U"
236 #elif defined(CONFIG_LWM2M_DEVICE_BINDING_UQ)
237 #define CONFIG_LWM2M_DEVICE_BINDINGS "UQ"
238 #elif defined(CONFIG_LWM2M_DEVICE_BINDING_S)
239 #define CONFIG_LWM2M_DEVICE_BINDINGS "S"
240 #elif defined(CONFIG_LWM2M_DEVICE_BINDING_SQ)
241 #define CONFIG_LWM2M_DEVICE_BINDINGS "SQ"
242 #elif defined(CONFIG_LWM2M_DEVICE_BINDING_US)
243 #define CONFIG_LWM2M_DEVICE_BINDINGS "US"
244 #elif defined(CONFIG_LWM2M_DEVICE_BINDING_UQS)
245 #define CONFIG_LWM2M_DEVICE_BINDINGS "UQS"
246 #else
247 #define CONFIG_LWM2M_DEVICE_BINDINGS "U"
248 #endif
249 
257 lwm2m_object_t *lwm2m_object_device_init(lwm2m_client_data_t *client_data);
258 
267 
268 #ifdef __cplusplus
269 }
270 #endif
271 
lwm2m_device_resources
Resources of the LwM2M device object instance.
Definition: device.h:66
lwm2m_object_t * lwm2m_object_device_init(lwm2m_client_data_t *client_data)
Initialize the Device object.
lwm2m_device_error_codes
Error codes for the Error resource in the device object of LwM2M.
Definition: device.h:98
bool lwm2m_device_reboot_requested(void)
Determines if a reboot request has been issued to the device by a server.
@ LWM2M_RES_HW_VERSION
Current hardware version of the device.
Definition: device.h:85
@ LWM2M_DEVICE_RESOURCES
Number of resources.
Definition: device.h:90
@ LWM2M_RES_REBOOT
Reboot the device.
Definition: device.h:71
@ LWM2M_RES_ERROR_CODE
Last error code.
Definition: device.h:78
@ LWM2M_RES_BINDINGS
Indicates supported bindings and modes on the client.
Definition: device.h:83
@ LWM2M_RES_EXT_DEV_INFO
External device object instance.
Definition: device.h:89
@ LWM2M_RES_FW_VER
Current firmware version of the device.
Definition: device.h:70
@ LWM2M_RES_SERIAL
Serial number.
Definition: device.h:69
@ LWM2M_RES_TIME_ZONE
Indicates the time zone of the device.
Definition: device.h:82
@ LWM2M_RES_POWER_SRC
Available power sources.
Definition: device.h:73
@ LWM2M_RES_MEM_TOTAL
Total amount of storage space in the device (kB.
Definition: device.h:88
@ LWM2M_RES_SW_VERSION
Current software version on the device.
Definition: device.h:86
@ LWM2M_RES_TYPE
Type of device.
Definition: device.h:84
@ LWM2M_RES_POWER_VOL
Present voltage for each power source.
Definition: device.h:74
@ LWM2M_RES_BATTERY_STATUS
Battery status when internal battery is present.
Definition: device.h:87
@ LWM2M_RES_TIME_OFFSET
Indicated the UTC offset for the device.
Definition: device.h:81
@ LWM2M_RES_FRESET
Perform a factory reset of the device.
Definition: device.h:72
@ LWM2M_RES_POWER_AMP
Present current for each power source.
Definition: device.h:75
@ LWM2M_RES_MEM_FREE
Estimated current available storage (kB)
Definition: device.h:77
@ LWM2M_RES_MANUFACTURER
Human readable manufacturer name.
Definition: device.h:67
@ LWM2M_RES_MODEL_NO
Model identifier (manufacturer specified string)
Definition: device.h:68
@ LWM2M_RES_TIME
Current UNIX time of the client.
Definition: device.h:80
@ LWM2M_RES_ERROR_CODE_RESET
Delete all error code instances.
Definition: device.h:79
@ LWM2M_RES_BATTERY_LEVEL
Current battery level as a percentage.
Definition: device.h:76
@ LWM2M_DEVICE_ERR_NO_ERR
No error.
Definition: device.h:99
@ LWM2M_DEVICE_ERR_SMS_ERR
SMS failure.
Definition: device.h:105
@ LWM2M_DEVICE_ERR_LOW_SIGNAL
Low received signal strength.
Definition: device.h:103
@ LWM2M_DEVICE_ERR_NO_MEM
Out of memory.
Definition: device.h:104
@ LWM2M_DEVICE_ERR_EXT_OFF
External power supply off.
Definition: device.h:101
@ LWM2M_DEVICE_ERR_GPS_ERR
GPS module failure.
Definition: device.h:102
@ LWM2M_DEVICE_ERR_IP_ERR
IP connectivity failure.
Definition: device.h:106
@ LWM2M_DEVICE_ERR_LOW_BATT
Low battery power.
Definition: device.h:100
@ LWM2M_DEVICE_ERR_PERIPH_ERR
Peripheral malfunction.
Definition: device.h:107
Definitions and public API for a LwM2M client using Wakaama.
LwM2M client configurations.
LwM2M client descriptor.
Definition: lwm2m_client.h:69