Wifi setup improved.
This commit is contained in:
parent
95d84a69a3
commit
f764f7d612
1 changed files with 46 additions and 17 deletions
|
@ -1,42 +1,71 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
|
||||||
#include "pico/stdlib.h"
|
#include "pico/stdlib.h"
|
||||||
#include "pico/cyw43_arch.h"
|
#include "pico/cyw43_arch.h"
|
||||||
|
|
||||||
#define WIFI_SSID "Apis cerana"
|
using std::string;
|
||||||
#define WIFI_PASSWORD "2JkJEh2vptVT"
|
|
||||||
|
|
||||||
bool wifi_connect()
|
int wifi_setup(uint32_t country, const string &ssid, const string &pw)
|
||||||
{
|
{
|
||||||
|
if (cyw43_arch_init_with_country(country))
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
cyw43_arch_enable_sta_mode();
|
cyw43_arch_enable_sta_mode();
|
||||||
|
|
||||||
printf("Connecting to WiFi...\n");
|
if (cyw43_arch_wifi_connect_async(ssid.c_str(), pw.c_str(), CYW43_AUTH_WPA2_MIXED_PSK))
|
||||||
if (cyw43_arch_wifi_connect_timeout_ms(WIFI_SSID, WIFI_PASSWORD, CYW43_AUTH_WPA2_AES_PSK, 30000))
|
|
||||||
{
|
{
|
||||||
printf("Failed to connect.\n");
|
return 2;
|
||||||
return false;
|
}
|
||||||
|
|
||||||
|
int flashrate = 1000;
|
||||||
|
int status = CYW43_LINK_UP + 1;
|
||||||
|
|
||||||
|
while (status >= 0 && status != CYW43_LINK_UP)
|
||||||
|
{
|
||||||
|
int status_new = cyw43_tcpip_link_status(&cyw43_state, CYW43_ITF_STA);
|
||||||
|
|
||||||
|
if (status_new != status)
|
||||||
|
{
|
||||||
|
status = status_new;
|
||||||
|
flashrate = flashrate / (status + 1);
|
||||||
|
printf("Connect status: %d %d\n", status, flashrate);
|
||||||
|
}
|
||||||
|
cyw43_arch_gpio_put(CYW43_WL_GPIO_LED_PIN, 1);
|
||||||
|
sleep_ms(flashrate);
|
||||||
|
cyw43_arch_gpio_put(CYW43_WL_GPIO_LED_PIN, 0);
|
||||||
|
sleep_ms(flashrate);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (status < 0)
|
||||||
|
{
|
||||||
|
cyw43_arch_gpio_put(CYW43_WL_GPIO_LED_PIN, 0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
printf("Connected.\n");
|
cyw43_arch_gpio_put(CYW43_WL_GPIO_LED_PIN, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
|
const string ssid{"Apis cerana"};
|
||||||
|
const string pw{"2JkJEh2vptVT"};
|
||||||
|
const uint32_t country{CYW43_COUNTRY_GERMANY};
|
||||||
|
|
||||||
stdio_init_all();
|
stdio_init_all();
|
||||||
|
|
||||||
if (cyw43_arch_init())
|
wifi_setup(country, ssid, pw);
|
||||||
|
|
||||||
|
while (true)
|
||||||
{
|
{
|
||||||
printf("Failed to initialize\n");
|
sleep_ms(1);
|
||||||
return 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (wifi_connect() == false)
|
|
||||||
{
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
cyw43_arch_deinit();
|
cyw43_arch_deinit();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue