Skip to content

Commit 20a7102

Browse files
committed
Add initial PPP Modem support
1 parent 4c42fb0 commit 20a7102

File tree

8 files changed

+514
-23
lines changed

8 files changed

+514
-23
lines changed

cores/esp32/esp32-hal-periman.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,14 +54,17 @@ const char* perimanGetTypeName(peripheral_bus_type_t type) {
5454
case ESP32_BUS_TYPE_I2S_STD_WS: return "I2S_STD_WS";
5555
case ESP32_BUS_TYPE_I2S_STD_DOUT: return "I2S_STD_DOUT";
5656
case ESP32_BUS_TYPE_I2S_STD_DIN: return "I2S_STD_DIN";
57+
5758
case ESP32_BUS_TYPE_I2S_TDM_MCLK: return "I2S_TDM_MCLK";
5859
case ESP32_BUS_TYPE_I2S_TDM_BCLK: return "I2S_TDM_BCLK";
5960
case ESP32_BUS_TYPE_I2S_TDM_WS: return "I2S_TDM_WS";
6061
case ESP32_BUS_TYPE_I2S_TDM_DOUT: return "I2S_TDM_DOUT";
6162
case ESP32_BUS_TYPE_I2S_TDM_DIN: return "I2S_TDM_DIN";
63+
6264
case ESP32_BUS_TYPE_I2S_PDM_TX_CLK: return "I2S_PDM_TX_CLK";
6365
case ESP32_BUS_TYPE_I2S_PDM_TX_DOUT0: return "I2S_PDM_TX_DOUT0";
6466
case ESP32_BUS_TYPE_I2S_PDM_TX_DOUT1: return "I2S_PDM_TX_DOUT1";
67+
6568
case ESP32_BUS_TYPE_I2S_PDM_RX_CLK: return "I2S_PDM_RX_CLK";
6669
case ESP32_BUS_TYPE_I2S_PDM_RX_DIN0: return "I2S_PDM_RX_DIN0";
6770
case ESP32_BUS_TYPE_I2S_PDM_RX_DIN1: return "I2S_PDM_RX_DIN1";
@@ -104,6 +107,12 @@ const char* perimanGetTypeName(peripheral_bus_type_t type) {
104107
case ESP32_BUS_TYPE_ETHERNET_MCD: return "ETHERNET_MCD";
105108
case ESP32_BUS_TYPE_ETHERNET_MDIO: return "ETHERNET_MDIO";
106109
case ESP32_BUS_TYPE_ETHERNET_PWR: return "ETHERNET_PWR";
110+
#endif
111+
#if CONFIG_LWIP_PPP_SUPPORT
112+
case ESP32_BUS_TYPE_PPP_TX: return "PPP_MODEM_TX";
113+
case ESP32_BUS_TYPE_PPP_RX: return "PPP_MODEM_RX";
114+
case ESP32_BUS_TYPE_PPP_RTS: return "PPP_MODEM_RTS";
115+
case ESP32_BUS_TYPE_PPP_CTS: return "PPP_MODEM_CTS";
107116
#endif
108117
default: return "UNKNOWN";
109118
}

cores/esp32/esp32-hal-periman.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,12 @@ typedef enum {
103103
ESP32_BUS_TYPE_ETHERNET_MCD, // IO is used as ETHERNET MCD pin
104104
ESP32_BUS_TYPE_ETHERNET_MDIO, // IO is used as ETHERNET MDIO pin
105105
ESP32_BUS_TYPE_ETHERNET_PWR, // IO is used as ETHERNET PWR pin
106+
#endif
107+
#if CONFIG_LWIP_PPP_SUPPORT
108+
ESP32_BUS_TYPE_PPP_TX, // IO is used as PPP Modem TX pin
109+
ESP32_BUS_TYPE_PPP_RX, // IO is used as PPP Modem RX pin
110+
ESP32_BUS_TYPE_PPP_RTS, // IO is used as PPP Modem RTS pin
111+
ESP32_BUS_TYPE_PPP_CTS, // IO is used as PPP Modem CTS pin
106112
#endif
107113
ESP32_BUS_TYPE_MAX
108114
} peripheral_bus_type_t;

libraries/Network/src/NetworkEvents.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -334,13 +334,13 @@ const char * NetworkEvents::eventName(arduino_event_id_t id) {
334334
case ARDUINO_EVENT_ETH_LOST_IP: return "ETH_LOST_IP";
335335
case ARDUINO_EVENT_ETH_GOT_IP6: return "ETH_GOT_IP6";
336336

337-
// case ARDUINO_EVENT_PPP_START: return "PPP_START";
338-
// case ARDUINO_EVENT_PPP_STOP: return "PPP_STOP";
339-
// case ARDUINO_EVENT_PPP_CONNECTED: return "PPP_CONNECTED";
340-
// case ARDUINO_EVENT_PPP_DISCONNECTED: return "PPP_DISCONNECTED";
341-
// case ARDUINO_EVENT_PPP_GOT_IP: return "PPP_GOT_IP";
342-
// case ARDUINO_EVENT_PPP_LOST_IP: return "PPP_LOST_IP";
343-
// case ARDUINO_EVENT_PPP_GOT_IP6: return "PPP_GOT_IP6";
337+
case ARDUINO_EVENT_PPP_START: return "PPP_START";
338+
case ARDUINO_EVENT_PPP_STOP: return "PPP_STOP";
339+
case ARDUINO_EVENT_PPP_CONNECTED: return "PPP_CONNECTED";
340+
case ARDUINO_EVENT_PPP_DISCONNECTED: return "PPP_DISCONNECTED";
341+
case ARDUINO_EVENT_PPP_GOT_IP: return "PPP_GOT_IP";
342+
case ARDUINO_EVENT_PPP_LOST_IP: return "PPP_LOST_IP";
343+
case ARDUINO_EVENT_PPP_GOT_IP6: return "PPP_GOT_IP6";
344344
#if SOC_WIFI_SUPPORTED
345345
case ARDUINO_EVENT_WIFI_OFF: return "WIFI_OFF";
346346
case ARDUINO_EVENT_WIFI_READY: return "WIFI_READY";

libraries/Network/src/NetworkEvents.h

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -78,13 +78,13 @@ typedef enum {
7878
ARDUINO_EVENT_PROV_CRED_FAIL,
7979
ARDUINO_EVENT_PROV_CRED_SUCCESS,
8080
#endif
81-
// ARDUINO_EVENT_PPP_START,
82-
// ARDUINO_EVENT_PPP_STOP,
83-
// ARDUINO_EVENT_PPP_CONNECTED,
84-
// ARDUINO_EVENT_PPP_DISCONNECTED,
85-
// ARDUINO_EVENT_PPP_GOT_IP,
86-
// ARDUINO_EVENT_PPP_LOST_IP,
87-
// ARDUINO_EVENT_PPP_GOT_IP6,
81+
ARDUINO_EVENT_PPP_START,
82+
ARDUINO_EVENT_PPP_STOP,
83+
ARDUINO_EVENT_PPP_CONNECTED,
84+
ARDUINO_EVENT_PPP_DISCONNECTED,
85+
ARDUINO_EVENT_PPP_GOT_IP,
86+
ARDUINO_EVENT_PPP_LOST_IP,
87+
ARDUINO_EVENT_PPP_GOT_IP6,
8888
ARDUINO_EVENT_MAX
8989
} arduino_event_id_t;
9090

@@ -146,6 +146,7 @@ class NetworkEvents {
146146

147147
friend class ESP_NetworkInterface;
148148
friend class ETHClass;
149+
friend class PPPClass;
149150
#if SOC_WIFI_SUPPORTED
150151
friend class STAClass;
151152
friend class APClass;

libraries/Network/src/NetworkInterface.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,9 @@ void NetworkInterface::_onIpEvent(int32_t event_id, void* event_data){
7171
arduino_event.event_id = ARDUINO_EVENT_WIFI_STA_GOT_IP;
7272
} else
7373
#endif
74-
// if(_interface_id == ESP_NETIF_ID_PPP){
75-
// arduino_event.event_id = ARDUINO_EVENT_PPP_GOT_IP;
76-
// } else
74+
if(_interface_id == ESP_NETIF_ID_PPP){
75+
arduino_event.event_id = ARDUINO_EVENT_PPP_GOT_IP;
76+
} else
7777
if(_interface_id >= ESP_NETIF_ID_ETH && _interface_id < ESP_NETIF_ID_MAX){
7878
arduino_event.event_id = ARDUINO_EVENT_ETH_GOT_IP;
7979
}
@@ -87,9 +87,9 @@ void NetworkInterface::_onIpEvent(int32_t event_id, void* event_data){
8787
arduino_event.event_id = ARDUINO_EVENT_WIFI_STA_LOST_IP;
8888
} else
8989
#endif
90-
// if(_interface_id == ESP_NETIF_ID_PPP){
91-
// arduino_event.event_id = ARDUINO_EVENT_PPP_LOST_IP;
92-
// } else
90+
if(_interface_id == ESP_NETIF_ID_PPP){
91+
arduino_event.event_id = ARDUINO_EVENT_PPP_LOST_IP;
92+
} else
9393
if(_interface_id >= ESP_NETIF_ID_ETH && _interface_id < ESP_NETIF_ID_MAX){
9494
arduino_event.event_id = ARDUINO_EVENT_ETH_LOST_IP;
9595
}
@@ -115,9 +115,9 @@ void NetworkInterface::_onIpEvent(int32_t event_id, void* event_data){
115115
arduino_event.event_id = ARDUINO_EVENT_WIFI_AP_GOT_IP6;
116116
} else
117117
#endif
118-
// if(_interface_id == ESP_NETIF_ID_PPP){
119-
// arduino_event.event_id = ARDUINO_EVENT_PPP_GOT_IP6;
120-
// } else
118+
if(_interface_id == ESP_NETIF_ID_PPP){
119+
arduino_event.event_id = ARDUINO_EVENT_PPP_GOT_IP6;
120+
} else
121121
if(_interface_id >= ESP_NETIF_ID_ETH && _interface_id < ESP_NETIF_ID_MAX){
122122
arduino_event.event_id = ARDUINO_EVENT_ETH_GOT_IP6;
123123
}

libraries/PPP/library.properties

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
name=PPP
2+
version=1.0.0
3+
author=Hristo Gochkov
4+
maintainer=Hristo Gochkov <[email protected]>
5+
sentence=Enables network connection using GSM Modem.
6+
paragraph=With this library you can instantiate Servers, Clients and send/receive UDP packets through GSM Modem.
7+
category=Communication
8+
url=
9+
architectures=esp32

0 commit comments

Comments
 (0)