20A-ESP8266__RTOS_SDK__Programming Guide__CN.pages

Size: px
Start display at page:

Download "20A-ESP8266__RTOS_SDK__Programming Guide__CN.pages"

Transcription

1 ESP8266 RTOS SDK 编程 手册 版本 1.5 版权 2017

2 关于本 手册 本 文档提供 ESP8266_RTOS_SDK 的编程示例例 文档结构如下 : 章节 标题 内容 第 1 章 前 言 介绍 ESP8266EX 第 2 章 概述 介绍 RTOS SDK 和编程注意事项 第 3 章 编程示例例 提供基于 ESP8266_RTOS_SDK 编程的示例例 第 4 章 附录 提供基于 ESP8266_RTOS_SDK 开发的补充说明 发布说明 日期 版本 发布说明 V1.4 首次发布 V1.5 基于 ESP8266_RTOS_SDK v1.5.0 的重 大更更新 V1.5 更更新章节 2.2

3 目录 1. 前 言 概述 RTOS SDK 简介 编程注意事项 RTOS SDK 目录结构 基本示例例 初始化 如何读取芯 片 ID ESP8266 作为 Station 连接路路由 ESP8266 作为 SoftAP 模式 Wi-Fi 连接状态的事件 读取和设置 ESP8266 MAC 地址 扫描附近 AP 获取 AP 的射频信号强度 (RSSI) 从 Flash 读取数据 RTC 使 用示例例 非 OS SDK app 如何移植为 RTOS SDK app 网络协议示例例 UDP 传输 TCP Client TCP Server 高级应 用示例例 OTA 固件升级... 25

4 强制休眠示例例 SPIFFS 文件系统应 用 SSL 应 用示例例 A. 附录 A.1. Sniffer 说明 A.2. ESP8266 SoftAP 和 Station 信道定义 A.3. ESP8266 启动信息说明... 36

5 1. 前 言 1. 前 言 ESP8266EX 由乐鑫公司开发, 提供了了 一套 高度集成的 Wi-Fi SoC 解决 方案, 其低功耗 紧凑设计和 高稳定性可以满 足 用户的需求 ESP8266EX 拥有完整的且 自成体系的 Wi-Fi 网络功能, 既能够独 立应 用, 也可以作为从机搭载于其他主机 MCU 运 行行 当 ESP8266EX 独 立应 用时, 能够直接从外接 Flash 中启动 内置的 高速缓冲存储器器有利利于提 高系统性能, 并且优化存储系统 此外 ESP8266EX 只需通过 SPI/SDIO 接 口或 I2C/UART 口即可作为 Wi-Fi 适配器器, 应 用到基于任何微控制器器的设计中 ESP8266EX 集成了了天线开关 射频 balun 功耗放 大器器 低噪放 大器器 过滤器器和电源管理理模块 这样紧凑的设计仅需极少的外部电路路并且将 PCB 的尺 寸降到最 小 ESP8266EX 还集成了了增强版的 Tensilica s L106 钻 石系列列 32-bit 内核处理理器器, 带 片上 SRAM ESP8266EX 可以通过 GPIO 外接传感器器和其他设备 软件开发包 (SDK) 提供了了 一些应 用的示例例代码 乐鑫智能互联平台 (ESCP-Espressif Systems Smart Connectivity Platform) 表现出来的领先特征有 : 睡眠 / 唤醒模式之间的快速切换以实现节能 配合低功耗操作的 自适应射频偏置 前端信号的处理理功能 故障排除和射频共存机制可消除蜂窝 / 蓝 牙 /DDR/LVDS/LCD 干扰 基于 ESP8266EX 物联 网平台的 SDK 为 用户提供了了 一个简单 快速 高效开发物联 网产品的软件平台 本 文旨在介绍该 SDK 的基本框架, 以及相关的 API 接 口 主要的阅读对象为需要在 ESP8266EX 物联 网平台进 行行软件开发的嵌 入式软件开发 人员 Espressif 1/37

6 2. 概述 2. 概述 2.1. RTOS SDK 简介 SDK 为 用户提供了了 一套数据接收 发送的函数接 口, 用户不不必关 心底层 网络, 如 Wi-Fi TCP/IP 等的具体实现, 只需要专注于物联 网上层应 用的开发, 利利 用相应接 口完成 网络数据的收发即可 ESP8266 物联 网平台的所有 网络功能均在库中实现, 对 用户不不透明 用户应 用的初始化功能可以在 user_main.c 中实现 void user_init(void) 是上层程序的 入 口函数, 给 用户提供 一个初始化接 口, 用户可在该函数内增加硬件初始化 网络参数设置 定时器器初始化等功能 2.2. 编程注意事项 建议使 用定时器器实现 长时间的查询功能, 可将定时器器设置为循环调 用, 注意 : - 定时器器 (freertos timer 或 os_timer) 执 行行函数内部请勿使 用 while(1) 或其他能阻塞线程的 方式延时, 例例如, 不不能在定时器器回调中进 行行 socket send 操作, 因为 send 函数会阻塞线程 ; - 定时器器回调执 行行请勿超过 15 ms; - os_timer_t 建 立的变量量不不能为局部变量量, 必须为全局变量量 静态变量量或 os_malloc 分配的指针 从 ESP8266_RTOS_SDK_v1.2.0 起, 无需添加宏 ICACHE_FLASH_ATTR, 函数将默认存放在 CACHE 区, 中断函数也可以存放在 CACHE 区 ; 如需将部分频繁调 用的函数定义在 RAM 中, 请在函数前添加宏 IRAM_ATTR; 网络编程使 用通 用的 socket 编程, 网络通信时,socket 请勿绑定在同 一端 口 ; freertos 操作系统及系统 自带的 API 说明请参考 RTOS SDK 的系统任务最 高优先级为 14, 创建任务的接 口 xtaskcreate 为 freertos 自带接 口, 使 用 xtaskcreate 创建任务时, 任务堆栈设置范围为 [176, 512] - 在任务内部如需使 用 长度超过 60 的 大数组, 建议使 用 os_malloc 和 os_free 的 方式操作, 否则, 大数组将占 用任务的堆空间 ; - SDK 底层已占 用部分优先级 :watchdog task 优先级 14,pp task 优先级 13, 高精度 timer (ms) 线程优先级 12,TCP/IP task 优先级 10,freeRTOS timer 优先级 2,Wi-Fi event 优先级为 2,idle task 优先级为 0; Espressif 2/37

7 2. 概述 - 可供 用户任务使 用的优先级为 1 ~ 9; 但注意, 用户任务请勿始终占 用 CPU, 导致低优先级的系统任务 无法执 行行 ; - 请勿修改 FreeRTOSConfig.h, 此处修改头 文件并不不能 生效, 设置由 SDK 库 文件决定 Espressif 3/37

8 3.1. RTOS SDK 目录结构 ESP8266 RTOS SDK 下载链接为 :ESP8266 RTOS SDK 以下为 RTOS SDK 目录结构 bin: 乐鑫官 方提供的 boot 和初始化参数固件 documents:esp8266_rtos_sdk 文档资料料 driver_lib: 乐鑫官 方提供的驱动示例例代码 examples: 乐鑫提供的应 用程序示例例代码 - openssl_demo: 乐鑫官 方提供的 OpenSSL 接 口功能示例例代码 - project_template: 乐鑫官 方提供的 工程模板示例例代码 - smart_config: 乐鑫官 方提供的 SmartConfig 功能示例例代码 - spiffs_test: 乐鑫官 方提供的 SPIFFS 文件系统功能示例例代码 - websocket_demo: 乐鑫官 方提供的 WebSocket 功能示例例代码 include:esp8266_rtos_sdk 的头 文件, 包含了了供 用户使 用的软件接 口和宏定义 ld: 编译时使 用的链接 文件, 用户 一般 无需修改 lib:esp8266_rtos_sdk 的库 文件 third_party: 乐鑫开放源代码的第三 方库, 当前包含 freertos JSON lwip, mbedtls nopoll OpenSSL SPIFFS 和 SSL tools: 工具, 用户 无需修改 3.2. 基本示例例 基本示例例包含如下 : 初始化 如何读取芯 片 ID 如何设置 Wi-Fi 工作模式 - ESP8266 作为 Station 模式, 连接路路由 - ESP8266 作为 SoftAP 模式, 可供其他 Station 连接 Espressif 4/37

9 Wi-Fi 连接状态的事件 如何读取和设置芯 片 MAC 地址 如何扫描附近的 AP 如何获取 AP 的 RF 信号强度 (RSSI) 如何从 Flash 读写数据 RTC 使 用示例例 非 OS SDK app 如何移植为 RTOS SDK app 初始化 1. 应 用程序的初始化可在 user_main.c 中实现 void user_init(void) 是上层程序的 入 口函数, 用户可在该函数内实现初始化操作, 建议打印 SDK 版本号, 并设置 Wi-Fi 工作模式 void user_init(void) printf("sdk version:%s\n", system_get_sdk_version()); /* station + soft-ap mode */ wifi_set_opmode(stationap_mode); 2. ESP8266_RTOS_SDK 默认使 用 UART0 打印调试信息, 默认波特率为 用户可以在 user_init 中 自定义初始化 UART, 参考 uart_init_new 实现 UART 驱动示例例 :\ESP8266_RTOS_SDK\driver_lib\driver\uart.c 以初始化 UART0 为例例 定义 UART 参数 : UART_ConfigTypeDef uart_config; uart_config.baud_rate = BIT_RATE_74880; uart_config.data_bits = UART_WordLength_8b; uart_config.parity = USART_Parity_None; uart_config.stop_bits = USART_StopBits_1; uart_config.flow_ctrl = USART_HardwareFlowControl_None; uart_config.uart_rxflowthresh = 120; uart_config.uart_inversemask = UART_None_Inverse; UART_ParamConfig(UART0, &uart_config); 注册 UART 中断处理理函数, 使能 UART 中断 : UART_IntrConfTypeDef uart_intr; Espressif 5/37

10 uart_intr.uart_intrenmask = UART_RXFIFO_TOUT_INT_ENA UART_FRM_ERR_INT_ENA UART_RXFIFO_FULL_INT_ENA UART_TXFIFO_EMPTY_INT_ENA; uart_intr.uart_rx_fifofullintrthresh = 10; uart_intr.uart_rx_timeoutintrthresh = 2; uart_intr.uart_tx_fifoemptyintrthresh = 20; UART_IntrConfig(UART0, &uart_intr); UART_SetPrintPort(UART0); UART_intr_handler_register(uart0_rx_intr_handler); ETS_UART_INTR_ENABLE(); 3. ESP8266_RTOS_SDK 支持多线程, 可以建 立多个任务 创建任务的接 口 xtaskcreate 为 freertos 自带接 口, 使 用 xtaskcreate 创建任务时, 任务堆栈设置范围为 [176, 512] xtaskcreate(task2, "tsk2", 256, NULL, 2, NULL); xtaskcreate(task3, "tsk3", 256, NULL, 2, NULL); 注册任务执 行行函数, 以 task2 为例例 : void task2(void *pvparameters) printf("hello, welcome to task2\r\n"); while (1) vtaskdelete(null); 4. 编译应 用程序, 生成固件烧录到 ESP8266 硬件模组中 5. 将硬件模组断电, 切换到运 行行模式, 重新上电, 运 行行应 用程序 运 行行结果 : SDK version:1.0.3(601f5cd) mode : sta(18:fe:34:97:f7:40) + softap(1a:fe:34:97:f7:40) Hello, welcome to task2 Hello, welcome to task 如何读取芯 片 ID 1. 软件接 口介绍 : system_get_chip_id 返回硬件模组的 ESP8266 芯 片 ID 值 ESP8266 芯 片 ID 具有唯 一性 printf("esp8266 chip ID:0x%x\n", system_get_chip_id()); Espressif 6/37

