xref: /nrf52832-nimble/packages/NimBLE-latest/nimble/host/mesh/src/light_model.c (revision 042d53a763ad75cb1465103098bb88c245d95138)
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