Вы находитесь на странице: 1из 5

Основные файлы.

ets_sys.h — спецефичные структуры и определения для работы с событиями и таймерами.


osapi.h — таймеры и некоторые системные функции, например os_strcat, os_memcpy, os_delay_us и т.п..
os_type.h — мапинг структур из ets_sys.h.
user_interface.h — множество вспомогательных структур и процедур API, в частности для работы с wi-fi, процедуры system_restart,
system_deep_sleep и т.д..
espconn.h — основной файл API со структурами и процедурами по работе с TCP и UDP соединениями.
mem.h — работа с памятью, os_malloc, os_free и т.п.
gpio.h — вспомогательные структуры и процедуры API для работы с GPIO.

Порты.
PIN_PULLUP_DIS(PIN_NAME) - Отключить подтягивающий резистор от «pull up» (+).
PIN_PULLUP_EN(PIN_NAME) - Подключить подтягивающий резистор к «pull up» (+).
PIN_PULLDWN_DIS(PIN_NAME) – Отключить подтягивающий резистор от «pull down» (-).
PIN_PULLDWN_EN(PIN_NAME) – Подключить подтягивающий резистор к «pull down» (-).
PIN_FUNC_SELECT(PIN_NAME, FUNC) - Установка функции ножки.
gpio_output_set(set_mask, clear_mask, enable_mask, disable_mask) - установка состояния ножек.
set_mask – 1, высокий уровень на выходе (подается маска по всем портам).
clear_mask – 1, низкий уровень на выходе (подается маска по всем портам).
enable_mask – 1 выход (подается маска по всем портам).
disable_mask – 1, вход (подается маска по всем портам).
GPIO_OUTPUT_SET(PIN_NOM,state) – установить состояние выхода. При этом порт становится как выход.
PIN_NOM – номер порта (0-31).
state – состояние выхода (0-1).
GPIO_DIS_OUTPUT(PIN_NOM) – Установить порт как вход.
gpio_input_get() - получить состояние всех входов.
GPIO_INPUT_GET (PIN_NOM) – получить состояние входа.
Таймеры.
os_timer_arm(ETSTimer *ptimer, uint32_t milliseconds, bool repeat_flag) – Инициализация таймера.
ptimer – Указатель на структуру таймера.
milliseconds – период в миллисекундах.
repeat_flag – вызывать функцию периодически.
os_timer_disarm(ETSTimer *ptimer) – Отключить таймер.
os_timer_setfn(ETSTimer *ptimer, ETSTimerFunc *pfunction, void *parg) – Прописать в таймер функцию вызова.
ptimer - Указатель на структуру таймера.
pfunction – указатель на функцию.
parg – указатель на аргумент.

system_timer_reinit() – Вызвать при инициализации, если необходимо использовать микро секундный таймер (USE_US_TIMER).

Пример:
static volatile os_timer_t test_timer;
void fnc_timer (void *arg)
{

}

os_timer_disarm(&test_timer);
os_timer_setfn(&test_timer, (os_timer_func_t *) fnc_timer, NULL);
os_timer_arm(&test_timer, 1000, 1);//Раз в секунду

Системные функции
system_get_sdk_version() – Получить строку определяющую версию SDK PRINT("\f\r\n\r\nSDK version: %s\r\n", system_get_sdk_version());
system_restore() – Сброс настроек по умолчанию.
system_restart() – Перезапуск программы
system_init_done_cb(init_done_cb_t cb) – прописывает функцию, которая будет вызываться после выполнения инициализации.
Например для wifi_station_scan.
uint32 system_get_chip_id (void) – Возвращает идентификатор чипа.

void system_deep_sleep(uint32 time_in_us) – перевести модуль в режим глубокого сна на указанное время, после пробуждения будет
вызвана функция user_init. Время сна в микросекундах.
bool system_deep_sleep_set_option(uint8 option) – устанавливает параметры глубокого сна, вызывается перед system_deep_sleep.
void system_phy_set_rfoption(uint8 option) – Опции работы трансивера во сне.

