32 lines
900 B
C
32 lines
900 B
C
#pragma once
|
|
|
|
#include <stdint.h>
|
|
|
|
#include "esp_err.h"
|
|
#include "wifi_store.h"
|
|
|
|
typedef esp_err_t (*web_provisioning_apply_cb_t)(const wifi_store_credentials_t *credentials);
|
|
typedef void (*web_provisioning_expired_cb_t)(void);
|
|
|
|
typedef enum {
|
|
WEB_PROV_IDLE,
|
|
WEB_PROV_SCANNING,
|
|
WEB_PROV_CONNECTING,
|
|
WEB_PROV_CONNECTED,
|
|
WEB_PROV_FAILED,
|
|
} web_provisioning_state_t;
|
|
|
|
typedef struct {
|
|
const char *service_name;
|
|
uint32_t timeout_seconds;
|
|
web_provisioning_apply_cb_t apply_credentials;
|
|
web_provisioning_expired_cb_t expired;
|
|
} web_provisioning_config_t;
|
|
|
|
esp_err_t web_provisioning_start(const web_provisioning_config_t *config);
|
|
void web_provisioning_stop(void);
|
|
bool web_provisioning_is_active(void);
|
|
bool web_provisioning_is_connecting(void);
|
|
void web_provisioning_report_connected(const char *ip_address);
|
|
void web_provisioning_report_failure(const char *reason);
|