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:
parent
c9f5337a91
commit
49b0e2cc76
8 changed files with 157 additions and 209 deletions
|
@ -20,6 +20,7 @@ LOG_MODULE_REGISTER(LOG_MODULE_NAME);
|
|||
|
||||
#include "lwm2m_object.h"
|
||||
#include "lwm2m_engine.h"
|
||||
#include "lwm2m_resource_ids.h"
|
||||
|
||||
#define ACCEL_VERSION_MAJOR 1
|
||||
#define ACCEL_VERSION_MINOR 0
|
||||
|
@ -29,16 +30,8 @@ LOG_MODULE_REGISTER(LOG_MODULE_NAME);
|
|||
#else
|
||||
#define ADD_TIMESTAMPS 0
|
||||
#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
|
||||
#else
|
||||
#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_field fields[] = {
|
||||
OBJ_FIELD_DATA(ACCEL_X_VALUE_ID, R, FLOAT32),
|
||||
OBJ_FIELD_DATA(ACCEL_Y_VALUE_ID, R_OPT, FLOAT32),
|
||||
OBJ_FIELD_DATA(ACCEL_Z_VALUE_ID, R_OPT, FLOAT32),
|
||||
OBJ_FIELD_DATA(ACCEL_SENSOR_UNITS_ID, R_OPT, STRING),
|
||||
OBJ_FIELD_DATA(ACCEL_MIN_RANGE_VALUE_ID, R_OPT, FLOAT32),
|
||||
OBJ_FIELD_DATA(ACCEL_MAX_RANGE_VALUE_ID, R_OPT, FLOAT32),
|
||||
OBJ_FIELD_DATA(X_VALUE_RID, R, FLOAT32),
|
||||
OBJ_FIELD_DATA(Y_VALUE_RID, R_OPT, FLOAT32),
|
||||
OBJ_FIELD_DATA(Z_VALUE_RID, R_OPT, FLOAT32),
|
||||
OBJ_FIELD_DATA(SENSOR_UNITS_RID, R_OPT, STRING),
|
||||
OBJ_FIELD_DATA(MIN_RANGE_VALUE_RID, R_OPT, FLOAT32),
|
||||
OBJ_FIELD_DATA(MAX_RANGE_VALUE_RID, R_OPT, FLOAT32),
|
||||
#if ADD_TIMESTAMPS
|
||||
OBJ_FIELD_DATA(ACCEL_TIMESTAMP_ID, RW_OPT, TIME),
|
||||
OBJ_FIELD_DATA(TIMESTAMP_RID, RW_OPT, TIME),
|
||||
#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]));
|
||||
|
||||
/* 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,
|
||||
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,
|
||||
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,
|
||||
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);
|
||||
INIT_OBJ_RES_DATA(ACCEL_MIN_RANGE_VALUE_ID, res[avail], i,
|
||||
res_inst[avail], j,
|
||||
&accel_data[avail].min_range,
|
||||
INIT_OBJ_RES_DATA(MIN_RANGE_VALUE_RID, res[avail], i, res_inst[avail],
|
||||
j, &accel_data[avail].min_range,
|
||||
sizeof(accel_data[avail].min_range));
|
||||
INIT_OBJ_RES_DATA(ACCEL_MAX_RANGE_VALUE_ID, res[avail], i,
|
||||
res_inst[avail], j,
|
||||
&accel_data[avail].max_range,
|
||||
INIT_OBJ_RES_DATA(MAX_RANGE_VALUE_RID, res[avail], i, res_inst[avail],
|
||||
j, &accel_data[avail].max_range,
|
||||
sizeof(accel_data[avail].max_range));
|
||||
#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);
|
||||
#endif
|
||||
|
||||
|
|
|
@ -20,21 +20,11 @@ LOG_MODULE_REGISTER(LOG_MODULE_NAME);
|
|||
|
||||
#include "lwm2m_object.h"
|
||||
#include "lwm2m_engine.h"
|
||||
#include "lwm2m_resource_ids.h"
|
||||
|
||||
#define BUZZER_VERSION_MAJOR 1
|
||||
#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 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_field fields[] = {
|
||||
OBJ_FIELD_DATA(BUZZER_ON_OFF_ID, RW, BOOL),
|
||||
OBJ_FIELD_DATA(BUZZER_LEVEL_ID, RW_OPT, FLOAT32),
|
||||
OBJ_FIELD_DATA(BUZZER_DELAY_DURATION_ID, RW_OPT, FLOAT64),
|
||||
OBJ_FIELD_DATA(BUZZER_MINIMUM_OFF_TIME_ID, RW, FLOAT64),
|
||||
OBJ_FIELD_DATA(BUZZER_APPLICATION_TYPE_ID, RW_OPT, STRING),
|
||||
OBJ_FIELD_DATA(BUZZER_DIGITAL_STATE_ID, R, BOOL),
|
||||
OBJ_FIELD_DATA(ON_OFF_RID, RW, BOOL),
|
||||
OBJ_FIELD_DATA(LEVEL_RID, RW_OPT, FLOAT32),
|
||||
OBJ_FIELD_DATA(DELAY_DURATION_RID, RW_OPT, FLOAT64),
|
||||
OBJ_FIELD_DATA(MINIMUM_OFF_TIME_RID, RW, FLOAT64),
|
||||
OBJ_FIELD_DATA(APPLICATION_TYPE_RID, RW_OPT, STRING),
|
||||
/* 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];
|
||||
|
@ -121,7 +115,7 @@ static int start_buzzer(struct ipso_buzzer_data *buzzer)
|
|||
|
||||
buzzer->trigger_offset = k_uptime_get();
|
||||
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);
|
||||
|
||||
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,
|
||||
buzzer->obj_inst_id, BUZZER_DIGITAL_STATE_ID);
|
||||
buzzer->obj_inst_id, DIGITAL_INPUT_STATE_RID);
|
||||
lwm2m_engine_set_bool(path, false);
|
||||
|
||||
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]));
|
||||
|
||||
/* initialize instance resource data */
|
||||
INIT_OBJ_RES(BUZZER_ON_OFF_ID, res[avail], i,
|
||||
res_inst[avail], j, 1, false, true,
|
||||
&buzzer_data[avail].onoff,
|
||||
INIT_OBJ_RES(ON_OFF_RID, res[avail], i, res_inst[avail], j, 1, false,
|
||||
true, &buzzer_data[avail].onoff,
|
||||
sizeof(buzzer_data[avail].onoff),
|
||||
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,
|
||||
sizeof(buzzer_data[avail].level));
|
||||
INIT_OBJ_RES_DATA(BUZZER_DELAY_DURATION_ID, res[avail], i,
|
||||
res_inst[avail], j,
|
||||
INIT_OBJ_RES_DATA(DELAY_DURATION_RID, res[avail], i, res_inst[avail], j,
|
||||
&buzzer_data[avail].delay_duration,
|
||||
sizeof(buzzer_data[avail].delay_duration));
|
||||
INIT_OBJ_RES_DATA(BUZZER_MINIMUM_OFF_TIME_ID, res[avail], i,
|
||||
res_inst[avail], j,
|
||||
&buzzer_data[avail].min_off_time,
|
||||
INIT_OBJ_RES_DATA(MINIMUM_OFF_TIME_RID, res[avail], i, res_inst[avail],
|
||||
j, &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);
|
||||
INIT_OBJ_RES_DATA(BUZZER_DIGITAL_STATE_ID, res[avail], i,
|
||||
res_inst[avail], j,
|
||||
&buzzer_data[avail].active,
|
||||
INIT_OBJ_RES_DATA(DIGITAL_INPUT_STATE_RID, res[avail], i,
|
||||
res_inst[avail], j, &buzzer_data[avail].active,
|
||||
sizeof(buzzer_data[avail].active));
|
||||
|
||||
inst[avail].resources = res[avail];
|
||||
|
|
|
@ -22,20 +22,11 @@ LOG_MODULE_REGISTER(LOG_MODULE_NAME);
|
|||
|
||||
#include "lwm2m_object.h"
|
||||
#include "lwm2m_engine.h"
|
||||
#include "lwm2m_resource_ids.h"
|
||||
|
||||
#define LIGHT_VERSION_MAJOR 1
|
||||
#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 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_field fields[] = {
|
||||
OBJ_FIELD_DATA(LIGHT_ON_OFF_ID, RW, BOOL),
|
||||
OBJ_FIELD_DATA(LIGHT_DIMMER_ID, RW_OPT, U8),
|
||||
OBJ_FIELD_DATA(LIGHT_ON_TIME_ID, RW_OPT, S32),
|
||||
OBJ_FIELD_DATA(LIGHT_CUMULATIVE_ACTIVE_POWER_ID, R_OPT, FLOAT32),
|
||||
OBJ_FIELD_DATA(LIGHT_POWER_FACTOR_ID, R_OPT, FLOAT32),
|
||||
OBJ_FIELD_DATA(LIGHT_COLOUR_ID, RW_OPT, STRING),
|
||||
OBJ_FIELD_DATA(LIGHT_SENSOR_UNITS_ID, R_OPT, STRING),
|
||||
OBJ_FIELD_DATA(LIGHT_APPLICATION_TYPE_ID, RW_OPT, STRING),
|
||||
OBJ_FIELD_DATA(ON_OFF_RID, RW, BOOL),
|
||||
OBJ_FIELD_DATA(DIMMER_RID, RW_OPT, U8),
|
||||
OBJ_FIELD_DATA(ON_TIME_RID, RW_OPT, S32),
|
||||
OBJ_FIELD_DATA(CUMULATIVE_ACTIVE_POWER_RID, R_OPT, FLOAT32),
|
||||
OBJ_FIELD_DATA(POWER_FACTOR_RID, R_OPT, FLOAT32),
|
||||
OBJ_FIELD_DATA(COLOUR_RID, RW_OPT, STRING),
|
||||
OBJ_FIELD_DATA(SENSOR_UNITS_RID, R_OPT, STRING),
|
||||
OBJ_FIELD_DATA(APPLICATION_TYPE_RID, RW_OPT, STRING),
|
||||
};
|
||||
|
||||
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]));
|
||||
|
||||
/* 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));
|
||||
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));
|
||||
INIT_OBJ_RES(LIGHT_ON_TIME_ID, res[avail], i,
|
||||
res_inst[avail], j, 1, false, true,
|
||||
&on_time_value[avail], sizeof(*on_time_value),
|
||||
INIT_OBJ_RES(ON_TIME_RID, res[avail], i, res_inst[avail], j, 1, false,
|
||||
true, &on_time_value[avail], sizeof(*on_time_value),
|
||||
on_time_read_cb, NULL, NULL, on_time_post_write_cb, NULL);
|
||||
INIT_OBJ_RES_DATA(LIGHT_CUMULATIVE_ACTIVE_POWER_ID, res[avail], i,
|
||||
res_inst[avail], j,
|
||||
&cumulative_active_value[avail],
|
||||
INIT_OBJ_RES_DATA(CUMULATIVE_ACTIVE_POWER_RID, res[avail], i,
|
||||
res_inst[avail], j, &cumulative_active_value[avail],
|
||||
sizeof(*cumulative_active_value));
|
||||
INIT_OBJ_RES_DATA(LIGHT_POWER_FACTOR_ID, res[avail], i,
|
||||
res_inst[avail], j,
|
||||
INIT_OBJ_RES_DATA(POWER_FACTOR_RID, res[avail], i, res_inst[avail], j,
|
||||
&power_factor_value[avail],
|
||||
sizeof(*power_factor_value));
|
||||
INIT_OBJ_RES_DATA(LIGHT_COLOUR_ID, res[avail], i,
|
||||
res_inst[avail], j,
|
||||
INIT_OBJ_RES_DATA(COLOUR_RID, res[avail], i, res_inst[avail], j,
|
||||
colour[avail], LIGHT_STRING_LONG);
|
||||
INIT_OBJ_RES_DATA(LIGHT_SENSOR_UNITS_ID, res[avail], i,
|
||||
res_inst[avail], j,
|
||||
INIT_OBJ_RES_DATA(SENSOR_UNITS_RID, res[avail], i, res_inst[avail], j,
|
||||
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);
|
||||
|
||||
inst[avail].resources = res[avail];
|
||||
|
|
|
@ -20,6 +20,7 @@ LOG_MODULE_REGISTER(LOG_MODULE_NAME);
|
|||
|
||||
#include "lwm2m_object.h"
|
||||
#include "lwm2m_engine.h"
|
||||
#include "lwm2m_resource_ids.h"
|
||||
|
||||
#define SWITCH_VERSION_MAJOR 1
|
||||
#define SWITCH_VERSION_MINOR 0
|
||||
|
@ -30,15 +31,7 @@ LOG_MODULE_REGISTER(LOG_MODULE_NAME);
|
|||
#define ADD_TIMESTAMPS 0
|
||||
#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
|
||||
#define SWITCH_TIMESTAMP_ID 5518
|
||||
|
||||
#define SWITCH_MAX_ID 6
|
||||
#else
|
||||
#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_field fields[] = {
|
||||
OBJ_FIELD_DATA(SWITCH_DIGITAL_STATE_ID, R, BOOL),
|
||||
OBJ_FIELD_DATA(SWITCH_DIGITAL_INPUT_COUNTER_ID, R_OPT, U64),
|
||||
OBJ_FIELD_DATA(SWITCH_ON_TIME_ID, RW_OPT, U64),
|
||||
OBJ_FIELD_DATA(SWITCH_OFF_TIME_ID, RW_OPT, U64),
|
||||
OBJ_FIELD_DATA(SWITCH_APPLICATION_TYPE_ID, RW_OPT, STRING),
|
||||
OBJ_FIELD_DATA(DIGITAL_INPUT_STATE_RID, R, BOOL),
|
||||
OBJ_FIELD_DATA(DIGITAL_INPUT_COUNTER_RID, R_OPT, U64),
|
||||
OBJ_FIELD_DATA(ON_TIME_RID, RW_OPT, U64),
|
||||
OBJ_FIELD_DATA(OFF_TIME_RID, RW_OPT, U64),
|
||||
OBJ_FIELD_DATA(APPLICATION_TYPE_RID, RW_OPT, STRING),
|
||||
#if ADD_TIMESTAMPS
|
||||
OBJ_FIELD_DATA(SWITCH_TIMESTAMP_ID, RW_OPT, TIME),
|
||||
OBJ_FIELD_DATA(TIMESTAMP_RID, RW_OPT, TIME),
|
||||
#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]));
|
||||
|
||||
/* initialize instance resource data */
|
||||
INIT_OBJ_RES(SWITCH_DIGITAL_STATE_ID, res[avail], i,
|
||||
res_inst[avail], j, 1, false, true,
|
||||
&switch_data[avail].state,
|
||||
INIT_OBJ_RES(DIGITAL_INPUT_STATE_RID, res[avail], i, res_inst[avail],
|
||||
j, 1, false, true, &switch_data[avail].state,
|
||||
sizeof(switch_data[avail].state),
|
||||
NULL, NULL, NULL, state_post_write_cb, NULL);
|
||||
INIT_OBJ_RES_DATA(SWITCH_DIGITAL_INPUT_COUNTER_ID, res[avail], i,
|
||||
res_inst[avail], j,
|
||||
&switch_data[avail].counter,
|
||||
INIT_OBJ_RES_DATA(DIGITAL_INPUT_COUNTER_RID, res[avail], i,
|
||||
res_inst[avail], j, &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,
|
||||
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,
|
||||
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);
|
||||
#if ADD_TIMESTAMPS
|
||||
INIT_OBJ_RES_OPTDATA(SWITCH_TIMESTAMP_ID, res[avail], i,
|
||||
res_inst[avail], j);
|
||||
INIT_OBJ_RES_OPTDATA(TIMESTAMP_RID, res[avail], i, res_inst[avail], j);
|
||||
#endif
|
||||
|
||||
inst[avail].resources = res[avail];
|
||||
|
|
|
@ -20,6 +20,7 @@ LOG_MODULE_REGISTER(LOG_MODULE_NAME);
|
|||
|
||||
#include "lwm2m_object.h"
|
||||
#include "lwm2m_engine.h"
|
||||
#include "lwm2m_resource_ids.h"
|
||||
|
||||
#define BUTTON_VERSION_MAJOR 1
|
||||
#define BUTTON_VERSION_MINOR 0
|
||||
|
@ -30,13 +31,7 @@ LOG_MODULE_REGISTER(LOG_MODULE_NAME);
|
|||
#define ADD_TIMESTAMPS 0
|
||||
#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
|
||||
#define BUTTON_TIMESTAMP_ID 5518
|
||||
|
||||
#define BUTTON_MAX_ID 4
|
||||
#else
|
||||
#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_field fields[] = {
|
||||
OBJ_FIELD_DATA(BUTTON_DIGITAL_STATE_ID, R, BOOL),
|
||||
OBJ_FIELD_DATA(BUTTON_DIGITAL_INPUT_COUNTER_ID, R_OPT, U64),
|
||||
OBJ_FIELD_DATA(BUTTON_APPLICATION_TYPE_ID, RW_OPT, STRING),
|
||||
OBJ_FIELD_DATA(DIGITAL_INPUT_STATE_RID, R, BOOL),
|
||||
OBJ_FIELD_DATA(DIGITAL_INPUT_COUNTER_RID, R_OPT, U64),
|
||||
OBJ_FIELD_DATA(APPLICATION_TYPE_RID, RW_OPT, STRING),
|
||||
#if ADD_TIMESTAMPS
|
||||
OBJ_FIELD_DATA(BUTTON_TIMESTAMP_ID, RW_OPT, TIME),
|
||||
OBJ_FIELD_DATA(TIMESTAMP_RID, RW_OPT, TIME),
|
||||
#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]));
|
||||
|
||||
/* initialize instance resource data */
|
||||
INIT_OBJ_RES(BUTTON_DIGITAL_STATE_ID, res[avail], i,
|
||||
res_inst[avail], j, 1, false, true,
|
||||
&button_data[avail].state,
|
||||
INIT_OBJ_RES(DIGITAL_INPUT_STATE_RID, res[avail], i, res_inst[avail],
|
||||
j, 1, false, true, &button_data[avail].state,
|
||||
sizeof(button_data[avail].state),
|
||||
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,
|
||||
&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);
|
||||
#if ADD_TIMESTAMPS
|
||||
INIT_OBJ_RES_OPTDATA(BUTTON_TIMESTAMP_ID, res[avail], i,
|
||||
res_inst[avail], j);
|
||||
INIT_OBJ_RES_OPTDATA(TIMESTAMP_RID, res[avail], i, res_inst[avail], j);
|
||||
#endif
|
||||
|
||||
inst[avail].resources = res[avail];
|
||||
|
|
|
@ -22,6 +22,7 @@ LOG_MODULE_REGISTER(LOG_MODULE_NAME);
|
|||
|
||||
#include "lwm2m_object.h"
|
||||
#include "lwm2m_engine.h"
|
||||
#include "lwm2m_resource_ids.h"
|
||||
|
||||
#define TEMP_VERSION_MAJOR 1
|
||||
#define TEMP_VERSION_MINOR 0
|
||||
|
@ -32,17 +33,7 @@ LOG_MODULE_REGISTER(LOG_MODULE_NAME);
|
|||
#define ADD_TIMESTAMPS 0
|
||||
#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
|
||||
#define TEMP_TIMESTAMP_ID 5518
|
||||
|
||||
#define TEMP_MAX_ID 8
|
||||
#else /* !ADD_TIMESTAMPS */
|
||||
#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_field fields[] = {
|
||||
OBJ_FIELD_DATA(TEMP_SENSOR_VALUE_ID, R, FLOAT32),
|
||||
OBJ_FIELD_DATA(TEMP_UNITS_ID, R_OPT, STRING),
|
||||
OBJ_FIELD_DATA(TEMP_MIN_MEASURED_VALUE_ID, R_OPT, FLOAT32),
|
||||
OBJ_FIELD_DATA(TEMP_MAX_MEASURED_VALUE_ID, R_OPT, FLOAT32),
|
||||
OBJ_FIELD_DATA(TEMP_MIN_RANGE_VALUE_ID, R_OPT, FLOAT32),
|
||||
OBJ_FIELD_DATA(TEMP_MAX_RANGE_VALUE_ID, R_OPT, FLOAT32),
|
||||
OBJ_FIELD_EXECUTE_OPT(TEMP_RESET_MIN_MAX_MEASURED_VALUES_ID),
|
||||
OBJ_FIELD_DATA(SENSOR_VALUE_RID, R, FLOAT32),
|
||||
OBJ_FIELD_DATA(SENSOR_UNITS_RID, R_OPT, STRING),
|
||||
OBJ_FIELD_DATA(MIN_MEASURED_VALUE_RID, R_OPT, FLOAT32),
|
||||
OBJ_FIELD_DATA(MAX_MEASURED_VALUE_RID, R_OPT, FLOAT32),
|
||||
OBJ_FIELD_DATA(MIN_RANGE_VALUE_RID, R_OPT, FLOAT32),
|
||||
OBJ_FIELD_DATA(MAX_RANGE_VALUE_RID, R_OPT, FLOAT32),
|
||||
OBJ_FIELD_EXECUTE_OPT(RESET_MIN_MAX_MEASURED_VALUES_RID),
|
||||
#if ADD_TIMESTAMPS
|
||||
OBJ_FIELD_DATA(TEMP_TIMESTAMP_ID, RW_OPT, TIME),
|
||||
#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].val2 = sensor_value[index].val2;
|
||||
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)
|
||||
|
@ -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].val2 = sensor_value[index].val2;
|
||||
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,
|
||||
|
@ -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]));
|
||||
|
||||
/* 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,
|
||||
&sensor_value[index], sizeof(*sensor_value),
|
||||
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);
|
||||
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],
|
||||
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],
|
||||
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],
|
||||
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],
|
||||
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);
|
||||
#if ADD_TIMESTAMPS
|
||||
INIT_OBJ_RES_OPTDATA(TEMP_TIMESTAMP_ID, res[index], i,
|
||||
|
|
|
@ -20,23 +20,11 @@ LOG_MODULE_REGISTER(LOG_MODULE_NAME);
|
|||
|
||||
#include "lwm2m_object.h"
|
||||
#include "lwm2m_engine.h"
|
||||
#include "lwm2m_resource_ids.h"
|
||||
|
||||
#define TIMER_VERSION_MAJOR 1
|
||||
#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 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_field fields[] = {
|
||||
OBJ_FIELD_DATA(TIMER_DELAY_DURATION_ID, RW, FLOAT64),
|
||||
OBJ_FIELD_DATA(TIMER_REMAINING_TIME_ID, R_OPT, FLOAT64),
|
||||
OBJ_FIELD_DATA(TIMER_MINIMUM_OFF_TIME_ID, RW_OPT, FLOAT64),
|
||||
OBJ_FIELD_EXECUTE_OPT(TIMER_TRIGGER_ID),
|
||||
OBJ_FIELD_DATA(TIMER_ON_OFF_ID, RW_OPT, BOOL),
|
||||
OBJ_FIELD_DATA(TIMER_DIGITAL_INPUT_COUNTER_ID, RW_OPT, U32), /* TODO */
|
||||
OBJ_FIELD_DATA(TIMER_CUMULATIVE_TIME_ID, RW_OPT, FLOAT64),
|
||||
OBJ_FIELD_DATA(TIMER_DIGITAL_STATE_ID, R_OPT, BOOL),
|
||||
OBJ_FIELD_DATA(TIMER_COUNTER_ID, R_OPT, U32),
|
||||
OBJ_FIELD_DATA(TIMER_MODE_ID, RW_OPT, U8),
|
||||
OBJ_FIELD_DATA(TIMER_APPLICATION_TYPE_ID, RW_OPT, STRING),
|
||||
OBJ_FIELD_DATA(DELAY_DURATION_RID, RW, FLOAT64),
|
||||
OBJ_FIELD_DATA(REMAINING_TIME_RID, R_OPT, FLOAT64),
|
||||
OBJ_FIELD_DATA(MINIMUM_OFF_TIME_RID, RW_OPT, FLOAT64),
|
||||
OBJ_FIELD_EXECUTE_OPT(TRIGGER_RID),
|
||||
OBJ_FIELD_DATA(ON_OFF_RID, RW_OPT, BOOL),
|
||||
OBJ_FIELD_DATA(DIGITAL_INPUT_COUNTER_RID, RW_OPT, U32), /* TODO */
|
||||
OBJ_FIELD_DATA(CUMULATIVE_TIME_RID, RW_OPT, FLOAT64),
|
||||
OBJ_FIELD_DATA(DIGITAL_STATE_RID, R_OPT, BOOL),
|
||||
OBJ_FIELD_DATA(COUNTER_RID, R_OPT, U32),
|
||||
OBJ_FIELD_DATA(TIMER_MODE_RID, RW_OPT, U8),
|
||||
OBJ_FIELD_DATA(APPLICATION_TYPE_RID, RW_OPT, STRING),
|
||||
};
|
||||
|
||||
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;
|
||||
|
||||
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);
|
||||
|
||||
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;
|
||||
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);
|
||||
|
||||
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]));
|
||||
|
||||
/* 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,
|
||||
sizeof(timer_data[avail].delay_duration));
|
||||
INIT_OBJ_RES(TIMER_REMAINING_TIME_ID, res[avail], i,
|
||||
res_inst[avail], j, 1, false, true,
|
||||
&timer_data[avail].remaining_time,
|
||||
INIT_OBJ_RES(REMAINING_TIME_RID, res[avail], i, res_inst[avail], j, 1,
|
||||
false, true, &timer_data[avail].remaining_time,
|
||||
sizeof(timer_data[avail].remaining_time),
|
||||
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,
|
||||
sizeof(timer_data[avail].min_off_time));
|
||||
INIT_OBJ_RES_EXECUTE(TIMER_TRIGGER_ID, res[avail], i,
|
||||
timer_trigger_cb);
|
||||
INIT_OBJ_RES(TIMER_ON_OFF_ID, res[avail], i,
|
||||
res_inst[avail], j, 1, false, true,
|
||||
&timer_data[avail].enabled,
|
||||
INIT_OBJ_RES_EXECUTE(TRIGGER_RID, res[avail], i, timer_trigger_cb);
|
||||
INIT_OBJ_RES(ON_OFF_RID, res[avail], i, res_inst[avail], j, 1, false,
|
||||
true, &timer_data[avail].enabled,
|
||||
sizeof(timer_data[avail].enabled),
|
||||
NULL, NULL, NULL, enabled_post_write_cb, NULL);
|
||||
INIT_OBJ_RES(TIMER_CUMULATIVE_TIME_ID, res[avail], i,
|
||||
res_inst[avail], j, 1, false, true,
|
||||
&timer_data[avail].cumulative_time,
|
||||
INIT_OBJ_RES(CUMULATIVE_TIME_RID, res[avail], i, res_inst[avail], j, 1,
|
||||
false, true, &timer_data[avail].cumulative_time,
|
||||
sizeof(timer_data[avail].cumulative_time),
|
||||
cumulative_time_read_cb, NULL, 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,
|
||||
sizeof(timer_data[avail].active));
|
||||
INIT_OBJ_RES(TIMER_COUNTER_ID, res[avail], i,
|
||||
res_inst[avail], j, 1, false, true,
|
||||
&timer_data[avail].trigger_counter,
|
||||
INIT_OBJ_RES(COUNTER_RID, res[avail], i, res_inst[avail], j, 1, false,
|
||||
true, &timer_data[avail].trigger_counter,
|
||||
sizeof(timer_data[avail].trigger_counter),
|
||||
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,
|
||||
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);
|
||||
|
||||
inst[avail].resources = res[avail];
|
||||
|
|
|
@ -10,7 +10,18 @@
|
|||
#define __LWM2M_RESOURCE_IDS__
|
||||
|
||||
/* clang-format off */
|
||||
#define DIGITAL_INPUT_STATE_RID 5500
|
||||
#define DIGITAL_INPUT_COUNTER_RID 5501
|
||||
#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 MAX_MEASURED_VALUE_RID 5602
|
||||
#define MIN_RANGE_VALUE_RID 5603
|
||||
|
@ -18,8 +29,21 @@
|
|||
#define RESET_MIN_MAX_MEASURED_VALUES_RID 5605
|
||||
#define SENSOR_VALUE_RID 5700
|
||||
#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 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 */
|
||||
|
||||
#endif /* __LWM2M_RESOURCE_IDS__ */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue