Skip to content

Commit fb439fd

Browse files
vikrant8052jhedberg
authored andcommitted
samples: mesh: nrf52: corrected Gen. move msg handler implementation
Corrected Generic Move (Level) message handler implementation. Signed-off-by: Vikrant More <[email protected]>
1 parent 3bc9319 commit fb439fd

File tree

3 files changed

+49
-114
lines changed

3 files changed

+49
-114
lines changed

samples/boards/nrf52/mesh/onoff_level_lighting_vnd_app/src/mesh/device_composition.c

Lines changed: 34 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ static void gen_onoff_set_unack(struct bt_mesh_model *model,
194194
state->last_msg_timestamp = now;
195195
state->transition->tt = tt;
196196
state->transition->delay = delay;
197-
state->transition->type = ONOFF_TT;
197+
state->transition->type = NON_MOVE;
198198
set_target(ONOFF, &onoff);
199199

200200
if (state->light->target != state->light->current) {
@@ -263,7 +263,7 @@ static void gen_onoff_set(struct bt_mesh_model *model,
263263
state->last_msg_timestamp = now;
264264
state->transition->tt = tt;
265265
state->transition->delay = delay;
266-
state->transition->type = ONOFF_TT;
266+
state->transition->type = NON_MOVE;
267267
set_target(ONOFF, &onoff);
268268

269269
if (state->light->target != state->light->current) {
@@ -314,14 +314,9 @@ static void gen_level_get(struct bt_mesh_model *model,
314314
}
315315

316316
if (state->transition->counter) {
317-
if (state->transition->type == LEVEL_TT_MOVE) {
318-
net_buf_simple_add_le16(msg, (s16_t) get_target(LEVEL));
319-
net_buf_simple_add_u8(msg, UNKNOWN_VALUE);
320-
} else {
321-
calculate_rt(state->transition);
322-
net_buf_simple_add_le16(msg, (s16_t) get_target(LEVEL));
323-
net_buf_simple_add_u8(msg, state->transition->rt);
324-
}
317+
calculate_rt(state->transition);
318+
net_buf_simple_add_le16(msg, (s16_t) get_target(LEVEL));
319+
net_buf_simple_add_u8(msg, state->transition->rt);
325320
}
326321

327322
send:
@@ -344,14 +339,9 @@ void gen_level_publish(struct bt_mesh_model *model)
344339
net_buf_simple_add_le16(msg, (s16_t) get_current(LEVEL));
345340

346341
if (state->transition->counter) {
347-
if (state->transition->type == LEVEL_TT_MOVE) {
348-
net_buf_simple_add_le16(msg, (s16_t) get_target(LEVEL));
349-
net_buf_simple_add_u8(msg, UNKNOWN_VALUE);
350-
} else {
351-
calculate_rt(state->transition);
352-
net_buf_simple_add_le16(msg, (s16_t) get_target(LEVEL));
353-
net_buf_simple_add_u8(msg, state->transition->rt);
354-
}
342+
calculate_rt(state->transition);
343+
net_buf_simple_add_le16(msg, (s16_t) get_target(LEVEL));
344+
net_buf_simple_add_u8(msg, state->transition->rt);
355345
}
356346

357347
err = bt_mesh_model_publish(model);
@@ -406,7 +396,7 @@ static void gen_level_set_unack(struct bt_mesh_model *model,
406396
state->last_msg_timestamp = now;
407397
state->transition->tt = tt;
408398
state->transition->delay = delay;
409-
state->transition->type = UNKNOWN_TT;
399+
state->transition->type = NON_MOVE;
410400
set_target(LEVEL, &level);
411401

412402
if (state->light->target != state->light->current) {
@@ -422,7 +412,6 @@ static void gen_level_set_unack(struct bt_mesh_model *model,
422412

423413
state->transition->just_started = true;
424414
gen_level_publish(model);
425-
state->transition->type = LEVEL_TT;
426415
level_lightness_handler(state);
427416
}
428417

@@ -473,7 +462,7 @@ static void gen_level_set(struct bt_mesh_model *model,
473462
state->last_msg_timestamp = now;
474463
state->transition->tt = tt;
475464
state->transition->delay = delay;
476-
state->transition->type = UNKNOWN_TT;
465+
state->transition->type = NON_MOVE;
477466
set_target(LEVEL, &level);
478467

479468
if (state->light->target != state->light->current) {
@@ -491,7 +480,6 @@ static void gen_level_set(struct bt_mesh_model *model,
491480
state->transition->just_started = true;
492481
gen_level_get(model, ctx, buf);
493482
gen_level_publish(model);
494-
state->transition->type = LEVEL_TT;
495483
level_lightness_handler(state);
496484
}
497485

@@ -550,7 +538,7 @@ static void gen_delta_set_unack(struct bt_mesh_model *model,
550538
state->last_msg_timestamp = now;
551539
state->transition->tt = tt;
552540
state->transition->delay = delay;
553-
state->transition->type = UNKNOWN_TT;
541+
state->transition->type = NON_MOVE;
554542

555543
if (target < INT16_MIN) {
556544
target = INT16_MIN;
@@ -573,7 +561,6 @@ static void gen_delta_set_unack(struct bt_mesh_model *model,
573561

574562
state->transition->just_started = true;
575563
gen_level_publish(model);
576-
state->transition->type = LEVEL_TT_DELTA;
577564
level_lightness_handler(state);
578565
}
579566

@@ -633,7 +620,7 @@ static void gen_delta_set(struct bt_mesh_model *model,
633620
state->last_msg_timestamp = now;
634621
state->transition->tt = tt;
635622
state->transition->delay = delay;
636-
state->transition->type = UNKNOWN_TT;
623+
state->transition->type = NON_MOVE;
637624

638625
if (target < INT16_MIN) {
639626
target = INT16_MIN;
@@ -658,7 +645,6 @@ static void gen_delta_set(struct bt_mesh_model *model,
658645
state->transition->just_started = true;
659646
gen_level_get(model, ctx, buf);
660647
gen_level_publish(model);
661-
state->transition->type = LEVEL_TT_DELTA;
662648
level_lightness_handler(state);
663649
}
664650

@@ -708,7 +694,7 @@ static void gen_move_set_unack(struct bt_mesh_model *model,
708694
state->last_msg_timestamp = now;
709695
state->transition->tt = tt;
710696
state->transition->delay = delay;
711-
state->transition->type = UNKNOWN_TT;
697+
state->transition->type = MOVE;
712698
state->light->delta = delta;
713699

714700
if (delta < 0) {
@@ -732,7 +718,6 @@ static void gen_move_set_unack(struct bt_mesh_model *model,
732718
}
733719

734720
state->transition->just_started = true;
735-
state->transition->type = LEVEL_TT_MOVE;
736721
gen_level_publish(model);
737722
level_lightness_handler(state);
738723
}
@@ -784,7 +769,7 @@ static void gen_move_set(struct bt_mesh_model *model,
784769
state->last_msg_timestamp = now;
785770
state->transition->tt = tt;
786771
state->transition->delay = delay;
787-
state->transition->type = UNKNOWN_TT;
772+
state->transition->type = MOVE;
788773
state->light->delta = delta;
789774

790775
if (delta < 0) {
@@ -809,7 +794,6 @@ static void gen_move_set(struct bt_mesh_model *model,
809794
}
810795

811796
state->transition->just_started = true;
812-
state->transition->type = LEVEL_TT_MOVE;
813797
gen_level_get(model, ctx, buf);
814798
gen_level_publish(model);
815799
level_lightness_handler(state);
@@ -1172,7 +1156,7 @@ static void light_lightness_set_unack(struct bt_mesh_model *model,
11721156
state->last_msg_timestamp = now;
11731157
state->transition->tt = tt;
11741158
state->transition->delay = delay;
1175-
state->transition->type = LIGHT_ACTUAL_TT;
1159+
state->transition->type = NON_MOVE;
11761160

11771161
if (actual > 0 && actual < state->light->range_min) {
11781162
actual = state->light->range_min;
@@ -1245,7 +1229,7 @@ static void light_lightness_set(struct bt_mesh_model *model,
12451229
state->last_msg_timestamp = now;
12461230
state->transition->tt = tt;
12471231
state->transition->delay = delay;
1248-
state->transition->type = LIGHT_ACTUAL_TT;
1232+
state->transition->type = NON_MOVE;
12491233

12501234
if (actual > 0 && actual < state->light->range_min) {
12511235
actual = state->light->range_min;
@@ -1372,7 +1356,7 @@ static void light_lightness_linear_set_unack(struct bt_mesh_model *model,
13721356
state->last_msg_timestamp = now;
13731357
state->transition->tt = tt;
13741358
state->transition->delay = delay;
1375-
state->transition->type = LIGHT_LINEAR_TT;
1359+
state->transition->type = NON_MOVE;
13761360
set_target(LINEAR, &linear);
13771361

13781362
if (state->light->target != state->light->current) {
@@ -1438,7 +1422,7 @@ static void light_lightness_linear_set(struct bt_mesh_model *model,
14381422
state->last_msg_timestamp = now;
14391423
state->transition->tt = tt;
14401424
state->transition->delay = delay;
1441-
state->transition->type = LIGHT_LINEAR_TT;
1425+
state->transition->type = NON_MOVE;
14421426
set_target(LINEAR, &linear);
14431427

14441428
if (state->light->target != state->light->current) {
@@ -1801,7 +1785,7 @@ static void light_ctl_set_unack(struct bt_mesh_model *model,
18011785
state->last_msg_timestamp = now;
18021786
state->transition->tt = tt;
18031787
state->transition->delay = delay;
1804-
state->transition->type = LIGHT_CTL_TT;
1788+
state->transition->type = NON_MOVE;
18051789
set_target(CTL, &lightness);
18061790

18071791
if (temp < state->temp->range_min) {
@@ -1887,7 +1871,7 @@ static void light_ctl_set(struct bt_mesh_model *model,
18871871
state->last_msg_timestamp = now;
18881872
state->transition->tt = tt;
18891873
state->transition->delay = delay;
1890-
state->transition->type = LIGHT_CTL_TT;
1874+
state->transition->type = NON_MOVE;
18911875
set_target(CTL, &lightness);
18921876

18931877
if (temp < state->temp->range_min) {
@@ -2276,7 +2260,7 @@ static void light_ctl_temp_set_unack(struct bt_mesh_model *model,
22762260
state->last_msg_timestamp = now;
22772261
state->transition->tt = tt;
22782262
state->transition->delay = delay;
2279-
state->transition->type = LIGHT_CTL_TEMP_TT;
2263+
state->transition->type = NON_MOVE;
22802264

22812265
if (temp < state->temp->range_min) {
22822266
temp = state->temp->range_min;
@@ -2358,7 +2342,7 @@ static void light_ctl_temp_set(struct bt_mesh_model *model,
23582342
state->last_msg_timestamp = now;
23592343
state->transition->tt = tt;
23602344
state->transition->delay = delay;
2361-
state->transition->type = LIGHT_CTL_TEMP_TT;
2345+
state->transition->type = NON_MOVE;
23622346

23632347
if (temp < state->temp->range_min) {
23642348
temp = state->temp->range_min;
@@ -2405,16 +2389,9 @@ static void gen_level_get_temp(struct bt_mesh_model *model,
24052389
}
24062390

24072391
if (state->transition->counter) {
2408-
if (state->transition->type == LEVEL_TEMP_TT_MOVE) {
2409-
net_buf_simple_add_le16(msg,
2410-
(s16_t) get_target(LEVEL_TEMP));
2411-
net_buf_simple_add_u8(msg, UNKNOWN_VALUE);
2412-
} else {
2413-
calculate_rt(state->transition);
2414-
net_buf_simple_add_le16(msg,
2415-
(s16_t) get_target(LEVEL_TEMP));
2416-
net_buf_simple_add_u8(msg, state->transition->rt);
2417-
}
2392+
calculate_rt(state->transition);
2393+
net_buf_simple_add_le16(msg, (s16_t) get_target(LEVEL_TEMP));
2394+
net_buf_simple_add_u8(msg, state->transition->rt);
24182395
}
24192396

24202397
send:
@@ -2437,16 +2414,9 @@ void gen_level_publish_temp(struct bt_mesh_model *model)
24372414
net_buf_simple_add_le16(msg, (s16_t) get_current(LEVEL_TEMP));
24382415

24392416
if (state->transition->counter) {
2440-
if (state->transition->type == LEVEL_TEMP_TT_MOVE) {
2441-
net_buf_simple_add_le16(msg,
2442-
(s16_t) get_target(LEVEL_TEMP));
2443-
net_buf_simple_add_u8(msg, UNKNOWN_VALUE);
2444-
} else {
2445-
calculate_rt(state->transition);
2446-
net_buf_simple_add_le16(msg,
2447-
(s16_t) get_target(LEVEL_TEMP));
2448-
net_buf_simple_add_u8(msg, state->transition->rt);
2449-
}
2417+
calculate_rt(state->transition);
2418+
net_buf_simple_add_le16(msg, (s16_t) get_target(LEVEL_TEMP));
2419+
net_buf_simple_add_u8(msg, state->transition->rt);
24502420
}
24512421

24522422
err = bt_mesh_model_publish(model);
@@ -2501,7 +2471,7 @@ static void gen_level_set_unack_temp(struct bt_mesh_model *model,
25012471
state->last_msg_timestamp = now;
25022472
state->transition->tt = tt;
25032473
state->transition->delay = delay;
2504-
state->transition->type = UNKNOWN_TT;
2474+
state->transition->type = NON_MOVE;
25052475
set_target(LEVEL_TEMP, &level);
25062476

25072477
if (state->temp->target != state->temp->current) {
@@ -2517,7 +2487,6 @@ static void gen_level_set_unack_temp(struct bt_mesh_model *model,
25172487

25182488
state->transition->just_started = true;
25192489
gen_level_publish_temp(model);
2520-
state->transition->type = LEVEL_TEMP_TT;
25212490
level_temp_handler(state);
25222491
}
25232492

@@ -2568,7 +2537,7 @@ static void gen_level_set_temp(struct bt_mesh_model *model,
25682537
state->last_msg_timestamp = now;
25692538
state->transition->tt = tt;
25702539
state->transition->delay = delay;
2571-
state->transition->type = UNKNOWN_TT;
2540+
state->transition->type = NON_MOVE;
25722541
set_target(LEVEL_TEMP, &level);
25732542

25742543
if (state->temp->target != state->temp->current) {
@@ -2586,7 +2555,6 @@ static void gen_level_set_temp(struct bt_mesh_model *model,
25862555
state->transition->just_started = true;
25872556
gen_level_get_temp(model, ctx, buf);
25882557
gen_level_publish_temp(model);
2589-
state->transition->type = LEVEL_TEMP_TT;
25902558
level_temp_handler(state);
25912559
}
25922560

@@ -2645,7 +2613,7 @@ static void gen_delta_set_unack_temp(struct bt_mesh_model *model,
26452613
state->last_msg_timestamp = now;
26462614
state->transition->tt = tt;
26472615
state->transition->delay = delay;
2648-
state->transition->type = UNKNOWN_TT;
2616+
state->transition->type = NON_MOVE;
26492617

26502618
if (target < INT16_MIN) {
26512619
target = INT16_MIN;
@@ -2668,7 +2636,6 @@ static void gen_delta_set_unack_temp(struct bt_mesh_model *model,
26682636

26692637
state->transition->just_started = true;
26702638
gen_level_publish_temp(model);
2671-
state->transition->type = LEVEL_TEMP_TT_DELTA;
26722639
level_temp_handler(state);
26732640
}
26742641

@@ -2728,7 +2695,7 @@ static void gen_delta_set_temp(struct bt_mesh_model *model,
27282695
state->last_msg_timestamp = now;
27292696
state->transition->tt = tt;
27302697
state->transition->delay = delay;
2731-
state->transition->type = UNKNOWN_TT;
2698+
state->transition->type = NON_MOVE;
27322699

27332700
if (target < INT16_MIN) {
27342701
target = INT16_MIN;
@@ -2753,7 +2720,6 @@ static void gen_delta_set_temp(struct bt_mesh_model *model,
27532720
state->transition->just_started = true;
27542721
gen_level_get_temp(model, ctx, buf);
27552722
gen_level_publish_temp(model);
2756-
state->transition->type = LEVEL_TEMP_TT_DELTA;
27572723
level_temp_handler(state);
27582724
}
27592725

@@ -2803,7 +2769,7 @@ static void gen_move_set_unack_temp(struct bt_mesh_model *model,
28032769
state->last_msg_timestamp = now;
28042770
state->transition->tt = tt;
28052771
state->transition->delay = delay;
2806-
state->transition->type = UNKNOWN_TT;
2772+
state->transition->type = MOVE;
28072773
state->temp->delta = delta;
28082774

28092775
if (delta < 0) {
@@ -2828,7 +2794,6 @@ static void gen_move_set_unack_temp(struct bt_mesh_model *model,
28282794
}
28292795

28302796
state->transition->just_started = true;
2831-
state->transition->type = LEVEL_TEMP_TT_MOVE;
28322797
gen_level_publish_temp(model);
28332798
level_temp_handler(state);
28342799
}
@@ -2880,7 +2845,7 @@ static void gen_move_set_temp(struct bt_mesh_model *model,
28802845
state->last_msg_timestamp = now;
28812846
state->transition->tt = tt;
28822847
state->transition->delay = delay;
2883-
state->transition->type = UNKNOWN_TT;
2848+
state->transition->type = MOVE;
28842849
state->temp->delta = delta;
28852850

28862851
if (delta < 0) {
@@ -2906,7 +2871,6 @@ static void gen_move_set_temp(struct bt_mesh_model *model,
29062871
}
29072872

29082873
state->transition->just_started = true;
2909-
state->transition->type = LEVEL_TEMP_TT_MOVE;
29102874
gen_level_get_temp(model, ctx, buf);
29112875
gen_level_publish_temp(model);
29122876
level_temp_handler(state);

0 commit comments

Comments
 (0)