void system_phy_set_max_tpw(uint8 max_tpw) – Установка максимальной выходной мощности устанавливаемый диапазон 0-82 один
шаг 0.25dBm .
void system_phy_set_tpw_via_vdd33(uint16 vdd33) – Установка выходной мощности в зависимости от напряжения.

void system_set_os_print (uint8onoff) – Включение(1)/отключение(0) функций консольного вывода.


system_print_meminfo() – Вывести информацию об используемой памяти (data / rodata / bss / heap), через printf.
system_get_free_heap_size() – Вывести информацию об свободной памяти в куче.

system_os_task (task, prio, queue, qlen) – Создать системный поток


task – функция потока.
prio – приоритет (0/1/2).
queue – указатель на сообщение в очереди?
qlen – длинна сообщения в очереди.
void system_os_post (prio, sig, par) – Отправить сообщение задачи
prio – Приоритет задачи
sig – Тип сообщения
par – передаваемые параметры.

uint32 system_get_time(void) - Запрос системного времени в us.


uint32 system_get_rtc_time(void) – получить кол-во отсчётов от RTC.
uint32 system_rtc_clock_cali_proc(void) – Получить перод RTC.
bool system_rtc_mem_write (uint32 des_addr, void * src_addr, uint32 save_size) – сохранить данные в памяти RTC. Данные
сохраняться, если RTC запитан от батарейки.
bool system_rtc_mem_read (uint32 src_addr, void * des_addr, uint32 save_size) – прочитать данные из RTC.

void system_uart_swap (void) – Сменить функции ножек UART0, при этом задействуются MTDO(U0CTS) и MTCK(U0RTS).
void system_uart_de_swap (void) – Вернуть функции ножек UART0 на старые позиции.
uint16 system_adc_read (void) – Прочитать значение на входе ADC.

uint8 system_get_boot_version (void) – Получить версию загрузчика.


uint32 system_get_userbin_addr (void) – Получить адрес исполняемой программы (user1.bin or user2.bin).
uint8 system_get_boot_mode (void) – Получить режим загрузчика.
SYS_BOOT_ENHANCE_MODE(0) – можно выполнить загрузку и запуск прошивки по любому адресу.
SYS_BOOT_NORMAL_MODE(1) – Можно выполнить загрузку и запуск прошивки по user1.bin (or user2.bin).
bool system_restart_enhance(uint8 bin_type,uint32 bin_addr) – выполнить перезагрузку и запуск прошивки bin_addr – адрес прошивки.

bool system_update_cpu_freq(uint8 freq) – Выполнить установку частоты ядра в МГц. По умолчанию 80.
uint8 system_get_cpu_freq(void) – Получить текущую частоту ядра в МГц.
enum flash_size_map system_get_flash_size_map(void) – Получить текущую конфигурацию flash памяти. (см. flash_size_map )
struct rst_info* system_get_rst_info(void) – Получить информацию о режиме запуска (Включение питания, сброс, …) .
void system_soft_wdt_stop(void) – Отключить программный watchdog.
void system_soft_wdt_restart(void) – Перезапускает программный watchdog, если он бал остановлен ф-ей system_soft_wdt_stop.
void system_soft_wdt_feed(void) – Сброс watchdog.
void os_delay_us(uint16 us) – Задержка в мкСек.

SPI
uint32 spi_flash_get_id (void) – прочитать идентификатор Flash памяти.
SpiFlashOpResult spi_flash_erase_sector (uint16 sec) – Выполнить очистку сектора в Flash.
SpiFlashOpResult spi_flash_write (uint32 des_addr, uint32 *src_addr, uint32 size) – Выполнить запись блока в Flash.
SpiFlashOpResult spi_flash_read(uint32 src_addr, uint32 * des_addr, uint32 size) – Выполнить чтение блока из Flash.
bool system_param_save_with_protect(uint16 start_sec, void *param, uint16 len) – Выполнить сохранение данных с защитой.
bool system_param_load(uint16 start_sec, uint16 offset, void *param, uint16 len) – Выполнить загрузку данных из защищенной области.
void spi_flash_set_read_func (user_spi_flash_read read) – зарегистрировать функцию пользователя для чтения из Flash.

