Skip to content

Commit f020faa

Browse files
mike-scottmbolivar-nordic
authored andcommitted
[nrf noup] net: lwm2m: add timestamp fields to several IPSO obj
Let's add a timestamp field to the following objects for better event tracking: - IPSO Accelerometer - IPSO On/Off switch - IPSO Push Button - IPSO Temperature Signed-off-by: Michael Scott <[email protected]> (cherry picked from commit bd9a360) Signed-off-by: Martí Bolívar <[email protected]>
1 parent ae0778f commit f020faa

File tree

4 files changed

+24
-4
lines changed

4 files changed

+24
-4
lines changed

subsys/net/lib/lwm2m/ipso_accelerometer.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,10 @@ LOG_MODULE_REGISTER(LOG_MODULE_NAME);
2828
#define ACCEL_SENSOR_UNITS_ID 5701
2929
#define ACCEL_MIN_RANGE_VALUE_ID 5603
3030
#define ACCEL_MAX_RANGE_VALUE_ID 5604
31+
/* This field is not in spec but can be used to record event time */
32+
#define ACCEL_TIMESTAMP_ID 5518
3133

32-
#define ACCEL_MAX_ID 6
34+
#define ACCEL_MAX_ID 7
3335

3436
#define MAX_INSTANCE_COUNT CONFIG_LWM2M_IPSO_ACCELEROMETER_INSTANCE_COUNT
3537

@@ -58,6 +60,7 @@ static struct lwm2m_engine_obj_field fields[] = {
5860
OBJ_FIELD_DATA(ACCEL_SENSOR_UNITS_ID, R_OPT, STRING),
5961
OBJ_FIELD_DATA(ACCEL_MIN_RANGE_VALUE_ID, R_OPT, FLOAT32),
6062
OBJ_FIELD_DATA(ACCEL_MAX_RANGE_VALUE_ID, R_OPT, FLOAT32),
63+
OBJ_FIELD_DATA(ACCEL_TIMESTAMP_ID, RW_OPT, TIME),
6164
};
6265

6366
static struct lwm2m_engine_obj_inst inst[MAX_INSTANCE_COUNT];
@@ -116,6 +119,8 @@ static struct lwm2m_engine_obj_inst *accel_create(u16_t obj_inst_id)
116119
res_inst[avail], j,
117120
&accel_data[avail].max_range,
118121
sizeof(accel_data[avail].max_range));
122+
INIT_OBJ_RES_OPTDATA(ACCEL_TIMESTAMP_ID, res[avail], i,
123+
res_inst[avail], j);
119124

120125
inst[avail].resources = res[avail];
121126
inst[avail].resource_count = i;

subsys/net/lib/lwm2m/ipso_onoff_switch.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,10 @@ LOG_MODULE_REGISTER(LOG_MODULE_NAME);
2727
#define SWITCH_ON_TIME_ID 5852
2828
#define SWITCH_OFF_TIME_ID 5854
2929
#define SWITCH_APPLICATION_TYPE_ID 5750
30+
/* This field is not in spec but can be used to record switch event time */
31+
#define SWITCH_TIMESTAMP_ID 5518
3032

31-
#define SWITCH_MAX_ID 5
33+
#define SWITCH_MAX_ID 6
3234

3335
#define MAX_INSTANCE_COUNT CONFIG_LWM2M_IPSO_ONOFF_SWITCH_INSTANCE_COUNT
3436

@@ -58,6 +60,7 @@ static struct lwm2m_engine_obj_field fields[] = {
5860
OBJ_FIELD_DATA(SWITCH_ON_TIME_ID, RW_OPT, U64),
5961
OBJ_FIELD_DATA(SWITCH_OFF_TIME_ID, RW_OPT, U64),
6062
OBJ_FIELD_DATA(SWITCH_APPLICATION_TYPE_ID, RW_OPT, STRING),
63+
OBJ_FIELD_DATA(SWITCH_TIMESTAMP_ID, RW_OPT, TIME),
6164
};
6265

6366
static struct lwm2m_engine_obj_inst inst[MAX_INSTANCE_COUNT];
@@ -213,6 +216,8 @@ static struct lwm2m_engine_obj_inst *switch_create(u16_t obj_inst_id)
213216
off_time_read_cb, NULL, time_post_write_cb, NULL);
214217
INIT_OBJ_RES_OPTDATA(SWITCH_APPLICATION_TYPE_ID, res[avail], i,
215218
res_inst[avail], j);
219+
INIT_OBJ_RES_OPTDATA(SWITCH_TIMESTAMP_ID, res[avail], i,
220+
res_inst[avail], j);
216221

