From: Jin Fang Cheng Cheng Date: Wed, 6 Jun 2018 03:58:46 +0000 (+0800) Subject: Update blufi.rst X-Git-Tag: v3.1-beta1~47^2~2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ad48c2689fa1d0f1fc685c5692c0f08f1714c885;p=esp-idf Update blufi.rst --- diff --git a/docs/en/api-guides/blufi.rst b/docs/en/api-guides/blufi.rst index cc2ffbbd4d..7f56023b3b 100644 --- a/docs/en/api-guides/blufi.rst +++ b/docs/en/api-guides/blufi.rst @@ -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