From f80330e42708d4fb0dfd29184cde0359149253ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Narajowski?= Date: Thu, 21 Nov 2019 10:55:38 +0100 Subject: [PATCH] mesh: Fix Generic Model callback API --- nimble/host/mesh/include/mesh/model_srv.h | 7 +++++++ nimble/host/mesh/src/shell.c | 21 +++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/nimble/host/mesh/include/mesh/model_srv.h b/nimble/host/mesh/include/mesh/model_srv.h index cf2027f23..e498ad346 100644 --- a/nimble/host/mesh/include/mesh/model_srv.h +++ b/nimble/host/mesh/include/mesh/model_srv.h @@ -53,6 +53,13 @@ extern const struct bt_mesh_model_cb light_lightness_srv_cb; BT_MESH_MODEL_CB(BT_MESH_MODEL_ID_LIGHT_LIGHTNESS_SRV, \ light_lightness_srv_op, pub, srv, &light_lightness_srv_cb) +void bt_mesh_set_gen_onoff_srv_cb(int (*get)(struct bt_mesh_model *model, u8_t *state), + int (*set)(struct bt_mesh_model *model, u8_t state)); +void bt_mesh_set_gen_level_srv_cb(int (*get)(struct bt_mesh_model *model, s16_t *level), + int (*set)(struct bt_mesh_model *model, s16_t level)); +void bt_mesh_set_light_lightness_srv_cb(int (*get)(struct bt_mesh_model *model, s16_t *level), + int (*set)(struct bt_mesh_model *model, s16_t level)); + #ifdef __cplusplus } #endif diff --git a/nimble/host/mesh/src/shell.c b/nimble/host/mesh/src/shell.c index cabf02920..91fbd9785 100644 --- a/nimble/host/mesh/src/shell.c +++ b/nimble/host/mesh/src/shell.c @@ -241,6 +241,27 @@ static struct bt_mesh_light_lightness_srv light_lightness_srv = { .get = light_model_light_lightness_get, .set = light_model_light_lightness_set, }; + +void bt_mesh_set_gen_onoff_srv_cb(int (*get)(struct bt_mesh_model *model, u8_t *state), + int (*set)(struct bt_mesh_model *model, u8_t state)) +{ + gen_onoff_srv.get = get; + gen_onoff_srv.set = set; +} + +void bt_mesh_set_gen_level_srv_cb(int (*get)(struct bt_mesh_model *model, s16_t *level), + int (*set)(struct bt_mesh_model *model, s16_t level)) +{ + gen_level_srv.get = get; + gen_level_srv.set = set; +} + +void bt_mesh_set_light_lightness_srv_cb(int (*get)(struct bt_mesh_model *model, s16_t *level), + int (*set)(struct bt_mesh_model *model, s16_t level)) +{ + light_lightness_srv.get = get; + light_lightness_srv.set = set; +} #endif static struct bt_mesh_model root_models[] = {