Hi,
I have the nRF52833-DK and try to implement the OOB Input method over a simple button press, but at the moment I don't see how this can be managed.
In mesh_provisionee.c I choose the following OOB settings:
uint32_t mesh_provisionee_prov_start(const mesh_provisionee_start_params_t * p_start_params) { nrf_mesh_prov_oob_caps_t prov_caps = { ACCESS_ELEMENT_COUNT, NRF_MESH_PROV_ALGORITHM_FIPS_P256EC, 0, 0, 0, 0, PROVISIONING_DATA_LENGHTH, NRF_MESH_PROV_OOB_INPUT_ACTION_PUSH }; ... }
Now I should receive an event here:
static void prov_evt_handler(const nrf_mesh_prov_evt_t * p_evt) { switch (p_evt->type) { case NRF_MESH_PROV_EVT_INVITE_RECEIVED: if (m_params.prov_device_identification_start_cb != NULL && p_evt->params.invite_received.attention_duration_s > 0) { m_device_identification_started = true; m_params.prov_device_identification_start_cb(p_evt->params.invite_received.attention_duration_s); } break; case NRF_MESH_PROV_EVT_START_RECEIVED: if (m_params.prov_device_identification_stop_cb != NULL && m_device_identification_started) { m_device_identification_started = false; m_params.prov_device_identification_stop_cb(); } break; case NRF_MESH_PROV_EVT_LINK_CLOSED: if (!m_device_provisioned) { if (m_params.prov_abort_cb != NULL) { m_device_identification_started = false; m_params.prov_abort_cb(); } (void) provisionee_start(); } else { #if MESH_FEATURE_PB_GATT_ENABLED /* it requires switching GATT service before provisioning complete */ gatt_database_reset(); #else if (m_params.prov_complete_cb != NULL) { m_params.prov_complete_cb(); } #endif /* MESH_FEATURE_PB_GATT_ENABLED */ } break; case NRF_MESH_PROV_EVT_STATIC_REQUEST: APP_ERROR_CHECK(nrf_mesh_prov_auth_data_provide(&m_prov_ctx, m_params.p_static_data, NRF_MESH_KEY_SIZE)); break; case NRF_MESH_PROV_EVT_COMPLETE: { APP_ERROR_CHECK(mesh_stack_provisioning_data_store( p_evt->params.complete.p_prov_data, p_evt->params.complete.p_devkey)); m_device_provisioned = true; break; } case NRF_MESH_PROV_EVT_INPUT_REQUEST: { APP_ERROR_CHECK(nrf_mesh_prov_auth_data_provide(&m_prov_ctx, m_params.p_static_data, NRF_MESH_KEY_SIZE)); break; } default: break; } }
which goes into NRF_MESH_PROV_EVT_INPUT_REQUEST, right?
But how can I now wait for a button press?
Kind Regards,
Sebastian