Applied On Tue, 2020-07-28 at 11:10 -0700, Inga Stotland wrote: > This fixes the extraction of bit fields from model publication > period octet received as part of Congif Publication Set message. > > The step resolution field is extracted as upper 2 bits (shift by 6) > and the number of steps field is extracted by masking lower 6 bits. > --- > mesh/model.c | 15 ++++++++------- > 1 file changed, 8 insertions(+), 7 deletions(-) > > diff --git a/mesh/model.c b/mesh/model.c > index 31197b363..ef7668147 100644 > --- a/mesh/model.c > +++ b/mesh/model.c > @@ -170,20 +170,21 @@ static struct mesh_model *get_model(struct mesh_node *node, uint8_t ele_idx, > > static uint32_t pub_period_to_ms(uint8_t pub_period) > { > - int n; > + int step_res, num_steps; > > - n = pub_period >> 2; > + step_res = pub_period >> 6; > + num_steps = pub_period & 0x3f; > > - switch (pub_period & 0x3) { > + switch (step_res) { > default: > - return n * 100; > + return num_steps * 100; > case 2: > - n *= 10; > + num_steps *= 10; > /* Fall Through */ > case 1: > - return n * 1000; > + return num_steps * 1000; > case 3: > - return n * 10 * 60 * 1000; > + return num_steps * 10 * 60 * 1000; > } > } >