45 #ifndef IPSO_CONTROL_TEMPLATE_H_ 46 #define IPSO_CONTROL_TEMPLATE_H_ 50 typedef struct ipso_control ipso_control_t;
52 #define IPSO_CONTROL_USE_DIMMER 0x01 54 typedef lwm2m_status_t (*ipso_control_set_value_t)(ipso_control_t *control,
59 lwm2m_object_instance_t reg_object;
63 uint64_t last_on_time;
64 ipso_control_set_value_t set_value;
67 #define IPSO_CONTROL(name, oid, iid, setv) \ 68 static ipso_control_t name = { \ 69 .reg_object.object_id = oid, \ 70 .reg_object.instance_id = iid, \ 74 int ipso_control_add(ipso_control_t *control);
75 int ipso_control_remove(ipso_control_t *control);
77 static inline uint16_t
78 ipso_control_get_object_id(
const ipso_control_t *control)
80 return control->reg_object.object_id;
83 static inline uint16_t
84 ipso_control_get_instance_id(
const ipso_control_t *control)
86 return control->reg_object.instance_id;
90 ipso_control_is_on(
const ipso_control_t *control)
92 return (control->value & 0x80) != 0;
96 ipso_control_get_value(
const ipso_control_t *control)
98 return (control->value & 0x80) != 0 ? (control->value & 0x7f) : 0;
101 lwm2m_status_t ipso_control_set_on(ipso_control_t *control, uint8_t onoroff);
103 lwm2m_status_t ipso_control_set_value(ipso_control_t *control, uint8_t dimm_value);
Header file for the Contiki OMA LWM2M engine