11 2. 编译应 用程序, 生成固件烧录到 ESP8266 硬件模组中 3. 将硬件模组断电, 切换到运 行行模式, 重新上电, 运 行行应 用程序 运 行行结果 : ESP8266 chip ID:0x97f ESP8266 作为 Station 连接路路由 1. 设置 ESP8266 为 Station 模式, 或者 Station+SoftAP 共存模式 wifi_set_opmode(station_mode); 2. 设置连接 AP 的信息 #define DEMO_AP_SSID "DEMO_AP" #define DEMO_AP_PASSWORD " " wifi_station_set_config 设置 ESP8266 Station 连接 AP 的信息 请注意将 station_config 中的 bssid_set 初始化为 0, 除 非需要指定 AP MAC 地址的情况才设 置为 1 wifi_station_connect 设置连接路路由 struct station_config * config = (struct station_config *)zalloc(sizeof(struct station_config)); sprintf(config->ssid, DEMO_AP_SSID); sprintf(config->password, DEMO_AP_PASSWORD); wifi_station_set_config(config); free(config); wifi_station_connect(); 3. 编译应 用程序, 生成固件烧录到 ESP8266 硬件模组中 4. 将硬件模组断电, 切换到运 行行模式, 重新上电, 运 行行应 用程序 运 行行结果 : connected with DEMO_AP, channel 11 dhcp client start... ip: ,mask: ,gw: ESP8266 作为 SoftAP 模式 1. 必须先设置 ESP8266 为 SoftAP 模式, 或者 Station+SoftAP 共存模式 wifi_set_opmode(softap_mode); 2. 设置 ESP8266 SoftAP 的配置 Espressif 7/37

12 #define DEMO_AP_SSID "DEMO_AP" #define DEMO_AP_PASSWORD " " struct softap_config *config = (struct softap_config *)zalloc(sizeof(struct softap_config)); // initialization wifi_softap_get_config(config); // Get soft-ap config first. sprintf(config->ssid, DEMO_AP_SSID); sprintf(config->password, DEMO_AP_PASSWORD); config->authmode = AUTH_WPA_WPA2_PSK; config->ssid_len = 0; // or its actual SSID length config->max_connection = 4; wifi_softap_set_config(config); free(config); // Set ESP8266 soft-ap config 3. 查询连接到 ESP8266 SoftAP 的 Station 的信息 struct station_info * station = wifi_softap_get_station_info(); while(station) printf(bssid : MACSTR, ip : IPSTR/n, MAC2STR(station->bssid), IP2STR(&station->ip)); station = STAILQ_NEXT(station, next); wifi_softap_free_station_info(); // Free it by calling functions 4. ESP8266 SoftAP 的默认 IP 地址为 , 开发者可以更更改 ESP8266 SoftAP 的 IP 地址, 请注意, 先关闭 DHCP server 功能 例例如, 设置 ESP8266 SoftAP 的 IP 地址为 wifi_softap_dhcps_stop(); // disable soft-ap DHCP server struct ip_info info; IP4_ADDR(&info.ip, 192, 168, 5, 1); IP4_ADDR(&info.gw, 192, 168, 5, 1); IP4_ADDR(&info.netmask, 255, 255, 255, 0); wifi_set_ip_info(softap_if, &info); // set IP // set gateway // set netmask 5. 开发者可以设置 ESP8266 SoftAP 分配给连 入 Station 的 IP 地址范围 例例如, 设置 IP 池范围为 : 到 请注意, 设置完成后, 再打开 DHCP server 功能 struct dhcps_lease dhcp_lease; IP4_ADDR(&dhcp_lease.start_ip, 192, 168, 5, 100); Espressif 8/37

13 IP4_ADDR(&dhcp_lease.end_ip, 192, 168, 5, 105); wifi_softap_set_dhcps_lease(&dhcp_lease); wifi_softap_dhcps_start(); // enable soft-ap DHCP server 6. 编译应 用程序, 生成固件烧录到 ESP8266 硬件模组中 7. 将硬件模组断电, 切换到运 行行模式, 重新上电, 运 行行应 用程序 使 用 PC 或者其他 Station 连接 ESP8266 SoftAP 运 行行结果 : ESP8266 作为 SoftAP 时, 如有 Station 连 入, 则打印如下信息 : station: c8:3a:35:cc:14:94 join, AID = Wi-Fi 连接状态的事件 1. 当 ESP8266 作为 Station 连接路路由, 或者 ESP8266 作为 SoftAP 时, 可由 wifi_set_event_handler_cb 注册 Wi-Fi 事件的回调 2. 示例例代码 : void wifi_handle_event_cb(system_event_t *evt) printf("event %x\n", evt->event_id); switch (evt->event_id) case EVENT_STAMODE_CONNECTED: printf("connect to ssid %s, channel %d\n", evt->event_info.connected.ssid, evt->event_info.connected.channel); break; case EVENT_STAMODE_DISCONNECTED: printf("disconnect from ssid %s, reason %d\n", evt->event_info.disconnected.ssid, evt->event_info.disconnected.reason); break; case EVENT_STAMODE_AUTHMODE_CHANGE: printf("mode: %d -> %d\n", evt->event_info.auth_change.old_mode, evt->event_info.auth_change.new_mode); Espressif 9/37

14 break; case EVENT_STAMODE_GOT_IP: printf("ip:" IPSTR ",mask:" IPSTR ",gw:" IPSTR, IP2STR(&evt->event_info.got_ip.ip), IP2STR(&evt->event_info.got_ip.mask), IP2STR(&evt->event_info.got_ip.gw)); printf("\n"); break; case EVENT_SOFTAPMODE_STACONNECTED: printf("station: " MACSTR "join, AID = %d\n", MAC2STR(evt->event_info.sta_connected.mac), evt->event_info.sta_connected.aid); break; case EVENT_SOFTAPMODE_STADISCONNECTED: printf("station: " MACSTR "leave, AID = %d\n", MAC2STR(evt->event_info.sta_disconnected.mac), evt->event_info.sta_disconnected.aid); break; default: break; void user_init(void) // TODO: add user s own code here... wifi_set_event_handler_cb(wifi_handle_event_cb); 3. 编译应 用程序, 生成固件烧录到 ESP8266 硬件模组中 4. 将硬件模组断电, 切换到运 行行模式, 重新上电, 运 行行应 用程序 运 行行结果 : 例例如,ESP8266 Station 连 入路路由器器的过程如下 : wifi_handle_event_cb : event 1 connect to ssid Demo_AP, channel 1 wifi_handle_event_cb : event 4 IP: ,mask: ,gw: wifi_handle_event_cb : event 2 disconnect from ssid Demo_AP, reason 8 Espressif 10/37

15 读取和设置 ESP8266 MAC 地址 1. ESP8266 可以 工作在 Station+SoftAP 共存模式,Station 接 口和 SoftAP 接 口的 MAC 地址不不同 乐鑫保证芯 片出 厂的默认 MAC 地址的唯 一性, 用户如果重新设置 MAC 地址, 则需要 自 行行确保 MAC 地址的唯 一性 2. 设置 ESP8266 为 Station+SoftAP 共存模式 wifi_set_opmode(stationap_mode); 3. 分别读取 Station 接 口和 SoftAP 接 口的 MAC 地址 wifi_get_macaddr(softap_if, sofap_mac); wifi_get_macaddr(station_if, sta_mac); 4. 分别设置 Station 接 口和 SoftAP 接 口的 MAC 地址 MAC 地址的设置不不保存到 Flash 中, 先使能对应接 口, 才能设置该接 口的 MAC 地址 char sofap_mac[6] = 0x16, 0x34, 0x56, 0x78, 0x90, 0xab; char sta_mac[6] = 0x12, 0x34, 0x56, 0x78, 0x90, 0xab; wifi_set_macaddr(softap_if, sofap_mac); wifi_set_macaddr(station_if, sta_mac); 5. 编译应 用程序, 生成固件烧录到 ESP8266 硬件模组中 6. 将硬件模组断电, 切换到运 行行模式, 重新上电, 运 行行应 用程序 注意 : ESP8266 SoftAP 和 Station 的 MAC 地址并不不相同, 请勿设置为同 一 MAC 地址 ESP8266 MAC 地址第 一个字节的 bit 0 不不能为 1 例例如,MAC 地址可设置为 1a:fe:36:97:d5:7b, 但不不能设置为 15:fe:36:97:d5:7b 运 行行结果 : ESP8266 station MAC :18:fe:34:97:f7:40 ESP8266 soft-ap MAC :1a:fe:34:97:f7:40 ESP8266 station new MAC :12:34:56:78:90:ab ESP8266 soft-ap new MAC :16:34:56:78:90:ab 扫描附近 AP 1. 设置 ESP8266 为 Station 模式或者 Station+SoftAP 共存模式 wifi_set_opmode(stationap_mode); 2. 扫描附近 AP Espressif 11/37

16 wifi_station_scan 如果第 一个参数为 NULL, 则扫描附近所有 AP; 如果第 一个参数设置了了特定 SSID channel 等信息, 则返回特定的 AP wifi_station_scan(null,scan_done); 扫描 AP 完成的回调函数 void scan_done(void *arg, STATUS status) uint8 ssid[33]; char temp[128]; if (status == OK) struct bss_info *bss_link = (struct bss_info *)arg; while (bss_link = NULL) memset(ssid, 0, 33); if (strlen(bss_link->ssid) <= 32) memcpy(ssid, bss_link->ssid, strlen(bss_link->ssid)); else memcpy(ssid, bss_link->ssid, 32); printf("(%d,\"%s\",%d,\""macstr"\",%d)\r\n", bss_link->authmode, ssid, bss_link->rssi, MAC2STR(bss_link->bssid),bss_link->channel); bss_link = bss_link->next.stqe_next; else printf("scan fail \r\n"); 3. 编译应 用程序, 生成固件烧录到 ESP8266 硬件模组中 4. 将硬件模组断电, 切换到运 行行模式, 重新上电, 运 行行应 用程序 运 行行结果 : Hello, welcome to scan-task scandone (0,"ESP_A13319",-41,"1a:fe:34:a1:33:19",1) (4,"sscgov217",-75,"80:89:17:79:63:cc",1) (0,"ESP_97F0B1",-46,"1a:fe:34:97:f0:b1",1) (0,"ESP_A1327E",-36,"1a:fe:34:a1:32:7e",1) Espressif 12/37

17 获取 AP 的射频信号强度 (RSSI) 1. 如果 ESP8266 Station 未连接路路由, 可以使 用指定 SSID 扫描 AP 的 方式, 在扫描返回的信息中获得射频信号强度 指定 目标 AP 的 SSID: #define DEMO_AP_SSID DEMO_AP" 指定 SSID 扫描特定 AP, 扫描完成回调 scan_done 可参考前例例 struct scan_config config; memset(&config, 0, sizeof(config)); config.ssid = DEMO_AP_SSID; wifi_station_scan(&config,scan_done); 2. 编译应 用程序, 生成固件烧录到 ESP8266 硬件模组中 3. 将硬件模组断电, 切换到运 行行模式, 重新上电, 运 行行应 用程序 运 行行结果 : Hello, welcome to scan-task scandone (3,"DEMO_AP",-49,"aa:5b:78:30:46:0a",11) 从 Flash 读取数据 1. Flash 读写数据, 要求必须 4 字节对 齐 例例如, 从 Flash 读取数据 : #define SPI_FLASH_SEC_SIZE 4096 uint32 value; uint8 *addr = (uint8 *)&value; spi_flash_read(0x3e * SPI_FLASH_SEC_SIZE, (uint32 *)addr, 4); printf("0x3e sec:%02x%02x%02x%02x\r\n", addr[0], addr[1], addr[2], addr[3]); 2. 向 Flash 写 入数据同理理, 要求 4 字节对 齐 先使 用 spi_flash_erase_sector 擦除待写 入区域, 再使 用接 口 spi_flash_write 写 入即可 例例如, uint32 data[m]; // TODO: fit in the data spi_flash_erase_sector(n); spi_flash_write(n*4*1024, data, M*4); 3. 编译应 用程序, 生成固件烧录到 ESP8266 硬件模组中 4. 将硬件模组断电, 切换到运 行行模式, 重新上电, 运 行行应 用程序 Espressif 13/37

