Loading...
Searching...
No Matches
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
48
49#ifdef __cplusplus
50extern "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
92
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
202
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
228
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
257lwm2m_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_device_error_codes
Error codes for the Error resource in the device object of LwM2M.
Definition device.h:98
lwm2m_object_t * lwm2m_object_device_init(lwm2m_client_data_t *client_data)
Initialize the Device object.
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.