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

Add provisioner to client in Mesh 2.0.1

Hi,

  

0> <t:          0>, main.c,  696, ----- BLE Mesh Light Switch Client Demo -----
 0> <t:          0>, mesh_softdevice_init.c,  112, Initializing SoftDevice...
 0> <t:          0>, mesh_softdevice_init.c,   77, Enabling BLE...
 0> <t:          2>, mesh_softdevice_init.c,   88, Ram base: 0x200032C8
 0> <t:         18>, main.c,  642, Initializing mesh stack
 0> <t:        549>, access.c,  100, i : 0
 0> <t:        551>, access.c,  100, i : 1
 0> <t:        554>, main.c,  614, Initializing and adding models
 0> <t:        557>, access.c,  100, i : 2
 0> <t:        559>, access.c,  100, i : 3
 0> <t:        561>, access.c,  100, i : 4
 0> <t:        564>, access.c,  100, i : 5
 0> <t:        566>, access.c,  100, i : 6
 0> <t:        569>, access.c,  100, i : 7
 0> <t:        581>, main.c,  674, Setup defaults: Adding keys, addresses, and bindings 
 0> <t:        725>, provisioner_helper.c,  329, netkey_handle: 0
 0> <t:        737>, main.c,  715, <start> 
 0> <t:        739>, main.c,  732, Device UUID : 0059ABCDEFABCDEFACCDEFABCDEFABCD
 0> <t:      27096>, main.c,  426, Flash write complete
 0> <t:      27393>, main.c,  426, Flash write complete
 0> <t:      27395>, main.c,  415, Starting application ...
 0> <t:      27397>, main.c,  417, Provisoned Nodes: 0, Configured Nodes: 0 Next Address: 0x0100
 0> <t:      27401>, main.c,  418, Dev key : AADF3826CAF5929384E288DFBF558AC8
 0> <t:      27404>, main.c,  419, Net key : 5C2E9CFF56B943CF10962AC6205B4505
 0> <t:      27407>, main.c,  420, App key : BC41EA6020DD802B991D3E37E53B86D3
 0> <t:      27410>, main.c,  421, Press Button 1 to start provisioning and configuration process. 
 0> <t:     377514>, main.c,  291, Button 0 pressed
 0> <t:     377516>, main.c,  259, Waiting for Server node to be provisioned ...
 0> <t:     382283>, provisioner_helper.c,  282, Scanning For Unprovisioned Devices
 0> <t:     413732>, provisioner_helper.c,  144, UUID seen: 0059FFFF00000000556CC097C1477C90
 0> <t:     413735>, provisioner_helper.c,   95, UUID filter matched
 0> <t:     413738>, app_error_weak.c,  105, Mesh error 6 at 0x00028599 (F:\document\mesh\nrf_mesh_v2.0.1\nrf5_SDK_for_Mesh_v2.0.1_src\examples\light_switch\client\src\provisioner_helper.c:114)

 

static void check_network_state(void)
{
    if (!m_node_prov_setup_started)
    {
        /* If previously provisioned device is not configured, start node setup procedure. */
        if (m_nw_state.configured_devices < m_nw_state.provisioned_devices)
        {
            /* Execute configuration */
            __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "Waiting for provisioned node to be configured ...\n");
            node_setup_start(m_nw_state.last_device_address, PROVISIONER_RETRY_COUNT,
                            m_nw_state.appkey, APPKEY_INDEX);

            hal_led_pin_set(APP_CONFIGURATION_LED, 1);
        }
        #if 0
        else if (m_nw_state.provisioned_devices == 0)
        {
            /* Start provisioning - First provision the client with known UUID */
            m_exp_uuid.p_uuid = m_client_node_uuid;
            m_exp_uuid.length = NRF_MESH_UUID_SIZE;
            __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "Waiting for Client node to be provisioned ...\n");
            prov_helper_provision_next_device(PROVISIONER_RETRY_COUNT, m_nw_state.next_device_address, &m_exp_uuid);
            prov_helper_scan_start();

            hal_led_pin_set(APP_PROVISIONING_LED, 1);
        }
        #endif
        else if (m_nw_state.provisioned_devices < SERVER_NODE_COUNT)
        {
            /* Start provisioning - rest of the devices */
            m_exp_uuid.p_uuid = m_server_uuid_filter;
            m_exp_uuid.length = SERVER_NODE_UUID_PREFIX_SIZE;
            __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "Waiting for Server node to be provisioned ...\n");
            prov_helper_provision_next_device(PROVISIONER_RETRY_COUNT, m_nw_state.next_device_address, &m_exp_uuid);
            prov_helper_scan_start();

            hal_led_pin_set(APP_PROVISIONING_LED, 1);
        }
        m_node_prov_setup_started = true;
    }
    else
    {
         __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "Waiting for previous procedure to finish ...\n");
    }
}

 As showed in the code, I masked  " else if (m_nw_state.provisioned_devices == 0) ", then it reported  "NRF_ERROR_NOT_SUPPORTED".

Can you tell me how should I do, thank you.

Parents Reply Children
No Data
Related