18 运 行行结果 : read data from 0x3E000 : RTC 使 用示例例 1. 软件复位 (system_restart) 时, 系统时间归零, 但是 RTC 时间仍然继续 但是如果外部硬件通过 EXT_RST 脚或者 CHIP_EN 脚, 将芯 片复位后 ( 包括 Deep-sleep 定时唤醒的情况 ),RTC 时钟会复位 具体如下 : 外部复位 (EXT_RST):RTC memory 不不变,RTC timer 寄存器器从零计数 watchdog reset:rtc memory 不不变,RTC timer 寄存器器不不变 system_restart:rtc memory 不不变,RTC timer 寄存器器不不变 电源上电 :RTC memory 随机值,RTC timer 寄存器器从零计数 CHIP_EN 复位 :RTC memory 随机值,RTC timer 寄存器器从零计数例例如,system_get_rtc_time 返回 10( 表示 10 个 RTC 周期 ), system_rtc_clock_cali_proc 返回 5.75( 表示 1 个 RTC 周期为 5.75 μs), 则实际时间为 10 x 5.75 = 57.5 μs rtc_t = system_get_rtc_time(); cal = system_rtc_clock_cali_proc(); os_printf("cal: %d.%d \r\n", ((cal*1000)>>12)/1000, ((cal*1000)>>12)%1000 ); 读写 RTC memory, 请注意读写 RTC memory 只能 4 字节对 齐 typedef struct uint64 time_acc; uint32 magic ; uint32 time_base; RTC_TIMER_DEMO; system_rtc_mem_read(64, &rtc_time, sizeof(rtc_time)); 2. 编译应 用程序, 生成固件烧录到 ESP8266 硬件模组中 3. 将硬件模组断电, 切换到运 行行模式, 重新上电, 运 行行应 用程序 运 行行结果 : rtc_time: cal: 非 OS SDK app 如何移植为 RTOS SDK app 1. 定时器器 (timer) 的程序可通 用, 无需改动 2. 回调函数 (callback) 的程序可通 用, 无需改动 Espressif 14/37

19 3. 创建任务的 方式, 需要改动 RTOS SDK 创建任务使 用的是 freertos 自带的软件接 口 :xtaskcreate 非 OS SDK 创建任务 : #define Q_NUM (10) ETSEvent test_q[q_num]; void test_task(etsevent *e) switch(e->sig) case 1: func1(e->par); break; case 2: func2(); break; case 3: func3(); break; default: break; void func_send_sig(void) ETSSignal sig = 2; system_os_post(2,sig,0); void task_ini(void) system_os_task(test_task, 2, test_q,q_num); // test_q is the corresponding array of test_task. // (2) is the priority of test_task. // Q_NUM is the queue length of test_task. RTOS SDK 创建任务 : #define Q_NUM (10) xqueuehandle test_q; xtaskhandle test_task_hdl; Espressif 15/37

20 void test_task(void *pvparameters) int *sig; for(;;) if(pdtrue == xqueuereceive(test_q, &sig, (portticktype)portmax_delay) ) vtasksuspendall(); switch(*sig) case 1: func1(); break; case 2: func2(); break; default: break; free(sig); xtaskresumeall(); void func_send_sig(void) int *evt = (int *)malloc(sizeif(int)); *evt = 2; if(xqueuesend(test_q,&evt,10/porttick_rate_ms)=pdtrue) os_printf("test_q is full\n"); // It is the address of parameter that stored in test_q, so int *evt and int *sig can be other types. void task_ini(void) test_q = xqueuecreate(q_num,sizeof(void *)); xtaskcreate(test_task,(signed portchar *)"test_task", 512, NULL, (1), &test_task_hdl ); // 512 means the heap size of this task, 512 * 4 byte. // NULL is a pointer of parameter to test_task. // (1) is the priority of test_task. // test_task_hdl is the pointer of the task of test_task. Espressif 16/37

21 3.3. 网络协议示例例 ESP8266_RTOS_SDK 的 网络协议即 socket 编程, 示例例包含如下 : UDP 传输示例例 TCP 连接示例例 - ESP8266 作为 TCP client - ESP8266 作为 TCP server UDP 传输 1. 设定 UDP 本地端 口号, 例例如, 端 口号为 1200 #define UDP_LOCAL_PORT 创建 socket LOCAL int32 sock_fd; struct sockaddr_in server_addr; memset(&server_addr, 0, sizeof(server_addr)); server_addr.sin_family = AF_INET; server_addr.sin_addr.s_addr = INADDR_ANY; server_addr.sin_port = htons(udp_local_port); server_addr.sin_len = sizeof(server_addr); do sock_fd = socket(af_inet, SOCK_DGRAM, 0); if (sock_fd == -1) printf("esp8266 UDP task > failed to create sock\n"); vtaskdelay(1000/porttick_rate_ms); while(sock_fd == -1); printf("esp8266 UDP task > socket OK\n"); 3. 绑定本地端 口 do ret = bind(sock_fd, (struct sockaddr *)&server_addr, sizeof(server_addr)); if (ret = 0) printf("esp8266 UDP task > captdns_task failed to bind sock\n"); vtaskdelay(1000/porttick_rate_ms); Espressif 17/37

