From b889305c1b07c97dc108147c3386207ed1298840 Mon Sep 17 00:00:00 2001 From: Jin Fang Cheng Cheng Date: Wed, 6 Jun 2018 12:11:57 +0800 Subject: [PATCH] Update blufi.rst --- docs/zh_CN/api-guides/blufi.rst | 427 ++++++++++++++++---------------- 1 file changed, 213 insertions(+), 214 deletions(-) diff --git a/docs/zh_CN/api-guides/blufi.rst b/docs/zh_CN/api-guides/blufi.rst index 74f068961..1f9ec8905 100644 --- a/docs/zh_CN/api-guides/blufi.rst +++ b/docs/zh_CN/api-guides/blufi.rst @@ -121,228 +121,227 @@ Ack 帧格式(8 bit): **1.1 控制帧 (0x0b’00)** -+------------------+-----------------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+ -| 控制帧 / 0x0b’00 | 含义 | 解释 | 备注 | -+==================+===================================+================================================================+======================================================================+ -| 0x0b’000000 | Ack | 用来回复对方发的帧, | Data 域使用1 byte Sequence 值, | -| | | Ack 帧的 Data 域使用回复对象帧的 Sequence 值。 | 与恢复对象帧的Sequence 值相同。 | -+------------------+-----------------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+ -| 0x1b’000001 | Set ESP32 to the security mode. | 通知 ESP32 发送数据时使用的安全模式, | Data 域占用 1 byte。 | -| | | 在该过程中可设置多次,每次设置后影响后续安全模式。 | 高 4 bit 为控制帧的安全模式,低 4bit 为数据帧的安全模式。 | -+ + + 在不设置的情况下,ESP32 默认控制帧和数据帧均为无校验、无加密。 +----------------------------------------------------------------------+ -| | | 手机到 ESP32 方向依赖于帧 Control 域。 | b’0000:无校验、无加密; | -+ + + +----------------------------------------------------------------------+ -| | | | b’0001:有校验、无加密; | -+ + + +----------------------------------------------------------------------+ -| | | | b’0010:无校验、有加密; | -+ + + +----------------------------------------------------------------------+ -| | | | b’0011:有校验、有加密。 | -+------------------+-----------------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+ -| 0x2b’000010 | Set the Wi-Fi opmode of ESP32. | 设置 ESP32 的 Wi-Fi 模式,帧包含 opmode 信息。 | data[0] 用于表示 opmode 类型,包括: | -+ + + +----------------------------------------------------------------------+ -| | | | 0x00: NULL; | -+ + + +----------------------------------------------------------------------+ -| | | | 0x01: STA; | -+ + + +----------------------------------------------------------------------+ -| | | | 0x02: SoftAP; | -+ + + +----------------------------------------------------------------------+ -| | | | 0x03: SoftAP&STA. | -+ + + +----------------------------------------------------------------------+ -| | | | 如果设置有包含 AP,请尽量优先 | -| | | | 设置 AP 模式的SSID/Password/Max Conn Number 等。 | -+------------------+-----------------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+ -| 0x3b’000011 | Connect ESP32 to the AP. | 通知 ESP32,必要的信息已经发送完毕,可以连接 AP。 | 不包含 Data 域。 | -+------------------+-----------------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+ -| 0x4b’000100 | Disconnect ESP32 from the AP. | 通知 ESP32 断开与 AP 的连接 | 不包含 Data 域。 | -+------------------+-----------------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+ -| 0x5b’000101 | Get the status of Wi-Fi. | 获取 ESP32 的 Wi-Fi 模式和状态等信息。 | 不包含 Data 域。 | -| | | | ESP32 收到此控制帧后,后续会通过 Wi-Fi 连接状态 | -| | | | 报告 (Wi-Fi Connection State Report) 数据帧来回复手机端当前 | -| | | | 所处的 opmode、连接状态、SSID 等信息。提供给手机端的信息由应用决定。 | -+------------------+-----------------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+ -| 0x6b’000110 | Disconnect the STA device | 处于 SoftAP 模式时,踢掉某个 STA 设备。 | data[0~5] 为 STA 设备的 MAC 地址, | -| | from the SoftAP in SoftAP mode. | | 如有多个 STA,则 [6-11] 为第二个,依次类推。 | -+------------------+-----------------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+ -| 0x7b'000111 | Get the version. | | | -+------------------+-----------------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+ -| 0x8b’001000 | Tell ESP32 to disconnect | 通知 ESP32 断开蓝牙连接。 | ESP32 收到该指令后主动断开蓝牙连接。 | -| | the BLE GATT link. | | | -+------------------+-----------------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+ -| 0x9b’001001 | Tell ESP32 to get the Wi-Fi list. | 通知 ESP32 扫描周围的 Wi-Fi 热点 | 不包含 Data 域。 | -| | | | ESP32 收到此控制帧后,会发送包含 Wi-Fi 热点 | -| | | | 报告 (Wi-Fi List Report) 的数据帧回复 | -| | | | 手机端 ESP32 周围的 Wi-Fi 热点。 | -+------------------+-----------------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+ + +------------------+-----------------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+ + | 控制帧 / 0x0b’00 | 含义 | 解释 | 备注 | + +==================+===================================+================================================================+======================================================================+ + | 0x0b’000000 | Ack | 用来回复对方发的帧, | Data 域使用1 byte Sequence 值, | + | | | Ack 帧的 Data 域使用回复对象帧的 Sequence 值。 | 与恢复对象帧的Sequence 值相同。 | + +------------------+-----------------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+ + | 0x1b’000001 | Set ESP32 to the security mode. | 通知 ESP32 发送数据时使用的安全模式, | Data 域占用 1 byte。 | + | | | 在该过程中可设置多次,每次设置后影响后续安全模式。 | 高 4 bit 为控制帧的安全模式,低 4bit 为数据帧的安全模式。 | + + + + 在不设置的情况下,ESP32 默认控制帧和数据帧均为无校验、无加密。 +----------------------------------------------------------------------+ + | | | 手机到 ESP32 方向依赖于帧 Control 域。 | b’0000:无校验、无加密; | + + + + +----------------------------------------------------------------------+ + | | | | b’0001:有校验、无加密; | + + + + +----------------------------------------------------------------------+ + | | | | b’0010:无校验、有加密; | + + + + +----------------------------------------------------------------------+ + | | | | b’0011:有校验、有加密。 | + +------------------+-----------------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+ + | 0x2b’000010 | Set the Wi-Fi opmode of ESP32. | 设置 ESP32 的 Wi-Fi 模式,帧包含 opmode 信息。 | data[0] 用于表示 opmode 类型,包括: | + + + + +----------------------------------------------------------------------+ + | | | | 0x00: NULL; | + + + + +----------------------------------------------------------------------+ + | | | | 0x01: STA; | + + + + +----------------------------------------------------------------------+ + | | | | 0x02: SoftAP; | + + + + +----------------------------------------------------------------------+ + | | | | 0x03: SoftAP&STA. | + + + + +----------------------------------------------------------------------+ + | | | | 如果设置有包含 AP,请尽量优先 | + | | | | 设置 AP 模式的SSID/Password/Max Conn Number 等。 | + +------------------+-----------------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+ + | 0x3b’000011 | Connect ESP32 to the AP. | 通知 ESP32,必要的信息已经发送完毕,可以连接 AP。 | 不包含 Data 域。 | + +------------------+-----------------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+ + | 0x4b’000100 | Disconnect ESP32 from the AP. | 通知 ESP32 断开与 AP 的连接 | 不包含 Data 域。 | + +------------------+-----------------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+ + | 0x5b’000101 | Get the status of Wi-Fi. | 获取 ESP32 的 Wi-Fi 模式和状态等信息。 | 不包含 Data 域。 | + | | | | ESP32 收到此控制帧后,后续会通过 Wi-Fi 连接状态 | + | | | | 报告 (Wi-Fi Connection State Report) 数据帧来回复手机端当前 | + | | | | 所处的 opmode、连接状态、SSID 等信息。提供给手机端的信息由应用决定。 | + +------------------+-----------------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+ + | 0x6b’000110 | Disconnect the STA device | 处于 SoftAP 模式时,踢掉某个 STA 设备。 | data[0~5] 为 STA 设备的 MAC 地址, | + | | from the SoftAP in SoftAP mode. | | 如有多个 STA,则 [6-11] 为第二个,依次类推。 | + +------------------+-----------------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+ + | 0x7b'000111 | Get the version. | | | + +------------------+-----------------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+ + | 0x8b’001000 | Tell ESP32 to disconnect | 通知 ESP32 断开蓝牙连接。 | ESP32 收到该指令后主动断开蓝牙连接。 | + | | the BLE GATT link. | | | + +------------------+-----------------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+ + | 0x9b’001001 | Tell ESP32 to get the Wi-Fi list. | 通知 ESP32 扫描周围的 Wi-Fi 热点 | 不包含 Data 域。 | + | | | | ESP32 收到此控制帧后,会发送包含 Wi-Fi 热点 | + | | | | 报告 (Wi-Fi List Report) 的数据帧回复 | + | | | | 手机端 ESP32 周围的 Wi-Fi 热点。 | + +------------------+-----------------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+ **1.2 数据帧 (0x1b’01)** -+---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ -| 数据帧 | 含义 | 解释 | 备注 | -+===============+========================================+================================================+======================================================+ -| 0x0 b’000000 | Negotiation data. | 用来发送协商数据,传输到应用层注册的回调函数。 | 数据长度与 Length 域有关。 | -+---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ -| 0x1 b’000001 | BSSID for STA mode. | STA 将要连接的 AP 的 BSSID(用于隐藏SSID)。 | 数据长度与 Length 域有关。 | -+ + + +------------------------------------------------------+ -| | | | 当传输方向为 ESP32 到手机时, | -| | | | 表示向手机端提供信息。 | -+---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ -| 0x2 b’000010 | SSID for STA mode. | STA 将要连接的 AP 的 SSID。 | 数据长度与 Length 域有关。 | -+ + + +------------------------------------------------------+ -| | | | 当传输方向为 ESP32 到手机时, | -| | | | 表示向手机端提供信息。 | -+---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ -| 0x3 b’000011 | Password for STA mode. | STA 将要连接的 AP 的密码。 | 数据长度与 Length 域有关。 | -+ + + +------------------------------------------------------+ -| | | | 当传输方向为 ESP32 到手机时, | -| | | | 表示向手机端提供信息。 | -+---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ -| 0x4 b’000100 | SSID for SoftAP mode. | SoftAP 模式使用的 SSID。 | 数据长度与 Length 域有关。 | -+ + + +------------------------------------------------------+ -| | | | 当传输方向为 ESP32 到手机时, | -| | | | 表示向手机端提供信息。 | -+---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ -| 0x5 b’000101 | Password for SoftAPmode. | SoftAP 模式使用的密码。 | 数据长度与 Length 域有关。 | -+ + + +------------------------------------------------------+ -| | | | 当传输方向为 ESP32 到手机时, | -| | | | 表示向手机端提供信息。 | -+---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ -| 0x6 b’000110 | Max connection number for SoftAP mode. | AP 模式的最大连接数。 | data[0] 表示连接数的值,范围 1~4。 | -+ + + +------------------------------------------------------+ -| | | | 当传输方向为 ESP32 到手机时, | -| | | | 表示向手机端提供信息。 | -+---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ -| 0x7b’000111 | Authentication mode for SoftAP mode. | AP 模式的认证模式。 | data[0]: | -+ + + +------------------------------------------------------+ -| | | | 0x00: OPEN; | -+ + + +------------------------------------------------------+ -| | | | 0x01: WEP; | -+ + + +------------------------------------------------------+ -| | | | 0x02: WPA_PSK; | -+ + + +------------------------------------------------------+ -| | | | 0x03: WPA2_PSK; | -+ + + +------------------------------------------------------+ -| | | | 0x04: WPA_WPA2_PSK. | -+ + + +------------------------------------------------------+ -| | | | 当传输方向为 ESP32 到手机时, | -| | | | 表示向手机端提供信息。 | -+---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ -| 0x8b’001000 | Channel for SoftAP mode. | SoftAP 模式的通道数量。 | data[0] 表示通道的数量,范围 1~14。 | -+ + + +------------------------------------------------------+ -| | | | 当传输方向为 ESP32 到手机时, | -| | | | 表示向手机端提供信息。 | -+---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ -| 0x9b’001001 | Username. | 使用企业级加密时,Client 端的用户名。 | 数据长度与 Length 域有关。 | -+---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ -| 0xab’001010 | CA certification. | 进行企业级加密时使用的 CA 证书。 | 数据长度与 Length 域有关, | -| | | | 长度不够,可用分片。 | -+---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ -| 0xbb’001011 | Client certification. | 进行企业级加密时,Client 端的证书。 | 数据长度与 Length 域有关, | -+ + +------------------------------------------------+ 长度不够,可用分片。 + -| | | 可包含或不包含私钥,由证书内容决定。 | | -+---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ -| 0xcb’001100 | Server certification. | 进行企业级加密时,Server 端的证书。 | 数据长度与 Length 域有关, | -+ + +------------------------------------------------+ 长度不够,可用分片。 + -| | | 可包含或不包含私钥,由证书内容决定。 | | -+---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ -| 0xdb’001101 | Client private key. | 进行企业级加密时,Client 端的私钥。 | 数据长度与 Length 域有关, | -| | | | 长度不够,可用分片。 | -+---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ -| 0xeb’001110 | Server private key. | 进行企业级加密时,Server 端的私钥。 | 数据长度与 Length 域有关, | -| | | | 长度不够,可用分片。 | -+---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ -| 0xf b’001111 | Wi-Fi connection state report. | 通知手机 ESP32 的 Wi-Fi 状态, | data[0] 表示 opmode,包括: | -| | | 包括 STA状态和 SoftAP 状态, | | -| | | 用于手机配置 STA 连接时的通知, | | -| | | 或有 STA 连接上 SoftAP 时的通知。 | | -+ + +------------------------------------------------+------------------------------------------------------+ -| | | 但收到手机询问 Wi-Fi 状态时, | 0x00: NULL; | -+ + + 除了回复此帧外,还可回复其他数据帧。 +------------------------------------------------------+ -| | | | 0x01: STA; | -+ + + +------------------------------------------------------+ -| | | | 0x02: SoftAP; | -+ + + +------------------------------------------------------+ -| | | | 0x03: SoftAP&STA | -+ + + +------------------------------------------------------+ -| | | | data[1]:STA 的连接状态, | -| | | | 0x0 表示处于连接状态, | -| | | | 其他表示处于非连接状态; | -+ + + +------------------------------------------------------+ -| | | | data[2]:SoftAP 的连接状态, | -| | | | 即表示有多少 STA 已经连接。 | -+ + + +------------------------------------------------------+ -| | | | data[3] 及以后:为按照本协议格式 SSID\BSSID 等信息。 | -+---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ -| 0x10 b’010000 | Version. | | data[0]= great version | -+ + + +------------------------------------------------------+ -| | | | data[1]=sub version | -+---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ -| 0x11 B’010001 | Wi-Fi list. | 通知手机 ESP32 周围的 Wi-Fi 热点列表。 | 数据帧数据格式为 Length + RSSI + SSID, | -| | | | 数据较长时可分片发送。 | -+---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ -| 0x12 B’010010 | Report error. | 通知手机 BluFi 过程出现异常错误。 | 0x00: sequence error; | -+ + + +------------------------------------------------------+ -| | | | 0x01: checksum error; | -+ + + +------------------------------------------------------+ -| | | | 0x02: decrypt error; | -+ + + +------------------------------------------------------+ -| | | | 0x03: encrypt error; | -+ + + +------------------------------------------------------+ -| | | | 0x04: init security error; | -+ + + +------------------------------------------------------+ -| | | | 0x05: dh malloc error; | -+ + + +------------------------------------------------------+ -| | | | 0x06: dh param error; | -+ + + +------------------------------------------------------+ -| | | | 0x07: read param error; | -+ + + +------------------------------------------------------+ -| | | | 0x08: make public error. | -+---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ -| 0x13 B’010011 | Custom data. | 用户发送或者接收自定义数据。 | 数据较长时可分片发送。 | -+---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ + +---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ + | 数据帧 | 含义 | 解释 | 备注 | + +===============+========================================+================================================+======================================================+ + | 0x0 b’000000 | Negotiation data. | 用来发送协商数据,传输到应用层注册的回调函数。 | 数据长度与 Length 域有关。 | + +---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ + | 0x1 b’000001 | BSSID for STA mode. | STA 将要连接的 AP 的 BSSID(用于隐藏SSID)。 | 数据长度与 Length 域有关。 | + + + + +------------------------------------------------------+ + | | | | 当传输方向为 ESP32 到手机时, | + | | | | 表示向手机端提供信息。 | + +---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ + | 0x2 b’000010 | SSID for STA mode. | STA 将要连接的 AP 的 SSID。 | 数据长度与 Length 域有关。 | + + + + +------------------------------------------------------+ + | | | | 当传输方向为 ESP32 到手机时, | + | | | | 表示向手机端提供信息。 | + +---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ + | 0x3 b’000011 | Password for STA mode. | STA 将要连接的 AP 的密码。 | 数据长度与 Length 域有关。 | + + + + +------------------------------------------------------+ + | | | | 当传输方向为 ESP32 到手机时, | + | | | | 表示向手机端提供信息。 | + +---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ + | 0x4 b’000100 | SSID for SoftAP mode. | SoftAP 模式使用的 SSID。 | 数据长度与 Length 域有关。 | + + + + +------------------------------------------------------+ + | | | | 当传输方向为 ESP32 到手机时, | + | | | | 表示向手机端提供信息。 | + +---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ + | 0x5 b’000101 | Password for SoftAPmode. | SoftAP 模式使用的密码。 | 数据长度与 Length 域有关。 | + + + + +------------------------------------------------------+ + | | | | 当传输方向为 ESP32 到手机时, | + | | | | 表示向手机端提供信息。 | + +---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ + | 0x6 b’000110 | Max connection number for SoftAP mode. | AP 模式的最大连接数。 | data[0] 表示连接数的值,范围 1~4。 | + + + + +------------------------------------------------------+ + | | | | 当传输方向为 ESP32 到手机时, | + | | | | 表示向手机端提供信息。 | + +---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ + | 0x7b’000111 | Authentication mode for SoftAP mode. | AP 模式的认证模式。 | data[0]: | + + + + +------------------------------------------------------+ + | | | | 0x00: OPEN; | + + + + +------------------------------------------------------+ + | | | | 0x01: WEP; | + + + + +------------------------------------------------------+ + | | | | 0x02: WPA_PSK; | + + + + +------------------------------------------------------+ + | | | | 0x03: WPA2_PSK; | + + + + +------------------------------------------------------+ + | | | | 0x04: WPA_WPA2_PSK. | + + + + +------------------------------------------------------+ + | | | | 当传输方向为 ESP32 到手机时, | + | | | | 表示向手机端提供信息。 | + +---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ + | 0x8b’001000 | Channel for SoftAP mode. | SoftAP 模式的通道数量。 | data[0] 表示通道的数量,范围 1~14。 | + + + + +------------------------------------------------------+ + | | | | 当传输方向为 ESP32 到手机时, | + | | | | 表示向手机端提供信息。 | + +---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ + | 0x9b’001001 | Username. | 使用企业级加密时,Client 端的用户名。 | 数据长度与 Length 域有关。 | + +---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ + | 0xab’001010 | CA certification. | 进行企业级加密时使用的 CA 证书。 | 数据长度与 Length 域有关, | + | | | | 长度不够,可用分片。 | + +---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ + | 0xbb’001011 | Client certification. | 进行企业级加密时,Client 端的证书。 | 数据长度与 Length 域有关, | + + + +------------------------------------------------+ 长度不够,可用分片。 + + | | | 可包含或不包含私钥,由证书内容决定。 | | + +---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ + | 0xcb’001100 | Server certification. | 进行企业级加密时,Server 端的证书。 | 数据长度与 Length 域有关, | + + + +------------------------------------------------+ 长度不够,可用分片。 + + | | | 可包含或不包含私钥,由证书内容决定。 | | + +---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ + | 0xdb’001101 | Client private key. | 进行企业级加密时,Client 端的私钥。 | 数据长度与 Length 域有关, | + | | | | 长度不够,可用分片。 | + +---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ + | 0xeb’001110 | Server private key. | 进行企业级加密时,Server 端的私钥。 | 数据长度与 Length 域有关, | + | | | | 长度不够,可用分片。 | + +---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ + | 0xf b’001111 | Wi-Fi connection state report. | 通知手机 ESP32 的 Wi-Fi 状态, | data[0] 表示 opmode,包括: | + | | | 包括 STA状态和 SoftAP 状态, | | + | | | 用于手机配置 STA 连接时的通知, | | + | | | 或有 STA 连接上 SoftAP 时的通知。 | | + + + +------------------------------------------------+------------------------------------------------------+ + | | | 但收到手机询问 Wi-Fi 状态时, | 0x00: NULL; | + + + + 除了回复此帧外,还可回复其他数据帧。 +------------------------------------------------------+ + | | | | 0x01: STA; | + + + + +------------------------------------------------------+ + | | | | 0x02: SoftAP; | + + + + +------------------------------------------------------+ + | | | | 0x03: SoftAP&STA | + + + + +------------------------------------------------------+ + | | | | data[1]:STA 的连接状态, | + | | | | 0x0 表示处于连接状态, | + | | | | 其他表示处于非连接状态; | + + + + +------------------------------------------------------+ + | | | | data[2]:SoftAP 的连接状态, | + | | | | 即表示有多少 STA 已经连接。 | + + + + +------------------------------------------------------+ + | | | | data[3] 及以后:为按照本协议格式 SSID\BSSID 等信息。 | + +---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ + | 0x10 b’010000 | Version. | | data[0]= great version | + + + + +------------------------------------------------------+ + | | | | data[1]=sub version | + +---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ + | 0x11 B’010001 | Wi-Fi list. | 通知手机 ESP32 周围的 Wi-Fi 热点列表。 | 数据帧数据格式为 Length + RSSI + SSID, | + | | | | 数据较长时可分片发送。 | + +---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ + | 0x12 B’010010 | Report error. | 通知手机 BluFi 过程出现异常错误。 | 0x00: sequence error; | + + + + +------------------------------------------------------+ + | | | | 0x01: checksum error; | + + + + +------------------------------------------------------+ + | | | | 0x02: decrypt error; | + + + + +------------------------------------------------------+ + | | | | 0x03: encrypt error; | + + + + +------------------------------------------------------+ + | | | | 0x04: init security error; | + + + + +------------------------------------------------------+ + | | | | 0x05: dh malloc error; | + + + + +------------------------------------------------------+ + | | | | 0x06: dh param error; | + + + + +------------------------------------------------------+ + | | | | 0x07: read param error; | + + + + +------------------------------------------------------+ + | | | | 0x08: make public error. | + +---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ + | 0x13 B’010011 | Custom data. | 用户发送或者接收自定义数据。 | 数据较长时可分片发送。 | + +---------------+----------------------------------------+------------------------------------------------+------------------------------------------------------+ 2. Frame Control 帧控制域,占 1 byte,每个 bit 表示不同含义。 -+----------------+-------------------------------------------------------------------------+ -| 位 | 含义 | -+================+=========================================================================+ -| 0x01 | 表示帧是否加密。 | -+ +-------------------------------------------------------------------------+ -| | 1 表示加密,0 表示未加密。 | -+ +-------------------------------------------------------------------------+ -| | 加密部分帧括完整的 DATA 域加密之前的明文(不帧含末尾的校验)。 | -+ +-------------------------------------------------------------------------+ -| | 控制帧暂不加密,故控制帧此位为 0。 | -+----------------+-------------------------------------------------------------------------+ -| 0x02 | 表示帧 Data 域结尾是否帧含校验(例如 SHA1,MD5,CRC等)需要校验的数据域, | -| | 包括 sequcne + data length + 明文 data。 | -+ +-------------------------------------------------------------------------+ -| | 控制帧和数据帧都可以包含校验位或不包含。 | -+----------------+-------------------------------------------------------------------------+ -| 0x04 | 表示数据方向。 | -+ +-------------------------------------------------------------------------+ -| | 0 表示手机发向 ESP32; | -+ +-------------------------------------------------------------------------+ -| | 1 表示 ESP32 发向手机。 | -+----------------+-------------------------------------------------------------------------+ -| 0x08 | 表示是否要求对方回复 ack。 | -+ +-------------------------------------------------------------------------+ -| | 0 表示不要求; | -+ +-------------------------------------------------------------------------+ -| | 1 表示要求回复 ack。 | -+----------------+-------------------------------------------------------------------------+ -| 0x10 | 表示是否有后续的数据分片。 | -+ +-------------------------------------------------------------------------+ -| | 0 表示此帧没有后续数据分片; | -+ +-------------------------------------------------------------------------+ -| | 1 表示还有后续数据分片,用来传输较长的数据。 | -+ +-------------------------------------------------------------------------+ -| | 如果是 Frag 帧,则告知当前 content 部分+后续 content 部分的总长度, | -| | 位于 Data 域的前 2 字节(即最大支持 64K 的 content 数据)。 | -+----------------+-------------------------------------------------------------------------+ -| 0x10~0x80 保留 | | -+----------------+-------------------------------------------------------------------------+ + +----------------+-------------------------------------------------------------------------------------------------------------------------------+ + | 位 | 含义 | + +================+===============================================================================================================================+ + | 0x01 | 表示帧是否加密。 | + + +-------------------------------------------------------------------------------------------------------------------------------+ + | | 1 表示加密,0 表示未加密。 | + + +-------------------------------------------------------------------------------------------------------------------------------+ + | | 加密部分帧括完整的 DATA 域加密之前的明文(不帧含末尾的校验)。 | + + +-------------------------------------------------------------------------------------------------------------------------------+ + | | 控制帧暂不加密,故控制帧此位为 0。 | + +----------------+-------------------------------------------------------------------------------------------------------------------------------+ + | 0x02 | 表示帧 Data 域结尾是否帧含校验(例如 SHA1,MD5,CRC等)需要校验的数据域包括 sequcne + data length + 明文 data。 | + + +-------------------------------------------------------------------------------------------------------------------------------+ + | | 控制帧和数据帧都可以包含校验位或不包含。 | + +----------------+-------------------------------------------------------------------------------------------------------------------------------+ + | 0x04 | 表示数据方向。 | + + +-------------------------------------------------------------------------------------------------------------------------------+ + | | 0 表示手机发向 ESP32; | + + +-------------------------------------------------------------------------------------------------------------------------------+ + | | 1 表示 ESP32 发向手机。 | + +----------------+-------------------------------------------------------------------------------------------------------------------------------+ + | 0x08 | 表示是否要求对方回复 ack。 | + + +-------------------------------------------------------------------------------------------------------------------------------+ + | | 0 表示不要求; | + + +-------------------------------------------------------------------------------------------------------------------------------+ + | | 1 表示要求回复 ack。 | + +----------------+-------------------------------------------------------------------------------------------------------------------------------+ + | 0x10 | 表示是否有后续的数据分片。 | + + +-------------------------------------------------------------------------------------------------------------------------------+ + | | 0 表示此帧没有后续数据分片; | + + +-------------------------------------------------------------------------------------------------------------------------------+ + | | 1 表示还有后续数据分片,用来传输较长的数据。 | + + +-------------------------------------------------------------------------------------------------------------------------------+ + | | 如果是 Frag 帧,则告知当前 content 部分+后续 content 部分的总长度,位于 Data 域的前 2 字节(即最大支持 64K 的 content 数据)。 | + +----------------+-------------------------------------------------------------------------------------------------------------------------------+ + | 0x10~0x80 保留 | | + +----------------+-------------------------------------------------------------------------------------------------------------------------------+ + 3. Sequence Control