Updated: October 28, 2024 |
This example covers the use case where the client connects to an available (scanned) access point.
// Return Code for QWF Wi-Fi API calls qwf_wifi_Results_e rc; // ID of the created Saved Network uint16_t savedNetworkId, wait; qwf_wifi_Ssid_t ssid; qwf_wifi_StationModeStatusData_t status; // API calls assume QWF Wi-Fi initialized and QWF Context stored in // variable pCtx. Also assumes user knows SSID and Authentication used // by access point. This information can be obtained from the // qwf_wifi_GetScanResults() interface. // Create a "saved network", if not already existing, for this access // point, by first setting the required authentication parameters, WPA2 // PSK for example, requires a passphrase. For this example the access // point has SSID name of "SampleWifi" and passphrase is "Testing123". rc = qwf_wifi_SetPassphrase(pCtx, "Testing123"); // Second, create the Saved Network. strlcpy(ssid.name, "SampleWifi", sizeof(ssid.name)); rc = qwf_wifi_CreateSavedNetwork(pCtx, &ssid, WIFI_SEC_PROT_WPA2_PSK, WIFI_BAND_2_4_GHZ, &savedNetworkId); if (WIFI_OK == rc) { printf("Created Saved Network for %s!! Now Enable ID=%d\n", ssid.name, savedNetworkId); // Created OK, so "Enable" the Saved Network if want to connect when // not currently connected to the access point if available rc = qwf_wifi_EnableSavedNetwork(pCtx, savedNetworkId); } // Query the Wi-Fi status to see what status of connection is // and what SSID the device is connected to if any. // Using a simple loop to wait for connected, but should use the event // WIFI_EVENT_CLIENT_CONNECTION_STATUS to track connection status. for (wait=0;wait<20;wait++) { rc = qwf_wifi_GetClientStatus(pCtx, &status); if (WIFI_OK == rc) { if (status.connected) { printf("WiFi is CONNECTED to Saved Network ID: %d, Access Point: %s\n", status.connectedSavedNetworkId, status.connectedSsid.name); break; } else { printf("WiFi is NOT Connected!\n"); } } delay(1000); //sleep 1 sec } break;