22 while(ret = 0); printf("esp8266 UDP task > bind OK\n"); 4. 收发 UDP 数据 while(1) memset(udp_msg, 0, UDP_DATA_LEN); memset(&from, 0, sizeof(from)); setsockopt(sock_fd, SOL_SOCKET, SO_RCVTIMEO, (char *)&nnettimeout, sizeof(int)); fromlen = sizeof(struct sockaddr_in); ret = recvfrom(sock_fd, (uint8 *)udp_msg, UDP_DATA_LEN, 0,(struct sockaddr *)&from, (socklen_t *)&fromlen); if (ret > 0) printf("esp8266 UDP task > recv %d Bytes from %s, Port %d\n,ret, inet_ntoa(from.sin_addr), ntohs(from.sin_port)); sendto(sock_fd,(uint8*)udp_msg, ret, 0, (struct sockaddr *)&from, fromlen); if(udp_msg) free(udp_msg); udp_msg = NULL; close(sock_fd); 5. 编译应 用程序, 生成固件烧录到 ESP8266 硬件模组中 6. 将硬件模组断电, 切换到运 行行模式, 重新上电, 运 行行应 用程序 运 行行结果 : ip: ,mask: ,gw: ESP8266 UDP task > socket ok ESP8266 UDP task > bind ok ESP8266 UDP task > recv data 16 Bytes from , Port 在 PC 端使 用 网络调试 工具, 建 立 UDP 通信, 向 ESP8266 UDP 端 口发送数据 ESP8266 UDP test,esp8266 收到 UDP 数据后, 回复同样的消息给 PC Espressif 18/37

23 TCP Client 1. 设置 ESP8266 Station 连接路路由, 示例例可参考前例例 2. 使 用 网络调试 工具建 立 一个 TCP server #define SERVER_IP #define SERVER_PORT " " socket 编程实现 TCP 通信 建 立 socket: Espressif 19/37

24 sta_socket = socket(pf_inet, SOCK_STREAM, 0); if (-1 == sta_socket) close(sta_socket); vtaskdelay(1000 / porttick_rate_ms); printf("esp8266 TCP client task > socket fail\n"); continue; printf("esp8266 TCP client task > socket ok\n"); 建 立 TCP 连接 : bzero(&remote_ip, sizeof(struct sockaddr_in)); remote_ip.sin_family = AF_INET; remote_ip.sin_addr.s_addr = inet_addr(server_ip); remote_ip.sin_port = htons(server_port); if (0 = connect(sta_socket, (struct sockaddr *)(&remote_ip), sizeof(struct sockaddr))) close(sta_socket); vtaskdelay(1000 / porttick_rate_ms); printf("esp8266 TCP client task > connect fail\n"); continue; printf("esp8266 TCP client task > connect ok\n"); TCP 通信, 发送数据包 : if (write(sta_socket, pbuf, strlen(pbuf) + 1) < 0) close(sta_socket); vtaskdelay(1000 / porttick_rate_ms); printf("esp8266 TCP client task > send fail\n"); continue; printf("esp8266 TCP client task > send success\n"); free(pbuf); TCP 通信, 接收数据包 : char *recv_buf = (char *)zalloc(128); while ((recbytes = read(sta_socket, recv_buf, 128)) > 0) recv_buf[recbytes] = 0; printf("esp8266 TCP client task > recv data %d bytes\nesp8266 TCP client task > %s\n", recbytes, recv_buf); free(recv_buf); Espressif 20/37

25 if (recbytes <= 0) close(sta_socket); printf("esp8266 TCP client task > read data fail\n"); 4. 编译应 用程序, 生成固件烧录到 ESP8266 硬件模组中 5. 将硬件模组断电, 切换到运 行行模式, 重新上电, 运 行行应 用程序 运 行行结果 : ESP8266 TCP client task > socket ok ESP8266 TCP client task > connect ok ESP8266 TCP client task > send success ESP8266 TCP client task > recv data 17 bytes ESP8266 TCP client task > ESP8266 recv test 网络调试 工具端建 立的 TCP server 与 ESP8266 成功 TCP 通信 TCP Server 1. 建 立 TCP server, 绑定本地端 口 #define SERVER_PORT 1002 int32 listenfd; int32 ret; struct sockaddr_in server_addr,remote_addr; int stack_counter=0; Espressif 21/37

26 /* Construct local address structure */ memset(&server_addr, 0, sizeof(server_addr)); /* Zero out structure */ server_addr.sin_family = AF_INET; /* Internet address family */ server_addr.sin_addr.s_addr = INADDR_ANY; /* Any incoming interface */ server_addr.sin_len = sizeof(server_addr); server_addr.sin_port = htons(httpd_server_port); /* Local port */ /* Create socket for incoming connections */ do listenfd = socket(af_inet, SOCK_STREAM, 0); if (listenfd == -1) printf("esp8266 TCP server task > socket error\n ); vtaskdelay(1000/porttick_rate_ms); while(listenfd == -1); printf("esp8266 TCP server task > create socket: %d\n", server_sock); /* Bind to the local port */ do ret = bind(listenfd, (struct sockaddr *)&server_addr, sizeof(server_addr)); if (ret = 0) printf("esp8266 TCP server task > bind fail\n ); vtaskdelay(1000/porttick_rate_ms); while(ret = 0); printf("esp8266 TCP server task > port:%d\n,ntohs(server_addr.sin_port)); 建 立 TCP server 侦听 : do /* Listen to the local connection */ ret = listen(listenfd, MAX_CONN); if (ret = 0) printf("esp8266 TCP server task > failed to set listen queue\n"); vtaskdelay(1000/porttick_rate_ms); while(ret = 0); printf("esp8266 TCP server task > listen ok\n ); 等待 TCP client 连 入, 建 立 TCP 通信, 接收数据包 : Espressif 22/37

27 int32 client_sock; int32 len = sizeof(struct sockaddr_in); for (;;) printf("esp8266 TCP server task > wait client\n ); /*block here waiting remote connect request*/ if ((client_sock = accept(listenfd, (struct sockaddr *)&remote_addr, (socklen_t *)&len)) < 0) printf("esp8266 TCP server task > accept fail\n"); continue; printf("esp8266 TCP server task > Client from %s %d\n", inet_ntoa(remote_addr.sin_addr), htons(remote_addr.sin_port)); char *recv_buf = (char *)zalloc(128); while ((recbytes = read(client_sock, recv_buf, 128)) > 0) recv_buf[recbytes] = 0; printf("esp8266 TCP server task > read data success %d\nesp8266 TCP server task > %s\n", recbytes, recv_buf); free(recv_buf); if (recbytes <= 0) printf("esp8266 TCP server task > read data fail\n"); close(client_sock); 2. 编译应 用程序, 生成固件烧录到 ESP8266 硬件模组中 3. 将硬件模组断电, 切换到运 行行模式, 重新上电, 运 行行应 用程序 4. 使 用 网络调试 工具建 立 一个 TCP client, 连接到 ESP8266 TCP server, 并发送数据 Espressif 23/37

28 3.4. 高级应 用示例例 运 行行结果 : ip: ,mask: ,gw: got ip Hello, welcome to ESP8266 TCP server task ESP8266 TCP server task > create socket: 0 ESP8266 TCP server task > bind port: 1002 ESP8266 TCP server task > listen ok ESP8266 TCP server task > wait client ESP8266 TCP server task > Client from ESP8266 TCP server task > read data success 17 ESP8266 TCP server task > ESP8266 recv test ESP8266_RTOS_SDK 的 高级示例例包含如下 : OTA 固件升级 强制休眠示例例 SPIFFS 文件系统 SSL 应 用示例例 Espressif 24/37

29 OTA 固件升级 OTA 固件升级, 是指 ESP8266 硬件模块通过 Wi-Fi 无线 网络从服务器器下载新版本固件, 实现固件升级 注意 : 由于擦除 Flash 的过程较慢, 边下载边擦写 Flash 可能占 用较 长时间, 影响 网络传输的稳定性 因此, 请先调 用 spi_flash_erase_sector 将 Flash 待升级区域擦除, 再建 立 网络连接, 从 OTA server 下载新固件, 调 用 spi_flash_write 写 入 Flash 1. 搭建 用户 自 己的云端服务器器, 或者使 用乐鑫的云端服务器器 2. 将新版本固件上传到云端服务器器 3. 代码说明如下 : 设置 ESP8266 模块连接到路路由器器, 示例例可参考前述 在 upgrade_task 中查询 ESP8266 Station 是否获取到 IP 地址 wifi_get_ip_info(station_if, &ipconfig); /* check the IP address or net connection state*/ while (ipconfig.ip.addr == 0) vtaskdelay(1000 / porttick_rate_ms); wifi_get_ip_info(station_if, &ipconfig); ESP8266 获取到 IP 地址后, 与云端服务器器建 立连接, 可参考前例例 socket 编程 system_upgrade_flag_set 设置升级状态标志 : - UPGRADE_FLAG_IDLE: 空闲状态 - UPGRADE_FLAG_START: 开始升级 - UPGRADE_FLAG_FINISH: 从服务器器下载新版本固件完成 system_upgrade_userbin_check 查询当前正在运 行行的是 user1.bin 还是 user2.bin, 若正在运 行行 user1.bin 则下载 user2.bin, 否则下载 user1.bin system_upgrade_init(); system_upgrade_flag_set(upgrade_flag_start); 向服务器器发送下载请求, 从服务器器接收新固件数据, 并写 入 Flash if(write(sta_socket,server->url,strlen(server->url)+1) < 0) Espressif 25/37

30 while((recbytes = read(sta_socket,precv_buf,upgrade_data_seg_len)) > 0) // write the new firmware into flash by spi_flash_write 设置 一个软件定时器器检查升级状态, 如果定时器器超时, 仍未完成从服务器器下载固件, 则判断升级失败, 将升级状态置回空闲, 释放相关资源, 退出本次升级 若从服务器器下载固件成功, 升级状态设置为 UPGRADE_FLAG_FINISH, 在此状态下, 调 用软件接 口 system_upgrade_reboot, 可控制 ESP8266 重新启动, 运 行行新版本固件 4. 编译应 用程序, 生成固件烧录到 ESP8266 硬件模组中 5. 将硬件模组断电, 切换到运 行行模式, 重新上电, 运 行行应 用程序 运 行行结果 : 在 PC 端使 用 webserver 工具, 建 立 一个服务器器, 并上传 user1.bin 和 user2.bin, ESP8266 烧录固件后, 默认先运 行行 user1.bin, 从服务器器下载 user2.bin 下载 user2.bin 成功后,ESP8266 模块 自动重启, 运 行行新固件 user2.bin, user1.bin 直到下次 FOTA 升级前都不不会再被运 行行 当服务器器上出现新的固件, 且 用户需要再次更更新时, 用户发送升级请求, 下载 user1.bin 的新固件, 模块 自动重启后, 运 行行 user1.bin 如此循环 Espressif 26/37

31 ESP8266 升级流程的打印信息 : connected with Demo_AP, channel 6 dhcp client start... ip: ,mask: ,gw: Hello, welcome to client socket ok connect ok GET /user2.bin HTTP/1.0 Host: " ":80 Connection: keep-alive Cache-Control: no-cache User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/ (KHTML, like Gecko) Chrome/ Safari/ Accept: */* Accept-Encoding: gzip,deflate,sdch Accept-Language: zh-cn,zh;q=0.8 send success read data success upgrade file download start. read data success totallen = 1460 read data success totallen = 2920 read data success 强制休眠示例例强制休眠接 口, 在需要的情况下强制关闭 RF 电路路以降低功耗 Espressif 27/37

32 注意 : 强制休眠接 口调 用后, 并不不会 立即休眠, 而是等到系统 idle task 执 行行时才进 入休眠 请参考下述示例例使 用 示例例 一 :Modem-sleep 模式 ( 关闭射频 ) #define FPM_SLEEP_MAX_TIME 0xFFFFFFF void fpm_wakup_cb_func1(void) wifi_fpm_close(); // disable force sleep function wifi_set_opmode(station_mode); // set station mode wifi_station_connect(); // connect to AP void user_func( ) wifi_station_disconnect(); wifi_set_opmode(null_mode); // set WiFi mode to null mode. wifi_fpm_set_sleep_type(modem_sleep_t); // modem sleep wifi_fpm_open(); // enable force sleep #ifdef SLEEP_MAX /* For modem sleep, FPM_SLEEP_MAX_TIME can only be wakened by calling wifi_fpm_do_wakeup. */ wifi_fpm_do_sleep(fpm_sleep_max_time); #else // wakeup automatically when timeout. wifi_fpm_set_wakeup_cb(fpm_wakup_cb_func1); // Set wakeup callback wifi_fpm_do_sleep(50*1000); #endif #ifdef SLEEP_MAX void func1(void) wifi_fpm_do_wakeup(); wifi_fpm_close(); wifi_set_opmode(station_mode); wifi_station_connect(); #endif // disable force sleep function // set station mode // connect to AP Espressif 28/37

33 示例例 二 :Light-sleep 模式 ( 关闭射频和 CPU) 强制进 入 Light-sleep 模式, 即强制关闭射频和 CPU, 需要设置 一个回调函数, 以便便唤醒 后程序继续运 行行 void fpm_wakup_cb_func1(void) wifi_fpm_close(); wifi_set_opmode(station_mode); wifi_station_connect(); // disable force sleep function // set station mode // connect to AP #ifndef SLEEP_MAX // Wakeup till time out. void user_func( ) wifi_station_disconnect(); wifi_set_opmode(null_mode); // set WiFi mode to null mode. wifi_fpm_set_sleep_type(light_sleep_t); // light sleep wifi_fpm_open(); // enable force sleep wifi_fpm_set_wakeup_cb(fpm_wakup_cb_func1); // Set wakeup callback wifi_fpm_do_sleep(50*1000); #else // Or wakeup by GPIO void user_func( ) wifi_station_disconnect(); wifi_set_opmode(null_mode); // set WiFi mode to null mode. wifi_fpm_set_sleep_type(light_sleep_t); // light sleep wifi_fpm_open(); // enable force sleep PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTCK_U,3); gpio_pin_wakeup_enable(13, GPIO_PIN_INTR_LOLEVEL); wifi_fpm_set_wakeup_cb(fpm_wakup_cb_func1); wifi_fpm_do_sleep(0xfffffff); #endif // Set wakeup callback Espressif 29/37

34 SPIFFS 文件系统应 用 1. 调 用软件接 口 esp_spiffs_init, 初始化 SPIFFS 文件系统 void spiffs_fs1_init(void) struct esp_spiffs_config config; config.phys_size = FS1_FLASH_SIZE; config.phys_addr = FS1_FLASH_ADDR; config.phys_erase_block = SECTOR_SIZE; config.log_block_size = LOG_BLOCK; config.log_page_size = LOG_PAGE; config.fd_buf_size = FD_BUF_SIZE * 2; config.cache_buf_size = CACHE_BUF_SIZE; esp_spiffs_init(&config); 2. 打开并创建 一个 文件, 写 入数据 char *buf="hello world"; char out[20] = 0; int pfd = open("myfile", O_TRUNC O_CREAT O_RDWR, S_IRUSR S_IWUSR); if(pfd <= 3) printf("open file error \n"); int write_byte = write(pfd, buf, strlen(buf)); if (write_byte <= 0) printf("write file error \n"); close(pfd); 3. 通过 文件系统读取数据 open("myfile",o_rdwr); if (read(pfd, out, 20) < 0) printf("read errno \n"); close(pfd); printf("--> %s <--\n", out); Espressif 30/37

35 SSL 应 用示例例 1. 定义将连接的 SSL server IP 和端 口 #define SSL_SERVER_IP #define SSL_SERVER_PORT esp_test *ptestparamer = (esp_test *)zalloc(sizeof(esp_test)); ptestparamer->ip.addr = ipaddr_addr(ssl_server_ip); ptestparamer->port = server_port; 2. 创建 SSL client 的任务 xtaskcreate(esp_client, "esp_client", 1024, (void*)ptestparamer, 4, NULL); 3. 参考前 文示例例, 设置 ESP8266 Station 连接路路由 在 SSL client 的任务中, 先检查 ESP8266 Station 获得了了 IP 地址, 再建 立 SSL 连接 struct ip_info ipconfig; wifi_get_ip_info(station_if, &ipconfig); while (ipconfig.ip.addr == 0) vtaskdelay(1000 / porttick_rate_ms); wifi_get_ip_info(station_if, &ipconfig); 4. 建 立 socket 连接 client_fd = socket(af_inet, SOCK_STREAM, IPPROTO_TCP); if (client_fd < 0) printf("create with the socket err\n"); memset(&client_addr, 0, sizeof(client_addr)); client_addr.sin_family = AF_INET; client_addr.sin_port = htons(port); client_addr.sin_addr.s_addr = sin_addr; if(connect(client_fd, (struct sockaddr *)&client_addr, sizeof(client_addr))< 0) printf("connect with the host err\n"); 5. 创建 SSL 上下 文内容 (context) SSL 需要较 大内存, 建议调 用 system_get_free_heap_size 检查可 用内存容量量 uint32 options = SSL_SERVER_VERIFY_LATER SSL_DISPLAY_CERTS SSL_NO_DEFAULT_KEY; if ((ssl_ctx = ssl_ctx_new(options, SSL_DEFAULT_CLNT_SESS)) == NULL) Espressif 31/37

36 printf("error: Client context is invalid\n"); printf("heap_size %d\n,system_get_free_heap_size()); 6. 如果开发者需要认证功能, 如果不不使 用 SPIFFS 文件系统, 请先运 行行 esp_iot_sdk_freertos\tools\ make_cert.py 脚本, 生成 esp_ca_cert.bin 文件, 烧录到 Flash 自定义地址 以下代码示例例从 Flash 读取 SSL 密钥和证书信息 uint8 flash_offset = 0x78; // Example : Flash address 0x78000 if (ssl_obj_option_load(ssl_ctx, SSL_OBJ_RSA_KEY, XX.key, password, flash_offset)) printf("error: the Private key is undefined.\n"); if (ssl_obj_option_load(ssl_ctx, SSL_OBJ_X509_CERT, XX.cer, NULL, flash_offset)) printf("error: the Certificate is undefined.\n"); 如果使 用 SPIFFS 文件系统, 请运 行行 工具 spiffy( 注意, 此 工具内的 spiffs_config.h 文件必须修改成与 RTOS SDK 中的 spiffs_config.h 一致 ), 生成符合 SPIFFS 格式的 spiffs_rom.bin 文件, 烧录到 Flash SPIFFS 配置的地址, 可参考前例例 esp_spiffs_init 以下代码示例例使 用 SPIFFS 文件系统的情况下, 读取 SSL 密钥和证书信息 if (ssl_obj_load(ssl_ctx, SSL_OBJ_RSA_KEY, XX.key, password)) printf("error: the Private key is undefined.\n"); if (ssl_obj_load(ssl_ctx, SSL_OBJ_X509_CERT, XX.cer, NULL)) printf("error: the Certificate is undefined.\n"); 7. 开始 SSL client 握 手 ssl = ssl_client_new(ssl_ctx, client_fd, NULL, 0); if (ssl = NULL) printf("client handshake start\n"); 8. 检查 SSL 连接状态 if ((res = ssl_handshake_status(ssl)) == SSL_OK) Espressif 32/37

37 9. 如果 SSL 握 手成功, 则可以释放证书, 节省内存空间 const char *common_name = ssl_get_cert_dn(ssl,ssl_x509_cert_common_name); if (common_name) printf("common Name:\t\t\t%s\n", common_name); display_session_id(ssl); display_cipher(ssl); quiet = true; os_printf("client handshake ok heapsize %d\n",system_get_free_heap_size()); x509_free(ssl->x509_ctx); ssl->x509_ctx=null; os_printf("certificate free ok heapsize %d\n,system_get_free_heap_size()); 10. 发送 SSL 数据 uint8 buf[512]; bzero(buf, sizeof(buf)); sprintf(buf,httphead,"/", "iot.espressif.cn",port); os_printf("%s\n", buf); if(ssl_write(ssl, buf, strlen(buf)+1) < 0) ssl_free(ssl); ssl_ctx_free(ssl_ctx); close(client_fd); vtaskdelay(1000 / porttick_rate_ms); os_printf("send fail\n"); continue; 11. 接收 SSL 数据 while((recbytes = ssl_read(ssl, &read_buf)) >= 0) if(recbytes == 0) vtaskdelay(500 / porttick_rate_ms); continue; os_printf("%s\n", read_buf); free(read_buf); if(recbytes < 0) os_printf("error:read data fail recbytes %d\r\n",recbytes); Espressif 33/37

38 ssl_free(ssl); ssl_ctx_free(ssl_ctx); close(client_fd); vtaskdelay(1000 / porttick_rate_ms); 运 行行结果 : ip: ,mask: ,gw: BEGIN SSL SESSION PARAMETERS ae116a6a0445b369f010e0ea e92179a6602c8b5968c1f35b END SSL SESSION PARAMETERS----- CIPHER is AES128-SHA client handshake ok heapsize certificate free ok heapsize GET / HTTP/1.1 Host: iot.espressif.cn:443 Connection: keep-alive Espressif 34/37

39 附录 A A. 附录 A.1. Sniffer 说明 关于 sniffer 的详细说明, 请参考 ESP8266 技术参考 A.2. ESP8266 SoftAP 和 Station 信道定义 虽然 ESP8266 支持 SoftAP+Station 共存模式, 但是 ESP8266 实际只有 一个硬件信道 因此在 SoftAP+Station 模式时,ESP8266 SoftAP 会动态调整信道值与 ESP8266 Station 一致 这个限制会导致 ESP8266 SoftAP+Station 模式时 一些 行行为上的不不便便, 用户请注意 例例如 : 情况 一 1. 如果 ESP8266 Station 连接到 一个路路由 ( 假设路路由信道号为 6) 2. 通过接 口 wifi_softap_set_config 设置 ESP8266 SoftAP 3. 若设置值合法有效, 该 API 将返回 true, 但信道号仍然会 自动调节成与 ESP8266 Station 接 口 一致, 在这个例例 子 里里也就是信道号为 6 因为 ESP8266 在硬件上只有 一个信道, 由 ESP8266 Station 与 SoftAP 接 口共 用 情况 二 1. 调 用接 口 wifi_softap_set_config 设置 ESP8266 SoftAP( 例例如信道号为 5) 2. 其他 Station 连接到 ESP8266 SoftAP 3. 将 ESP8266 Station 连接到路路由 ( 假设路路由信道号为 6) 4. ESP8266 SoftAP 将 自动调整信道号与 ESP8266 Station 一致 ( 信道 6) 5. 由于信道改变, 之前连接到 ESP8266 SoftAP 的 Station 的 Wi-Fi 连接断开 情况三 1. 其他 Station 与 ESP8266 SoftAP 建 立连接 2. 如果 ESP8266 Station 一直尝试扫描或连接某路路由, 可能导致 ESP8266 SoftAP 端的连接断开 Espressif 35/37

40 附录 A 3. 因为 ESP8266 Station 会遍历各个信道查找 目标路路由, 意味着 ESP8266 其实在不不停切换信道,ESP8266 SoftAP 的信道也因此在不不停更更改 这可能导致 ESP8266 SoftAP 端的原有连接断开 4. 这种情况, 用户可以通过设置定时器器, 超时后调 用 wifi_station_disconnect 停 止 ESP8266 Station 不不断连接路路由的尝试 ; 或者在初始配置时, 调 用 wifi_station_set_reconnect_policy 和 wifi_station_set_auto_connect 禁 止 ESP8266 Station 尝试重连路路由 A.3. ESP8266 启动信息说明 ESP8266 启动时, 将从 UART0 以波特率 打印如下启动信息 : 其中可供 用户参考的启动信息说明如下 : 启动信息 说明 1: 上电 rst cause 2: 外部复位 4: 硬件看 门狗复位 boot mode 第 一个参数 chksum 1:ESP8266 处于 UART-down 模式, 可通过 UART 下载固件 3:ESP8266 处于 Flash-boot 模式, 从 Flash 启动运 行行 chksum 与 csum 值相等, 表示启动过程中 Flash 读取正确 Espressif 36/37

41 乐鑫 IOT 团队 免责申明和版权公告 本 文中的信息, 包括供参考的 URL 地址, 如有变更更, 恕不不另 行行通知 文档 按现状 提供, 不不负任何担保责任, 包括对适销性 适 用于特定 用途或 非侵权性的任何担保, 和任何提案 规格或样品在他处提到的任何担保 本 文档不不负任何责任, 包括使 用本 文档内信息产 生的侵犯任何专利利权 行行为的责任 本 文档在此未以禁 止反 言或其他 方式授予任何知识产权使 用许可, 不不管是明示许可还是暗示许可 Wi-Fi 联盟成员标志归 Wi-Fi 联盟所有 蓝 牙标志是 Bluetooth SIG 的注册商标 文中提到的所有商标名称 商标和注册商标均属其各 自所有者的财产, 特此声明 版权归 2017 乐鑫所有 保留留所有权利利

BT&BLE_Coexistence_Demo__CN.pages

BT&BLE_Coexistence_Demo__CN.pages ESP32 BT&BLE 双模 蓝 牙共存说明 版本 1.0 版权 2018 关于本 手册 本 文档为 ESP32 BT&BLE 双模蓝 牙共存说明 发布说明 日期版本发布说明 V1.0 首次发布 文档变更更通知 用户可通过乐鑫官 网订阅技术 文档变更更的电 子邮件通知 证书下载 用户可通过乐鑫官 网下载产品证书 目录 1. BT&BLE 共存结构图... 1 2. 流程说明... 2 2.1. 初始化流程...

More information

<453A5CCEC4B5B55C C41CBAAB2F5D4C6BDD3BFDACAB9D3C3CBB5C3F756312E305F E646F63>

<453A5CCEC4B5B55C C41CBAAB2F5D4C6BDD3BFDACAB9D3C3CBB5C3F756312E305F E646F63> 霜蝉云 接口使用说明 版本 :V1.00 上海霜蝉信息科技有限公司 Shanghai Scicala Information Technology Co.,Ltd http:www.scicala.com E-mail:support@scicala.com 1 目录目录... 2 一 产品概述...3 二 接口功能...3 三 调用规范...3 四 接口方法...4 1. 用户订阅 Subscribe

More information

4B-ESP8266__AT Command Examples__CN.pages

4B-ESP8266__AT Command Examples__CN.pages ! ESP8266 AT 指令 使 用示例例 版本 1.3 版权 2017 关于本 手册 本 文档提供 ESP8266_NONOS_SDK 的 AT 指令使 用示例例 文档结构如下 : 章 标题 内容 第 1 章 概述 介绍 AT 固件及使 用配置 第 2 章 单连接 TCP Client 示例例 ESP8266 作为 TCP Client 建 立单连接通信 第 3 章 UDP 传输 示例例如何建

More information

ESP-Jumpstart

ESP-Jumpstart 2016-2019 2019 08 08 Contents 1 3 1.1 ESP32.............................. 3 1.2.................................................. 5 2 7 2.1............................................. 7 2.2 ESP-IDF............................................

More information

(Methods) Client Server Microsoft Winsock Control VB 1 VB Microsoft Winsock Control 6.0 Microsoft Winsock Control 6.0 1(a). 2

(Methods) Client Server Microsoft Winsock Control VB 1 VB Microsoft Winsock Control 6.0 Microsoft Winsock Control 6.0 1(a). 2 (2005-01-26) (2005-01-26) (2005-02-27) PIC_SERVER (9) VB TCP/UDP Visual Basic Microsoft Winsock Control (MSWINSCK.OCX) UDP TCP Client Server Visual Basic UDP/TCP PIC_SERVER UDP/TCP 1. Microsoft Winsock

More information

ESP-TOUCH_User_Guide__CN.pages

ESP-TOUCH_User_Guide__CN.pages ESP-TOUCH 使 用指南 版本 2.0 版权 2018 关于本 手册 发布说明 日期 版本 发布说明 2015.12 V1.0 首次发布 2016.04 V1.1 更更新第 2 章和第 3 章 V2.0 更更新第 3 章, 增加对 ESP32 的 支持 文档变更更通知 用户可通过乐鑫官 网订阅技术 文档变更更的电 子邮件通知 证书下载 用户可以通过乐鑫官 网下载产品证书 目录 1. ESP-TOUCH

More information

Windows RTEMS 1 Danilliu MMI TCP/IP QEMU i386 QEMU ARM POWERPC i386 IPC PC104 uc/os-ii uc/os MMI TCP/IP i386 PORT Linux ecos Linux ecos ecos eco

Windows RTEMS 1 Danilliu MMI TCP/IP QEMU i386 QEMU ARM POWERPC i386 IPC PC104 uc/os-ii uc/os MMI TCP/IP i386 PORT Linux ecos Linux ecos ecos eco Windows RTEMS 1 Danilliu MMI TCP/IP 80486 QEMU i386 QEMU ARM POWERPC i386 IPC PC104 uc/os-ii uc/os MMI TCP/IP i386 PORT Linux ecos Linux ecos ecos ecos Email www.rtems.com RTEMS ecos RTEMS RTEMS Windows

More information

IP505SM_manual_cn.doc

IP505SM_manual_cn.doc IP505SM 1 Introduction 1...4...4...4...5 LAN...5...5...6...6...7 LED...7...7 2...9...9...9 3...11...11...12...12...12...14...18 LAN...19 DHCP...20...21 4 PC...22...22 Windows...22 TCP/IP -...22 TCP/IP

More information

PIC_SERVER (11) SMTP ( ) ( ) PIC_SERVER (10) SMTP PIC_SERVER (event driven) PIC_SERVER SMTP 1. E-

PIC_SERVER (11) SMTP  ( ) ( ) PIC_SERVER (10) SMTP  PIC_SERVER (event driven)  PIC_SERVER SMTP  1.  E- (2005-02-01) (2005-04-28) PIC_SERVER (10) SMTP E-mail PIC_SERVER (event driven) E-mail PIC_SERVER SMTP E-mail 1. E-mail E-mail 1 (1) (2) (3) (4) 1 1. 2 E-mail A E-mail B E-mail SMTP(Simple Mail Transfer

More information

AL-M200 Series

AL-M200 Series NPD4754-00 TC ( ) Windows 7 1. [Start ( )] [Control Panel ()] [Network and Internet ( )] 2. [Network and Sharing Center ( )] 3. [Change adapter settings ( )] 4. 3 Windows XP 1. [Start ( )] [Control Panel

More information

ebook35-21

ebook35-21 21 Linux L i n u x 211 U N I X U N I X I / O F I F O U N I X I n t e r n e t s o c k e t () s o c k e t () send() r e c v ( read() w r i t e () send() r e c v () I n t e r n e t 212 Internet Internet S

More information

ebook140-9

ebook140-9 9 VPN VPN Novell BorderManager Windows NT PPTP V P N L A V P N V N P I n t e r n e t V P N 9.1 V P N Windows 98 Windows PPTP VPN Novell BorderManager T M I P s e c Wi n d o w s I n t e r n e t I S P I

More information

untitled

untitled Lwip Swedish Institute of Computer Science February 20, 2001 Adam Dunkels adam@sics.se (QQ: 10205001) (QQ: 329147) (QQ:3232253) (QQ:3232253) QQ ARM TCPIP LCD10988210 LWIP TCP/IP LWIP LWIP lwip API lwip

More information

/ / (FC 3)...

/ / (FC 3)... Modbus/TCP 1.0 1999 3 29 Andy Swales Schneider aswales@modicon.com ... 2 1.... 3 2.... 3 2.1.. 3 2.2..4 2.3..4 2.4... 5 3.... 5 3.1 0... 5 3.2 1... 5 3.3 2... 6 3.4 / /... 7 4.... 7 5.... 8 5.1 0... 9

More information

SL2511 SR Plus 操作手冊_單面.doc

SL2511 SR Plus 操作手冊_單面.doc IEEE 802.11b SL-2511 SR Plus SENAO INTERNATIONAL CO., LTD www.senao.com - 1 - - 2 - .5 1-1...5 1-2...6 1-3...6 1-4...7.9 2-1...9 2-2 IE...11 SL-2511 SR Plus....13 3-1...13 3-2...14 3-3...15 3-4...16-3

More information

概述

概述 OPC Version 1.6 build 0910 KOSRDK Knight OPC Server Rapid Development Toolkits Knight Workgroup, eehoo Technology 2002-9 OPC 1...4 2 API...5 2.1...5 2.2...5 2.2.1 KOS_Init...5 2.2.2 KOS_InitB...5 2.2.3

More information

R3105+ ADSL

R3105+ ADSL ... 1 1 1... 1 1 2... 1... 3 2 1... 3 2 2... 3 2 3... 5 2 4... 5 2 4 1... 5... 7 3 1... 7 3 2... 8 3 2 1... 8 3 2 2... 9 3 3... 12 3 3 1... 13 3 3 2 WAN... 16 3 3 3 LAN... 21 3 3 4 NAT... 22 3 3 5... 24

More information

VoIP Make a Rtp Call VoIP Abstract... 2 VoIP RTP...3 Socket IP...9 Config Two Voice-hub

VoIP Make a Rtp Call VoIP Abstract... 2 VoIP RTP...3 Socket IP...9 Config Two Voice-hub VoIP... 2... 2 Abstract... 2... 3... 3 RTP...3 Socket...4...6...7 IP...9 Config Two Voice-hub... 10 1 12 VoIP VoIP voice-hub voice-hub Abstract At the beginning of this paper, we introducted the essential

More information

EPSON

EPSON NPD5493-00 TC .... 5....5....5....6 SSL/TLS....7....7 IP....8.... 8 Web Config...9 Web Config...10 EpsonNet Config...11 EpsonNet Config Windows...11 EpsonNet Config Windows...11 EpsonNet Config - Windows...

More information

UDP 8.2 TCP/IP OSI OSI 3 OSI TCP/IP IP TCP/IP TCP/IP Transport Control Protocol TCP User Datagram Protocol UDP TCP TCP/IP IP TCP TCP/IP TC

UDP 8.2 TCP/IP OSI OSI 3 OSI TCP/IP IP TCP/IP TCP/IP Transport Control Protocol TCP User Datagram Protocol UDP TCP TCP/IP IP TCP TCP/IP TC 8 TCP/IP TCP/IP TCP OSI 8.1 OSI 4 end to end A B FTP OSI Connection Management handshake Flow Control Error Detection IP Response to User s Request TCP/IP TCP 181 UDP 8.2 TCP/IP OSI OSI 3 OSI 3 8.1 TCP/IP

More information

epub 61-2

epub 61-2 2 Web Dreamweaver UltraDev Dreamweaver 3 We b We b We Dreamweaver UltraDev We b Dreamweaver UltraDev We b We b 2.1 Web We b We b D r e a m w e a v e r J a v a S c r i p t We b We b 2.1.1 Web We b C C +

More information

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++;

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++; Memory & Pointer trio@seu.edu.cn 2.1 2.1.1 1 int *p int a 0x00C7 0x00C7 0x00C7 2.1.2 2 int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++; 2.1.3 1. 2. 3. 3 int A,

More information

EPSON

EPSON NPD 4956-00 TC .... 5....5....5....6 SSL/TLS....7 IP....8....8....9 Web Config...10 Web Config...11 EpsonNet Config...12 EpsonNet Config Windows...13 EpsonNet Config Windows...13 EpsonNet Config - Windows...

More information

untitled

untitled 1....2...2...6 2....10 3. UDP...15 4. TCP...16...16...16 1 1. PC COM1 COM2 COM1 COM2 DTU 2 3 4 COM1 COM1 COM2 COM ID 13900000000 DTU COM1 5 COM2 DTU DTU DTU DTU DTU DTU DTU ID ID 3031 3032 2 ID 13900000001

More information

Simulator By SunLingxi 2003

Simulator By SunLingxi 2003 Simulator By SunLingxi sunlingxi@sina.com 2003 windows 2000 Tornado ping ping 1. Tornado Full Simulator...3 2....3 3. ping...6 4. Tornado Simulator BSP...6 5. VxWorks simpc...7 6. simulator...7 7. simulator

More information

EPSON

EPSON NPD6017-00 TC .... 6....6....6....8....8....8....10....12....14....14....15....15....15....15....17....17 IP....17 DNS Proxy....18....18 IP....18 LAN...22....25 Web Config ( )...25....26 /....26....30....32....33....34....36....37....37....38....38

More information

自由軟體教學平台

自由軟體教學平台 NCHC Opensource task force Steven Shiau steven@nchc.gov.tw National Center for High-Performance Computing Sep 10, 2002 1 Outline 1. 2. 3. Service DHCP, TFTP, NFS, NIS 4. 5. 2 DRBL (diskless remote boot

More information

CC213

CC213 : (Ken-Yi Lee), E-mail: feis.tw@gmail.com 49 [P.51] C/C++ [P.52] [P.53] [P.55] (int) [P.57] (float/double) [P.58] printf scanf [P.59] [P.61] ( / ) [P.62] (char) [P.65] : +-*/% [P.67] : = [P.68] : ,

More information

Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7.

Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7. Kubernetes 包管理理 工具 Helm 蔺礼强 Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7. Kubernetes

More information

Go构建日请求千亿微服务最佳实践的副本

Go构建日请求千亿微服务最佳实践的副本 Go 构建 请求千亿级微服务实践 项超 100+ 700 万 3000 亿 Goroutine & Channel Goroutine Channel Goroutine func gen() chan int { out := make(chan int) go func(){ for i:=0; i

More information

5A-ESP8266__SDK__SSL_User_Manual__CN.pages

5A-ESP8266__SDK__SSL_User_Manual__CN.pages ESP8266 SSL 加密 使 用 手册 版本 2.0 版权 2017 本 文介绍基于 ESP8266_NONOS_SDK 的 SSL 加密使 用 方法 关于本 手册 章 标题 内容 第 1 章 概述 介绍 SSL 概况 第 2 章 环境搭建 如何搭建编译环境 第 3 章 ESP8266 作为 SSL Server 介绍 ESP8266 作为 SSL server 时的使 用 方法 第 4 章 ESP8266

More information

自由軟體教學平台

自由軟體教學平台 NCHC Opensource task force DRBL steven@nchc.gov.tw, c00hkl00@nchc.gov.tw National Center for High-Performance Computing http://www.nchc.gov.tw Jan, 2003 1 2003/1/28 ( ) 09:00-10:30 10:40-12:00 Linux 13:00-14:30

More information

KL DSC DEMO 使用说明

KL DSC DEMO 使用说明 :0755-82556825 83239613 : (0755)83239613 : http://www.kingbirdnet.com EMAIL Good989@163.com 1 1 KB3000 DTU... 3 1.1... 3 1.2... 3 1.3... 3 1.4... 3 2... 4 2.1 GSM/GPRS... 4 2.2... 4 2.3... 5 2.4... 6 2.5...

More information

Bus Hound 5

Bus Hound 5 Bus Hound 5.0 ( 1.0) 21IC 2007 7 BusHound perisoft PC hound Bus Hound 6.0 5.0 5.0 Bus Hound, IDE SCSI USB 1394 DVD Windows9X,WindowsMe,NT4.0,2000,2003,XP XP IRP Html ZIP SCSI sense USB Bus Hound 1 Bus

More information

專業式報告

專業式報告 IP POWER 9258 1U IP POWER 9258IU 說 : V1.38 : 2006. 08-1 - VER. X.X, FCC CE 1. IP POWER 9258. 2. 9258 3. 9258-2 - 1....4... 9258... 2....5...... 3....6 4....8...... 5....9... PC WINDOWS... 6.... 11 7. IE...

More information

, 7, Windows,,,, : ,,,, ;,, ( CIP) /,,. : ;, ( 21 ) ISBN : -. TP CIP ( 2005) 1

, 7, Windows,,,, : ,,,, ;,, ( CIP) /,,. : ;, ( 21 ) ISBN : -. TP CIP ( 2005) 1 21 , 7, Windows,,,, : 010-62782989 13501256678 13801310933,,,, ;,, ( CIP) /,,. : ;, 2005. 11 ( 21 ) ISBN 7-81082 - 634-4... - : -. TP316-44 CIP ( 2005) 123583 : : : : 100084 : 010-62776969 : 100044 : 010-51686414

More information

Slide 1

Slide 1 网络编程入门篇 利用 socket 实现 TCP 服务器 目录 基础知识 具体示例 示例代码讲解 基础知识 基础知识 socket 编程一般采用客户端 - 服务器模式 ( 即由客户进程向服务器进程发出请求, 服务器进程执行请求的任务并将执行结果返回给客户进程的模式 ) 今天我们要讲的就是如何利用 socket 编程实现基于 TCP 协议通信的服务器 首先我们先向大家展示 socket 编程的流程,

More information

Intruduction to the NGINX stream subsystem and OpenResty's support

Intruduction to the NGINX stream subsystem and OpenResty's support NGINX stream 子系统的简介 以及 OpenResty 对其的 支持 孙 大同 (@dndx) OpenResty Con 2017 北北京 2017 年年 10 月 21 日 关于我 90 后 曾在 LinkedIn,Cloudflare 等公司 工作 OpenResty Inc. 技术合伙 人 热爱钻研底层技术以及折腾 飞 行行爱好者 拥有固定翼私 人 飞 行行执照, 仪表 飞 行行资质以及

More information

穨CAS1042中文手冊.doc

穨CAS1042中文手冊.doc CAS1042 4 port 10/100M Switch Internet BroadBand Router ...1...2...3 5...3 1...3 2 ADSL MODEM CABLE MODEM...4...5 4 TCP/IP...6 Windows 95 / 98 / ME/XP...6 WINDOWS 2000...8 WINDOWS NT 4.0...8...9 ADSL (ADSL

More information

穨UPSentry_SC_.PDF

穨UPSentry_SC_.PDF 3Phase UPSentry For: Windows 95/98/Me Windows NT40/2000/XP Table of Contents Chapter 0 Getting Started 0-1 0-1 0-1 0-2 Chapter 1 3Phase UPSentry 1-1 1-1 1-1 1-1 1-3 Chapter 2 3Phase UPSentry 2-1 Chapter

More information

專業式報告

專業式報告 IP POWER 9258 IP POWER 9258 說 : V1.38 : 2006. 08-1 - VER. X.X, FCC CE 1. IP POWER 9258. 2. 9258 3. 9258-2 - 1....4... 9258... 2....5...... 3....6 4....7...... 5....8... PC / SERVER.. 6. IE... 11 9258...

More information

EPSON

EPSON NPD5910-00 TC .... 6....6....6....8....8....8....10....12....14....14....15....15.... 15....15....17....17 IP....18 DNS Proxy....18....18 IP....19 LAN...22....25 Web Config ( )...25....26 /....26....30....32....36....37....38....40....40....41....41

More information

Symantec™ Sygate Enterprise Protection 防护代理安装使用指南

Symantec™ Sygate Enterprise Protection 防护代理安装使用指南 Symantec Sygate Enterprise Protection 防 护 代 理 安 装 使 用 指 南 5.1 版 版 权 信 息 Copyright 2005 Symantec Corporation. 2005 年 Symantec Corporation 版 权 所 有 All rights reserved. 保 留 所 有 权 利 Symantec Symantec 徽 标 Sygate

More information

自由軟體教學平台

自由軟體教學平台 NCHC Opensource task force DRBL c00hkl00@nchc.gov.tw, steven@nchc.gov.tw National Center for High-Performance Computing http://www.nchc.gov.tw Dec, 2002 1 Outline 1. 2. DRBL 3. 4. Service DHCP, TFTP, NFS,

More information

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File 51 C 51 51 C C C C C C * 2003-3-30 pnzwzw@163.com C C C C KEIL uvision2 MCS51 PLM C VC++ 51 KEIL51 KEIL51 KEIL51 KEIL 2K DEMO C KEIL KEIL51 P 1 1 1 1-1 - 1 Project New Project 1 2 Windows 1 3 N C test

More information

ebook140-8

ebook140-8 8 Microsoft VPN Windows NT 4 V P N Windows 98 Client 7 Vintage Air V P N 7 Wi n d o w s NT V P N 7 VPN ( ) 7 Novell NetWare VPN 8.1 PPTP NT4 VPN Q 154091 M i c r o s o f t Windows NT RAS [ ] Windows NT4

More information

Chap6.ppt

Chap6.ppt Computer Networks v4 cs.sjtu 12/21/12 6 Internet ftp://ftp.cs.sjtu.edu.cn/ybzhang 61 / 110 Computer Networks v4 cs.sjtu 12/21/12 ftp://ftp.cs.sjtu.edu.cn/ybzhang 62 / 110 Computer Networks v4 cs.sjtu 12/21/12

More information

WebSphere Studio Application Developer IBM Portal Toolkit... 2/21 1. WebSphere Portal Portal WebSphere Application Server stopserver.bat -configfile..

WebSphere Studio Application Developer IBM Portal Toolkit... 2/21 1. WebSphere Portal Portal WebSphere Application Server stopserver.bat -configfile.. WebSphere Studio Application Developer IBM Portal Toolkit... 1/21 WebSphere Studio Application Developer IBM Portal Toolkit Portlet Doug Phillips (dougep@us.ibm.com),, IBM Developer Technical Support Center

More information

C/C++ - 字符输入输出和字符确认

C/C++ - 字符输入输出和字符确认 C/C++ Table of contents 1. 2. getchar() putchar() 3. (Buffer) 4. 5. 6. 7. 8. 1 2 3 1 // pseudo code 2 read a character 3 while there is more input 4 increment character count 5 if a line has been read,

More information

VIDEOJET connect 7000 VJC-7000-90 zh- CHS Operation Manual VIDEOJET connect 7000 zh-chs 3 目 录 1 浏 览 器 连 接 7 1.1 系 统 要 求 7 1.2 建 立 连 接 7 1.2.1 摄 像 机 中 的 密 码 保 护 7 1.3 受 保 护 的 网 络 7 2 系 统 概 述 8 2.1 实 况

More information

ebook140-11

ebook140-11 11 VPN Windows NT4 B o r d e r M a n a g e r VPN VPN V P N V P N V P V P N V P N TCP/IP 11.1 V P N V P N / ( ) 11.1.1 11 V P N 285 2 3 1. L A N LAN V P N 10MB 100MB L A N VPN V P N V P N Microsoft PPTP

More information

提纲 1 2 OS Examples for 3

提纲 1 2 OS Examples for 3 第 4 章 Threads2( 线程 2) 中国科学技术大学计算机学院 October 28, 2009 提纲 1 2 OS Examples for 3 Outline 1 2 OS Examples for 3 Windows XP Threads I An Windows XP application runs as a seperate process, and each process may

More information

TX-NR3030_BAS_Cs_ indd

TX-NR3030_BAS_Cs_ indd TX-NR3030 http://www.onkyo.com/manual/txnr3030/adv/cs.html Cs 1 2 3 Speaker Cable 2 HDMI OUT HDMI IN HDMI OUT HDMI OUT HDMI OUT HDMI OUT 1 DIGITAL OPTICAL OUT AUDIO OUT TV 3 1 5 4 6 1 2 3 3 2 2 4 3 2 5

More information

C6_ppt.PDF

C6_ppt.PDF C01-202 1 2 - (Masquerade) (Replay) (Message Modification) (Denial of Service) - ( ) (Eavesdropping) (Traffic Analysis) 8 1 2 7 3 6 5 4 3 - TCP SYN (SYN flood) Smurf Ping of Death LAND Attack Teardrop

More information

P4i45GL_GV-R50-CN.p65

P4i45GL_GV-R50-CN.p65 1 Main Advanced Security Power Boot Exit System Date System Time Floppy Drives IDE Devices BIOS Version Processor Type Processor Speed Cache Size Microcode Update Total Memory DDR1 DDR2 Dec 18 2003 Thu

More information

C/C++ - 文件IO

C/C++ - 文件IO C/C++ IO Table of contents 1. 2. 3. 4. 1 C ASCII ASCII ASCII 2 10000 00100111 00010000 31H, 30H, 30H, 30H, 30H 1, 0, 0, 0, 0 ASCII 3 4 5 UNIX ANSI C 5 FILE FILE 6 stdio.h typedef struct { int level ;

More information

untitled

untitled IP POWER 9258SX IP POWER 9258SX 說 : V1.38 : 2006. 11-1 - VER. X.X, FCC CE 1.. 2. 9258 3. 9258-2 - 1....4... 9258... 2....5...... 3....6 4....8...... 5.... 10 PC... PC... 6.... 13 7. IE... 14 9258... 9258...

More information

Espressif_FAQ_CN

Espressif_FAQ_CN ESP8266EX 常 见问题 版本 1.6 乐鑫信息科技 版权所有 2018 www.espressif.com 关于本 手册 本 文介绍 ESP8266EX 的常 见问题以及解答 发布说明 日期版本发布说明 2016.08 V1.0 首次发布 2016.09 V1.1 第 3 章增加问题 如何优化 ESP8266 应 用的内存使 用? 2016.10 V1.2 2016.10 V1.3 第 1

More information

1 WLAN 接 入 配 置 本 文 中 的 AP 指 的 是 LA3616 无 线 网 关 1.1 WLAN 接 入 简 介 WLAN 接 入 为 用 户 提 供 接 入 网 络 的 服 务 无 线 服 务 的 骨 干 网 通 常 使 用 有 线 电 缆 作 为 线 路 连 接 安 置 在 固 定

1 WLAN 接 入 配 置 本 文 中 的 AP 指 的 是 LA3616 无 线 网 关 1.1 WLAN 接 入 简 介 WLAN 接 入 为 用 户 提 供 接 入 网 络 的 服 务 无 线 服 务 的 骨 干 网 通 常 使 用 有 线 电 缆 作 为 线 路 连 接 安 置 在 固 定 目 录 1 WLAN 接 入 配 置 1-1 1.1 WLAN 接 入 简 介 1-1 1.1.1 无 线 扫 描 1-1 1.1.2 关 联 1-3 1.2 WLAN 客 户 端 接 入 控 制 1-4 1.2.1 基 于 AP 组 的 接 入 控 制 1-4 1.2.2 基 于 SSID 的 接 入 控 制 1-4 1.3 零 漫 游 1-5 1.4 WLAN 接 入 配 置 任 务 简 介 1-6

More information

EPSON

EPSON NPD5265-00 TC .... 5....5....5....6 SSL/TLS....7....7 IP....8....8....8.... 9 Web Config...10 Web Config....11 EpsonNet Config...12 EpsonNet Config Windows...13 EpsonNet Config Windows...13 EpsonNet Config

More information

Web

Web Email: tian@dr.com http://www.digiark.com/tian Web 1. 2. 3. 4. 5. 6. Internet Internet (Hacker) Internet web IP 1 Internet UNIX Windows VLAN Internet IP 2 Internet FTP TELNET PING IP 8 telnet FTP RLOGIN

More information

HY144-D-SRC 固件升级指南

HY144-D-SRC 固件升级指南 HY144-D-SRC Yamaha HY144-D-SRC SRC SRC 7 Yamaha Yamaha Audinate Dante Yamaha Windows Microsoft Corporation Mac Apple Inc. 400-051-7700... 2... 2 Dante Firmware Update Manager... 3 TCP/IP... 4... 6 Failsafe

More information

(Load Project) (Save Project) (OffLine Mode) (Help) Intel Hex Motor

(Load Project) (Save Project) (OffLine Mode) (Help) Intel Hex Motor 1 4.1.1.1 (Load) 14 1.1 1 4.1.1.2 (Save) 14 1.1.1 1 4.1.2 (Buffer) 16 1.1.2 1 4.1.3 (Device) 16 1.1.3 1 4.1.3.1 (Select Device) 16 2 4.1.3.2 (Device Info) 16 2.1 2 4.1.3.3 (Adapter) 17 2.1.1 CD-ROM 2 4.1.4

More information

Socket Socket TcpClient Socket.Connect TcpClient.Connect Socket.Send / Receive NetworkStream 6-5

Socket Socket TcpClient Socket.Connect TcpClient.Connect Socket.Send / Receive NetworkStream 6-5 6 6-1 6-2 Socket 6-2-1 Socket 6-2-2 TcpClient 6-3 6-3-1 Socket.Connect 6-3-2 TcpClient.Connect 6-4 6-4-1 Socket.Send / Receive 6-4-2 NetworkStream 6-5 6-5-1 Socket.Close 6-5-2 TcpClient.Close 6-6 DateTime

More information

2C-ESP8266_Non_OS_SDK_API_Reference__CN.pages

2C-ESP8266_Non_OS_SDK_API_Reference__CN.pages ESP8266 Non-OS SDK API 参考 版本 3.0 乐鑫信息科技 版权所有 2018 www.espressif.com 关于本 手册 本 文档提供 ESP8266_NONOS_SDK 的 API 说明 发布说明 日期版本发布说明 2016.03 V1.5.2 更更新章节 3.2 A.5 和 3.3.37 2016.04 V1.5.3 2016.05 V1.5.4 2016.07 V2.0.0

More information

51 C 51 isp 10 C PCB C C C C KEIL

51 C 51 isp 10   C   PCB C C C C KEIL http://wwwispdowncom 51 C " + + " 51 AT89S51 In-System-Programming ISP 10 io 244 CPLD ATMEL PIC CPLD/FPGA ARM9 ISP http://wwwispdowncom/showoneproductasp?productid=15 51 C C C C C ispdown http://wwwispdowncom

More information

Chapter #

Chapter # 第三章 TCP/IP 协议栈 本章目标 通过本章的学习, 您应该掌握以下内容 : 掌握 TCP/IP 分层模型 掌握 IP 协议原理 理解 OSI 和 TCP/IP 模型的区别和联系 TCP/IP 介绍 主机 主机 Internet TCP/IP 早期的协议族 全球范围 TCP/IP 协议栈 7 6 5 4 3 应用层表示层会话层传输层网络层 应用层 主机到主机层 Internet 层 2 1 数据链路层

More information

(UTM???U_935_938_955_958_959 V2.1.9.1)

(UTM???U_935_938_955_958_959 V2.1.9.1) 192.16 www.sharetech.com.tw UTM 多 功 能 防 火 牆 管 理 者 手 冊 V 2.1.9.1 目 錄 第 一 章 安 裝 與 訊 息... 7 1-1 建 議 的 安 裝 設 定 圖... 8 1-2 軟 體 安 裝 設 定... 9 1-3 首 頁 訊 息... 14 1-4 型 號 與 功 能 對 照 表... 17 第 二 章 系 統 設 定... 19 2-1

More information

Microsoft Word - MTK平台生产软件使用说明.doc

Microsoft Word - MTK平台生产软件使用说明.doc MTK 1. 1.1 SMT BSN 1.2 1 IMEI 2. 2 2.1 MTK Flash Flash NAND FlashMP3 1 SMT SOFT Flash 2 SOFT MKT USB-RS232 921600 8 2.2 COPY 2.3 USB PCUSB USB 8 USB USB USB-RS232 (USB ) RS232 PCRS232 8 4V2A 2.4 DA File

More information

ebook12-1

ebook12-1 API N e t B I O S Wi n s o c k A P I Wi n s o c k 1 N e t B I O S Wi n s o c k A P I N e t B I O S O S / 2 D O S 2 3 4 Wi n d o w s Wi n d o w s 1 NetBIOS Network Basic Input/Output System, NetBIOS A P

More information

Important Notice SUNPLUS TECHNOLOGY CO. reserves the right to change this documentation without prior notice. Information provided by SUNPLUS TECHNOLO

Important Notice SUNPLUS TECHNOLOGY CO. reserves the right to change this documentation without prior notice. Information provided by SUNPLUS TECHNOLO Car DVD New GUI IR Flow User Manual V0.1 Jan 25, 2008 19, Innovation First Road Science Park Hsin-Chu Taiwan 300 R.O.C. Tel: 886-3-578-6005 Fax: 886-3-578-4418 Web: www.sunplus.com Important Notice SUNPLUS

More information

ch08.PDF

ch08.PDF 8-1 CCNA 8.1 CLI 8.1.1 8-2 8-3 8.1.21600 2500 1600 2500 / IOS 8-4 8.2 8.2.1 A 5 IP CLI 1600 2500 8-5 8.1.2-15 Windows 9598NT 2000 HyperTerminal Hilgraeve Microsoft Cisco HyperTerminal Private Edition (PE)

More information

Slide 1

Slide 1 网络编程入门篇 Select: 非阻塞 Socket 编程 目录 基础知识 具体示例 注意事项 示例代码讲解 基础知识 基础知识 在 RT-Thread 使用 socket 网络编程时, 由于 socket 的 recv 和 send 的实现是阻塞式的, 因此当一个任务调用 recv() 函数接收数据时, 如果 socket 上并没有接收到数据, 这个任务将阻塞在 recv() 函数里 这个时候,

More information

bingdian001.com

bingdian001.com TSM12M TSM12 STM8L152C6, STM8L152R8 MSP430F5325 whym1987@126.com! /******************************************************************************* * : TSM12.c * : * : 2013/10/21 * : TSM12, STM8L f(sysclk)

More information

<55342D323637CBB5C3F7CAE92E786C73>

<55342D323637CBB5C3F7CAE92E786C73> U4-267 / 1 U4-267 / : CF PowerPoint, TCP/IP Internet Explorer 2 ..2..3..4..5..5..5..9 PC...10 11 12 14 14....15....15....16....16....17....17....18....18....20 23....27 27 PC...27....28 3 CF SanDisk CompactFlash)

More information

一.NETGEAR VPN防火墙产品介绍

一.NETGEAR VPN防火墙产品介绍 NETGEAR VPN NETGEAR 6 http://www.netgear.com.cn - 1 - NETGEAR VPN... 4 1.1 VPN...4 1.2 Dynamic Domain Name Service...4 1.3 Netgear VPN...4 Netgear VPN... 6 2.1 FVS318 to FVS318 IKE Main...7 2.1.1 A VPN

More information

RunPC2_.doc

RunPC2_.doc PowerBuilder 8 (5) PowerBuilder Client/Server Jaguar Server Jaguar Server Connection Cache Thin Client Internet Connection Pooling EAServer Connection Cache Connection Cache Connection Cache Connection

More information

D-link用户手册.doc

D-link用户手册.doc 声 明 Copyright 1986-2013 版 权 所 有, 保 留 一 切 权 利 非 经 本 公 司 书 面 许 可, 任 何 单 位 和 个 人 不 得 擅 自 摘 抄 复 制 本 书 内 容 的 部 分 或 全 部, 并 不 得 以 任 何 形 式 传 播 由 于 产 品 版 本 升 级 或 其 它 原 因, 本 手 册 内 容 会 不 定 期 进 行 更 新, 为 获 得 最 新 版

More information

PL600 IPPBX 用户手册_V2.0_.doc

PL600 IPPBX 用户手册_V2.0_.doc VoIP 网 络 交 换 机 PL-600 IPPBX 用 户 手 册 深 圳 普 联 讯 电 子 科 技 有 限 公 司 版 权 所 有 2009 深 圳 市 普 联 讯 电 子 科 技 有 限 公 司 第 1 共 1 目 录 1. 前 言...3 2. 安 装 前 准 备...3 3. 硬 件 安 装...4 4. 登 陆 及 一 般 操 作 介 绍...4 5. 基 本 配 置...6 6.

More information

AXIS P7224 Video Encoder Blade – Installation Guide

AXIS P7224 Video Encoder Blade – Installation Guide 安 装 指 南 AXIS P7224 刀 片 视 频 编 码 器 中 文 法 律 考 虑 事 项 视 频 和 音 频 监 视 可 能 会 受 法 律 限 制, 各 个 国 家 / 地 区 的 法 律 会 有 所 不 同 如 将 本 产 品 用 于 监 控 目 的, 需 要 先 检 查 是 否 符 合 你 所 在 区 域 内 的 法 律 规 定 本 产 品 包 括 四 个 (4) H.264 解 码

More information

AL-MX200 Series

AL-MX200 Series PostScript Level3 Compatible NPD4760-00 TC Seiko Epson Corporation Seiko Epson Corporation ( ) Seiko Epson Corporation Seiko Epson Corporation Epson Seiko Epson Corporation Apple Bonjour ColorSync Macintosh

More information

穨CAS1042快速安速說明.doc

穨CAS1042快速安速說明.doc CAS1042 4 Port 10/100M Switch Internet BroadBand Router IP IP... PC CAS1042 UTP Cable CAS1042 5V / 2.4A 6 1. 2. ADSL Cable Modem 3. CAS1042 4. TCP/IP 5. 6. 1 2 ADSL Modem Cable Modem CAS1042 ) / "LAN

More information

新建 Microsoft Word 文档.doc

新建 Microsoft Word 文档.doc Damayi Bluetooth DB10Bluetooth Development Board 1.0 CPU LCD CSR BlueCore Bluetooth DB10 Bluetooth Main Board Bluetooth Inte rface Boar d MCU Interface Board CSR BlueCore CSR Bluelab SDK Damayi Bluetooth

More information

TCP/IP TCP/IP OSI IP TCP IP IP TCP/IP TCP/IP

TCP/IP TCP/IP OSI IP TCP IP IP TCP/IP TCP/IP TCP/IP : TCP/IP TCP/IP OSI IP TCP IP IP TCP/IP TCP/IP 1. ASCII EBCDIC Extended Binary-Coded Decimal Interchange Code 2. / (1) (2) Single System Image SSI) (3) I/O (4) 3.OSI OSI Open System Interconnection

More information

新美大酒店开放平台SDK(.NET版)使用说明.pages

新美大酒店开放平台SDK(.NET版)使用说明.pages SDK(.NET 版 ) 使 用说明 1 SDK 包说明 1.1 获取 SDK SDK 可以在数据平台下载, 也可直接通过下载地址获得 下载地址 : http://s3.meituan.net/v1/mss_de81c933e113413ea913a772b707b9c9/open-platform-sdk/mthotelopenplatform-sdk-1.0-net.zip 下载成功后, 解压后可获得

More information

一个开放源码的嵌入式仿真环境 ― SkyEye

一个开放源码的嵌入式仿真环境 ― SkyEye SkyEye SkyEye http://hpclab.cs.tsinghua.edu.cn/~skyeye/ I hear and I forget, I see and I remember, I do and I understand. SkyEye SkyEye SkyEye SkyEye SkyEye 1. SkyEye PC pervasive computing PC I O PDA

More information

¶C¶L§§¬_™¨ A.PDF

¶C¶L§§¬_™¨ A.PDF 1 9 3 1 9 4 / 7.1 / 1 9 5 7.2 % netstat -rn Routing tables Destination Gateway Flags Refcnt Use Interface 127.0.0.1 127.0.0.1 UH 1 132 lo0 172.16.12.0 172.16.12.2 U 26 49041 le0 1 9 6 / % ping -s almond

More information

穨control.PDF

穨control.PDF TCP congestion control yhmiu Outline Congestion control algorithms Purpose of RFC2581 Purpose of RFC2582 TCP SS-DR 1998 TCP Extensions RFC1072 1988 SACK RFC2018 1996 FACK 1996 Rate-Halving 1997 OldTahoe

More information

Oracle 4

Oracle 4 Oracle 4 01 04 Oracle 07 Oracle Oracle Instance Oracle Instance Oracle Instance Oracle Database Oracle Database Instance Parameter File Pfile Instance Instance Instance Instance Oracle Instance System

More information

联想天工800R路由器用户手册 V2.0

联想天工800R路由器用户手册 V2.0 LSA-800R V2.0 2 0 0 4 l e n o v o 0755-33306800 www.lenovonetworks.com support@lenovonet.com 1 1 1.1 1 1.2 1 2 2 2.1 2 2.2 2 3 2 3.1 2 3.2 3 3.3 4 3.4 5 4 TCP/IP 5 4.1 Windows 95/98/ME 5 4.2 Windows 2000/XP

More information

IC-900W Wireless Pan & Tilt Wireless Pan & Tilt Remote Control / Night Vision FCC ID:RUJ-LR802UWG

IC-900W Wireless Pan & Tilt Wireless Pan & Tilt Remote Control / Night Vision FCC ID:RUJ-LR802UWG IC-900W Wireless Pan & Tilt Wireless Pan & Tilt Remote Control / Night Vision FCC ID:RUJ-LR802UWG --------------------------------------------TABLE OF CONTENTS------------------------------------------

More information

BYOD Http Redirect convergence Client (1) 2008R2 NLB( ) (2) NLB Unicast mode switch flooding (arp ) NLB DNS Redirect 1. Round-Robin DNS DNS IP/DNS Cli

BYOD Http Redirect convergence Client (1) 2008R2 NLB( ) (2) NLB Unicast mode switch flooding (arp ) NLB DNS Redirect 1. Round-Robin DNS DNS IP/DNS Cli BYOD 204 2015 GoogleHicloud (Load Balance) Server Load Balance Link Load Balance Server Redirect 1. URL Redirect redirector URL redirect Real Server Client HTTP Real Server Web Client 2 (1) URL Redirect

More information

EPSON

EPSON NPD5668-00 TC .... 6....6....6....8....8....10....11....11....12....12....12....12 IP....13 DNS....13....13....15....15.... 18....21 Web Config ( )...21....23....23....24....27.... 27 Web Config.... 28....30....30....31

More information

Microsoft Word - 01.DOC

Microsoft Word - 01.DOC 第 1 章 JavaScript 简 介 JavaScript 是 NetScape 公 司 为 Navigator 浏 览 器 开 发 的, 是 写 在 HTML 文 件 中 的 一 种 脚 本 语 言, 能 实 现 网 页 内 容 的 交 互 显 示 当 用 户 在 客 户 端 显 示 该 网 页 时, 浏 览 器 就 会 执 行 JavaScript 程 序, 用 户 通 过 交 互 式 的

More information

ext-web-auth-wlc.pdf

ext-web-auth-wlc.pdf 使 用 无 线 局 域 网 控 制 器 的 外 部 Web 身 份 验 证 配 置 示 例 目 录 简 介 先 决 条 件 要 求 使 用 的 组 件 规 则 背 景 信 息 外 部 Web 身 份 验 证 过 程 网 络 设 置 配 置 为 来 宾 用 户 创 建 动 态 接 口 创 建 预 先 身 份 验 证 ACL 在 WLC 上 为 来 宾 用 户 创 建 本 地 数 据 库 配 置 外 部

More information

目 录

目 录 1 Quick51...1 1.1 SmartSOPC Quick51...1 1.2 Quick51...1 1.3 Quick51...2 2 Keil C51 Quick51...4 2.1 Keil C51...4 2.2 Keil C51...4 2.3 1 Keil C51...4 2.4 Flash Magic...9 2.5 ISP...9 2.6...10 2.7 Keil C51...12

More information

ESP32-WROOM URL Wi-Fi Wi-Fi Bluetooth SIG 2018

ESP32-WROOM URL Wi-Fi Wi-Fi Bluetooth SIG 2018 ESP32-WROOM-32 2.6 2018 www.espressif.com ESP32-WROOM-32 www.espressif.com/zh-hans/subscribe www.espressif.com/zh-hans/certificates URL Wi-Fi Wi-Fi Bluetooth SIG 2018 1 1 2 3 2.1 3 2.2 3 2.3 Strapping

More information

中文朗科AirTrackTM T600 迷你无线路由器用户手册.doc

中文朗科AirTrackTM T600 迷你无线路由器用户手册.doc AirTrack T600 http://www.netac.com.cn Netac Netac AirTrack OnlyDisk Netac Netac Netac http://www.netac.com.cn Netac 800-830-3662 FCC 15 B 1 2 3 4 / FCC 20cm 1 2 3 / / ...1 1.1...1 1.2...1 1.3...1 1.4...3...4

More information

SAPIDO GR-1733 無線寬頻分享器

SAPIDO GR-1733 無線寬頻分享器 1 版 權 聲 明... 4 產 品 保 固 說 明... 4 保 固 期 限... 4 維 修 辦 法... 5 服 務 條 款... 5 注 意 事 項... 6 低 功 率 電 波 輻 射 性 電 機 管 理 辦 法... 6 CE 標 誌 聲 明... 6 無 線 功 能 注 意 事 項... 6 1 產 品 特 點 介 紹... 7 1.1 LED 指 示 燈 功 能 說 明... 8 1.2

More information