net: lwm2m: Unify reusable resources creation

Some of the objects redefined reusable resources IDs, while others used
a common header which defines resource IDs. Unify the approach and use
the header in every object.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
This commit is contained in:
Robert Lubos 2021-02-11 16:01:23 +01:00 committed by Anas Nashif
commit 49b0e2cc76
8 changed files with 157 additions and 209 deletions

View file

@ -20,6 +20,7 @@ LOG_MODULE_REGISTER(LOG_MODULE_NAME);
#include "lwm2m_object.h" #include "lwm2m_object.h"
#include "lwm2m_engine.h" #include "lwm2m_engine.h"
#include "lwm2m_resource_ids.h"
#define ACCEL_VERSION_MAJOR 1 #define ACCEL_VERSION_MAJOR 1
#define ACCEL_VERSION_MINOR 0 #define ACCEL_VERSION_MINOR 0
@ -29,16 +30,8 @@ LOG_MODULE_REGISTER(LOG_MODULE_NAME);
#else #else
#define ADD_TIMESTAMPS 0 #define ADD_TIMESTAMPS 0
#endif #endif
/* Server resource IDs */
#define ACCEL_X_VALUE_ID 5702
#define ACCEL_Y_VALUE_ID 5703
#define ACCEL_Z_VALUE_ID 5704
#define ACCEL_SENSOR_UNITS_ID 5701
#define ACCEL_MIN_RANGE_VALUE_ID 5603
#define ACCEL_MAX_RANGE_VALUE_ID 5604
#if ADD_TIMESTAMPS
#define ACCEL_TIMESTAMP_ID 5518
#if ADD_TIMESTAMPS
#define ACCEL_MAX_ID 7 #define ACCEL_MAX_ID 7
#else #else
#define ACCEL_MAX_ID 6 #define ACCEL_MAX_ID 6
@ -65,14 +58,14 @@ static struct ipso_accel_data accel_data[MAX_INSTANCE_COUNT];
static struct lwm2m_engine_obj accel; static struct lwm2m_engine_obj accel;
static struct lwm2m_engine_obj_field fields[] = { static struct lwm2m_engine_obj_field fields[] = {
OBJ_FIELD_DATA(ACCEL_X_VALUE_ID, R, FLOAT32), OBJ_FIELD_DATA(X_VALUE_RID, R, FLOAT32),
OBJ_FIELD_DATA(ACCEL_Y_VALUE_ID, R_OPT, FLOAT32), OBJ_FIELD_DATA(Y_VALUE_RID, R_OPT, FLOAT32),
OBJ_FIELD_DATA(ACCEL_Z_VALUE_ID, R_OPT, FLOAT32), OBJ_FIELD_DATA(Z_VALUE_RID, R_OPT, FLOAT32),
OBJ_FIELD_DATA(ACCEL_SENSOR_UNITS_ID, R_OPT, STRING), OBJ_FIELD_DATA(SENSOR_UNITS_RID, R_OPT, STRING),
OBJ_FIELD_DATA(ACCEL_MIN_RANGE_VALUE_ID, R_OPT, FLOAT32), OBJ_FIELD_DATA(MIN_RANGE_VALUE_RID, R_OPT, FLOAT32),
OBJ_FIELD_DATA(ACCEL_MAX_RANGE_VALUE_ID, R_OPT, FLOAT32), OBJ_FIELD_DATA(MAX_RANGE_VALUE_RID, R_OPT, FLOAT32),
#if ADD_TIMESTAMPS #if ADD_TIMESTAMPS
OBJ_FIELD_DATA(ACCEL_TIMESTAMP_ID, RW_OPT, TIME), OBJ_FIELD_DATA(TIMESTAMP_RID, RW_OPT, TIME),
#endif #endif
}; };
@ -113,27 +106,25 @@ static struct lwm2m_engine_obj_inst *accel_create(uint16_t obj_inst_id)
init_res_instance(res_inst[avail], ARRAY_SIZE(res_inst[avail])); init_res_instance(res_inst[avail], ARRAY_SIZE(res_inst[avail]));
/* initialize instance resource data */ /* initialize instance resource data */
INIT_OBJ_RES_DATA(ACCEL_X_VALUE_ID, res[avail], i, res_inst[avail], j, INIT_OBJ_RES_DATA(X_VALUE_RID, res[avail], i, res_inst[avail], j,
&accel_data[avail].x_value, &accel_data[avail].x_value,
sizeof(accel_data[avail].x_value)); sizeof(accel_data[avail].x_value));
INIT_OBJ_RES_DATA(ACCEL_Y_VALUE_ID, res[avail], i, res_inst[avail], j, INIT_OBJ_RES_DATA(Y_VALUE_RID, res[avail], i, res_inst[avail], j,
&accel_data[avail].y_value, &accel_data[avail].y_value,
sizeof(accel_data[avail].y_value)); sizeof(accel_data[avail].y_value));
INIT_OBJ_RES_DATA(ACCEL_Z_VALUE_ID, res[avail], i, res_inst[avail], j, INIT_OBJ_RES_DATA(Z_VALUE_RID, res[avail], i, res_inst[avail], j,
&accel_data[avail].z_value, &accel_data[avail].z_value,
sizeof(accel_data[avail].z_value)); sizeof(accel_data[avail].z_value));
INIT_OBJ_RES_OPTDATA(ACCEL_SENSOR_UNITS_ID, res[avail], i, INIT_OBJ_RES_OPTDATA(SENSOR_UNITS_RID, res[avail], i,
res_inst[avail], j); res_inst[avail], j);
INIT_OBJ_RES_DATA(ACCEL_MIN_RANGE_VALUE_ID, res[avail], i, INIT_OBJ_RES_DATA(MIN_RANGE_VALUE_RID, res[avail], i, res_inst[avail],
res_inst[avail], j, j, &accel_data[avail].min_range,
&accel_data[avail].min_range,
sizeof(accel_data[avail].min_range)); sizeof(accel_data[avail].min_range));
INIT_OBJ_RES_DATA(ACCEL_MAX_RANGE_VALUE_ID, res[avail], i, INIT_OBJ_RES_DATA(MAX_RANGE_VALUE_RID, res[avail], i, res_inst[avail],
res_inst[avail], j, j, &accel_data[avail].max_range,
&accel_data[avail].max_range,
sizeof(accel_data[avail].max_range)); sizeof(accel_data[avail].max_range));
#if ADD_TIMESTAMPS #if ADD_TIMESTAMPS
INIT_OBJ_RES_OPTDATA(ACCEL_TIMESTAMP_ID, res[avail], i, INIT_OBJ_RES_OPTDATA(TIMESTAMP_RID, res[avail], i,
res_inst[avail], j); res_inst[avail], j);
#endif #endif

View file

