Loading...
Searching...
No Matches
light_control.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2021 HAW Hamburg
3 * SPDX-License-Identifier: LGPL-2.1-only
4 */
5
6#pragma once
7
106
107#ifdef __cplusplus
108extern "C" {
109#endif
110
111#include "liblwm2m.h"
112
121#ifndef CONFIG_LWM2M_LIGHT_INSTANCES_MAX
122#define CONFIG_LWM2M_LIGHT_INSTANCES_MAX (3U)
123#endif
124
128#ifndef CONFIG_LWM2M_LIGHT_CONTROL_COLOR_MAX_SIZE
129#define CONFIG_LWM2M_LIGHT_CONTROL_COLOR_MAX_SIZE (16U)
130#endif
131
135#ifndef CONFIG_LWM2M_LIGHT_CONTROL_APP_TYPE_MAX_SIZE
136#define CONFIG_LWM2M_LIGHT_CONTROL_APP_TYPE_MAX_SIZE (16U)
137#endif
139
143#define LWM2M_LIGHT_CONTROL_OBJECT_ID 3311
144
152#define LWM2M_LIGHT_CONTROL_ON_OFF_ID 5850
156#define LWM2M_LIGHT_CONTROL_DIMMER_ID 5851
160#define LWM2M_LIGHT_CONTROL_ON_TIME_ID 5852
164#define LWM2M_LIGHT_CONTROL_ACT_PWR_ID 5805
168#define LWM2M_LIGHT_CONTROL_PWR_FACTOR_ID 5820
172#define LWM2M_LIGHT_CONTROL_COLOUR_ID 5706
176#define LWM2M_LIGHT_CONTROL_UNITS_ID 5701
180#define LWM2M_LIGHT_CONTROL_APP_TYPE_ID 5750
182
195typedef void (*lwm2m_obj_light_control_cb_t)(lwm2m_object_t *object, uint16_t instance_id,
196 bool status, uint8_t dimmer, const char* color,
197 const char* app_type, void *arg);
198
210
219
233 int32_t instance_id);
234
246int lwm2m_object_light_control_update_status(uint16_t instance_id, bool status, bool call_cb);
247
259int lwm2m_object_light_control_update_dimmer(uint16_t instance_id, uint8_t dimmer, bool call_cb);
260
274int lwm2m_object_light_control_update_color(uint16_t instance_id, const char *color, size_t len,
275 bool call_cb);
276
290int lwm2m_object_light_control_update_app_type(uint16_t instance_id, const char *app_type,
291 size_t len, bool call_cb);
292
293#ifdef __cplusplus
294}
295#endif
296
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.