mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
8af11f1f89
1. fix the bug that ESP32 sends broadcast to phone after smartconfig is done 2. fix the declaration of remote_ip in sc_ack_send_task()
137 lines
4.3 KiB
C
137 lines
4.3 KiB
C
// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
#ifndef __ESP_SMARTCONFIG_H__
|
|
#define __ESP_SMARTCONFIG_H__
|
|
|
|
#include <stdint.h>
|
|
#include <stdbool.h>
|
|
#include "esp_err.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef enum {
|
|
SC_STATUS_WAIT = 0, /**< Waiting to start connect */
|
|
SC_STATUS_FIND_CHANNEL, /**< Finding target channel */
|
|
SC_STATUS_GETTING_SSID_PSWD, /**< Getting SSID and password of target AP */
|
|
SC_STATUS_LINK, /**< Connecting to target AP */
|
|
SC_STATUS_LINK_OVER, /**< Connected to AP successfully */
|
|
} smartconfig_status_t;
|
|
|
|
typedef enum {
|
|
SC_TYPE_ESPTOUCH = 0, /**< protocol: ESPTouch */
|
|
SC_TYPE_AIRKISS, /**< protocol: AirKiss */
|
|
SC_TYPE_ESPTOUCH_AIRKISS, /**< protocol: ESPTouch and AirKiss */
|
|
} smartconfig_type_t;
|
|
|
|
/**
|
|
* @brief The callback of SmartConfig, executed when smart-config status changed.
|
|
*
|
|
* @param status Status of SmartConfig:
|
|
* - SC_STATUS_GETTING_SSID_PSWD : pdata is a pointer of smartconfig_type_t, means config type.
|
|
* - SC_STATUS_LINK : pdata is a pointer to wifi_config_t.
|
|
* - SC_STATUS_LINK_OVER : pdata is a pointer of phone's IP address(4 bytes) if pdata unequal NULL.
|
|
* - otherwise : parameter void *pdata is NULL.
|
|
* @param pdata According to the different status have different values.
|
|
*
|
|
*/
|
|
typedef void (*sc_callback_t)(smartconfig_status_t status, void *pdata);
|
|
|
|
/**
|
|
* @brief Get the version of SmartConfig.
|
|
*
|
|
* @return
|
|
* - SmartConfig version const char.
|
|
*/
|
|
const char *esp_smartconfig_get_version(void);
|
|
|
|
/**
|
|
* @brief Start SmartConfig, config ESP device to connect AP. You need to broadcast information by phone APP.
|
|
* Device sniffer special packets from the air that containing SSID and password of target AP.
|
|
*
|
|
* @attention 1. This API can be called in station or softAP-station mode.
|
|
* @attention 2. Can not call esp_smartconfig_start twice before it finish, please call
|
|
* esp_smartconfig_stop first.
|
|
*
|
|
* @param cb SmartConfig callback function.
|
|
* @param ... log 1: UART output logs; 0: UART only outputs the result.
|
|
*
|
|
* @return
|
|
* - ESP_OK: succeed
|
|
* - others: fail
|
|
*/
|
|
esp_err_t esp_smartconfig_start(sc_callback_t cb, ...);
|
|
|
|
/**
|
|
* @brief Stop SmartConfig, free the buffer taken by esp_smartconfig_start.
|
|
*
|
|
* @attention Whether connect to AP succeed or not, this API should be called to free
|
|
* memory taken by smartconfig_start.
|
|
*
|
|
* @return
|
|
* - ESP_OK: succeed
|
|
* - others: fail
|
|
*/
|
|
esp_err_t esp_smartconfig_stop(void);
|
|
|
|
/**
|
|
* @brief Set timeout of SmartConfig process.
|
|
*
|
|
* @attention Timing starts from SC_STATUS_FIND_CHANNEL status. SmartConfig will restart if timeout.
|
|
*
|
|
* @param time_s range 15s~255s, offset:45s.
|
|
*
|
|
* @return
|
|
* - ESP_OK: succeed
|
|
* - others: fail
|
|
*/
|
|
esp_err_t esp_esptouch_set_timeout(uint8_t time_s);
|
|
|
|
/**
|
|
* @brief Set protocol type of SmartConfig.
|
|
*
|
|
* @attention If users need to set the SmartConfig type, please set it before calling
|
|
* esp_smartconfig_start.
|
|
*
|
|
* @param type Choose from the smartconfig_type_t.
|
|
*
|
|
* @return
|
|
* - ESP_OK: succeed
|
|
* - others: fail
|
|
*/
|
|
esp_err_t esp_smartconfig_set_type(smartconfig_type_t type);
|
|
|
|
/**
|
|
* @brief Set mode of SmartConfig. default normal mode.
|
|
*
|
|
* @attention 1. Please call it before API esp_smartconfig_start.
|
|
* @attention 2. Fast mode have corresponding APP(phone).
|
|
* @attention 3. Two mode is compatible.
|
|
*
|
|
* @param enable false-disable(default); true-enable;
|
|
*
|
|
* @return
|
|
* - ESP_OK: succeed
|
|
* - others: fail
|
|
*/
|
|
esp_err_t esp_smartconfig_fast_mode(bool enable);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|