1 /* Bluetooth: Mesh Generic OnOff, Generic Level, Lighting & Vendor Models
2  *
3  * SPDX-FileCopyrightText: 2018 Vikrant More
4  * SPDX-FileContributor: 2018-2021 Espressif Systems (Shanghai) CO LTD
5  *
6  * SPDX-License-Identifier: Apache-2.0
7  */
8 
9 #ifndef _STATE_TRANSITION_H_
10 #define _STATE_TRANSITION_H_
11 
12 #include "server_common.h"
13 #include "generic_server.h"
14 #include "sensor_server.h"
15 #include "lighting_server.h"
16 #include "time_scene_server.h"
17 
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
21 
22 void bt_mesh_server_calc_remain_time(struct bt_mesh_state_transition *transition);
23 
24 /* APIs used to get server model transition time values */
25 
26 void generic_onoff_tt_values(struct bt_mesh_gen_onoff_srv *srv,
27                              uint8_t trans_time, uint8_t delay);
28 
29 void generic_level_tt_values(struct bt_mesh_gen_level_srv *srv,
30                              uint8_t trans_time, uint8_t delay);
31 
32 void generic_power_level_tt_values(struct bt_mesh_gen_power_level_srv *srv,
33                                    uint8_t trans_time, uint8_t delay);
34 
35 void light_lightness_actual_tt_values(struct bt_mesh_light_lightness_srv *srv,
36                                       uint8_t trans_time, uint8_t delay);
37 
38 void light_lightness_linear_tt_values(struct bt_mesh_light_lightness_srv *srv,
39                                       uint8_t trans_time, uint8_t delay);
40 
41 void light_ctl_tt_values(struct bt_mesh_light_ctl_srv *srv,
42                          uint8_t trans_time, uint8_t delay);
43 
44 void light_ctl_temp_tt_values(struct bt_mesh_light_ctl_temp_srv *srv,
45                               uint8_t trans_time, uint8_t delay);
46 
47 void light_hsl_tt_values(struct bt_mesh_light_hsl_srv *srv,
48                          uint8_t trans_time, uint8_t delay);
49 
50 void light_hsl_hue_tt_values(struct bt_mesh_light_hsl_hue_srv *srv,
51                              uint8_t trans_time, uint8_t delay);
52 
53 void light_hsl_sat_tt_values(struct bt_mesh_light_hsl_sat_srv *srv,
54                              uint8_t trans_time, uint8_t delay);
55 
56 void light_xyl_tt_values(struct bt_mesh_light_xyl_srv *srv,
57                          uint8_t trans_time, uint8_t delay);
58 
59 void light_lc_tt_values(struct bt_mesh_light_lc_srv *srv,
60                         uint8_t trans_time, uint8_t delay);
61 
62 void scene_tt_values(struct bt_mesh_scene_srv *srv, uint8_t trans_time, uint8_t delay);
63 
64 /* Server model transition timer handlers */
65 
66 void generic_onoff_work_handler(struct k_work *work);
67 
68 void generic_level_work_handler(struct k_work *work);
69 
70 void generic_power_level_work_handler(struct k_work *work);
71 
72 void light_lightness_actual_work_handler(struct k_work *work);
73 
74 void light_lightness_linear_work_handler(struct k_work *work);
75 
76 void light_ctl_work_handler(struct k_work *work);
77 
78 void light_ctl_temp_work_handler(struct k_work *work);
79 
80 void light_hsl_work_handler(struct k_work *work);
81 
82 void light_hsl_hue_work_handler(struct k_work *work);
83 
84 void light_hsl_sat_work_handler(struct k_work *work);
85 
86 void light_xyl_work_handler(struct k_work *work);
87 
88 void light_lc_work_handler(struct k_work *work);
89 
90 void scene_recall_work_handler(struct k_work *work);
91 
92 void bt_mesh_server_stop_transition(struct bt_mesh_state_transition *transition);
93 
94 void bt_mesh_server_start_transition(struct bt_mesh_state_transition *transition);
95 
96 #ifdef __cplusplus
97 }
98 #endif
99 
100 #endif /* _STATE_TRANSITION_H_ */
101