WiFi
wifi_get_opmode – Получить текущий режим работы модуля
wifi_get_opmode_default – Получить режим работы по умолчанию. Записанный во flash.
wifi_set_opmode – Установка режима работы модуля с сохранением во Flash.
wifi_set_opmode_current Установка режима работы модуля. Без сохранения во Flash.
STATION_MODE (1) – Режим клиентского устройства;
SOFTAP_MODE (2) – Режим точки доступа;
STATIONAP_MODE (3) - Режим клиентского устройства и точки доступа.
0 ставит нельзя.

void wifi_station_get_config(struct station_config * config) – Получить текущие параметры WiFi в режиме клиентского устройства.
bool wifi_station_get_config_default (struct station_config *config) – Получить конфигурацию по умолчанию. Записанную во flash.
void wifi_station_set_config (struct station_config * config) – Установить параметры WiFi в режиме клиента. С сохранением во flash.
bool wifi_station_set_config_current (struct station_config *config) – Установить параметры WiFi в режиме клиента. Без сохранения во
Flash.
struct station_config {
uint8 ssid[32]; - название точки доступа, к которой нужно подключиться.
uint8 password[64]; - Пароль на сеть
uint8 bssid_set; == 1 если Мак адрес точки доступа должен соответствовать bssid.
uint8 bssid[6]; - Мак адрес точки доступа, к которой нужно подключиться.
};
Если wifi_station_set_config будет вызываться в user_init, то нет необходимости далее вызывать wifi_station_connect, esp8266
будет подключаться к маршрутизатору автоматически.
bool wifi_station_connect (void) – Выполнить подключение к точке доступа. Если устройство уже подключено, то необходимо вызвать
wifi_station_disconnect. Не вызывать из user_init.
bool wifi_station_disconnect (void) – разорвать соединение с точкой доступа. Не вызывать из user_init.
uint8 wifi_station_get_connect_status (void) – Получить статус соединения с точкой доступа.
bool wifi_station_scan (struct scan_config *config, scan_done_cb_t cb) – Выполнить сканирование доступных точек доступа.
struct scan_config{
uint8 *ssid; // AP’s ssid
uint8 *bssid; // AP’s bssid
uint8 channel; //scan a specific channel
uint8 show_hidden; //scan APs of which ssid is hidden. – сканировать скрытые точки
};
Если config == NULL, то выполняется сканирование всех точек доступа.
Если ssid == NULL и bssid == NULL и channel != 0, то выполняется сканирование указанного канала.
scan_done_cb_t cb – функция в которую будут передаваться найденные каналы.
void scan_done_cb_t (void *arg, STATUS status);
struct bss_info { - Структура определяющая найденные сети (= (struct bss_info *)arg;)
STAILQ_ENTRY(bss_info) next;
u8 bssid[6];
u8 ssid[32];
u8 channel;
s8 rssi;
u8 authmode;
uint8 is_hidden; // SSID of current AP is hidden or not.
};

bool wifi_station_ap_number_set (uint8 ap_number) - задает количество точек доступа, к которым модуль может подключаться? (0-4).
uint8 wifi_station_get_ap_info(struct station_config config[]) – получить информацию по запомненным точкам доступа (AP).
struct station_config config[] - массив на 5 AP. Возвращает кол-во хранимых точек в памяти.
bool wifi_station_ap_change (uint8 current_ap_id) – переместить точку доступа с номером current_ap_id в начало списка.
Uint8 wifi_station_get_current_ap_id () – Получить текущий номер записи подключённой к AP.
uint8 wifi_station_get_auto_connect(void) – ф-я возвращает, будет ли модуль автоматически подключаться к AP или нет. (1 - да).
bool wifi_station_set_auto_connect(uint8 set) – установить режим автоматического подключения при включении питания. Сохраняется
во flash.

bool wifi_station_dhcpc_start(void) – задействовать DHCP клиент. По умолчанию включен.


bool wifi_station_dhcpc_stop(void) - отключить DHCP клиент
enum dhcp_status wifi_station_dhcpc_status(void) – получить статус запущен или нет DHCP клиент.

