mesh: add publish_now to model_publication_t

This commit is contained in:
Matthias Ringwald 2019-07-01 14:26:20 +02:00
parent 7c8ffd3dee
commit 0563d7ddc8
2 changed files with 14 additions and 3 deletions

View File

@ -1151,7 +1151,7 @@ int mesh_model_contains_appkey(mesh_model_t * mesh_model, uint16_t appkey_index)
}
// Mesh Model Publication
static void mesh_access_publish_model(mesh_model_t * mesh_model){
static void mesh_model_publication_publish_now_model(mesh_model_t * mesh_model){
mesh_publication_model_t * publication_model = mesh_model->publication_model;
if (publication_model == NULL) return;
if (publication_model->publish_state_fn == NULL) return;
@ -1170,7 +1170,17 @@ static void mesh_access_publish_model(mesh_model_t * mesh_model){
mesh_upper_transport_send_access_pdu(pdu);
}
// @assume mesh_model->pulication_model != NULL
static void mesh_model_publication_run_for_model(mesh_model_t * mesh_model){
mesh_publication_model_t * publication_model = mesh_model->publication_model;
publication_model->publish_now = 0;
mesh_model_publication_publish_now_model(mesh_model);
}
void mesh_access_state_changed(mesh_model_t * mesh_model){
// TODO: schedule publication - for now just send right away
mesh_access_publish_model(mesh_model);
mesh_publication_model_t * publication_model = mesh_model->publication_model;
if (publication_model == NULL) return;
publication_model->publish_now = 1;
mesh_model_publication_run_for_model(mesh_model);
}

View File

@ -100,7 +100,8 @@ typedef enum {
typedef struct {
mesh_publish_state_t publish_state_fn;
uint8_t publish_now;
uint16_t address;
uint16_t appkey_index;
uint8_t friendship_credential_flag;