abfall/src/abfall.cpp
2022-12-27 18:01:57 +01:00

62 lines
1.4 KiB
C++

#include <stdio.h>
#include <string>
#include "pico/cyw43_arch.h"
#include "pico/stdlib.h"
using std::string;
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();
if (cyw43_arch_wifi_connect_async(ssid.c_str(), pw.c_str(), CYW43_AUTH_WPA2_MIXED_PSK)) {
return 2;
}
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 {
cyw43_arch_gpio_put(CYW43_WL_GPIO_LED_PIN, 1);
}
return 0;
}
int main() {
const string ssid{"Apis cerana"};
const string pw{"2JkJEh2vptVT"};
const uint32_t country{CYW43_COUNTRY_GERMANY};
stdio_init_all();
wifi_setup(country, ssid, pw);
while (true) {
sleep_ms(1);
}
cyw43_arch_deinit();
}