bool wifi_station_set_reconnect_policy(bool set) – Выполнять пере подключение к точке доступа если произойдет разрыв связи.
Рекомендуется вызывать из user_init.
sint8 wifi_station_get_rssi(void) – Получить уровень сигнала у подключенной станции. (<0) получено значение rssi.

bool wifi_station_set_hostname(char* hostname) – Установить текущие доменное имя.


char* wifi_station_get_hostname(void) – Получить текущие доменное имя.

bool wifi_softap_get_config (struct softap_config *config) – Получить конфигурацию в режиме точки доступа.
bool wifi_softap_get_config_default(struct softap_config *config) – Получить конфигурацию в режиме точки доступа по умолчанию.
bool wifi_softap_set_config (struct softap_config *config) – Установить конфигурацию в режиме точки доступа по умолчанию.
bool wifi_softap_set_config_current (struct softap_config *config) – Установить конфигурацию в режиме точки доступа.
struct softap_config {
uint8 ssid[32]; // имя в режиме AP
uint8 password[64]; // пароль в режиме АР
uint8 ssid_len; // длинна имени AP
uint8 channel; // используемый канал
uint8 authmode; // режим аутентификации (AUTH_OPEN = 0, AUTH_WEP, AUTH_WPA_PSK, AUTH_WPA2_PSK, AUTH_WPA_WPA2_PSK)
uint8 ssid_hidden; // Скрывать сеть
uint8 max_connection; //Максимальное кол-во подключений
uint8 beacon_interval; //интервал оповещения (маяка) 100 ~ 60000 ms, default 100
};
uint8 wifi_softap_get_station_num(void) – получить количество подключенных клиентов в режиме точки доступа.
struct station_info * wifi_softap_get_station_info(void) – получает информацию о подключенных устройствах в режиме АР.
struct station_info {
STAILQ_ENTRY(station_info) next;// следующая запись
uint8 bssid[6];//МАС адрес
struct ip_addr ip;//IP адрес
};
void wifi_softap_free_station_info(void) – очистить занимаемую память (struct station_info), полученную после вызова
wifi_softap_get_station_info.

bool wifi_softap_dhcps_start(void) – запустить DHCP в режиме сервера.


bool wifi_softap_dhcps_stop(void) – Остановить DHCP, работающего в режиме сервера.
bool wifi_softap_set_dhcps_lease(struct dhcps_lease *please) – Установить начальный и конечный IP адрес. Выполнять при выкл. DHCP.
struct dhcps_lease {
uint32 start_ip;
uint32 end_ip;
};
enum dhcp_status wifi_softap_dhcps_status(void) - получить статус работы DHCP в режиме сервера.
bool wifi_softap_set_dhcps_offer_option(uint8 level, void* optarg) – Установить режим работы DHCP сервера.

bool wifi_set_phy_mode(enum phy_mode mode) – установить режим работы Wi-Fi трансивера.( PHY_MODE_11B = 1, PHY_MODE_11G = 2,
PHY_MODE_11N = 3).
Enum phy_mode wifi_get_phy_mode(void) – получить текущий режим работы Wi-Fi трансивера.

bool wifi_get_ip_info(uint8 if_index, struct ip_info *info) – получить информацию о IP адресе в режиме клиента (0) или АР(1).
bool wifi_set_ip_info(uint8 if_index, struct ip_info *info) - Установить IP для режима клиента или АР.
if_index – 0 для режима клиента, 1 для режима точки доступа (AP).
struct ip_info {
struct ip_addr ip;
struct ip_addr netmask;
struct ip_addr gw;
};

bool wifi_set_macaddr(uint8 if_index, uint8 *macaddr) – установить МАС адрес для режимов клиента(0) и AP(1).
bool wifi_get_macaddr(uint8 if_index , uint8 *macaddr) – получить МАС адрес для режимов клиента(0) и AP(1).

Bool wifi_set_sleep_type(enum sleep_type type) – установить спящий режим для экономии энергии.
Enum sleep_type wifi_get_sleep_type(void) – получить установленный спящий режим.
void wifi_status_led_install(uint8 gpio_id, uint32 gpio_name, uint8 gpio_func) – установить ножку, которая будет индицировать
состояние WiFi.
void wifi_status_led_uninstall () – освободить ножку, которая была задействована ф-й wifi_status_led_install.

