1 /*
2  * Copyright (C) 2018-2020 Alibaba Group Holding Limited
3  */
4 
5 #ifndef _ALI_MODEL_GEN_ONOFF_SRV_H_
6 #define _ALI_MODEL_GEN_ONOFF_SRV_H_
7 
8 #include "genie_service.h"
9 
10 #define GEN_ONOFF_OPC_NUM 4
11 #define GEN_ONOFF_DEFAULT 1
12 
13 #define MESH_MODEL_GEN_ONOFF_SRV(_user_data) BT_MESH_MODEL(BT_MESH_MODEL_ID_GEN_ONOFF_SRV, \
14                                                            g_gen_onoff_op, &g_gen_onoff_pub, _user_data)
15 
16 extern struct bt_mesh_model_pub g_gen_onoff_pub;
17 extern const struct bt_mesh_model_op g_gen_onoff_op[GEN_ONOFF_OPC_NUM];
18 
19 /**
20  * @brief generic on/off model publication
21  * @param[in] p_model: model details
22  */
23 void gen_onoff_publication(struct bt_mesh_model *p_model);
24 
25 /**
26  * @brief bind the on/off element with lightness app.
27  * @param[in] p_elem refer to the element to be bound.
28  * @param[in] type TYPE_PRESENT or TYPE_TARGET
29  */
30 void sig_model_onoff_update_by_lightness(sig_model_element_state_t *p_elem, E_VALUE_TYPE type);
31 
32 #ifdef CONFIG_MESH_MODEL_CTL_SRV
33 void sig_model_onoff_update_by_color_temperature(sig_model_element_state_t *p_elem);
34 #endif
35 
36 #endif // _ALI_MODEL_GEN_ONOFF_SRV_H_
37