light_control.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2021 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 
110 #ifdef __cplusplus
111 extern "C" {
112 #endif
113 
114 #include "liblwm2m.h"
115 
124 #ifndef CONFIG_LWM2M_LIGHT_INSTANCES_MAX
125 #define CONFIG_LWM2M_LIGHT_INSTANCES_MAX (3U)
126 #endif
127 
131 #ifndef CONFIG_LWM2M_LIGHT_CONTROL_COLOR_MAX_SIZE
132 #define CONFIG_LWM2M_LIGHT_CONTROL_COLOR_MAX_SIZE (16U)
133 #endif
134 
138 #ifndef CONFIG_LWM2M_LIGHT_CONTROL_APP_TYPE_MAX_SIZE
139 #define CONFIG_LWM2M_LIGHT_CONTROL_APP_TYPE_MAX_SIZE (16U)
140 #endif
146 #define LWM2M_LIGHT_CONTROL_OBJECT_ID 3311
147 
155 #define LWM2M_LIGHT_CONTROL_ON_OFF_ID 5850
159 #define LWM2M_LIGHT_CONTROL_DIMMER_ID 5851
163 #define LWM2M_LIGHT_CONTROL_ON_TIME_ID 5852
167 #define LWM2M_LIGHT_CONTROL_ACT_PWR_ID 5805
171 #define LWM2M_LIGHT_CONTROL_PWR_FACTOR_ID 5820
175 #define LWM2M_LIGHT_CONTROL_COLOUR_ID 5706
179 #define LWM2M_LIGHT_CONTROL_UNITS_ID 5701
183 #define LWM2M_LIGHT_CONTROL_APP_TYPE_ID 5750
198 typedef void (*lwm2m_obj_light_control_cb_t)(lwm2m_object_t *object, uint16_t instance_id,
199  bool status, uint8_t dimmer, const char* color,
200  const char* app_type, void *arg);
201 
207  void *cb_arg;
208  const char *color;
209  size_t color_len;
210  const char *app_type;
211  size_t app_type_len;
213 
222 
236  int32_t instance_id);
237 
249 int lwm2m_object_light_control_update_status(uint16_t instance_id, bool status, bool call_cb);
250 
262 int lwm2m_object_light_control_update_dimmer(uint16_t instance_id, uint8_t dimmer, bool call_cb);
263 
277 int lwm2m_object_light_control_update_color(uint16_t instance_id, const char *color, size_t len,
278  bool call_cb);
279 
293 int lwm2m_object_light_control_update_app_type(uint16_t instance_id, const char *app_type,
294  size_t len, bool call_cb);
295 
296 #ifdef __cplusplus
297 }
298 #endif
299 
int lwm2m_object_light_control_update_dimmer(uint16_t instance_id, uint8_t dimmer, bool call_cb)
Update the dimmer value of a light control instance.
lwm2m_object_t * lwm2m_object_light_control_init(lwm2m_client_data_t *client_data)
Initialize the Light Control object.
int lwm2m_object_light_control_instance_create(const lwm2m_obj_light_control_args_t *args, int32_t instance_id)
Create a new Light Control instance and add it to the object list.
void(* lwm2m_obj_light_control_cb_t)(lwm2m_object_t *object, uint16_t instance_id, bool status, uint8_t dimmer, const char *color, const char *app_type, void *arg)
Signature of the callback called when the light resources are updated.
int lwm2m_object_light_control_update_app_type(uint16_t instance_id, const char *app_type, size_t len, bool call_cb)
Update the application type of a light control instance.
int lwm2m_object_light_control_update_color(uint16_t instance_id, const char *color, size_t len, bool call_cb)
Update the color of a light control instance.
int lwm2m_object_light_control_update_status(uint16_t instance_id, bool status, bool call_cb)
Update the status of a light control instance.
struct lwm2m_obj_light_control_args lwm2m_obj_light_control_args_t
Arguments for the creation of a Light Control object instance.
LwM2M client descriptor.
Definition: lwm2m_client.h:69
Arguments for the creation of a Light Control object instance.
const char * color
Array of chars with the light color.
void * cb_arg
Argument to call cb with.
lwm2m_obj_light_control_cb_t cb
Callback for status and dimmer changes.
size_t color_len
Length of color.
size_t app_type_len
Length of app_type.
const char * app_type
Array of chars with the light app type.