bool wifi_set_broadcast_if (uint8 interface) – выбор режима отправки broadcast UDP сообщений. (1:station; 2:soft-AP, 3:station+soft-AP)
uint8 wifi_get_broadcast_if (void) – получить текущий режим отправки broadcast UDP сообщений.
void wifi_set_event_handler_cb(wifi_event_handler_cb_t cb) – Зарегистрировать функцию на события от WiFi модуля.

Upgrade (API)?
uint8 system_upgrade_userbin_check() – выполнить проверку userbin ?
void system_upgrade_flag_set(uint8 flag) – установить флаг обновления.
uint8 system_upgrade_flag_check() - получить флаги обновления.
bool system_upgrade_start (struct upgrade_server_info *server) – запуск обновления
struct upgrade_server_info *server – структура определяющая сервер обновления
void system_upgrade_reboot (void) – перезапустить систему с использование новой версии.

Sniffer Related APIs


Void wifi_promiscuous_enable(uint8 promiscuous) - установить режим снифера. (1 = включить). Предварительно необходимо вызвать
wifi_station_set_auto_connect(0). По окончании wifi_promiscuous_enable(0).
void wifi_promiscuous_set_mac(const uint8_t *address) – установить фильтр на мас адрес при приеме сообщений.
Void wifi_set_promiscuous_rx_cb(wifi_promiscuous_cb_t cb) – установить ф-ю в которую будут передаваться принятые пакеты.
uint8 wifi_get_channel(void) – получить номер текущего канала.
bool wifi_set_channel (uint8 channel) – установить номер текущего канала.

smart config APIs


bool smartconfig_start(sc_type type,sc_callback_t cb,uint8 log) – запуск режима smartconfig. Модуль должен быть переведён в
клиентский режим.
sc_type type – тип протокола (AirKiss или ESP-TOUCH).
sc_callback_t cb – указатель на функцию которая получает управление в случае получения информации о сети.
Log - == 1 если необходимо производить вывод результата на UART.
bool smartconfig_stop(void) – остановить поиск сообщения с информацией о сети.
sc_status get_smartconfig_status(void) - получить статус выполнения smartconfig.

SNTP APIs

void sntp_setserver(unsigned char idx, ip_addr_t *addr) – Установить сервер синхронизации времени. Да 3-х адресов. Idx – номер сервера
(0-2), addr – адрес сервера.
ip_addr_t sntp_getserver(unsigned char idx) – Получить IP адрес сервера.
void sntp_setservername(unsigned char idx, char *server) – установить 3 SNTP сервера по доменному имени.
char * sntp_getservername(unsigned char idx) – Получить указатель на строку имени SNTP сервера.
void sntp_init(void) – Выполнить инициализацию SNTP сервера.
void sntp_stop(void) – Остановить сервис SNTP.
uint32 sntp_get_current_timestamp() – Получить текущие время в формате time stamp.
char* sntp_get_real_time(long t) – Получить строку времени. T – время в формате time stamp.
bool sntp_set_timezone (sint8 timezone) – Выполнить установку временной зоны.

TCP/UDP APIs

sint8 espconn_delete(struct espconn *espconn) – Удалить передачи.


err_t espconn_gethostbyname( struct espconn *pespconn, const char *hostname, ip_addr_t *addr, dns_found_callback found) – Выполнить
поиск сервера по доменному имени.
const char *Hostname – Указатель на имя сервера.
ip_addr_t *Addr – IP адрес DNS сервера.
dns_found_callback Found – Функция, которая получит управление после получения IP адреса.

uint32 espconn_port(void) – получить свободный порт.

sint8 espconn_regist_sentcb(struct espconn *espconn, espconn_sent_callback sent_cb) – зарегистрировать функцию, которая будет
вызываться после отправки данных. (typedef void (* espconn_sent_callback)(void *arg); )
sint8 espconn_regist_recvcb(struct espconn *espconn, espconn_recv_callback recv_cb) – зарегистрировать функцию, котрая будет
вызываться при получении данных. (typedef void (* espconn_recv_callback)(void *arg, char *pdata, unsigned short len);)

