57 const char* ssid = w->getCurrentSsid();
58 std::strncpy(out, ssid ? ssid :
"", out_size - 1);
59 out[out_size - 1] =
'\0';
74 return w ? w->getRssi() : 0;
95 return w ? w->isScanComplete() :
false;
104 uint8_t cap = (*count > MAX_SCAN) ? MAX_SCAN :
static_cast<uint8_t
>(*count);
106 uint8_t n = w->getScanResults(tmp, cap);
107 for (uint8_t i = 0; i < n; ++i) {
108 std::memcpy(out[i].ssid, tmp[i].ssid,
sizeof(out[i].ssid));
109 std::memcpy(out[i].bssid, tmp[i].bssid,
sizeof(out[i].bssid));
static constexpr uint8_t MAX_SCAN_RESULTS
void release()
Releases a previously acquired WiFi hold.
bool acquire()
Acquires a hold on the WiFi connection for a plugin/host caller.
static WifiHandlers & instance()
Returns singleton Wi-Fi handlers instance.
bool isConnected() const
Returns whether Wi-Fi is currently connected.
bool host_wifi_scan_done(void)
True when the scan started by host_wifi_start_scan has finished.
int host_wifi_scan_results(wifi_scan_result_t *out, size_t *count)
Read results from the last completed scan.
int host_wifi_request(uint32_t)
Request the shared WiFi radio and wait up to timeout_ms for join.
int host_wifi_ip(char *out, size_t out_size)
Copy the current IPv4 address as dotted decimal into out.
bool host_wifi_is_connected(void)
True when WiFi STA is associated and has an IP.
int host_wifi_release(void)
Release the WiFi radio held by this plugin.
int8_t host_wifi_rssi(void)
Current AP signal strength in dBm.
int host_wifi_start_scan(void)
Start an asynchronous WiFi scan.
int host_wifi_ssid(char *out, size_t out_size)
Copy the currently joined SSID into out.
CDC Badge OS plugin host API - canonical C ABI contract.
#define HOST_ERR_INVALID_ARG
#define HOST_ERR_NOT_FOUND
void plg_log_warn(const char *msg)
int host_wifi_mac(uint8_t *out)
IWifiController * getWifiControllerInstance()
Returns the singleton Wi-Fi controller service instance.