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 
47 #ifndef OBJECTS_DEVICE_H
48 #define OBJECTS_DEVICE_H
49 
50 #ifdef __cplusplus
51 extern "C" {
52 #endif
53 
54 #include <stdio.h>
55 #include <stdlib.h>
56 #include <string.h>
57 
58 #include "liblwm2m.h"
59 #include "lwm2m_client.h"
60 #include "lwm2m_client_config.h"
61 
92 };
93 
109 };
110 
121 #ifndef CONFIG_LWM2M_DEVICE_NAME
122 #define CONFIG_LWM2M_DEVICE_NAME "testRIOTDevice"
123 #endif
124 
128 #ifndef CONFIG_LWM2M_DEVICE_MANUFACTURER
129 #define CONFIG_LWM2M_DEVICE_MANUFACTURER "A RIOT maker"
130 #endif
131 
137 #ifndef CONFIG_LWM2M_DEVICE_MODEL
138 #define CONFIG_LWM2M_DEVICE_MODEL RIOT_BOARD
139 #endif
140 
144 #ifndef CONFIG_LWM2M_DEVICE_SERIAL
145 #define CONFIG_LWM2M_DEVICE_SERIAL "undefined"
146 #endif
147 
153 #ifndef CONFIG_LWM2M_DEVICE_FW_VERSION
154 #define CONFIG_LWM2M_DEVICE_FW_VERSION RIOT_VERSION
155 #endif
156 
171 #ifdef DOXYGEN
175 #define CONFIG_LWM2M_DEVICE_BINDING_U
176 
180 #define CONFIG_LWM2M_DEVICE_BINDING_UQ
181 
185 #define CONFIG_LWM2M_DEVICE_BINDING_S
186 
190 #define CONFIG_LWM2M_DEVICE_BINDING_SQ
191 
195 #define CONFIG_LWM2M_DEVICE_BINDING_US
196 
200 #define CONFIG_LWM2M_DEVICE_BINDING_UQS
201 #endif
207 #ifndef CONFIG_LWM2M_DEVICE_TYPE
208 #define CONFIG_LWM2M_DEVICE_TYPE "RIOT device"
209 #endif
210 
216 #ifndef CONFIG_LWM2M_DEVICE_HW_VERSION
217 #define CONFIG_LWM2M_DEVICE_HW_VERSION RIOT_BOARD
218 #endif
219 
225 #ifndef CONFIG_LWM2M_DEVICE_SW_VERSION
226 #define CONFIG_LWM2M_DEVICE_SW_VERSION RIOT_VERSION
227 #endif
235 #if defined(CONFIG_LWM2M_DEVICE_BINDING_U)
236 #define CONFIG_LWM2M_DEVICE_BINDINGS "U"
237 #elif defined(CONFIG_LWM2M_DEVICE_BINDING_UQ)
238 #define CONFIG_LWM2M_DEVICE_BINDINGS "UQ"
239 #elif defined(CONFIG_LWM2M_DEVICE_BINDING_S)
240 #define CONFIG_LWM2M_DEVICE_BINDINGS "S"
241 #elif defined(CONFIG_LWM2M_DEVICE_BINDING_SQ)
242 #define CONFIG_LWM2M_DEVICE_BINDINGS "SQ"
243 #elif defined(CONFIG_LWM2M_DEVICE_BINDING_US)
244 #define CONFIG_LWM2M_DEVICE_BINDINGS "US"
245 #elif defined(CONFIG_LWM2M_DEVICE_BINDING_UQS)
246 #define CONFIG_LWM2M_DEVICE_BINDINGS "UQS"
247 #else
248 #define CONFIG_LWM2M_DEVICE_BINDINGS "U"
249 #endif
250 
258 lwm2m_object_t *lwm2m_object_device_init(lwm2m_client_data_t *client_data);
259 
268 
269 #ifdef __cplusplus
270 }
271 #endif
272 
273 #endif /* OBJECTS_DEVICE_H */
lwm2m_device_resources
Resources of the LwM2M device object instance.
Definition: device.h:67
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:99
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:86
@ LWM2M_DEVICE_RESOURCES
Number of resources.
Definition: device.h:91
@ LWM2M_RES_REBOOT
Reboot the device.
Definition: device.h:72
@ LWM2M_RES_ERROR_CODE
Last error code.
Definition: device.h:79
@ LWM2M_RES_BINDINGS
Indicates supported bindings and modes on the client.
Definition: device.h:84
@ LWM2M_RES_EXT_DEV_INFO
External device object instance.
Definition: device.h:90
@ LWM2M_RES_FW_VER
Current firmware version of the device.
Definition: device.h:71
@ LWM2M_RES_SERIAL
Serial number.
Definition: device.h:70
@ LWM2M_RES_TIME_ZONE
Indicates the time zone of the device.
Definition: device.h:83
@ LWM2M_RES_POWER_SRC
Available power sources.
Definition: device.h:74
@ LWM2M_RES_MEM_TOTAL
Total amount of storage space in the device (kB.
Definition: device.h:89
@ LWM2M_RES_SW_VERSION
Current software version on the device.
Definition: device.h:87
@ LWM2M_RES_TYPE
Type of device.
Definition: device.h:85
@ LWM2M_RES_POWER_VOL
Present voltage for each power source.
Definition: device.h:75
@ LWM2M_RES_BATTERY_STATUS
Battery status when internal battery is present.
Definition: device.h:88
@ LWM2M_RES_TIME_OFFSET
Indicated the UTC offset for the device.
Definition: device.h:82
@ LWM2M_RES_FRESET
Perform a factory reset of the device.
Definition: device.h:73
@ LWM2M_RES_POWER_AMP
Present current for each power source.
Definition: device.h:76
@ LWM2M_RES_MEM_FREE
Estimated current available storage (kB)
Definition: device.h:78
@ LWM2M_RES_MANUFACTURER
Human readable manufacturer name.
Definition: device.h:68
@ LWM2M_RES_MODEL_NO
Model identifier (manufacturer specified string)
Definition: device.h:69
@ LWM2M_RES_TIME
Current UNIX time of the client.
Definition: device.h:81
@ LWM2M_RES_ERROR_CODE_RESET
Delete all error code instances.
Definition: device.h:80
@ LWM2M_RES_BATTERY_LEVEL
Current battery level as a percentage.
Definition: device.h:77
@ LWM2M_DEVICE_ERR_NO_ERR
No error.
Definition: device.h:100
@ LWM2M_DEVICE_ERR_SMS_ERR
SMS failure.
Definition: device.h:106
@ LWM2M_DEVICE_ERR_LOW_SIGNAL
Low received signal strength.
Definition: device.h:104
@ LWM2M_DEVICE_ERR_NO_MEM
Out of memory.
Definition: device.h:105
@ LWM2M_DEVICE_ERR_EXT_OFF
External power supply off.
Definition: device.h:102
@ LWM2M_DEVICE_ERR_GPS_ERR
GPS module failure.
Definition: device.h:103
@ LWM2M_DEVICE_ERR_IP_ERR
IP connectivity failure.
Definition: device.h:107
@ LWM2M_DEVICE_ERR_LOW_BATT
Low battery power.
Definition: device.h:101
@ LWM2M_DEVICE_ERR_PERIPH_ERR
Peripheral malfunction.
Definition: device.h:108
Definitions and public API for a LwM2M client using Wakaama.
LwM2M client configurations.
stdio wrapper to extend the C libs stdio
LwM2M client descriptor.
Definition: lwm2m_client.h:70