sint8 espconn_sent(struct espconn *espconn, uint8 *psent, uint16 length) – выполнить отправку данных через WiFi.

TCP APIs
sint8 espconn_accept(struct espconn *espconn) – Создать TCP сервер.
sint8 espconn_secure_accept(struct espconn *espconn) – Создать SSL TCP сервер.

sint8 espconn_regist_time( struct espconn *espconn, uint32 interval, uint8 type_flag) – установить таймаут разрыва соединения.
uint32 Interval – интервал. Максимум = 7200 сек. Если == 0, то соединение не разрывается.
uint8 type_flag - 0 - для всех соединений, 1 – для одного.

sint8 espconn_get_connection_info(struct espconn *espconn,remot_info **pcon_info,uint8 typeflags) – получить информацию о


соединении.
sint8 espconn_connect(struct espconn *espconn) – подключиться к TCP серверу.
sint8 espconn_regist_connectcb( struct espconn *espconn, espconn_connect_callback connect_cb) – зарегистрировать функцию при
установке TCP соединения. (typedef void (*espconn_connect_callback)(void *arg); )

sint8 espconn_set_opt(struct espconn *espconn, uint8 opt) - Установить опции TCP соединения.
sint8 espconn_clear_opt(struct espconn *espconn, uint8 opt) – Отключить опции TCP соединения.

sint8 espconn_set_keepalive(struct espconn *espconn, uint8 level, void* optarg) – Установить конфигурацию TCP keep alive.
sint8 espconn_set_keepalive(struct espconn *espconn, uint8 level, void* optarg) – Получить конфигурацию TCP keep alive.

sint8 espconn_regist_reconcb( struct espconn *espconn, espconn_connect_callback recon_cb) - зарегистрировать функцию


разрыва/неудачи TCP соединения.

sint8 espconn_disconnect(struct espconn *espconn) – разорвать соединение.

sint8 espconn_regist_disconcb(struct espconn *espconn, espconn_connect_callback discon_cb) – Зарегистрировать функцию разрыва


срединения. (typedef void (*espconn_connect_callback)(void *arg); )
sint8 espconn_regist_write_finish (struct espconn *espconn, espconn_connect_callback write_finish_fn) - Зарегистрировать функцию,
которая будет вызываться после отправки данных.

bool espconn_secure_set_size (uint8 level, uint16 size) – установить размер буфера для зашифрованных данных.
sint16 espconn_secure_get_size (uint8 level) – Получить размер буфера для зашифрованных данных.
sint8 espconn_secure_connect (struct espconn *espconn) – Выполнить подключение к TCP серверу в режиме SSL.
sint8 espconn_secure_sent (struct espconn *espconn, uint8 *psent, uint16 length) – Выполнить отправку зашифрованных данных.
sint8 espconn_secure_disconnect(struct espconn *espconn) – Разорвать TCP SSL соединение.

uint8 espconn_tcp_get_max_con(void) – получить максимальное кол-во TCP соединений.


sint8 espconn_tcp_set_max_con(uint8 num) – установить максимальное кол-во TCP соединений.
sint8 espconn_tcp_get_max_con_allow(struct espconn *espconn) - получить максимальное кол-во подключений, которое может
обслуживать сервер.
sint8 espconn_tcp_set_max_con_allow(struct espconn *espconn, uint8 num) – установить максимальное кол-во подключений, которое
будет обслуживать сервер.
sint8 espconn_recv_hold(struct espconn *espconn) – установить блок на функцию пиёма?. Отключить прием, данные копятся в буфере.
sint8 espconn_recv_unhold(struct espconn *espconn) – снять блок с фикции приема.

UDP APIs
sin8 espconn_create(struct espconn *espconn) – создать UDP соединение.
sint8 espconn_igmp_join(ip_addr_t *host_ip, ip_addr_t *multicast_ip) -
sint8 espconn_igmp_leave(ip_addr_t *host_ip, ip_addr_t *multicast_ip)

void espconn_dns_setserver(char numdns, ip_addr_t *dnsserver) – установить DNS сервер. Всего можно 2 (numdns = 0 или 1).

mDNS APIs

Вам также может понравиться