esp-idf/components/wifi_provisioning/proto/wifi_scan.proto
Anurag Kar 9c0ee28670 wifi_provisioning : Added Wi-Fi Scan list feature to Provisioning Manager
List of changes in components/wifi_provisioning:
* Manager version is now v1.1
* .proto files and protocomm handler added for sending Wi-Fi scan command and receiving scan results
* Implemented handlers for wifi_scan protocomm endpoint
* Update manager context data structure to hold scan state and results
* scheme_softap now runs Wi-Fi in APSTA mode
* Wi-Fi is started in AP mode when provisioning is started. This is necessary for scan list to work
* Docs updates with information about new wifi_scan endpoint

List of changes in tools/esp_prov:
* Added functions for sending and receiving protobuf messages compatible with wifi_scan protocomm endpoint
* Added feature to display/refresh scan results and accept user selection at runtime
* New functions:
  * get_version() : only returns the protocol version string
  * has_capability() : check is a capability is present according to proto-ver response
* wifi_scan feature is provided only if the `wifi_scan` capability is present

Other changes:
* Replace recursive mutex with plain mutex
* assert on return value of mutex give / take calls
* replace all calls with macros ACQUIRE_LOCK and RELEASE_LOCK
* some checks added in scanning related private APIs
* free and nullify scanning context and state if service is stopped while ongoing scan
2019-06-26 05:24:20 +00:00

64 lines
1.2 KiB
Protocol Buffer

syntax = "proto3";
import "constants.proto";
import "wifi_constants.proto";
message CmdScanStart {
bool blocking = 1;
bool passive = 2;
uint32 group_channels = 3;
uint32 period_ms = 4;
}
message RespScanStart {
}
message CmdScanStatus {
}
message RespScanStatus {
bool scan_finished = 1;
uint32 result_count = 2;
}
message CmdScanResult {
uint32 start_index = 1;
uint32 count = 2;
}
message WiFiScanResult {
bytes ssid = 1;
uint32 channel = 2;
int32 rssi = 3;
bytes bssid = 4;
WifiAuthMode auth = 5;
}
message RespScanResult {
repeated WiFiScanResult entries = 1;
}
enum WiFiScanMsgType {
TypeCmdScanStart = 0;
TypeRespScanStart = 1;
TypeCmdScanStatus = 2;
TypeRespScanStatus = 3;
TypeCmdScanResult = 4;
TypeRespScanResult = 5;
}
message WiFiScanPayload {
WiFiScanMsgType msg = 1;
Status status = 2;
oneof payload {
CmdScanStart cmd_scan_start = 10;
RespScanStart resp_scan_start = 11;
CmdScanStatus cmd_scan_status = 12;
RespScanStatus resp_scan_status = 13;
CmdScanResult cmd_scan_result = 14;
RespScanResult resp_scan_result = 15;
}
}