xref: /nrf52832-nimble/packages/NimBLE-latest/apps/blemesh_models_example_2/src/transition.h (revision 042d53a763ad75cb1465103098bb88c245d95138)
1 /* Bluetooth: Mesh Generic OnOff, Generic Level, Lighting & Vendor Models
2  *
3  * Copyright (c) 2018 Vikrant More
4  *
5  * SPDX-License-Identifier: Apache-2.0
6  */
7 
8 #ifndef _TRANSITION_H
9 #define _TRANSITION_H
10 
11 #define DEVICE_SPECIFIC_RESOLUTION 10
12 
13 enum transition_time {
14 	DISABLE_TRANSITION = 0x00,
15 	ONOFF_TT = 0x01,
16 	LEVEL_TT,
17 	LEVEL_TT_DELTA,
18 	LEVEL_TT_MOVE,
19 	LIGTH_LIGHTNESS_ACTUAL_TT,
20 	LIGTH_LIGHTNESS_LINEAR_TT,
21 	LIGTH_CTL_TT,
22 	LEVEL_TEMP_TT,
23 	LEVEL_TEMP_TT_DELTA,
24 	LEVEL_TEMP_TT_MOVE,
25 	LIGHT_CTL_TEMP_TT
26 };
27 
28 extern u8_t enable_transition;
29 extern u8_t default_tt;
30 
31 extern struct ble_npl_callout onoff_transition_timer;
32 extern struct ble_npl_callout level_lightness_transition_timer;
33 extern struct ble_npl_callout level_temp_transition_timer;
34 extern struct ble_npl_callout light_lightness_actual_transition_timer;
35 extern struct ble_npl_callout light_lightness_linear_transition_timer;
36 extern struct ble_npl_callout light_ctl_transition_timer;
37 extern struct ble_npl_callout light_ctl_temp_transition_timer;
38 
39 void onoff_tt_values(struct generic_onoff_state *state);
40 void level_tt_values(struct generic_level_state *state);
41 void delta_level_tt_values(struct generic_level_state *state);
42 void move_level_tt_values(struct generic_level_state *state);
43 void light_lightnes_actual_tt_values(struct light_lightness_state *state);
44 void light_lightnes_linear_tt_values(struct light_lightness_state *state);
45 void light_ctl_tt_values(struct light_ctl_state *state);
46 void light_ctl_temp_tt_values(struct light_ctl_state *state);
47 
48 void onoff_handler(struct generic_onoff_state *state);
49 void level_lightness_handler(struct generic_level_state *state);
50 void level_temp_handler(struct generic_level_state *state);
51 void light_lightness_actual_handler(struct light_lightness_state *state);
52 void light_lightness_linear_handler(struct light_lightness_state *state);
53 void light_ctl_handler(struct light_ctl_state *state);
54 void light_ctl_temp_handler(struct light_ctl_state *state);
55 
56 void transition_timers_init(void);
57 
58 #endif
59