1
2 #include "syscfg/syscfg.h"
3
4 #include "mesh/mesh.h"
5 #include "console/console.h"
6 #include "light_model.h"
7
8
9 static u8_t gen_onoff_state;
10 static s16_t gen_level_state;
11
update_light_state(void)12 static void update_light_state(void)
13 {
14 console_printf("Light state: onoff=%d lvl=0x%04x\n", gen_onoff_state, (u16_t)gen_level_state);
15 }
16
light_model_gen_onoff_get(struct bt_mesh_model * model,u8_t * state)17 int light_model_gen_onoff_get(struct bt_mesh_model *model, u8_t *state)
18 {
19 *state = gen_onoff_state;
20 return 0;
21 }
22
light_model_gen_onoff_set(struct bt_mesh_model * model,u8_t state)23 int light_model_gen_onoff_set(struct bt_mesh_model *model, u8_t state)
24 {
25 gen_onoff_state = state;
26 update_light_state();
27 return 0;
28 }
29
light_model_gen_level_get(struct bt_mesh_model * model,s16_t * level)30 int light_model_gen_level_get(struct bt_mesh_model *model, s16_t *level)
31 {
32 *level = gen_level_state;
33 return 0;
34 }
35
light_model_gen_level_set(struct bt_mesh_model * model,s16_t level)36 int light_model_gen_level_set(struct bt_mesh_model *model, s16_t level)
37 {
38 gen_level_state = level;
39 if ((u16_t)gen_level_state > 0x0000) {
40 gen_onoff_state = 1;
41 }
42 if ((u16_t)gen_level_state == 0x0000) {
43 gen_onoff_state = 0;
44 }
45 update_light_state();
46 return 0;
47 }
48
light_model_light_lightness_get(struct bt_mesh_model * model,s16_t * lightness)49 int light_model_light_lightness_get(struct bt_mesh_model *model, s16_t *lightness)
50 {
51 return light_model_gen_level_get(model, lightness);
52 }
53
light_model_light_lightness_set(struct bt_mesh_model * model,s16_t lightness)54 int light_model_light_lightness_set(struct bt_mesh_model *model, s16_t lightness)
55 {
56 return light_model_gen_level_set(model, lightness);
57 }
58
59