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