[realtek-ambz2] Adapt WiFi library to ambz2_sdk

This commit is contained in:
Kuba Szczodrzyński
2023-05-27 15:41:07 +02:00
parent a80032d46c
commit 87ad0798e4
15 changed files with 106 additions and 41 deletions

View File

@@ -3,11 +3,11 @@
#include "WiFi.h"
void WiFiClass::printDiag(Print &dest) {
const char *modes[] = {"NULL", "STA", "AP", "STA+AP"};
const char *enc[] = {"Open", "WEP", "WPA PSK", "WPA2 PSK", "WPA/WPA2", "WPA", "WPA2"};
dest.print("Mode: ");
dest.println(modes[getMode()]);
dest.println(WiFiModeText[getMode()]);
dest.print("Status: ");
dest.println(WiFiStatusText[status()]);
if (getMode() & WIFI_MODE_STA) {
dest.println("-- Station --");
@@ -21,7 +21,7 @@ void WiFiClass::printDiag(Print &dest) {
dest.print("RSSI: ");
dest.println(RSSI());
dest.print("Encryption: ");
dest.println(enc[getEncryption()]);
dest.println(WiFiAuthModeText[getEncryption()]);
dest.print("IP: ");
dest.println(localIP());
dest.print("MAC: ");

View File

@@ -11,7 +11,7 @@ bool WiFiClass::mode(WiFiMode mode) {
pWiFi = this;
WiFiMode currentMode = getMode();
LT_DM(WIFI, "Mode changing %u -> %u", currentMode, mode);
LT_DM(WIFI, "Mode changing %s -> %s", WiFiModeText[currentMode], WiFiModeText[mode]);
if (mode == currentMode)
return true;

View File

@@ -162,3 +162,28 @@ typedef enum {
WLMODE_DISABLE = 1,
WLMODE_ENABLE = 2,
} WiFiModeAction;
static const char *WiFiModeText[] = {"NULL", "STA", "AP", "AP+STA"};
static const char *WiFiStatusText[] = {
"Idle",
"No SSID",
"Scan Completed",
"Connected",
"Connect failed",
"Connection lost",
"Disconnected",
};
static const char *WiFiAuthModeText[] = {
"Open",
"WEP",
"WPA PSK",
"WPA2 PSK",
"WPA/WPA2 PSK",
"WPA2 EAP",
"WPA3 PSK",
"WPA2/WPA3 PSK",
"WAPI PSK",
"WPA",
"WPA2",
"Auto",
};

View File

@@ -72,11 +72,11 @@ uint8_t LwIPUDP::begin(IPAddress address, uint16_t port) {
}
uint8_t LwIPUDP::begin(uint16_t p) {
return begin(IPAddress(INADDR_ANY), p);
return begin(IPAddress((uint32_t)INADDR_ANY), p);
}
uint8_t LwIPUDP::beginMulticast(IPAddress a, uint16_t p) {
if (begin(IPAddress(INADDR_ANY), p)) {
if (begin(IPAddress((uint32_t)INADDR_ANY), p)) {
if ((uint32_t)a != 0) {
struct ip_mreq mreq;
mreq.imr_multiaddr.s_addr = (in_addr_t)a;
@@ -111,14 +111,14 @@ void LwIPUDP::stop() {
mreq.imr_multiaddr.s_addr = (in_addr_t)multicast_ip;
mreq.imr_interface.s_addr = (in_addr_t)0;
setsockopt(udp_server, IPPROTO_IP, IP_DROP_MEMBERSHIP, &mreq, sizeof(mreq));
multicast_ip = IPAddress(INADDR_ANY);
multicast_ip = IPAddress((uint32_t)INADDR_ANY);
}
close(udp_server);
udp_server = -1;
}
int LwIPUDP::beginMulticastPacket() {
if (!server_port || multicast_ip == IPAddress(INADDR_ANY))
if (!server_port || multicast_ip == IPAddress((uint32_t)INADDR_ANY))
return 0;
remote_ip = multicast_ip;
remote_port = server_port;

View File

@@ -13,6 +13,11 @@ extern "C" {
#include <lwip/netif.h>
}
#if LWIP_VERSION_SIMPLE < 20100 && defined(LWIP_NETIF_EXT_STATUS_CALLBACK)
#warning "LWIP_NETIF_EXT_STATUS_CALLBACK not available before lwIP 2.1.0"
#undef LWIP_NETIF_EXT_STATUS_CALLBACK
#endif
#if LWIP_MDNS_RESPONDER
static std::vector<char *> services_name;