mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-03-28 08:37:22 +00:00
mesh: add hook to track seq number updates
This commit is contained in:
parent
5639acaf77
commit
84b8c4a9e4
@ -55,6 +55,7 @@ static void mesh_access_message_process_handler(mesh_pdu_t * pdu);
|
||||
static void mesh_access_secure_network_beacon_handler(uint8_t packet_type, uint16_t channel, uint8_t * packet, uint16_t size);
|
||||
static void mesh_access_upper_transport_handler(mesh_transport_callback_type_t callback_type, mesh_transport_status_t status, mesh_pdu_t * pdu);
|
||||
static const mesh_operation_t * mesh_model_lookup_operation_by_opcode(mesh_model_t * model, uint32_t opcode);
|
||||
static void mesh_persist_iv_index_and_sequence_number(void);
|
||||
|
||||
static uint16_t primary_element_address;
|
||||
|
||||
@ -93,6 +94,9 @@ void mesh_access_init(void){
|
||||
|
||||
// register for secure network beacons
|
||||
beacon_register_for_secure_network_beacons(&mesh_access_secure_network_beacon_handler);
|
||||
|
||||
// register for seq number updates
|
||||
mesh_sequence_number_set_update_callback(&mesh_persist_iv_index_and_sequence_number);
|
||||
}
|
||||
|
||||
void mesh_access_emit_state_update_bool(btstack_packet_handler_t * event_handler, uint8_t element_index, uint32_t model_identifier,
|
||||
@ -1412,7 +1416,7 @@ void mesh_restore_iv_index_and_sequence_number(void){
|
||||
}
|
||||
|
||||
// higher layer
|
||||
void mesh_persist_iv_index_and_sequence_number(void){
|
||||
static void mesh_persist_iv_index_and_sequence_number(void){
|
||||
}
|
||||
|
||||
|
||||
|
@ -445,7 +445,6 @@ int mesh_model_contains_appkey(mesh_model_t * mesh_model, uint16_t appkey_index)
|
||||
|
||||
// Mesh IV Index and sequence number
|
||||
void mesh_store_iv_index_and_sequence_number(void);
|
||||
void mesh_persist_iv_index_and_sequence_number(void);
|
||||
void mesh_restore_iv_index_and_sequence_number(void);
|
||||
|
||||
// Mesh Access Parser
|
||||
|
@ -97,12 +97,26 @@ void mesh_iv_index_recovered(uint8_t iv_update_active, uint32_t iv_index){
|
||||
global_iv_update_active = iv_update_active;
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
static void (*seq_num_callback)(void);
|
||||
|
||||
void mesh_sequence_number_set_update_callback(void (*callback)(void)){
|
||||
seq_num_callback = callback;
|
||||
}
|
||||
|
||||
void mesh_sequence_number_set(uint32_t seq){
|
||||
sequence_number_current = seq;
|
||||
}
|
||||
|
||||
uint32_t mesh_sequence_number_next(void){
|
||||
return sequence_number_current++;
|
||||
uint32_t seq_number = sequence_number_current++;
|
||||
|
||||
if (seq_num_callback){
|
||||
(*seq_num_callback)();
|
||||
}
|
||||
|
||||
return seq_number;
|
||||
}
|
||||
|
||||
uint32_t mesh_sequence_number_peek(void){
|
||||
|
@ -78,6 +78,11 @@ void mesh_iv_update_completed(void);
|
||||
*/
|
||||
void mesh_iv_index_recovered(uint8_t iv_update_active, uint32_t iv_index);
|
||||
|
||||
/**
|
||||
* @brief Set callback for sequence number update
|
||||
*/
|
||||
void mesh_sequence_number_set_update_callback(void (*callback)(void));
|
||||
|
||||
/**
|
||||
* Sequence Number
|
||||
*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user