Loading...
Searching...
No Matches
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
109
110#ifdef __cplusplus
111extern "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
142
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
185
198typedef 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
213
222
236 int32_t instance_id);
237
249int lwm2m_object_light_control_update_status(uint16_t instance_id, bool status, bool call_cb);
250
262int lwm2m_object_light_control_update_dimmer(uint16_t instance_id, uint8_t dimmer, bool call_cb);
263
277int lwm2m_object_light_control_update_color(uint16_t instance_id, const char *color, size_t len,
278 bool call_cb);
279
293int 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.
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.