This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

How does the client receive RSSI value from servers?

Hi, when I  provisioned the client and servers via provisioner to create mesh network, I can receive RSSI value from provisionee ,but after the provisionee disconnect to power and reconnect to it or after reset the provisionee, I can't receive  RSSI value again. This makes me confused.

And can you tell how to receive RSSI value from servers and show it on the client ? Any codes or advice.

Thank you all.

Zhengrui.

Parents
  • hello,

    Based upon the limited description of your error, I believe this pertains to the server health status messages (with RSSI values) no longer propagating after powering off and re-connection...

    I believe that this bug is a carry over from Mesh v1.0.1 that was not fixed going into v2.0.1 and is described in this post. Once you follow the instructions provided by João Oliveira you should find that the mesh health model state (and subsequent messages) is restored on reboots.

    In essence the following needs to be implemented in access.c...

    // bug in Mesh sdk v1.01 - https://devzone.nordicsemi.com/f/nordic-q-a/29611/mesh-health-model#post-id-189330
    // suggested patch applied
    
    static inline void restore_publication_period(access_common_t * p_model) {      // WJL - patch function - see  below
        if(p_model->model_info.publication_period.step_num != 0){
            access_publish_period_set(&p_model->publication_state, p_model->model_info.publication_period.step_res, p_model->model_info.publication_period.step_num);
        }
    }
    
    static inline bool restore_models(void)
    {
        if (restore_flash_data(FLASH_GROUP_MODEL, ACCESS_MODEL_COUNT, restore_acquired_model) <= 0)
        {
            return false;
        }
    
        for (access_model_handle_t i = 0; i < ACCESS_MODEL_COUNT; ++i)
        {
            if (m_model_pool[i].model_info.element_index != ACCESS_ELEMENT_INDEX_INVALID)
            {
                    restore_addresses_for_model(&m_model_pool[i]);
                    restore_publication_period(&m_model_pool[i]);       // WJL - patch line
            }
        }
    
        return true;
    }

    Once you have tried the patch, post back to let us know how you got on and we can help you further if required.

    Regards,

Reply
  • hello,

    Based upon the limited description of your error, I believe this pertains to the server health status messages (with RSSI values) no longer propagating after powering off and re-connection...

    I believe that this bug is a carry over from Mesh v1.0.1 that was not fixed going into v2.0.1 and is described in this post. Once you follow the instructions provided by João Oliveira you should find that the mesh health model state (and subsequent messages) is restored on reboots.

    In essence the following needs to be implemented in access.c...

    // bug in Mesh sdk v1.01 - https://devzone.nordicsemi.com/f/nordic-q-a/29611/mesh-health-model#post-id-189330
    // suggested patch applied
    
    static inline void restore_publication_period(access_common_t * p_model) {      // WJL - patch function - see  below
        if(p_model->model_info.publication_period.step_num != 0){
            access_publish_period_set(&p_model->publication_state, p_model->model_info.publication_period.step_res, p_model->model_info.publication_period.step_num);
        }
    }
    
    static inline bool restore_models(void)
    {
        if (restore_flash_data(FLASH_GROUP_MODEL, ACCESS_MODEL_COUNT, restore_acquired_model) <= 0)
        {
            return false;
        }
    
        for (access_model_handle_t i = 0; i < ACCESS_MODEL_COUNT; ++i)
        {
            if (m_model_pool[i].model_info.element_index != ACCESS_ELEMENT_INDEX_INVALID)
            {
                    restore_addresses_for_model(&m_model_pool[i]);
                    restore_publication_period(&m_model_pool[i]);       // WJL - patch line
            }
        }
    
        return true;
    }

    Once you have tried the patch, post back to let us know how you got on and we can help you further if required.

    Regards,

Children
Related