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