mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
Update blufi.rst
This commit is contained in:
parent
3a15efd3c3
commit
ad48c2689f
@ -117,233 +117,233 @@ The format of Ack Frame(8 bit):
|
||||
|
||||
**1.1 Control Frame (0x0b’00)**
|
||||
|
||||
+-------------------------+--------------------------------------------------------------+---------------------------------------------------------------+---------------------------------------------------------------+
|
||||
| Control Frame / 0x0b’00 | Implication | Explanation | Note |
|
||||
+=========================+==============================================================+===============================================================+===============================================================+
|
||||
| 0x0b’000000 | Ack | The data field of the Ack frame uses the same | The data field consumes a byte and its value is |
|
||||
| | | sequence value of the frame to reply to. | the same as the sequence field of the frame to reply to. |
|
||||
+-------------------------+--------------------------------------------------------------+---------------------------------------------------------------+---------------------------------------------------------------+
|
||||
| 0x1b’000001 | Set ESP32 to the security mode. | To inform ESP32 of the security mode to use | The data field consumes a byte. |
|
||||
| | | when sending data, which is allowed to be reset | The higher 4 bits are for the security mode setting |
|
||||
| | | multiple times during the process. | of the control frame, and the lower 4 bits are for |
|
||||
| | | Each setting affects the subsequent security mode used. | the security mode setting of the data frame. |
|
||||
+ + + If it is not set, ESP32 will send the control frame +---------------------------------------------------------------+
|
||||
| | | and data frame with no checksum and encryption by default. | b’0000: no checksum and no encryption; |
|
||||
+ + + The data transmission from the mobile phone to ESP32 is +---------------------------------------------------------------+
|
||||
| | | controlled by this control frame. | b’0001: with checksum but no encryption; |
|
||||
+ + + +---------------------------------------------------------------+
|
||||
| | | | b’0010: no checksum but with encryption; |
|
||||
+ + + +---------------------------------------------------------------+
|
||||
| | | | b’0011: with both checksum and encryption. |
|
||||
+-------------------------+--------------------------------------------------------------+---------------------------------------------------------------+---------------------------------------------------------------+
|
||||
| 0x2b’000010 | Set the opmode of Wi-Fi. | The frame contains opmode settings for | data[0] is for opmode settings, including: |
|
||||
+ + + configuring for the Wi-Fi mode of ESP32. +---------------------------------------------------------------+
|
||||
| | | | 0x00: NULL; |
|
||||
+ + + +---------------------------------------------------------------+
|
||||
| | | | 0x01: STA; |
|
||||
+ + + +---------------------------------------------------------------+
|
||||
| | | | 0x02: SoftAP; |
|
||||
+ + + +---------------------------------------------------------------+
|
||||
| | | | 0x03: SoftAP&STA. |
|
||||
+ + + +---------------------------------------------------------------+
|
||||
| | | | Please set the SSID/Password/Max Connection Number of |
|
||||
| | | | the AP mode in the first place if an AP gets involved. |
|
||||
+-------------------------+--------------------------------------------------------------+---------------------------------------------------------------+---------------------------------------------------------------+
|
||||
| 0x3b’000011 | Connect ESP32 to the AP. | To notify ESP32 that the essential information has been sent | No data field is contained. |
|
||||
| | | and it is allowed to connect to the AP. | |
|
||||
+-------------------------+--------------------------------------------------------------+---------------------------------------------------------------+---------------------------------------------------------------+
|
||||
| 0x4b’000100 | Disconnect ESP32 from the AP. | | No data field is contained. |
|
||||
+-------------------------+--------------------------------------------------------------+---------------------------------------------------------------+---------------------------------------------------------------+
|
||||
| 0x5b’000101 | To get the information of ESP32’s Wi-Fi mode and its status. | | No data field is contained. |
|
||||
| | | | When receiving this control frame, ESP32 will send back |
|
||||
| | | | a follow-up frame of Wi-Fi connection state report to |
|
||||
| | | | the mobile phone with the information of the current opmode, |
|
||||
| | | | connection status, SSID and so on. |
|
||||
| | | | The types of information sent to the mobile phone is |
|
||||
| | | | defined by the application installed on the phone. |
|
||||
+-------------------------+--------------------------------------------------------------+---------------------------------------------------------------+---------------------------------------------------------------+
|
||||
| 0x6b’000110 | Disconnect the STA device from the SoftAP (in SoftAP mode). | | Date[0~5] is taken as the MAC address for the STA device. |
|
||||
| | | | If there is a second STA device, then it uses data[6-11] |
|
||||
| | | | and the rest can be done in the same manner. |
|
||||
+-------------------------+--------------------------------------------------------------+---------------------------------------------------------------+---------------------------------------------------------------+
|
||||
| 0x7b'000111 | Get the version information. | | |
|
||||
+-------------------------+--------------------------------------------------------------+---------------------------------------------------------------+---------------------------------------------------------------+
|
||||
| 0x8b’001000 | Disconnect the BLE GATT link. | | ESP32 will disconnect the BLE GATT link |
|
||||
| | | | after receives this command. |
|
||||
+-------------------------+--------------------------------------------------------------+---------------------------------------------------------------+---------------------------------------------------------------+
|
||||
| 0x9b’001001 | Get the Wi-Fi list. | To get ESP32 to scan the Wi-Fi access points around. | No data field is contained. |
|
||||
| | | | When receiving this control frame, |
|
||||
| | | | ESP32 will send back a follow-up frame of Wi-Fi list |
|
||||
| | | | report to the mobile phone. |
|
||||
+-------------------------+--------------------------------------------------------------+---------------------------------------------------------------+---------------------------------------------------------------+
|
||||
+-------------------------+--------------------------------------------------------------+---------------------------------------------------------------+---------------------------------------------------------------+
|
||||
| Control Frame / 0x0b’00 | Implication | Explanation | Note |
|
||||
+=========================+==============================================================+===============================================================+===============================================================+
|
||||
| 0x0b’000000 | Ack | The data field of the Ack frame uses the same | The data field consumes a byte and its value is |
|
||||
| | | sequence value of the frame to reply to. | the same as the sequence field of the frame to reply to. |
|
||||
+-------------------------+--------------------------------------------------------------+---------------------------------------------------------------+---------------------------------------------------------------+
|
||||
| 0x1b’000001 | Set ESP32 to the security mode. | To inform ESP32 of the security mode to use | The data field consumes a byte. |
|
||||
| | | when sending data, which is allowed to be reset | The higher 4 bits are for the security mode setting |
|
||||
| | | multiple times during the process. | of the control frame, and the lower 4 bits are for |
|
||||
| | | Each setting affects the subsequent security mode used. | the security mode setting of the data frame. |
|
||||
+ + + If it is not set, ESP32 will send the control frame +---------------------------------------------------------------+
|
||||
| | | and data frame with no checksum and encryption by default. | b’0000: no checksum and no encryption; |
|
||||
+ + + The data transmission from the mobile phone to ESP32 is +---------------------------------------------------------------+
|
||||
| | | controlled by this control frame. | b’0001: with checksum but no encryption; |
|
||||
+ + + +---------------------------------------------------------------+
|
||||
| | | | b’0010: no checksum but with encryption; |
|
||||
+ + + +---------------------------------------------------------------+
|
||||
| | | | b’0011: with both checksum and encryption. |
|
||||
+-------------------------+--------------------------------------------------------------+---------------------------------------------------------------+---------------------------------------------------------------+
|
||||
| 0x2b’000010 | Set the opmode of Wi-Fi. | The frame contains opmode settings for | data[0] is for opmode settings, including: |
|
||||
+ + + configuring for the Wi-Fi mode of ESP32. +---------------------------------------------------------------+
|
||||
| | | | 0x00: NULL; |
|
||||
+ + + +---------------------------------------------------------------+
|
||||
| | | | 0x01: STA; |
|
||||
+ + + +---------------------------------------------------------------+
|
||||
| | | | 0x02: SoftAP; |
|
||||
+ + + +---------------------------------------------------------------+
|
||||
| | | | 0x03: SoftAP&STA. |
|
||||
+ + + +---------------------------------------------------------------+
|
||||
| | | | Please set the SSID/Password/Max Connection Number of |
|
||||
| | | | the AP mode in the first place if an AP gets involved. |
|
||||
+-------------------------+--------------------------------------------------------------+---------------------------------------------------------------+---------------------------------------------------------------+
|
||||
| 0x3b’000011 | Connect ESP32 to the AP. | To notify ESP32 that the essential information has been sent | No data field is contained. |
|
||||
| | | and it is allowed to connect to the AP. | |
|
||||
+-------------------------+--------------------------------------------------------------+---------------------------------------------------------------+---------------------------------------------------------------+
|
||||
| 0x4b’000100 | Disconnect ESP32 from the AP. | | No data field is contained. |
|
||||
+-------------------------+--------------------------------------------------------------+---------------------------------------------------------------+---------------------------------------------------------------+
|
||||
| 0x5b’000101 | To get the information of ESP32’s Wi-Fi mode and its status. | | No data field is contained. |
|
||||
| | | | When receiving this control frame, ESP32 will send back |
|
||||
| | | | a follow-up frame of Wi-Fi connection state report to |
|
||||
| | | | the mobile phone with the information of the current opmode, |
|
||||
| | | | connection status, SSID and so on. |
|
||||
| | | | The types of information sent to the mobile phone is |
|
||||
| | | | defined by the application installed on the phone. |
|
||||
+-------------------------+--------------------------------------------------------------+---------------------------------------------------------------+---------------------------------------------------------------+
|
||||
| 0x6b’000110 | Disconnect the STA device from the SoftAP (in SoftAP mode). | | Date[0~5] is taken as the MAC address for the STA device. |
|
||||
| | | | If there is a second STA device, then it uses data[6-11] |
|
||||
| | | | and the rest can be done in the same manner. |
|
||||
+-------------------------+--------------------------------------------------------------+---------------------------------------------------------------+---------------------------------------------------------------+
|
||||
| 0x7b'000111 | Get the version information. | | |
|
||||
+-------------------------+--------------------------------------------------------------+---------------------------------------------------------------+---------------------------------------------------------------+
|
||||
| 0x8b’001000 | Disconnect the BLE GATT link. | | ESP32 will disconnect the BLE GATT link |
|
||||
| | | | after receives this command. |
|
||||
+-------------------------+--------------------------------------------------------------+---------------------------------------------------------------+---------------------------------------------------------------+
|
||||
| 0x9b’001001 | Get the Wi-Fi list. | To get ESP32 to scan the Wi-Fi access points around. | No data field is contained. |
|
||||
| | | | When receiving this control frame, |
|
||||
| | | | ESP32 will send back a follow-up frame of Wi-Fi list |
|
||||
| | | | report to the mobile phone. |
|
||||
+-------------------------+--------------------------------------------------------------+---------------------------------------------------------------+---------------------------------------------------------------+
|
||||
|
||||
**1.2 Data Frame (0x1b’01)**
|
||||
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| Data Frame | Implication | Explanation | Note |
|
||||
+==============+====================================================+===============================================================+=======================================================================+
|
||||
| 0x0b’000000 | Send the negotiation data. | The negotiation data will be sent to the callback | The length of the data depends on the length field. |
|
||||
| | | function registered in the application layer. | |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| 0x1b’000001 | Send the BSSID for STA mode. | To send the BSSID of the AP for the STA device to | The length of the data depends on the length field. |
|
||||
| | | connect under the condition that the SSID is hidden. | When the transmission direction is ESP32 to the mobile phone, |
|
||||
| | | | it means to provide the mobile phone with the needed information. |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| 0x2b’000010 | Send the SSID for STA mode. | To send the SSID of the AP for the STA device to connect. | The length of the data depends on the length field. |
|
||||
| | | | When the transmission direction is ESP32 to the mobile phone, |
|
||||
| | | | it means to provide the mobile phone with the needed information. |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| 0x3b’000011 | Send the password for STA mode. | To send the password of the AP for the STA device to connect. | The length of the data depends on the length field. |
|
||||
| | | | When the transmission direction is ESP32 to the mobile phone, |
|
||||
| | | | it means to provide the mobile phone with the needed information. |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| 0x4b’000100 | Send the SSID for SoftAP mode. | | The length of the data depends on the length field. |
|
||||
| | | | When the transmission direction is ESP32 to the mobile phone, |
|
||||
| | | | it means to provide the mobile phone with the needed information. |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| 0x5b’000101 | Send the password for SoftAPmode. | | The length of the data depends on the length field. |
|
||||
| | | | When the transmission direction is ESP32 to the mobile phone, |
|
||||
| | | | it means to provide the mobile phone with the needed information. |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| 0x6b’000110 | Set the maximum connection number for SoftAP mode. | | data[0] represents the value of the connection number, |
|
||||
| | | | ranging from 1 to 4. When the transmission direction is ESP32 |
|
||||
| | | | to the mobile phone, it means to provide the mobile phone with |
|
||||
| | | | the needed information. |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| 0x7b’000111 | Set the authentication mode for the SoftAP. | | data[0]: |
|
||||
+ + + +-----------------------------------------------------------------------+
|
||||
| | | | 0x00: OPEN |
|
||||
+ + + +-----------------------------------------------------------------------+
|
||||
| | | | 0x01: WEP |
|
||||
+ + + +-----------------------------------------------------------------------+
|
||||
| | | | 0x02: WPA_PSK |
|
||||
+ + + +-----------------------------------------------------------------------+
|
||||
| | | | 0x03: WPA2_PSK |
|
||||
+ + + +-----------------------------------------------------------------------+
|
||||
| | | | 0x04: WPA_WPA2_PSK |
|
||||
+ + + +-----------------------------------------------------------------------+
|
||||
| | | | When the transmission direction is ESP32 to the mobile phone, |
|
||||
| | | | it means to provide the mobile phone with the needed information. |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| 0x8b’001000 | Set the channel amount for SoftAP mode. | | data[0] represents the quantity of the supported channels, |
|
||||
| | | | ranging from 1 to 14. |
|
||||
| | | | When the transmission direction is ESP32 to the mobile phone, |
|
||||
| | | | it means to provide the mobile phone with the needed information. |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| 0x9b’001001 | Username | It provides the username of the GATT client when using | The length of the data depends on the length field. |
|
||||
| | | encryption of enterprise level. | |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| 0xab’001010 | CA Certification | It provides the CA Certification when using encryption | The length of the data depends on the length field. |
|
||||
| | | of enterprise level. | The frame supports to be fragmented if the data length is not enough. |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| 0xbb’001011 | Client Certification | It provides the client certification when | The length of the data depends on the length field. |
|
||||
| | | using encryption of enterprise level. | The frame supports to be fragmented if the data length is not enough. |
|
||||
| | | Whether the private key is contained or not | |
|
||||
| | | depends on the content of the certification. | |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| 0xcb’001100 | Server Certification | It provides the sever certification when using | The length of the data depends on the length field. |
|
||||
| | | encryption of enterprise level. Whether the private key is | The frame supports to be fragmented if the data length is not enough. |
|
||||
| | | contained or not depends on the content of the certification. | |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| 0xdb’001101 | ClientPrivate Key | It provides the private key of the client when | The length of the data depends on the length field. |
|
||||
| | | using encryption of enterprise level. | The frame supports to be fragmented if the data length is not enough. |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| 0xeb’001110 | ServerPrivate Key | It provides the private key of the sever when | The length of the data depends on the length field. |
|
||||
| | | using encryption of enterprise level. | The frame supports to be fragmented if the data length is not enough. |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| 0xfb’001111 | Wi-Fi Connection State Report | To notify the phone of the ESP32's Wi-Fi status, | data[0] represents opmode, including: |
|
||||
+ + + including STA status and SoftAP status. +-----------------------------------------------------------------------+
|
||||
| | | It is for the STA device to connect to the | 0x00: NULL |
|
||||
+ + + mobile phone or the SoftAP. +-----------------------------------------------------------------------+
|
||||
| | | However, when the mobile phone receives the Wi-Fi status, | 0x01: STA |
|
||||
+ + + it can reply to other frames in addition to this frame. +-----------------------------------------------------------------------+
|
||||
| | | | 0x02: SoftAP |
|
||||
+ + + +-----------------------------------------------------------------------+
|
||||
| | | | 0x03: SoftAP&STA |
|
||||
+ + + +-----------------------------------------------------------------------+
|
||||
| | | | data[1]:the connection state of the STA device, |
|
||||
| | | | 0x0 indicates a connection state, |
|
||||
| | | | and others represent a disconnected state; |
|
||||
+ + + +-----------------------------------------------------------------------+
|
||||
| | | | data[2]:the connection state of the SoftAP, |
|
||||
| | | | that is, how many STA devices have been connected. |
|
||||
+ + + +-----------------------------------------------------------------------+
|
||||
| | | | data[3] and the subsequent is in accordance with the |
|
||||
| | | | format of SSID/BSSID information. |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| 0x10b’010000 | Version | | data[0]= great versiondata[1]= sub version |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| 0x11B’010001 | Wi-Fi List | To send the Wi-Fi list to ESP32. | The format of the data frame is length + RSSI + SSID |
|
||||
| | | | and it supports to be sent into fragments |
|
||||
| | | | if the data length is too long. |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| 0x12B’010010 | Report Error | To notify the mobile phone that there is an error with 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 |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| 0x13B’010011 | Custom Data | To send or receive custom data. | The data frame supports to be sent into |
|
||||
| | | | fragments if the data length is too long. |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| Data Frame | Implication | Explanation | Note |
|
||||
+==============+====================================================+===============================================================+=======================================================================+
|
||||
| 0x0b’000000 | Send the negotiation data. | The negotiation data will be sent to the callback | The length of the data depends on the length field. |
|
||||
| | | function registered in the application layer. | |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| 0x1b’000001 | Send the BSSID for STA mode. | To send the BSSID of the AP for the STA device to | The length of the data depends on the length field. |
|
||||
| | | connect under the condition that the SSID is hidden. | When the transmission direction is ESP32 to the mobile phone, |
|
||||
| | | | it means to provide the mobile phone with the needed information. |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| 0x2b’000010 | Send the SSID for STA mode. | To send the SSID of the AP for the STA device to connect. | The length of the data depends on the length field. |
|
||||
| | | | When the transmission direction is ESP32 to the mobile phone, |
|
||||
| | | | it means to provide the mobile phone with the needed information. |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| 0x3b’000011 | Send the password for STA mode. | To send the password of the AP for the STA device to connect. | The length of the data depends on the length field. |
|
||||
| | | | When the transmission direction is ESP32 to the mobile phone, |
|
||||
| | | | it means to provide the mobile phone with the needed information. |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| 0x4b’000100 | Send the SSID for SoftAP mode. | | The length of the data depends on the length field. |
|
||||
| | | | When the transmission direction is ESP32 to the mobile phone, |
|
||||
| | | | it means to provide the mobile phone with the needed information. |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| 0x5b’000101 | Send the password for SoftAPmode. | | The length of the data depends on the length field. |
|
||||
| | | | When the transmission direction is ESP32 to the mobile phone, |
|
||||
| | | | it means to provide the mobile phone with the needed information. |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| 0x6b’000110 | Set the maximum connection number for SoftAP mode. | | data[0] represents the value of the connection number, |
|
||||
| | | | ranging from 1 to 4. When the transmission direction is ESP32 |
|
||||
| | | | to the mobile phone, it means to provide the mobile phone with |
|
||||
| | | | the needed information. |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| 0x7b’000111 | Set the authentication mode for the SoftAP. | | data[0]: |
|
||||
+ + + +-----------------------------------------------------------------------+
|
||||
| | | | 0x00: OPEN |
|
||||
+ + + +-----------------------------------------------------------------------+
|
||||
| | | | 0x01: WEP |
|
||||
+ + + +-----------------------------------------------------------------------+
|
||||
| | | | 0x02: WPA_PSK |
|
||||
+ + + +-----------------------------------------------------------------------+
|
||||
| | | | 0x03: WPA2_PSK |
|
||||
+ + + +-----------------------------------------------------------------------+
|
||||
| | | | 0x04: WPA_WPA2_PSK |
|
||||
+ + + +-----------------------------------------------------------------------+
|
||||
| | | | When the transmission direction is ESP32 to the mobile phone, |
|
||||
| | | | it means to provide the mobile phone with the needed information. |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| 0x8b’001000 | Set the channel amount for SoftAP mode. | | data[0] represents the quantity of the supported channels, |
|
||||
| | | | ranging from 1 to 14. |
|
||||
| | | | When the transmission direction is ESP32 to the mobile phone, |
|
||||
| | | | it means to provide the mobile phone with the needed information. |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| 0x9b’001001 | Username | It provides the username of the GATT client when using | The length of the data depends on the length field. |
|
||||
| | | encryption of enterprise level. | |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| 0xab’001010 | CA Certification | It provides the CA Certification when using encryption | The length of the data depends on the length field. |
|
||||
| | | of enterprise level. | The frame supports to be fragmented if the data length is not enough. |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| 0xbb’001011 | Client Certification | It provides the client certification when | The length of the data depends on the length field. |
|
||||
| | | using encryption of enterprise level. | The frame supports to be fragmented if the data length is not enough. |
|
||||
| | | Whether the private key is contained or not | |
|
||||
| | | depends on the content of the certification. | |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| 0xcb’001100 | Server Certification | It provides the sever certification when using | The length of the data depends on the length field. |
|
||||
| | | encryption of enterprise level. Whether the private key is | The frame supports to be fragmented if the data length is not enough. |
|
||||
| | | contained or not depends on the content of the certification. | |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| 0xdb’001101 | ClientPrivate Key | It provides the private key of the client when | The length of the data depends on the length field. |
|
||||
| | | using encryption of enterprise level. | The frame supports to be fragmented if the data length is not enough. |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| 0xeb’001110 | ServerPrivate Key | It provides the private key of the sever when | The length of the data depends on the length field. |
|
||||
| | | using encryption of enterprise level. | The frame supports to be fragmented if the data length is not enough. |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| 0xfb’001111 | Wi-Fi Connection State Report | To notify the phone of the ESP32's Wi-Fi status, | data[0] represents opmode, including: |
|
||||
+ + + including STA status and SoftAP status. +-----------------------------------------------------------------------+
|
||||
| | | It is for the STA device to connect to the | 0x00: NULL |
|
||||
+ + + mobile phone or the SoftAP. +-----------------------------------------------------------------------+
|
||||
| | | However, when the mobile phone receives the Wi-Fi status, | 0x01: STA |
|
||||
+ + + it can reply to other frames in addition to this frame. +-----------------------------------------------------------------------+
|
||||
| | | | 0x02: SoftAP |
|
||||
+ + + +-----------------------------------------------------------------------+
|
||||
| | | | 0x03: SoftAP&STA |
|
||||
+ + + +-----------------------------------------------------------------------+
|
||||
| | | | data[1]:the connection state of the STA device, |
|
||||
| | | | 0x0 indicates a connection state, |
|
||||
| | | | and others represent a disconnected state; |
|
||||
+ + + +-----------------------------------------------------------------------+
|
||||
| | | | data[2]:the connection state of the SoftAP, |
|
||||
| | | | that is, how many STA devices have been connected. |
|
||||
+ + + +-----------------------------------------------------------------------+
|
||||
| | | | data[3] and the subsequent is in accordance with the |
|
||||
| | | | format of SSID/BSSID information. |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| 0x10b’010000 | Version | | data[0]= great versiondata[1]= sub version |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| 0x11B’010001 | Wi-Fi List | To send the Wi-Fi list to ESP32. | The format of the data frame is length + RSSI + SSID |
|
||||
| | | | and it supports to be sent into fragments |
|
||||
| | | | if the data length is too long. |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| 0x12B’010010 | Report Error | To notify the mobile phone that there is an error with 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 |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
| 0x13B’010011 | Custom Data | To send or receive custom data. | The data frame supports to be sent into |
|
||||
| | | | fragments if the data length is too long. |
|
||||
+--------------+----------------------------------------------------+---------------------------------------------------------------+-----------------------------------------------------------------------+
|
||||
|
||||
2. Frame Control
|
||||
|
||||
Control field, takes 1 byte and each bit has a different meaning.
|
||||
|
||||
+--------------------+------------------------------------------------------------------------------------------------+
|
||||
| Bit | Meaning |
|
||||
+====================+================================================================================================+
|
||||
| 0x01 | Indicates whether the frame is encrypted. |
|
||||
+ +------------------------------------------------------------------------------------------------+
|
||||
| | 1 means encryption, and 0 means unencrypted. |
|
||||
+ +------------------------------------------------------------------------------------------------+
|
||||
| | The encrypted part of the frame includes |
|
||||
| | the full clear data before the DATA field is encrypted (no checksum). |
|
||||
+ +------------------------------------------------------------------------------------------------+
|
||||
| | Control frame is not encrypted, so this bit is 0. |
|
||||
+--------------------+------------------------------------------------------------------------------------------------+
|
||||
| 0x02 | The data field that indicates whether a frame contains |
|
||||
| | a checksum (such as SHA1,MD5,CRC, etc.) for the end of |
|
||||
| | the frame data field includes SEQUCNE + data length + clear text. |
|
||||
| | Both the control frame and the data frame can contain a check bit or not. |
|
||||
+--------------------+------------------------------------------------------------------------------------------------+
|
||||
| 0x04 | Represents the data direction. |
|
||||
+--------------------+------------------------------------------------------------------------------------------------+
|
||||
| | 0 means the mobile phone to ESP32; |
|
||||
+--------------------+------------------------------------------------------------------------------------------------+
|
||||
| | 1 means ESP32 to the mobile phone. |
|
||||
+--------------------+------------------------------------------------------------------------------------------------+
|
||||
| 0x08 | Indicates whether the other person is required to reply to an ACK. |
|
||||
+--------------------+------------------------------------------------------------------------------------------------+
|
||||
| | 0 indicates no requirement; |
|
||||
+--------------------+------------------------------------------------------------------------------------------------+
|
||||
| | 1 indicates to reply Ack. |
|
||||
+--------------------+------------------------------------------------------------------------------------------------+
|
||||
| 0x10 | Indicates whether there are subsequent data fragments. |
|
||||
+--------------------+------------------------------------------------------------------------------------------------+
|
||||
| | 0 indicates that there are no subsequent data fragments for this frame; |
|
||||
+--------------------+------------------------------------------------------------------------------------------------+
|
||||
| | 1 indicates that there are subsequent data fragments and used to transmit longer data. |
|
||||
+--------------------+------------------------------------------------------------------------------------------------+
|
||||
| | In the case of a frag frame, |
|
||||
| | the total length of the current content section + subsequent content section is given, |
|
||||
| | in the first 2 bytes of the data field (that is, the content data of the maximum support 64K). |
|
||||
+--------------------+------------------------------------------------------------------------------------------------+
|
||||
| 0x10~0x80 reserved | |
|
||||
+--------------------+------------------------------------------------------------------------------------------------+
|
||||
+--------------------+------------------------------------------------------------------------------------------------+
|
||||
| Bit | Meaning |
|
||||
+====================+================================================================================================+
|
||||
| 0x01 | Indicates whether the frame is encrypted. |
|
||||
+ +------------------------------------------------------------------------------------------------+
|
||||
| | 1 means encryption, and 0 means unencrypted. |
|
||||
+ +------------------------------------------------------------------------------------------------+
|
||||
| | The encrypted part of the frame includes |
|
||||
| | the full clear data before the DATA field is encrypted (no checksum). |
|
||||
+ +------------------------------------------------------------------------------------------------+
|
||||
| | Control frame is not encrypted, so this bit is 0. |
|
||||
+--------------------+------------------------------------------------------------------------------------------------+
|
||||
| 0x02 | The data field that indicates whether a frame contains |
|
||||
| | a checksum (such as SHA1,MD5,CRC, etc.) for the end of |
|
||||
| | the frame data field includes SEQUCNE + data length + clear text. |
|
||||
| | Both the control frame and the data frame can contain a check bit or not. |
|
||||
+--------------------+------------------------------------------------------------------------------------------------+
|
||||
| 0x04 | Represents the data direction. |
|
||||
+--------------------+------------------------------------------------------------------------------------------------+
|
||||
| | 0 means the mobile phone to ESP32; |
|
||||
+--------------------+------------------------------------------------------------------------------------------------+
|
||||
| | 1 means ESP32 to the mobile phone. |
|
||||
+--------------------+------------------------------------------------------------------------------------------------+
|
||||
| 0x08 | Indicates whether the other person is required to reply to an ACK. |
|
||||
+--------------------+------------------------------------------------------------------------------------------------+
|
||||
| | 0 indicates no requirement; |
|
||||
+--------------------+------------------------------------------------------------------------------------------------+
|
||||
| | 1 indicates to reply Ack. |
|
||||
+--------------------+------------------------------------------------------------------------------------------------+
|
||||
| 0x10 | Indicates whether there are subsequent data fragments. |
|
||||
+--------------------+------------------------------------------------------------------------------------------------+
|
||||
| | 0 indicates that there are no subsequent data fragments for this frame; |
|
||||
+--------------------+------------------------------------------------------------------------------------------------+
|
||||
| | 1 indicates that there are subsequent data fragments and used to transmit longer data. |
|
||||
+--------------------+------------------------------------------------------------------------------------------------+
|
||||
| | In the case of a frag frame, |
|
||||
| | the total length of the current content section + subsequent content section is given, |
|
||||
| | in the first 2 bytes of the data field (that is, the content data of the maximum support 64K). |
|
||||
+--------------------+------------------------------------------------------------------------------------------------+
|
||||
| 0x10~0x80 reserved | |
|
||||
+--------------------+------------------------------------------------------------------------------------------------+
|
||||
|
||||
3. Sequence Control
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user