Bluetooth: Mesh: heartbeat fixes for message count
Both count and period must be non-zero for message publication Stop publication when count becomes zero Add count to debug message in hb_publish Signed-off-by: Steve Brown <sbrown@cortland.com>
This commit is contained in:
parent
662c345cb6
commit
db0ee4ea62
1 changed files with 7 additions and 3 deletions
|
@ -95,7 +95,7 @@ static void hb_send(struct bt_mesh_model *model)
|
||||||
|
|
||||||
hb.feat = sys_cpu_to_be16(feat);
|
hb.feat = sys_cpu_to_be16(feat);
|
||||||
|
|
||||||
BT_DBG("InitTTL %u feat 0x%02x", cfg->hb_pub.ttl, feat);
|
BT_DBG("InitTTL %u feat 0x%04x", cfg->hb_pub.ttl, feat);
|
||||||
|
|
||||||
bt_mesh_ctl_send(&tx, TRANS_CTL_OP_HEARTBEAT, &hb, sizeof(hb), NULL);
|
bt_mesh_ctl_send(&tx, TRANS_CTL_OP_HEARTBEAT, &hb, sizeof(hb), NULL);
|
||||||
}
|
}
|
||||||
|
@ -2726,7 +2726,7 @@ static void heartbeat_pub_set(struct bt_mesh_model *model,
|
||||||
* as possible after the Heartbeat Publication Period state
|
* as possible after the Heartbeat Publication Period state
|
||||||
* has been configured for periodic publishing.
|
* has been configured for periodic publishing.
|
||||||
*/
|
*/
|
||||||
if (param->period_log) {
|
if (param->period_log && param->count_log) {
|
||||||
k_work_submit(&cfg->hb_pub.timer.work);
|
k_work_submit(&cfg->hb_pub.timer.work);
|
||||||
} else {
|
} else {
|
||||||
k_delayed_work_cancel(&cfg->hb_pub.timer);
|
k_delayed_work_cancel(&cfg->hb_pub.timer);
|
||||||
|
@ -2904,7 +2904,7 @@ static void hb_publish(struct k_work *work)
|
||||||
struct bt_mesh_subnet *sub;
|
struct bt_mesh_subnet *sub;
|
||||||
u16_t period_ms;
|
u16_t period_ms;
|
||||||
|
|
||||||
BT_DBG("");
|
BT_DBG("hb_pub.count: %u", cfg->hb_pub.count);
|
||||||
|
|
||||||
sub = bt_mesh_subnet_get(cfg->hb_pub.net_idx);
|
sub = bt_mesh_subnet_get(cfg->hb_pub.net_idx);
|
||||||
if (!sub) {
|
if (!sub) {
|
||||||
|
@ -2916,6 +2916,10 @@ static void hb_publish(struct k_work *work)
|
||||||
|
|
||||||
hb_send(model);
|
hb_send(model);
|
||||||
|
|
||||||
|
if (cfg->hb_pub.count == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (cfg->hb_pub.count != 0xffff) {
|
if (cfg->hb_pub.count != 0xffff) {
|
||||||
cfg->hb_pub.count--;
|
cfg->hb_pub.count--;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue