12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- #ifndef KBF_WIFI_H
- #define KBF_WIFI_H
- #include <string>
- #include <vector>
- #include "net.h"
- namespace kbf::wifi {
- void stop();
- enum class Mode {
- OFF,
- STA,
- AP,
- DUAL
- };
- Mode mode();
- class STA;
- namespace ap {
- void start(
- std::string ssid,
- std::string password,
- net::IP ip = net::IP("192.168.4.1"),
- net::IP netmask = net::IP("255.255.255.0")
- );
- void stop();
- [[nodiscard]] const std::string &ssid();
- [[nodiscard]] const std::string &password();
- extern void (*onConnect)(STA &);
- extern void (*onDisconnect)(STA &);
- }
- struct APInfo {
- std::string ssid;
- uint8_t rssi;
- };
- namespace sta {
- void start();
- void stop();
- bool connect(std::string ssid, std::string password, bool async = false, int maxRetry = 3);
- void disconnect();
- [[nodiscard]] bool connected();
- [[nodiscard]] const std::string &ssid();
- [[nodiscard]] const std::string &password();
- [[nodiscard]] const net::IP &ip();
- extern void (*onConnect)();
- extern void (*onIp)();
- extern void (*onDisconnect)();
- void startScan(void *data);
- extern void (*onScanDone)(std::vector<APInfo> &apList, void *data);
- }
- namespace dual {
- void start(
- std::string ssid,
- std::string password,
- net::IP ip = net::IP("192.168.4.1"),
- net::IP netmask = net::IP("255.255.255.0")
- );
- }
- }
- #endif //KBF_WIFI_H
|