mirror of
https://github.com/esp8266/Arduino.git
synced 2025-04-22 21:23:07 +03:00
lwip2: fix static address management (#4677)
+ interactive example (for debugging)
This commit is contained in:
parent
758b0bd124
commit
76a14b1f63
91
libraries/esp8266/examples/interactive/interactive.ino
Normal file
91
libraries/esp8266/examples/interactive/interactive.ino
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
|
||||||
|
/*
|
||||||
|
Interactive script meant for debugging only
|
||||||
|
Run it on serial console and keep this source file opened for the list of commands
|
||||||
|
Please configure SSID, PSK and IPAddresses below to fit with your network
|
||||||
|
|
||||||
|
Released to public domain
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "ESP8266WiFi.h"
|
||||||
|
#include "user_interface.h"
|
||||||
|
|
||||||
|
const char SSID[] = "open";
|
||||||
|
const char PSK[] = "";
|
||||||
|
|
||||||
|
IPAddress staticip(192, 168, 1, 123);
|
||||||
|
IPAddress gateway(192, 168, 1, 254);
|
||||||
|
IPAddress subnet(255, 255, 255, 0);
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
Serial.begin(115200);
|
||||||
|
Serial.setDebugOutput(true);
|
||||||
|
|
||||||
|
WiFi.mode(WIFI_STA);
|
||||||
|
WiFi.begin(SSID, PSK);
|
||||||
|
Serial.println("connecting");
|
||||||
|
while (WiFi.status() != WL_CONNECTED) {
|
||||||
|
delay(500);
|
||||||
|
Serial.print(".");
|
||||||
|
}
|
||||||
|
Serial.println();
|
||||||
|
Serial.println(WiFi.localIP());
|
||||||
|
Serial.print(
|
||||||
|
"WL_IDLE_STATUS = 0\n"
|
||||||
|
"WL_NO_SSID_AVAIL = 1\n"
|
||||||
|
"WL_SCAN_COMPLETED = 2\n"
|
||||||
|
"WL_CONNECTED = 3\n"
|
||||||
|
"WL_CONNECT_FAILED = 4\n"
|
||||||
|
"WL_CONNECTION_LOST = 5\n"
|
||||||
|
"WL_DISCONNECTED = 6\n"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WiFiOn() {
|
||||||
|
wifi_fpm_do_wakeup();
|
||||||
|
wifi_fpm_close();
|
||||||
|
wifi_set_opmode(STATION_MODE);
|
||||||
|
wifi_station_connect();
|
||||||
|
}
|
||||||
|
|
||||||
|
void WiFiOff() {
|
||||||
|
wifi_station_disconnect();
|
||||||
|
wifi_set_opmode(NULL_MODE);
|
||||||
|
wifi_set_sleep_type(MODEM_SLEEP_T);
|
||||||
|
wifi_fpm_open();
|
||||||
|
wifi_fpm_do_sleep(0xFFFFFFF);
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
#define TEST(name, var, varinit, func) \
|
||||||
|
static decltype(func) var = (varinit); \
|
||||||
|
if ((var) != (func)) { var = (func); Serial.printf("**** %s: ", name); Serial.println(var); }
|
||||||
|
|
||||||
|
#define DO(x...) Serial.println(F( #x )); x; break
|
||||||
|
|
||||||
|
TEST("Free Heap", freeHeap, 0, ESP.getFreeHeap());
|
||||||
|
TEST("WiFiStatus", status, WL_IDLE_STATUS, WiFi.status());
|
||||||
|
TEST("STA-IP", localIp, (uint32_t)0, WiFi.localIP());
|
||||||
|
TEST("AP-IP", apIp, (uint32_t)0, WiFi.softAPIP());
|
||||||
|
|
||||||
|
switch (Serial.read()) {
|
||||||
|
case 'F': DO(WiFiOff());
|
||||||
|
case 'N': DO(WiFiOn());
|
||||||
|
case '1': DO(WiFi.mode(WIFI_AP));
|
||||||
|
case '2': DO(WiFi.mode(WIFI_AP_STA));
|
||||||
|
case '3': DO(WiFi.mode(WIFI_STA));
|
||||||
|
case 'R': DO(if (((GPI >> 16) & 0xf) == 1) ESP.reset() /* else must hard reset */);
|
||||||
|
case 'd': DO(WiFi.disconnect());
|
||||||
|
case 'b': DO(WiFi.begin());
|
||||||
|
case 'B': DO(WiFi.begin(SSID, PSK));
|
||||||
|
case 'r': DO(WiFi.reconnect());
|
||||||
|
case 'c': DO(wifi_station_connect());
|
||||||
|
case 'a': DO(WiFi.setAutoReconnect(false));
|
||||||
|
case 'A': DO(WiFi.setAutoReconnect(true));
|
||||||
|
case 'n': DO(WiFi.setSleepMode(WIFI_NONE_SLEEP));
|
||||||
|
case 'l': DO(WiFi.setSleepMode(WIFI_LIGHT_SLEEP));
|
||||||
|
case 'm': DO(WiFi.setSleepMode(WIFI_MODEM_SLEEP));
|
||||||
|
case 's': DO(WiFi.config(staticip, gateway, subnet));
|
||||||
|
case 'D': DO(wifi_station_dhcpc_start());
|
||||||
|
}
|
||||||
|
}
|
Binary file not shown.
Binary file not shown.
@ -2,6 +2,16 @@
|
|||||||
all install clean: builder/lwip2-src/README
|
all install clean: builder/lwip2-src/README
|
||||||
make -C builder -f Makefile.arduino $@
|
make -C builder -f Makefile.arduino $@
|
||||||
|
|
||||||
|
latestmaster: downloadmaster install
|
||||||
|
|
||||||
|
latestupstream: downloadupstream install
|
||||||
|
|
||||||
|
downloadupstream: downloadmaster
|
||||||
|
cd builder/lwip2-src; git checkout master
|
||||||
|
|
||||||
|
downloadmaster: download
|
||||||
|
cd builder; git checkout master
|
||||||
|
|
||||||
download: builder/lwip2-src/README
|
download: builder/lwip2-src/README
|
||||||
|
|
||||||
builder/lwip2-src/README:
|
builder/lwip2-src/README:
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
```make install```: download, compile, install lwip2
|
```make install```: download, compile, install lwip2
|
||||||
|
|
||||||
|
```make latestmaster```: download latest lwip2, compile, install
|
||||||
|
|
||||||
|
```make latestupstream```: download latest lwip2 and latest upstream lwIP, compile, install
|
||||||
|
|
||||||
```make download```: download lwIP-2 builder
|
```make download```: download lwIP-2 builder
|
||||||
|
|
||||||
```make clean```: clean builder only
|
```make clean```: clean builder only
|
||||||
@ -10,4 +14,4 @@ MSS values are in builder/Makefile.arduino
|
|||||||
|
|
||||||
MSS values in boards.txt are only informative
|
MSS values in boards.txt are only informative
|
||||||
|
|
||||||
current lwip2 submodule repository: https://github.com/d-a-v/esp82xx-nonos-linklayer/tree/arduino-2.4.0
|
current lwip2 submodule repository: https://github.com/d-a-v/esp82xx-nonos-linklayer/tree/arduino-2.4.1
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit a376280e3567dff7d494d6fe3e54146f6125f5c6
|
Subproject commit 2b827f842925b2daf12b67ab1ae498e58174124e
|
@ -2,6 +2,7 @@
|
|||||||
#ifndef __GLUE_DEBUG_H
|
#ifndef __GLUE_DEBUG_H
|
||||||
#define __GLUE_DEBUG_H
|
#define __GLUE_DEBUG_H
|
||||||
|
|
||||||
|
// this file is commonly included by both sides of the glue
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
// user-definable
|
// user-definable
|
||||||
|
|
||||||
@ -27,6 +28,15 @@
|
|||||||
#define LWIP_DBG_TYPES_ON (LWIP_DBG_ON)
|
#define LWIP_DBG_TYPES_ON (LWIP_DBG_ON)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// packet capture callback from esp side
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C"
|
||||||
|
#endif
|
||||||
|
void (*phy_capture) (int netif_idx, const char* data, size_t len, int out, int success);
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#if UDEBUG && UDEBUGSTORE
|
#if UDEBUG && UDEBUGSTORE
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
// generated by makefiles/make-lwip2-hash
|
// generated by makefiles/make-lwip2-hash
|
||||||
#ifndef LWIP_HASH_H
|
#ifndef LWIP_HASH_H
|
||||||
#define LWIP_HASH_H
|
#define LWIP_HASH_H
|
||||||
#define LWIP_HASH_STR "STABLE-2_0_3_RELEASE/glue:arduino-2.4.1"
|
#define LWIP_HASH_STR "STABLE-2_0_3_RELEASE/glue:arduino-2.4.1-7-g2b827f8"
|
||||||
#endif // LWIP_HASH_H
|
#endif // LWIP_HASH_H
|
||||||
|
@ -2688,9 +2688,11 @@
|
|||||||
* Return ERR_OK if packet is accepted, any error code otherwise.
|
* Return ERR_OK if packet is accepted, any error code otherwise.
|
||||||
* Payload points to ethernet header!
|
* Payload points to ethernet header!
|
||||||
*/
|
*/
|
||||||
#ifdef __DOXYGEN__
|
//#ifdef __DOXYGEN__
|
||||||
#define LWIP_HOOK_UNKNOWN_ETH_PROTOCOL(pbuf, netif)
|
//#define LWIP_HOOK_UNKNOWN_ETH_PROTOCOL(pbuf, netif)
|
||||||
#endif
|
//#endif
|
||||||
|
#define LWIP_HOOK_UNKNOWN_ETH_PROTOCOL(pbuf, netif) lwip_unhandled_packet((pbuf), (netif))
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @}
|
* @}
|
||||||
*/
|
*/
|
||||||
@ -3003,4 +3005,12 @@
|
|||||||
#include "lwip-git-hash.h"
|
#include "lwip-git-hash.h"
|
||||||
#include <sys/time.h> // settimeofday() + struct timeval
|
#include <sys/time.h> // settimeofday() + struct timeval
|
||||||
|
|
||||||
|
// allow to handle special packets (user redefinable)
|
||||||
|
struct pbuf;
|
||||||
|
struct netif;
|
||||||
|
#ifndef LWIP_ERR_T
|
||||||
|
#define LWIP_ERR_T s8
|
||||||
|
#endif
|
||||||
|
LWIP_ERR_T lwip_unhandled_packet (struct pbuf* pbuf, struct netif* netif) __attribute__((weak));
|
||||||
|
|
||||||
#endif // MYLWIPOPTS_H
|
#endif // MYLWIPOPTS_H
|
||||||
|
Loading…
x
Reference in New Issue
Block a user