Files

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);