1 /*
2  * Copyright (C) 2019-2020 Alibaba Group Holding Limited
3  */
4 
5 #ifndef _ALI_MODEL_LIGHT_CTL_SRV_H_
6 #define _ALI_MODEL_LIGHT_CTL_SRV_H_
7 
8 #define CTL_TEMP_MIN 800
9 #define CTL_TEMP_MAX 20000
10 #define CTL_TEMP_DEFAULT CTL_TEMP_MAX
11 
12 
13 #define CTL_OPC_NUM 6
14 #define CTL_SETUP_OPC_NUM 5
15 #define CTL_TEMP_OPC_NUM 4
16 
17 
18 #define MESH_MODEL_CTL_SRV(_user_data) BT_MESH_MODEL(BT_MESH_MODEL_ID_LIGHT_CTL_SRV, \
19         g_ctl_srv_op, &g_ctl_srv_pub, _user_data)
20 
21 
22 #define MESH_MODEL_CTL_SETUP_SRV(_user_data) BT_MESH_MODEL(BT_MESH_MODEL_ID_LIGHT_CTL_SETUP_SRV, \
23         g_ctl_setup_srv_op, NULL, _user_data)
24 
25 
26 #define MESH_MODEL_CTL_TEMP_SRV(_user_data) BT_MESH_MODEL(BT_MESH_MODEL_ID_LIGHT_CTL_TEMP_SRV, \
27         g_ctl_temp_srv_op, &g_ctl_srv_pub, _user_data)
28 
29 
30 #define MESH_MODEL_CTL_SRV_NULL()  MESH_MODEL_CTL_SRV(NULL)
31 #define MESH_MODEL_CTL_SETUP_SRV_NULL() MESH_MODEL_CTL_SETUP_SRV(NULL)
32 #define MESH_MODEL_CTL_TEMP_SRV_NULL() MESH_MODEL_CTL_TEMP_SRV(NULL)
33 
34 extern struct bt_mesh_model_pub g_ctl_srv_pub;
35 extern const struct bt_mesh_model_op g_ctl_srv_op[CTL_OPC_NUM];
36 extern const struct bt_mesh_model_op g_ctl_setup_srv_op[CTL_SETUP_OPC_NUM];
37 extern const struct bt_mesh_model_op g_ctl_temp_srv_op[CTL_TEMP_OPC_NUM];
38 
39 
40 int ble_mesh_light_ctl_publication(struct bt_mesh_model *model);
41 
42 
43 #endif //
44