@ -20,21 +20,11 @@ LOG_MODULE_REGISTER(LOG_MODULE_NAME);
#include "lwm2m_object.h" #include "lwm2m_object.h"
#include "lwm2m_engine.h" #include "lwm2m_engine.h"
#include "lwm2m_resource_ids.h"
#define BUZZER_VERSION_MAJOR 1 #define BUZZER_VERSION_MAJOR 1
#define BUZZER_VERSION_MINOR 0 #define BUZZER_VERSION_MINOR 0
/* resource IDs */
#define BUZZER_ON_OFF_ID 5850
#define BUZZER_LEVEL_ID 5548
#define BUZZER_DELAY_DURATION_ID 5521
#define BUZZER_MINIMUM_OFF_TIME_ID 5525
#define BUZZER_APPLICATION_TYPE_ID 5750
/* This field is actually not in the spec, so nothing sets it except here
* users can listen for post_write events to it for buzzer on/off events
*/
#define BUZZER_DIGITAL_STATE_ID 5500
#define BUZZER_MAX_ID 6 #define BUZZER_MAX_ID 6
#define MAX_INSTANCE_COUNT CONFIG_LWM2M_IPSO_BUZZER_INSTANCE_COUNT #define MAX_INSTANCE_COUNT CONFIG_LWM2M_IPSO_BUZZER_INSTANCE_COUNT
@ -64,12 +54,16 @@ static struct ipso_buzzer_data buzzer_data[MAX_INSTANCE_COUNT];
static struct lwm2m_engine_obj buzzer; static struct lwm2m_engine_obj buzzer;
static struct lwm2m_engine_obj_field fields[] = { static struct lwm2m_engine_obj_field fields[] = {
OBJ_FIELD_DATA(BUZZER_ON_OFF_ID, RW, BOOL), OBJ_FIELD_DATA(ON_OFF_RID, RW, BOOL),
OBJ_FIELD_DATA(BUZZER_LEVEL_ID, RW_OPT, FLOAT32), OBJ_FIELD_DATA(LEVEL_RID, RW_OPT, FLOAT32),
OBJ_FIELD_DATA(BUZZER_DELAY_DURATION_ID, RW_OPT, FLOAT64), OBJ_FIELD_DATA(DELAY_DURATION_RID, RW_OPT, FLOAT64),
OBJ_FIELD_DATA(BUZZER_MINIMUM_OFF_TIME_ID, RW, FLOAT64), OBJ_FIELD_DATA(MINIMUM_OFF_TIME_RID, RW, FLOAT64),
OBJ_FIELD_DATA(BUZZER_APPLICATION_TYPE_ID, RW_OPT, STRING), OBJ_FIELD_DATA(APPLICATION_TYPE_RID, RW_OPT, STRING),
OBJ_FIELD_DATA(BUZZER_DIGITAL_STATE_ID, R, BOOL), /* This field is actually not in the spec, so nothing sets it except
* here users can listen for post_write events to it for buzzer on/off
* events
*/
OBJ_FIELD_DATA(DIGITAL_INPUT_STATE_RID, R, BOOL),
}; };
static struct lwm2m_engine_obj_inst inst[MAX_INSTANCE_COUNT]; static struct lwm2m_engine_obj_inst inst[MAX_INSTANCE_COUNT];
@ -121,7 +115,7 @@ static int start_buzzer(struct ipso_buzzer_data *buzzer)
buzzer->trigger_offset = k_uptime_get(); buzzer->trigger_offset = k_uptime_get();
snprintk(path, MAX_RESOURCE_LEN, "%d/%u/%d", IPSO_OBJECT_BUZZER_ID, snprintk(path, MAX_RESOURCE_LEN, "%d/%u/%d", IPSO_OBJECT_BUZZER_ID,
buzzer->obj_inst_id, BUZZER_DIGITAL_STATE_ID); buzzer->obj_inst_id, DIGITAL_INPUT_STATE_RID);
lwm2m_engine_set_bool(path, true); lwm2m_engine_set_bool(path, true);
float2ms(&buzzer->delay_duration, &temp); float2ms(&buzzer->delay_duration, &temp);
@ -140,7 +134,7 @@ static int stop_buzzer(struct ipso_buzzer_data *buzzer, bool cancel)
} }
snprintk(path, MAX_RESOURCE_LEN, "%d/%u/%d", IPSO_OBJECT_BUZZER_ID, snprintk(path, MAX_RESOURCE_LEN, "%d/%u/%d", IPSO_OBJECT_BUZZER_ID,
buzzer->obj_inst_id, BUZZER_DIGITAL_STATE_ID); buzzer->obj_inst_id, DIGITAL_INPUT_STATE_RID);
lwm2m_engine_set_bool(path, false); lwm2m_engine_set_bool(path, false);
if (cancel) { if (cancel) {
@ -215,27 +209,23 @@ static struct lwm2m_engine_obj_inst *buzzer_create(uint16_t obj_inst_id)
init_res_instance(res_inst[avail], ARRAY_SIZE(res_inst[avail])); init_res_instance(res_inst[avail], ARRAY_SIZE(res_inst[avail]));
/* initialize instance resource data */ /* initialize instance resource data */
INIT_OBJ_RES(BUZZER_ON_OFF_ID, res[avail], i, INIT_OBJ_RES(ON_OFF_RID, res[avail], i, res_inst[avail], j, 1, false,
res_inst[avail], j, 1, false, true, true, &buzzer_data[avail].onoff,
&buzzer_data[avail].onoff,
sizeof(buzzer_data[avail].onoff), sizeof(buzzer_data[avail].onoff),
NULL, NULL, NULL, onoff_post_write_cb, NULL); NULL, NULL, NULL, onoff_post_write_cb, NULL);
INIT_OBJ_RES_DATA(BUZZER_LEVEL_ID, res[avail], i, res_inst[avail], j, INIT_OBJ_RES_DATA(LEVEL_RID, res[avail], i, res_inst[avail], j,
&buzzer_data[avail].level, &buzzer_data[avail].level,
sizeof(buzzer_data[avail].level)); sizeof(buzzer_data[avail].level));
INIT_OBJ_RES_DATA(BUZZER_DELAY_DURATION_ID, res[avail], i, INIT_OBJ_RES_DATA(DELAY_DURATION_RID, res[avail], i, res_inst[avail], j,
res_inst[avail], j,
&buzzer_data[avail].delay_duration, &buzzer_data[avail].delay_duration,
sizeof(buzzer_data[avail].delay_duration)); sizeof(buzzer_data[avail].delay_duration));
INIT_OBJ_RES_DATA(BUZZER_MINIMUM_OFF_TIME_ID, res[avail], i, INIT_OBJ_RES_DATA(MINIMUM_OFF_TIME_RID, res[avail], i, res_inst[avail],
res_inst[avail], j, j, &buzzer_data[avail].min_off_time,
&buzzer_data[avail].min_off_time,
sizeof(buzzer_data[avail].min_off_time)); sizeof(buzzer_data[avail].min_off_time));
INIT_OBJ_RES_OPTDATA(BUZZER_APPLICATION_TYPE_ID, res[avail], i, INIT_OBJ_RES_OPTDATA(APPLICATION_TYPE_RID, res[avail], i,
res_inst[avail], j); res_inst[avail], j);
INIT_OBJ_RES_DATA(BUZZER_DIGITAL_STATE_ID, res[avail], i, INIT_OBJ_RES_DATA(DIGITAL_INPUT_STATE_RID, res[avail], i,
res_inst[avail], j, res_inst[avail], j, &buzzer_data[avail].active,
&buzzer_data[avail].active,
sizeof(buzzer_data[avail].active)); sizeof(buzzer_data[avail].active));
inst[avail].resources = res[avail]; inst[avail].resources = res[avail];

View file

@ -22,20 +22,11 @@ LOG_MODULE_REGISTER(LOG_MODULE_NAME);
#include "lwm2m_object.h" #include "lwm2m_object.h"
#include "lwm2m_engine.h" #include "lwm2m_engine.h"
#include "lwm2m_resource_ids.h"
#define LIGHT_VERSION_MAJOR 1 #define LIGHT_VERSION_MAJOR 1
#define LIGHT_VERSION_MINOR 0 #define LIGHT_VERSION_MINOR 0
/* Server resource IDs */
#define LIGHT_ON_OFF_ID 5850
#define LIGHT_DIMMER_ID 5851
#define LIGHT_ON_TIME_ID 5852
#define LIGHT_CUMULATIVE_ACTIVE_POWER_ID 5805
#define LIGHT_POWER_FACTOR_ID 5820
#define LIGHT_COLOUR_ID 5706
#define LIGHT_SENSOR_UNITS_ID 5701
#define LIGHT_APPLICATION_TYPE_ID 5750
#define LIGHT_MAX_ID 8 #define LIGHT_MAX_ID 8
#define MAX_INSTANCE_COUNT CONFIG_LWM2M_IPSO_LIGHT_CONTROL_INSTANCE_COUNT #define MAX_INSTANCE_COUNT CONFIG_LWM2M_IPSO_LIGHT_CONTROL_INSTANCE_COUNT
@ -61,14 +52,14 @@ static char units[MAX_INSTANCE_COUNT][LIGHT_STRING_SHORT];
static struct lwm2m_engine_obj light_control; static struct lwm2m_engine_obj light_control;
static struct lwm2m_engine_obj_field fields[] = { static struct lwm2m_engine_obj_field fields[] = {
OBJ_FIELD_DATA(LIGHT_ON_OFF_ID, RW, BOOL), OBJ_FIELD_DATA(ON_OFF_RID, RW, BOOL),
OBJ_FIELD_DATA(LIGHT_DIMMER_ID, RW_OPT, U8), OBJ_FIELD_DATA(DIMMER_RID, RW_OPT, U8),
OBJ_FIELD_DATA(LIGHT_ON_TIME_ID, RW_OPT, S32), OBJ_FIELD_DATA(ON_TIME_RID, RW_OPT, S32),
OBJ_FIELD_DATA(LIGHT_CUMULATIVE_ACTIVE_POWER_ID, R_OPT, FLOAT32), OBJ_FIELD_DATA(CUMULATIVE_ACTIVE_POWER_RID, R_OPT, FLOAT32),
OBJ_FIELD_DATA(LIGHT_POWER_FACTOR_ID, R_OPT, FLOAT32), OBJ_FIELD_DATA(POWER_FACTOR_RID, R_OPT, FLOAT32),
OBJ_FIELD_DATA(LIGHT_COLOUR_ID, RW_OPT, STRING), OBJ_FIELD_DATA(COLOUR_RID, RW_OPT, STRING),
OBJ_FIELD_DATA(LIGHT_SENSOR_UNITS_ID, R_OPT, STRING), OBJ_FIELD_DATA(SENSOR_UNITS_RID, R_OPT, STRING),
OBJ_FIELD_DATA(LIGHT_APPLICATION_TYPE_ID, RW_OPT, STRING), OBJ_FIELD_DATA(APPLICATION_TYPE_RID, RW_OPT, STRING),
}; };
static struct lwm2m_engine_obj_inst inst[MAX_INSTANCE_COUNT]; static struct lwm2m_engine_obj_inst inst[MAX_INSTANCE_COUNT];
@ -169,29 +160,24 @@ static struct lwm2m_engine_obj_inst *light_control_create(uint16_t obj_inst_id)
init_res_instance(res_inst[avail], ARRAY_SIZE(res_inst[avail])); init_res_instance(res_inst[avail], ARRAY_SIZE(res_inst[avail]));
/* initialize instance resource data */ /* initialize instance resource data */
INIT_OBJ_RES_DATA(LIGHT_ON_OFF_ID, res[avail], i, res_inst[avail], j, INIT_OBJ_RES_DATA(ON_OFF_RID, res[avail], i, res_inst[avail], j,
&on_off_value[avail], sizeof(*on_off_value)); &on_off_value[avail], sizeof(*on_off_value));
INIT_OBJ_RES_DATA(LIGHT_DIMMER_ID, res[avail], i, res_inst[avail], j, INIT_OBJ_RES_DATA(DIMMER_RID, res[avail], i, res_inst[avail], j,
&dimmer_value[avail], sizeof(*dimmer_value)); &dimmer_value[avail], sizeof(*dimmer_value));
INIT_OBJ_RES(LIGHT_ON_TIME_ID, res[avail], i, INIT_OBJ_RES(ON_TIME_RID, res[avail], i, res_inst[avail], j, 1, false,
res_inst[avail], j, 1, false, true, true, &on_time_value[avail], sizeof(*on_time_value),
&on_time_value[avail], sizeof(*on_time_value),
on_time_read_cb, NULL, NULL, on_time_post_write_cb, NULL); on_time_read_cb, NULL, NULL, on_time_post_write_cb, NULL);
INIT_OBJ_RES_DATA(LIGHT_CUMULATIVE_ACTIVE_POWER_ID, res[avail], i, INIT_OBJ_RES_DATA(CUMULATIVE_ACTIVE_POWER_RID, res[avail], i,
res_inst[avail], j, res_inst[avail], j, &cumulative_active_value[avail],
&cumulative_active_value[avail],
sizeof(*cumulative_active_value)); sizeof(*cumulative_active_value));
INIT_OBJ_RES_DATA(LIGHT_POWER_FACTOR_ID, res[avail], i, INIT_OBJ_RES_DATA(POWER_FACTOR_RID, res[avail], i, res_inst[avail], j,
res_inst[avail], j,
&power_factor_value[avail], &power_factor_value[avail],
sizeof(*power_factor_value)); sizeof(*power_factor_value));
INIT_OBJ_RES_DATA(LIGHT_COLOUR_ID, res[avail], i, INIT_OBJ_RES_DATA(COLOUR_RID, res[avail], i, res_inst[avail], j,
res_inst[avail], j,
colour[avail], LIGHT_STRING_LONG); colour[avail], LIGHT_STRING_LONG);
INIT_OBJ_RES_DATA(LIGHT_SENSOR_UNITS_ID, res[avail], i, INIT_OBJ_RES_DATA(SENSOR_UNITS_RID, res[avail], i, res_inst[avail], j,
res_inst[avail], j,
units[avail], LIGHT_STRING_SHORT); units[avail], LIGHT_STRING_SHORT);
INIT_OBJ_RES_OPTDATA(LIGHT_APPLICATION_TYPE_ID, res[avail], i, INIT_OBJ_RES_OPTDATA(APPLICATION_TYPE_RID, res[avail], i,
res_inst[avail], j); res_inst[avail], j);
inst[avail].resources = res[avail]; inst[avail].resources = res[avail];

View file

@ -20,6 +20,7 @@ LOG_MODULE_REGISTER(LOG_MODULE_NAME);
#include "lwm2m_object.h" #include "lwm2m_object.h"
#include "lwm2m_engine.h" #include "lwm2m_engine.h"
#include "lwm2m_resource_ids.h"
#define SWITCH_VERSION_MAJOR 1 #define SWITCH_VERSION_MAJOR 1
#define SWITCH_VERSION_MINOR 0 #define SWITCH_VERSION_MINOR 0
@ -30,15 +31,7 @@ LOG_MODULE_REGISTER(LOG_MODULE_NAME);
#define ADD_TIMESTAMPS 0 #define ADD_TIMESTAMPS 0
#endif #endif
/* resource IDs */
#define SWITCH_DIGITAL_STATE_ID 5500
#define SWITCH_DIGITAL_INPUT_COUNTER_ID 5501
#define SWITCH_ON_TIME_ID 5852
#define SWITCH_OFF_TIME_ID 5854
#define SWITCH_APPLICATION_TYPE_ID 5750
#if ADD_TIMESTAMPS #if ADD_TIMESTAMPS
#define SWITCH_TIMESTAMP_ID 5518
#define SWITCH_MAX_ID 6 #define SWITCH_MAX_ID 6
#else #else
#define SWITCH_MAX_ID 5 #define SWITCH_MAX_ID 5
@ -67,13 +60,13 @@ static struct ipso_switch_data switch_data[MAX_INSTANCE_COUNT];
static struct lwm2m_engine_obj onoff_switch; static struct lwm2m_engine_obj onoff_switch;
static struct lwm2m_engine_obj_field fields[] = { static struct lwm2m_engine_obj_field fields[] = {
OBJ_FIELD_DATA(SWITCH_DIGITAL_STATE_ID, R, BOOL), OBJ_FIELD_DATA(DIGITAL_INPUT_STATE_RID, R, BOOL),
OBJ_FIELD_DATA(SWITCH_DIGITAL_INPUT_COUNTER_ID, R_OPT, U64), OBJ_FIELD_DATA(DIGITAL_INPUT_COUNTER_RID, R_OPT, U64),
OBJ_FIELD_DATA(SWITCH_ON_TIME_ID, RW_OPT, U64), OBJ_FIELD_DATA(ON_TIME_RID, RW_OPT, U64),
OBJ_FIELD_DATA(SWITCH_OFF_TIME_ID, RW_OPT, U64), OBJ_FIELD_DATA(OFF_TIME_RID, RW_OPT, U64),
OBJ_FIELD_DATA(SWITCH_APPLICATION_TYPE_ID, RW_OPT, STRING), OBJ_FIELD_DATA(APPLICATION_TYPE_RID, RW_OPT, STRING),
#if ADD_TIMESTAMPS #if ADD_TIMESTAMPS
OBJ_FIELD_DATA(SWITCH_TIMESTAMP_ID, RW_OPT, TIME), OBJ_FIELD_DATA(TIMESTAMP_RID, RW_OPT, TIME),
#endif #endif
}; };
@ -213,26 +206,23 @@ static struct lwm2m_engine_obj_inst *switch_create(uint16_t obj_inst_id)
init_res_instance(res_inst[avail], ARRAY_SIZE(res_inst[avail])); init_res_instance(res_inst[avail], ARRAY_SIZE(res_inst[avail]));
/* initialize instance resource data */ /* initialize instance resource data */
INIT_OBJ_RES(SWITCH_DIGITAL_STATE_ID, res[avail], i, INIT_OBJ_RES(DIGITAL_INPUT_STATE_RID, res[avail], i, res_inst[avail],
res_inst[avail], j, 1, false, true, j, 1, false, true, &switch_data[avail].state,
&switch_data[avail].state,
sizeof(switch_data[avail].state), sizeof(switch_data[avail].state),
NULL, NULL, NULL, state_post_write_cb, NULL); NULL, NULL, NULL, state_post_write_cb, NULL);
INIT_OBJ_RES_DATA(SWITCH_DIGITAL_INPUT_COUNTER_ID, res[avail], i, INIT_OBJ_RES_DATA(DIGITAL_INPUT_COUNTER_RID, res[avail], i,
res_inst[avail], j, res_inst[avail], j, &switch_data[avail].counter,
&switch_data[avail].counter,
sizeof(switch_data[avail].counter)); sizeof(switch_data[avail].counter));
INIT_OBJ_RES_OPT(SWITCH_ON_TIME_ID, res[avail], i, INIT_OBJ_RES_OPT(ON_TIME_RID, res[avail], i,
res_inst[avail], j, 1, false, true, res_inst[avail], j, 1, false, true,
on_time_read_cb, NULL, NULL, time_post_write_cb, NULL); on_time_read_cb, NULL, NULL, time_post_write_cb, NULL);
INIT_OBJ_RES_OPT(SWITCH_OFF_TIME_ID, res[avail], i, INIT_OBJ_RES_OPT(OFF_TIME_RID, res[avail], i,
res_inst[avail], j, 1, false, true, res_inst[avail], j, 1, false, true,
off_time_read_cb, NULL, NULL, time_post_write_cb, NULL); off_time_read_cb, NULL, NULL, time_post_write_cb, NULL);
INIT_OBJ_RES_OPTDATA(SWITCH_APPLICATION_TYPE_ID, res[avail], i, INIT_OBJ_RES_OPTDATA(APPLICATION_TYPE_RID, res[avail], i,
res_inst[avail], j); res_inst[avail], j);
#if ADD_TIMESTAMPS #if ADD_TIMESTAMPS
INIT_OBJ_RES_OPTDATA(SWITCH_TIMESTAMP_ID, res[avail], i, INIT_OBJ_RES_OPTDATA(TIMESTAMP_RID, res[avail], i, res_inst[avail], j);
res_inst[avail], j);
#endif #endif
inst[avail].resources = res[avail]; inst[avail].resources = res[avail];

View file

@ -20,6 +20,7 @@ LOG_MODULE_REGISTER(LOG_MODULE_NAME);
#include "lwm2m_object.h" #include "lwm2m_object.h"
#include "lwm2m_engine.h" #include "lwm2m_engine.h"
#include "lwm2m_resource_ids.h"
#define BUTTON_VERSION_MAJOR 1 #define BUTTON_VERSION_MAJOR 1
#define BUTTON_VERSION_MINOR 0 #define BUTTON_VERSION_MINOR 0
@ -30,13 +31,7 @@ LOG_MODULE_REGISTER(LOG_MODULE_NAME);
#define ADD_TIMESTAMPS 0 #define ADD_TIMESTAMPS 0
#endif #endif
/* resource IDs */
#define BUTTON_DIGITAL_STATE_ID 5500
#define BUTTON_DIGITAL_INPUT_COUNTER_ID 5501
#define BUTTON_APPLICATION_TYPE_ID 5750
#if ADD_TIMESTAMPS #if ADD_TIMESTAMPS
#define BUTTON_TIMESTAMP_ID 5518
#define BUTTON_MAX_ID 4 #define BUTTON_MAX_ID 4
#else #else
#define BUTTON_MAX_ID 3 #define BUTTON_MAX_ID 3
@ -62,11 +57,11 @@ static struct ipso_button_data button_data[MAX_INSTANCE_COUNT];
static struct lwm2m_engine_obj onoff_switch; static struct lwm2m_engine_obj onoff_switch;
static struct lwm2m_engine_obj_field fields[] = { static struct lwm2m_engine_obj_field fields[] = {
OBJ_FIELD_DATA(BUTTON_DIGITAL_STATE_ID, R, BOOL), OBJ_FIELD_DATA(DIGITAL_INPUT_STATE_RID, R, BOOL),
OBJ_FIELD_DATA(BUTTON_DIGITAL_INPUT_COUNTER_ID, R_OPT, U64), OBJ_FIELD_DATA(DIGITAL_INPUT_COUNTER_RID, R_OPT, U64),
OBJ_FIELD_DATA(BUTTON_APPLICATION_TYPE_ID, RW_OPT, STRING), OBJ_FIELD_DATA(APPLICATION_TYPE_RID, RW_OPT, STRING),
#if ADD_TIMESTAMPS #if ADD_TIMESTAMPS
OBJ_FIELD_DATA(BUTTON_TIMESTAMP_ID, RW_OPT, TIME), OBJ_FIELD_DATA(TIMESTAMP_RID, RW_OPT, TIME),
#endif #endif
}; };
@ -145,20 +140,18 @@ static struct lwm2m_engine_obj_inst *button_create(uint16_t obj_inst_id)
init_res_instance(res_inst[avail], ARRAY_SIZE(res_inst[avail])); init_res_instance(res_inst[avail], ARRAY_SIZE(res_inst[avail]));
/* initialize instance resource data */ /* initialize instance resource data */
INIT_OBJ_RES(BUTTON_DIGITAL_STATE_ID, res[avail], i, INIT_OBJ_RES(DIGITAL_INPUT_STATE_RID, res[avail], i, res_inst[avail],
res_inst[avail], j, 1, false, true, j, 1, false, true, &button_data[avail].state,
&button_data[avail].state,
sizeof(button_data[avail].state), sizeof(button_data[avail].state),
NULL, NULL, NULL, state_post_write_cb, NULL); NULL, NULL, NULL, state_post_write_cb, NULL);
INIT_OBJ_RES_DATA(BUTTON_DIGITAL_INPUT_COUNTER_ID, res[avail], i, INIT_OBJ_RES_DATA(DIGITAL_INPUT_COUNTER_RID, res[avail], i,
res_inst[avail], j, res_inst[avail], j,
&button_data[avail].counter, &button_data[avail].counter,
sizeof(button_data[avail].counter)); sizeof(button_data[avail].counter));
INIT_OBJ_RES_OPTDATA(BUTTON_APPLICATION_TYPE_ID, res[avail], i, INIT_OBJ_RES_OPTDATA(APPLICATION_TYPE_RID, res[avail], i,
res_inst[avail], j); res_inst[avail], j);
#if ADD_TIMESTAMPS #if ADD_TIMESTAMPS
INIT_OBJ_RES_OPTDATA(BUTTON_TIMESTAMP_ID, res[avail], i, INIT_OBJ_RES_OPTDATA(TIMESTAMP_RID, res[avail], i, res_inst[avail], j);
res_inst[avail], j);
#endif #endif
inst[avail].resources = res[avail]; inst[avail].resources = res[avail];

View file

@ -22,6 +22,7 @@ LOG_MODULE_REGISTER(LOG_MODULE_NAME);
#include "lwm2m_object.h" #include "lwm2m_object.h"
#include "lwm2m_engine.h" #include "lwm2m_engine.h"
#include "lwm2m_resource_ids.h"
#define TEMP_VERSION_MAJOR 1 #define TEMP_VERSION_MAJOR 1
#define TEMP_VERSION_MINOR 0 #define TEMP_VERSION_MINOR 0
@ -32,17 +33,7 @@ LOG_MODULE_REGISTER(LOG_MODULE_NAME);
#define ADD_TIMESTAMPS 0 #define ADD_TIMESTAMPS 0
#endif #endif
/* Server resource IDs */
#define TEMP_SENSOR_VALUE_ID 5700
#define TEMP_UNITS_ID 5701
#define TEMP_MIN_MEASURED_VALUE_ID 5601
#define TEMP_MAX_MEASURED_VALUE_ID 5602
#define TEMP_MIN_RANGE_VALUE_ID 5603
#define TEMP_MAX_RANGE_VALUE_ID 5604
#define TEMP_RESET_MIN_MAX_MEASURED_VALUES_ID 5605
#if ADD_TIMESTAMPS #if ADD_TIMESTAMPS
#define TEMP_TIMESTAMP_ID 5518
#define TEMP_MAX_ID 8 #define TEMP_MAX_ID 8
#else /* !ADD_TIMESTAMPS */ #else /* !ADD_TIMESTAMPS */
#define TEMP_MAX_ID 7 #define TEMP_MAX_ID 7
@ -69,13 +60,13 @@ static float32_value_t max_range_value[MAX_INSTANCE_COUNT];
static struct lwm2m_engine_obj temp_sensor; static struct lwm2m_engine_obj temp_sensor;
static struct lwm2m_engine_obj_field fields[] = { static struct lwm2m_engine_obj_field fields[] = {
OBJ_FIELD_DATA(TEMP_SENSOR_VALUE_ID, R, FLOAT32), OBJ_FIELD_DATA(SENSOR_VALUE_RID, R, FLOAT32),
OBJ_FIELD_DATA(TEMP_UNITS_ID, R_OPT, STRING), OBJ_FIELD_DATA(SENSOR_UNITS_RID, R_OPT, STRING),
OBJ_FIELD_DATA(TEMP_MIN_MEASURED_VALUE_ID, R_OPT, FLOAT32), OBJ_FIELD_DATA(MIN_MEASURED_VALUE_RID, R_OPT, FLOAT32),
OBJ_FIELD_DATA(TEMP_MAX_MEASURED_VALUE_ID, R_OPT, FLOAT32), OBJ_FIELD_DATA(MAX_MEASURED_VALUE_RID, R_OPT, FLOAT32),
OBJ_FIELD_DATA(TEMP_MIN_RANGE_VALUE_ID, R_OPT, FLOAT32), OBJ_FIELD_DATA(MIN_RANGE_VALUE_RID, R_OPT, FLOAT32),
OBJ_FIELD_DATA(TEMP_MAX_RANGE_VALUE_ID, R_OPT, FLOAT32), OBJ_FIELD_DATA(MAX_RANGE_VALUE_RID, R_OPT, FLOAT32),
OBJ_FIELD_EXECUTE_OPT(TEMP_RESET_MIN_MAX_MEASURED_VALUES_ID), OBJ_FIELD_EXECUTE_OPT(RESET_MIN_MAX_MEASURED_VALUES_RID),
#if ADD_TIMESTAMPS #if ADD_TIMESTAMPS
OBJ_FIELD_DATA(TEMP_TIMESTAMP_ID, RW_OPT, TIME), OBJ_FIELD_DATA(TEMP_TIMESTAMP_ID, RW_OPT, TIME),
#endif #endif
@ -91,7 +82,7 @@ static void update_min_measured(uint16_t obj_inst_id, int index)
min_measured_value[index].val1 = sensor_value[index].val1; min_measured_value[index].val1 = sensor_value[index].val1;
min_measured_value[index].val2 = sensor_value[index].val2; min_measured_value[index].val2 = sensor_value[index].val2;
NOTIFY_OBSERVER(IPSO_OBJECT_TEMP_SENSOR_ID, obj_inst_id, NOTIFY_OBSERVER(IPSO_OBJECT_TEMP_SENSOR_ID, obj_inst_id,
TEMP_MIN_MEASURED_VALUE_ID); MIN_MEASURED_VALUE_RID);
} }
static void update_max_measured(uint16_t obj_inst_id, int index) static void update_max_measured(uint16_t obj_inst_id, int index)
@ -99,7 +90,7 @@ static void update_max_measured(uint16_t obj_inst_id, int index)
max_measured_value[index].val1 = sensor_value[index].val1; max_measured_value[index].val1 = sensor_value[index].val1;
max_measured_value[index].val2 = sensor_value[index].val2; max_measured_value[index].val2 = sensor_value[index].val2;
NOTIFY_OBSERVER(IPSO_OBJECT_TEMP_SENSOR_ID, obj_inst_id, NOTIFY_OBSERVER(IPSO_OBJECT_TEMP_SENSOR_ID, obj_inst_id,
TEMP_MAX_MEASURED_VALUE_ID); MAX_MEASURED_VALUE_RID);
} }
static int reset_min_max_measured_values_cb(uint16_t obj_inst_id, static int reset_min_max_measured_values_cb(uint16_t obj_inst_id,
@ -205,25 +196,25 @@ static struct lwm2m_engine_obj_inst *temp_sensor_create(uint16_t obj_inst_id)
init_res_instance(res_inst[index], ARRAY_SIZE(res_inst[index])); init_res_instance(res_inst[index], ARRAY_SIZE(res_inst[index]));
/* initialize instance resource data */ /* initialize instance resource data */
INIT_OBJ_RES(TEMP_SENSOR_VALUE_ID, res[index], i, INIT_OBJ_RES(SENSOR_VALUE_RID, res[index], i,
res_inst[index], j, 1, false, true, res_inst[index], j, 1, false, true,
&sensor_value[index], sizeof(*sensor_value), &sensor_value[index], sizeof(*sensor_value),
NULL, NULL, NULL, sensor_value_write_cb, NULL); NULL, NULL, NULL, sensor_value_write_cb, NULL);
INIT_OBJ_RES_DATA(TEMP_UNITS_ID, res[index], i, res_inst[index], j, INIT_OBJ_RES_DATA(SENSOR_UNITS_RID, res[index], i, res_inst[index], j,
units[index], TEMP_STRING_SHORT); units[index], TEMP_STRING_SHORT);
INIT_OBJ_RES_DATA(TEMP_MIN_MEASURED_VALUE_ID, res[index], i, INIT_OBJ_RES_DATA(MIN_MEASURED_VALUE_RID, res[index], i,
res_inst[index], j, &min_measured_value[index], res_inst[index], j, &min_measured_value[index],
sizeof(*min_measured_value)); sizeof(*min_measured_value));
INIT_OBJ_RES_DATA(TEMP_MAX_MEASURED_VALUE_ID, res[index], i, INIT_OBJ_RES_DATA(MAX_MEASURED_VALUE_RID, res[index], i,
res_inst[index], j, &max_measured_value[index], res_inst[index], j, &max_measured_value[index],
sizeof(*max_measured_value)); sizeof(*max_measured_value));
INIT_OBJ_RES_DATA(TEMP_MIN_RANGE_VALUE_ID, res[index], i, INIT_OBJ_RES_DATA(MIN_RANGE_VALUE_RID, res[index], i,
res_inst[index], j, &min_range_value[index], res_inst[index], j, &min_range_value[index],
sizeof(*min_range_value)); sizeof(*min_range_value));
INIT_OBJ_RES_DATA(TEMP_MAX_RANGE_VALUE_ID, res[index], i, INIT_OBJ_RES_DATA(MAX_RANGE_VALUE_RID, res[index], i,
res_inst[index], j, &max_range_value[index], res_inst[index], j, &max_range_value[index],
sizeof(*max_range_value)); sizeof(*max_range_value));
INIT_OBJ_RES_EXECUTE(TEMP_RESET_MIN_MAX_MEASURED_VALUES_ID, INIT_OBJ_RES_EXECUTE(RESET_MIN_MAX_MEASURED_VALUES_RID,
res[index], i, reset_min_max_measured_values_cb); res[index], i, reset_min_max_measured_values_cb);
#if ADD_TIMESTAMPS #if ADD_TIMESTAMPS
INIT_OBJ_RES_OPTDATA(TEMP_TIMESTAMP_ID, res[index], i, INIT_OBJ_RES_OPTDATA(TEMP_TIMESTAMP_ID, res[index], i,

View file

@ -20,23 +20,11 @@ LOG_MODULE_REGISTER(LOG_MODULE_NAME);
#include "lwm2m_object.h" #include "lwm2m_object.h"
#include "lwm2m_engine.h" #include "lwm2m_engine.h"
#include "lwm2m_resource_ids.h"
#define TIMER_VERSION_MAJOR 1 #define TIMER_VERSION_MAJOR 1
#define TIMER_VERSION_MINOR 0 #define TIMER_VERSION_MINOR 0
/* Server resource IDs */
#define TIMER_DELAY_DURATION_ID 5521
#define TIMER_REMAINING_TIME_ID 5538
#define TIMER_MINIMUM_OFF_TIME_ID 5525
#define TIMER_TRIGGER_ID 5523
#define TIMER_ON_OFF_ID 5850
#define TIMER_DIGITAL_INPUT_COUNTER_ID 5501
#define TIMER_CUMULATIVE_TIME_ID 5544
#define TIMER_DIGITAL_STATE_ID 5543
#define TIMER_COUNTER_ID 5534
#define TIMER_MODE_ID 5526
#define TIMER_APPLICATION_TYPE_ID 5750
#define TIMER_MAX_ID 11 #define TIMER_MAX_ID 11
#define MAX_INSTANCE_COUNT CONFIG_LWM2M_IPSO_TIMER_INSTANCE_COUNT #define MAX_INSTANCE_COUNT CONFIG_LWM2M_IPSO_TIMER_INSTANCE_COUNT
@ -79,17 +67,17 @@ static struct ipso_timer_data timer_data[MAX_INSTANCE_COUNT];
static struct lwm2m_engine_obj timer; static struct lwm2m_engine_obj timer;
static struct lwm2m_engine_obj_field fields[] = { static struct lwm2m_engine_obj_field fields[] = {
OBJ_FIELD_DATA(TIMER_DELAY_DURATION_ID, RW, FLOAT64), OBJ_FIELD_DATA(DELAY_DURATION_RID, RW, FLOAT64),
OBJ_FIELD_DATA(TIMER_REMAINING_TIME_ID, R_OPT, FLOAT64), OBJ_FIELD_DATA(REMAINING_TIME_RID, R_OPT, FLOAT64),
OBJ_FIELD_DATA(TIMER_MINIMUM_OFF_TIME_ID, RW_OPT, FLOAT64), OBJ_FIELD_DATA(MINIMUM_OFF_TIME_RID, RW_OPT, FLOAT64),
OBJ_FIELD_EXECUTE_OPT(TIMER_TRIGGER_ID), OBJ_FIELD_EXECUTE_OPT(TRIGGER_RID),
OBJ_FIELD_DATA(TIMER_ON_OFF_ID, RW_OPT, BOOL), OBJ_FIELD_DATA(ON_OFF_RID, RW_OPT, BOOL),
OBJ_FIELD_DATA(TIMER_DIGITAL_INPUT_COUNTER_ID, RW_OPT, U32), /* TODO */ OBJ_FIELD_DATA(DIGITAL_INPUT_COUNTER_RID, RW_OPT, U32), /* TODO */
OBJ_FIELD_DATA(TIMER_CUMULATIVE_TIME_ID, RW_OPT, FLOAT64), OBJ_FIELD_DATA(CUMULATIVE_TIME_RID, RW_OPT, FLOAT64),
OBJ_FIELD_DATA(TIMER_DIGITAL_STATE_ID, R_OPT, BOOL), OBJ_FIELD_DATA(DIGITAL_STATE_RID, R_OPT, BOOL),
OBJ_FIELD_DATA(TIMER_COUNTER_ID, R_OPT, U32), OBJ_FIELD_DATA(COUNTER_RID, R_OPT, U32),
OBJ_FIELD_DATA(TIMER_MODE_ID, RW_OPT, U8), OBJ_FIELD_DATA(TIMER_MODE_RID, RW_OPT, U8),
OBJ_FIELD_DATA(TIMER_APPLICATION_TYPE_ID, RW_OPT, STRING), OBJ_FIELD_DATA(APPLICATION_TYPE_RID, RW_OPT, STRING),
}; };
static struct lwm2m_engine_obj_inst inst[MAX_INSTANCE_COUNT]; static struct lwm2m_engine_obj_inst inst[MAX_INSTANCE_COUNT];
@ -152,7 +140,7 @@ static int start_timer(struct ipso_timer_data *timer)
timer->trigger_counter += 1U; timer->trigger_counter += 1U;
snprintk(path, MAX_RESOURCE_LEN, "%d/%u/%d", IPSO_OBJECT_TIMER_ID, snprintk(path, MAX_RESOURCE_LEN, "%d/%u/%d", IPSO_OBJECT_TIMER_ID,
timer->obj_inst_id, TIMER_DIGITAL_STATE_ID); timer->obj_inst_id, DIGITAL_STATE_RID);
lwm2m_engine_set_bool(path, true); lwm2m_engine_set_bool(path, true);
float2ms(&timer->delay_duration, &temp); float2ms(&timer->delay_duration, &temp);
@ -172,7 +160,7 @@ static int stop_timer(struct ipso_timer_data *timer, bool cancel)
timer->cumulative_time_ms += k_uptime_get() - timer->trigger_offset; timer->cumulative_time_ms += k_uptime_get() - timer->trigger_offset;
snprintk(path, MAX_RESOURCE_LEN, "%d/%u/%d", IPSO_OBJECT_TIMER_ID, snprintk(path, MAX_RESOURCE_LEN, "%d/%u/%d", IPSO_OBJECT_TIMER_ID,
timer->obj_inst_id, TIMER_DIGITAL_STATE_ID); timer->obj_inst_id, DIGITAL_STATE_RID);
lwm2m_engine_set_bool(path, false); lwm2m_engine_set_bool(path, false);
if (cancel) { if (cancel) {
@ -340,42 +328,37 @@ static struct lwm2m_engine_obj_inst *timer_create(uint16_t obj_inst_id)
init_res_instance(res_inst[avail], ARRAY_SIZE(res_inst[avail])); init_res_instance(res_inst[avail], ARRAY_SIZE(res_inst[avail]));
/* initialize instance resource data */ /* initialize instance resource data */
INIT_OBJ_RES_DATA(TIMER_DELAY_DURATION_ID, res[avail], i, INIT_OBJ_RES_DATA(DELAY_DURATION_RID, res[avail], i,
res_inst[avail], j, &timer_data[avail].delay_duration, res_inst[avail], j, &timer_data[avail].delay_duration,
sizeof(timer_data[avail].delay_duration)); sizeof(timer_data[avail].delay_duration));
INIT_OBJ_RES(TIMER_REMAINING_TIME_ID, res[avail], i, INIT_OBJ_RES(REMAINING_TIME_RID, res[avail], i, res_inst[avail], j, 1,
res_inst[avail], j, 1, false, true, false, true, &timer_data[avail].remaining_time,
&timer_data[avail].remaining_time,
sizeof(timer_data[avail].remaining_time), sizeof(timer_data[avail].remaining_time),
remaining_time_read_cb, NULL, NULL, NULL, NULL); remaining_time_read_cb, NULL, NULL, NULL, NULL);
INIT_OBJ_RES_DATA(TIMER_MINIMUM_OFF_TIME_ID, res[avail], i, INIT_OBJ_RES_DATA(MINIMUM_OFF_TIME_RID, res[avail], i,
res_inst[avail], j, &timer_data[avail].min_off_time, res_inst[avail], j, &timer_data[avail].min_off_time,
sizeof(timer_data[avail].min_off_time)); sizeof(timer_data[avail].min_off_time));
INIT_OBJ_RES_EXECUTE(TIMER_TRIGGER_ID, res[avail], i, INIT_OBJ_RES_EXECUTE(TRIGGER_RID, res[avail], i, timer_trigger_cb);
timer_trigger_cb); INIT_OBJ_RES(ON_OFF_RID, res[avail], i, res_inst[avail], j, 1, false,
INIT_OBJ_RES(TIMER_ON_OFF_ID, res[avail], i, true, &timer_data[avail].enabled,
res_inst[avail], j, 1, false, true,
&timer_data[avail].enabled,
sizeof(timer_data[avail].enabled), sizeof(timer_data[avail].enabled),
NULL, NULL, NULL, enabled_post_write_cb, NULL); NULL, NULL, NULL, enabled_post_write_cb, NULL);
INIT_OBJ_RES(TIMER_CUMULATIVE_TIME_ID, res[avail], i, INIT_OBJ_RES(CUMULATIVE_TIME_RID, res[avail], i, res_inst[avail], j, 1,
res_inst[avail], j, 1, false, true, false, true, &timer_data[avail].cumulative_time,
&timer_data[avail].cumulative_time,
sizeof(timer_data[avail].cumulative_time), sizeof(timer_data[avail].cumulative_time),
cumulative_time_read_cb, NULL, NULL, cumulative_time_read_cb, NULL, NULL,
cumulative_time_post_write_cb, NULL); cumulative_time_post_write_cb, NULL);
INIT_OBJ_RES_DATA(TIMER_DIGITAL_STATE_ID, res[avail], i, INIT_OBJ_RES_DATA(DIGITAL_STATE_RID, res[avail], i,
res_inst[avail], j, &timer_data[avail].active, res_inst[avail], j, &timer_data[avail].active,
sizeof(timer_data[avail].active)); sizeof(timer_data[avail].active));
INIT_OBJ_RES(TIMER_COUNTER_ID, res[avail], i, INIT_OBJ_RES(COUNTER_RID, res[avail], i, res_inst[avail], j, 1, false,
res_inst[avail], j, 1, false, true, true, &timer_data[avail].trigger_counter,
&timer_data[avail].trigger_counter,
sizeof(timer_data[avail].trigger_counter), sizeof(timer_data[avail].trigger_counter),
NULL, NULL, NULL, trigger_counter_post_write_cb, NULL); NULL, NULL, NULL, trigger_counter_post_write_cb, NULL);
INIT_OBJ_RES_DATA(TIMER_MODE_ID, res[avail], i, res_inst[avail], j, INIT_OBJ_RES_DATA(TIMER_MODE_RID, res[avail], i, res_inst[avail], j,
&timer_data[avail].timer_mode, &timer_data[avail].timer_mode,
sizeof(timer_data[avail].timer_mode)); sizeof(timer_data[avail].timer_mode));
INIT_OBJ_RES_OPTDATA(TIMER_APPLICATION_TYPE_ID, res[avail], i, INIT_OBJ_RES_OPTDATA(APPLICATION_TYPE_RID, res[avail], i,
res_inst[avail], j); res_inst[avail], j);
inst[avail].resources = res[avail]; inst[avail].resources = res[avail];

View file

@ -10,7 +10,18 @@
#define __LWM2M_RESOURCE_IDS__ #define __LWM2M_RESOURCE_IDS__
/* clang-format off */ /* clang-format off */
#define DIGITAL_INPUT_STATE_RID 5500
#define DIGITAL_INPUT_COUNTER_RID 5501
#define TIMESTAMP_RID 5518 #define TIMESTAMP_RID 5518
#define DELAY_DURATION_RID 5521
#define TRIGGER_RID 5523
#define MINIMUM_OFF_TIME_RID 5525
#define TIMER_MODE_RID 5526
#define COUNTER_RID 5534
#define REMAINING_TIME_RID 5538
#define DIGITAL_STATE_RID 5543
#define CUMULATIVE_TIME_RID 5544
#define LEVEL_RID 5548
#define MIN_MEASURED_VALUE_RID 5601 #define MIN_MEASURED_VALUE_RID 5601
#define MAX_MEASURED_VALUE_RID 5602 #define MAX_MEASURED_VALUE_RID 5602
#define MIN_RANGE_VALUE_RID 5603 #define MIN_RANGE_VALUE_RID 5603
@ -18,8 +29,21 @@
#define RESET_MIN_MAX_MEASURED_VALUES_RID 5605 #define RESET_MIN_MAX_MEASURED_VALUES_RID 5605
#define SENSOR_VALUE_RID 5700 #define SENSOR_VALUE_RID 5700
#define SENSOR_UNITS_RID 5701 #define SENSOR_UNITS_RID 5701
#define X_VALUE_RID 5702
#define Y_VALUE_RID 5703
#define Z_VALUE_RID 5704
#define COLOUR_RID 5706
#define APPLICATION_TYPE_RID 5750 #define APPLICATION_TYPE_RID 5750
#define SENSOR_TYPE_RID 5751 #define SENSOR_TYPE_RID 5751
#define CUMULATIVE_ACTIVE_POWER_RID 5805
#define POWER_FACTOR_RID 5820
#define ON_OFF_RID 5850
#define DIMMER_RID 5851
#define ON_TIME_RID 5852
#define OFF_TIME_RID 5854
#define MEASUREMENT_QUALITY_INDICATOR_RID 6042
#define MEASUREMENT_QUALITY_LEVEL_RID 6049
#define FRACTIONAL_TIMESTAMP_RID 6050
/* clang-format on */ /* clang-format on */
#endif /* __LWM2M_RESOURCE_IDS__ */ #endif /* __LWM2M_RESOURCE_IDS__ */