217222
inst[avail].resources = res[avail];
218223
inst[avail].resource_count = i;

subsys/net/lib/lwm2m/ipso_push_button.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,10 @@ LOG_MODULE_REGISTER(LOG_MODULE_NAME);
2525
#define BUTTON_DIGITAL_STATE_ID 5500
2626
#define BUTTON_DIGITAL_INPUT_COUNTER_ID 5501
2727
#define BUTTON_APPLICATION_TYPE_ID 5750
28+
/* This field is not in spec but can be used to record button event time */
29+
#define BUTTON_TIMESTAMP_ID 5518
2830

29-
#define BUTTON_MAX_ID 3
31+
#define BUTTON_MAX_ID 4
3032

3133
#define MAX_INSTANCE_COUNT CONFIG_LWM2M_IPSO_PUSH_BUTTON_INSTANCE_COUNT
3234

@@ -51,6 +53,7 @@ static struct lwm2m_engine_obj_field fields[] = {
5153
OBJ_FIELD_DATA(BUTTON_DIGITAL_STATE_ID, R, BOOL),
5254
OBJ_FIELD_DATA(BUTTON_DIGITAL_INPUT_COUNTER_ID, R_OPT, U64),
5355
OBJ_FIELD_DATA(BUTTON_APPLICATION_TYPE_ID, RW_OPT, STRING),
56+
OBJ_FIELD_DATA(BUTTON_TIMESTAMP_ID, RW_OPT, TIME),
5457
};
5558

5659
static struct lwm2m_engine_obj_inst inst[MAX_INSTANCE_COUNT];
@@ -139,6 +142,8 @@ static struct lwm2m_engine_obj_inst *button_create(u16_t obj_inst_id)
139142
sizeof(button_data[avail].counter));
140143
INIT_OBJ_RES_OPTDATA(BUTTON_APPLICATION_TYPE_ID, res[avail], i,
141144
res_inst[avail], j);
145+
INIT_OBJ_RES_OPTDATA(BUTTON_TIMESTAMP_ID, res[avail], i,
146+
res_inst[avail], j);
142147

143148
inst[avail].resources = res[avail];
144149
inst[avail].resource_count = i;

subsys/net/lib/lwm2m/ipso_temp_sensor.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,10 @@ LOG_MODULE_REGISTER(LOG_MODULE_NAME);
3131
#define TEMP_MIN_RANGE_VALUE_ID 5603
3232
#define TEMP_MAX_RANGE_VALUE_ID 5604
3333
#define TEMP_RESET_MIN_MAX_MEASURED_VALUES_ID 5605
34+
/* This field is not in spec but can be used to record temp recording time */
35+
#define TEMP_TIMESTAMP_ID 5518
3436

35-
#define TEMP_MAX_ID 7
37+
#define TEMP_MAX_ID 8
3638

3739
#define MAX_INSTANCE_COUNT CONFIG_LWM2M_IPSO_TEMP_SENSOR_INSTANCE_COUNT
3840

@@ -62,6 +64,7 @@ static struct lwm2m_engine_obj_field fields[] = {
6264
OBJ_FIELD_DATA(TEMP_MIN_RANGE_VALUE_ID, R_OPT, FLOAT32),
6365
OBJ_FIELD_DATA(TEMP_MAX_RANGE_VALUE_ID, R_OPT, FLOAT32),
6466
OBJ_FIELD_EXECUTE_OPT(TEMP_RESET_MIN_MAX_MEASURED_VALUES_ID),
67+
OBJ_FIELD_DATA(TEMP_TIMESTAMP_ID, RW_OPT, TIME),
6568
};
6669

6770
static struct lwm2m_engine_obj_inst inst[MAX_INSTANCE_COUNT];
@@ -207,6 +210,8 @@ static struct lwm2m_engine_obj_inst *temp_sensor_create(u16_t obj_inst_id)
207210
sizeof(*max_range_value));
208211
INIT_OBJ_RES_EXECUTE(TEMP_RESET_MIN_MAX_MEASURED_VALUES_ID,
209212
res[index], i, reset_min_max_measured_values_cb);
213+
INIT_OBJ_RES_OPTDATA(TEMP_TIMESTAMP_ID, res[index], i,
214+
res_inst[index], j);
210215

211216
inst[index].resources = res[index];
212217
inst[index].resource_count = i;

0 commit comments

Comments
 (0)