mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-04-18 14:42:33 +00:00
mesh: fix load/store of publication model
This commit is contained in:
parent
e887d2dff4
commit
491ef91fb6
@ -470,14 +470,16 @@ static void mesh_model_load_publication(mesh_model_t * mesh_model){
|
|||||||
if (mesh_model->publication_model == NULL) return;
|
if (mesh_model->publication_model == NULL) return;
|
||||||
|
|
||||||
uint32_t tag = mesh_model_publication_tag_for_index(mesh_model->mid);
|
uint32_t tag = mesh_model_publication_tag_for_index(mesh_model->mid);
|
||||||
btstack_tlv_singleton_impl->get_tag(btstack_tlv_singleton_context, tag, (uint8_t *) &mesh_model->publication_model, sizeof(mesh_publication_model_t));
|
btstack_tlv_singleton_impl->get_tag(btstack_tlv_singleton_context, tag, (uint8_t *) mesh_model->publication_model, sizeof(mesh_publication_model_t));
|
||||||
|
|
||||||
// increase ref counts for current virtual publicataion address
|
// increase ref counts for current virtual publicataion address
|
||||||
uint16_t src = mesh_model->publication_model->address;
|
uint16_t src = mesh_model->publication_model->address;
|
||||||
if (mesh_network_address_virtual(src)){
|
if (mesh_network_address_virtual(src)){
|
||||||
mesh_virtual_address_t * virtual_address = mesh_virtual_address_for_pseudo_dst(src);
|
mesh_virtual_address_t * virtual_address = mesh_virtual_address_for_pseudo_dst(src);
|
||||||
|
if (virtual_address){
|
||||||
mesh_virtual_address_increase_refcount(virtual_address);
|
mesh_virtual_address_increase_refcount(virtual_address);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
mesh_model_publication_start(mesh_model);
|
mesh_model_publication_start(mesh_model);
|
||||||
}
|
}
|
||||||
@ -485,7 +487,7 @@ static void mesh_model_load_publication(mesh_model_t * mesh_model){
|
|||||||
void mesh_model_store_publication(mesh_model_t * mesh_model){
|
void mesh_model_store_publication(mesh_model_t * mesh_model){
|
||||||
if (mesh_model->publication_model == NULL) return;
|
if (mesh_model->publication_model == NULL) return;
|
||||||
uint32_t tag = mesh_model_publication_tag_for_index(mesh_model->mid);
|
uint32_t tag = mesh_model_publication_tag_for_index(mesh_model->mid);
|
||||||
btstack_tlv_singleton_impl->store_tag(btstack_tlv_singleton_context, tag, (uint8_t *) &mesh_model->subscriptions, sizeof(mesh_publication_model_t));
|
btstack_tlv_singleton_impl->store_tag(btstack_tlv_singleton_context, tag, (uint8_t *) mesh_model->publication_model, sizeof(mesh_publication_model_t));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mesh_model_delete_publication(mesh_model_t * mesh_model){
|
static void mesh_model_delete_publication(mesh_model_t * mesh_model){
|
||||||
|
Loading…
x
Reference in New Issue
Block a user