]> granicus.if.org Git - esp-idf/commitdiff
Update blufi.rst
authorJin Fang Cheng Cheng <jinfangchengcheng@espressif.com>
Wed, 6 Jun 2018 03:58:46 +0000 (11:58 +0800)
committerJin Fang Cheng Cheng <jinfangchengcheng@espressif.com>
Wed, 6 Jun 2018 03:58:46 +0000 (11:58 +0800)
docs/en/api-guides/blufi.rst

index cc2ffbbd4dd9411fccc009606b99213bed139ca9..7f56023b3b33354124721a105a4346bae66dfdda 100644 (file)
@@ -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