[beken-72xx] Fix station with static IP

This commit is contained in:
Kuba Szczodrzyński
2022-07-01 19:14:41 +02:00
parent 352a425c4f
commit 27dea356cf
3 changed files with 8 additions and 2 deletions

View File

@@ -15,6 +15,7 @@ WiFiStatus eventTypeToStatus(uint8_t type) {
switch (type) {
case RW_EVT_STA_IDLE:
return WL_IDLE_STATUS;
case RW_EVT_STA_NO_AP_FOUND:
return WL_NO_SSID_AVAIL;
case RW_EVT_STA_CONNECTING:
case RW_EVT_STA_CONNECTED:
@@ -22,7 +23,6 @@ WiFiStatus eventTypeToStatus(uint8_t type) {
case RW_EVT_STA_GOT_IP:
return WL_CONNECTED;
case RW_EVT_STA_PASSWORD_WRONG:
case RW_EVT_STA_NO_AP_FOUND:
case RW_EVT_STA_ASSOC_FULL:
case RW_EVT_STA_CONNECT_FAILED:
return WL_CONNECT_FAILED;

View File

@@ -71,7 +71,10 @@ WiFiMode WiFiClass::getMode() {
}
WiFiStatus WiFiClass::status() {
return eventTypeToStatus(mhdr_get_station_status());
rw_evt_type status = mhdr_get_station_status();
if (status == RW_EVT_STA_CONNECTED && STA_CFG->dhcp_mode == DHCP_DISABLE)
status = RW_EVT_STA_GOT_IP;
return eventTypeToStatus(status);
}
IPAddress WiFiClass::hostByName(const char *hostname) {

View File

@@ -25,6 +25,9 @@ WiFiClass::begin(const char *ssid, const char *passphrase, int32_t channel, cons
}
bool WiFiClass::config(IPAddress localIP, IPAddress gateway, IPAddress subnet, IPAddress dns1, IPAddress dns2) {
// need to initialize data struct first
enableSTA(true);
STA_CFG->dhcp_mode = localIP ? DHCP_DISABLE : DHCP_CLIENT;
if (localIP) {
sprintf(STA_CFG->local_ip_addr, IP_FMT, localIP[0], localIP[1], localIP[2], localIP[3]);