mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-04-17 02:42:33 +00:00
mesh/access: add period_divisor to implement fast period divisor in health server for active faults
This commit is contained in:
parent
e222865b4f
commit
6ef7453897
@ -941,7 +941,7 @@ static void mesh_model_publication_setup_publication(mesh_publication_model_t *
|
||||
publication_model->retransmit_count = mesh_model_publication_retransmit_count(publication_model->retransmit);
|
||||
|
||||
// schedule next publication or retransmission
|
||||
uint32_t publication_period_ms = mesh_access_time_gdtt2ms(publication_model->period);
|
||||
uint32_t publication_period_ms = mesh_access_time_gdtt2ms(publication_model->period) >> publication_model->period_divisor;
|
||||
|
||||
// set next publication
|
||||
if (publication_period_ms != 0){
|
||||
@ -954,7 +954,7 @@ static void mesh_model_publication_setup_publication(mesh_publication_model_t *
|
||||
|
||||
// assumes retransmit_count is valid
|
||||
static void mesh_model_publication_setup_retransmission(mesh_publication_model_t * publication_model, uint32_t now){
|
||||
uint32_t publication_period_ms = mesh_access_time_gdtt2ms(publication_model->period);
|
||||
uint32_t publication_period_ms = mesh_access_time_gdtt2ms(publication_model->period) >> publication_model->period_divisor;
|
||||
|
||||
// retransmission done
|
||||
if (publication_model->retransmit_count == 0) {
|
||||
@ -968,7 +968,8 @@ static void mesh_model_publication_setup_retransmission(mesh_publication_model_t
|
||||
}
|
||||
|
||||
// calc next retransmit time
|
||||
uint32_t retransmission_ms = now + mesh_model_publication_retransmission_period_ms(publication_model->retransmit);
|
||||
uint32_t retransmission_period_ms = mesh_model_publication_retransmission_period_ms(publication_model->retransmit) >> publication_model->period_divisor;
|
||||
uint32_t retransmission_ms = now + retransmission_period_ms;
|
||||
|
||||
// check next publication timeout is before next retransmission
|
||||
if (publication_period_ms != 0){
|
||||
|
@ -82,6 +82,7 @@ typedef struct {
|
||||
uint16_t appkey_index;
|
||||
uint8_t friendship_credential_flag;
|
||||
uint8_t period;
|
||||
uint8_t period_divisor; // divide period by 2 ^ period_divisor, default = 2^0 = 1, added for Health Server
|
||||
uint8_t ttl;
|
||||
uint8_t retransmit;
|
||||
} mesh_publication_model_t;
|
||||
|
Loading…
x
Reference in New Issue
Block a user