mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-03-30 16:20:24 +00:00
mesh: add timer to transition
This commit is contained in:
parent
e85a5146ec
commit
649d4025aa
@ -128,6 +128,7 @@ typedef enum {
|
||||
|
||||
typedef struct mesh_transition {
|
||||
btstack_linked_item_t item;
|
||||
btstack_timer_source_t timer;
|
||||
|
||||
mesh_transition_state_t state;
|
||||
|
||||
|
@ -159,24 +159,27 @@ static void mesh_server_transition_setup_transition_or_instantaneous_update(mesh
|
||||
mesh_generic_on_off_state_t * generic_on_off_server_state = (mesh_generic_on_off_state_t *)mesh_model->model_data;
|
||||
mesh_transition_t * transition = &generic_on_off_server_state->transition_data.base_transition;
|
||||
|
||||
if (transition_time_gdtt != 0 || delay_time_gdtt != 0) {
|
||||
mesh_access_transitions_setup(transition, (mesh_model_t *) mesh_model,
|
||||
transition_time_gdtt, delay_time_gdtt, &mesh_server_transition_step_bool);
|
||||
mesh_access_transitions_add(transition);
|
||||
} else {
|
||||
// instanteneous update
|
||||
if ((transition_time_gdtt == 0) && (delay_time_gdtt == 0)){
|
||||
generic_on_off_server_state->transition_data.current_value = generic_on_off_server_state->transition_data.target_value;
|
||||
transition->phase_start_ms = 0;
|
||||
transition->remaining_delay_time_ms = 0;
|
||||
transition->remaining_transition_time_ms = 0;
|
||||
transition->state = MESH_TRANSITION_STATE_IDLE;
|
||||
|
||||
mesh_access_emit_state_update_bool(mesh_model->model_packet_handler,
|
||||
mesh_access_get_element_index(mesh_model),
|
||||
mesh_model->model_identifier,
|
||||
MODEL_STATE_ID_GENERIC_ON_OFF,
|
||||
reason,
|
||||
mesh_access_emit_state_update_bool(mesh_model->model_packet_handler,
|
||||
mesh_access_get_element_index(mesh_model),
|
||||
mesh_model->model_identifier,
|
||||
MODEL_STATE_ID_GENERIC_ON_OFF,
|
||||
reason,
|
||||
generic_on_off_server_state->transition_data.current_value);
|
||||
return;
|
||||
}
|
||||
|
||||
// transaction
|
||||
mesh_access_transitions_setup(transition, (mesh_model_t *) mesh_model,
|
||||
transition_time_gdtt, delay_time_gdtt, &mesh_server_transition_step_bool);
|
||||
mesh_access_transitions_add(transition);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user