Skip to content

Commit 790cd82

Browse files
splitting src/Arduino_ConnectionHandler.h into multiple files to avoid cyclic includes
1 parent 5022993 commit 790cd82

4 files changed

+291
-260
lines changed

Diff for: src/Arduino_ConnectionHandler.h

+8-259
Original file line numberDiff line numberDiff line change
@@ -27,272 +27,21 @@
2727
#endif
2828

2929
#include <Arduino.h>
30+
#include "Arduino_ConnectionHandlerDefinitions.h"
3031

31-
#ifdef ARDUINO_SAMD_MKR1000
32-
#include <WiFi101.h>
33-
#include <WiFiUdp.h>
34-
35-
#define BOARD_HAS_WIFI
36-
#define NETWORK_HARDWARE_ERROR WL_NO_SHIELD
37-
#define NETWORK_IDLE_STATUS WL_IDLE_STATUS
38-
#define NETWORK_CONNECTED WL_CONNECTED
39-
#define WIFI_FIRMWARE_VERSION_REQUIRED WIFI_FIRMWARE_REQUIRED
40-
#endif
41-
42-
#if defined(ARDUINO_SAMD_MKRWIFI1010) || defined(ARDUINO_SAMD_NANO_33_IOT) || \
43-
defined(ARDUINO_AVR_UNO_WIFI_REV2) || defined (ARDUINO_NANO_RP2040_CONNECT)
44-
#include <WiFiNINA.h>
45-
#include <WiFiUdp.h>
46-
47-
#define BOARD_HAS_WIFI
48-
#define NETWORK_HARDWARE_ERROR WL_NO_MODULE
49-
#define NETWORK_IDLE_STATUS WL_IDLE_STATUS
50-
#define NETWORK_CONNECTED WL_CONNECTED
51-
#define WIFI_FIRMWARE_VERSION_REQUIRED WIFI_FIRMWARE_LATEST_VERSION
52-
#endif
53-
54-
#if defined(ARDUINO_PORTENTA_H7_M7)
55-
#include <WiFi.h>
56-
#include <WiFiUdp.h>
57-
#include <Ethernet.h>
58-
#include <PortentaEthernet.h>
59-
#include <GSM.h>
60-
61-
#define BOARD_HAS_WIFI
62-
#define BOARD_HAS_ETHERNET
63-
#define BOARD_HAS_CATM1_NBIOT
64-
#define BOARD_HAS_PORTENTA_CATM1_NBIOT_SHIELD
65-
#define BOARD_HAS_PORTENTA_VISION_SHIELD_ETHERNET
66-
#define NETWORK_HARDWARE_ERROR WL_NO_SHIELD
67-
#define NETWORK_IDLE_STATUS WL_IDLE_STATUS
68-
#define NETWORK_CONNECTED WL_CONNECTED
69-
#endif
70-
71-
#if defined(ARDUINO_PORTENTA_C33)
72-
#include <WiFiC3.h>
73-
#include <WiFiUdp.h>
74-
#include <EthernetC33.h>
75-
#include <EthernetUdp.h>
76-
77-
#define BOARD_HAS_WIFI
78-
#define BOARD_HAS_ETHERNET
79-
#define BOARD_HAS_PORTENTA_VISION_SHIELD_ETHERNET
80-
#define NETWORK_HARDWARE_ERROR WL_NO_SHIELD
81-
#define NETWORK_IDLE_STATUS WL_IDLE_STATUS
82-
#define NETWORK_CONNECTED WL_CONNECTED
83-
#endif
84-
85-
#if defined(ARDUINO_NICLA_VISION)
86-
#include <WiFi.h>
87-
#include <WiFiUdp.h>
88-
89-
#define BOARD_HAS_WIFI
90-
#define NETWORK_HARDWARE_ERROR WL_NO_SHIELD
91-
#define NETWORK_IDLE_STATUS WL_IDLE_STATUS
92-
#define NETWORK_CONNECTED WL_CONNECTED
93-
#endif
94-
95-
#if defined(ARDUINO_OPTA)
96-
#include <WiFi.h>
97-
#include <WiFiUdp.h>
98-
#include <Ethernet.h>
99-
#include <PortentaEthernet.h>
100-
101-
#define BOARD_HAS_WIFI
102-
#define BOARD_HAS_ETHERNET
103-
#define NETWORK_HARDWARE_ERROR WL_NO_SHIELD
104-
#define NETWORK_IDLE_STATUS WL_IDLE_STATUS
105-
#define NETWORK_CONNECTED WL_CONNECTED
106-
#endif
107-
108-
#if defined(ARDUINO_GIGA)
109-
#include <WiFi.h>
110-
#include <WiFiUdp.h>
111-
112-
#define BOARD_HAS_WIFI
113-
#define NETWORK_HARDWARE_ERROR WL_NO_SHIELD
114-
#define NETWORK_IDLE_STATUS WL_IDLE_STATUS
115-
#define NETWORK_CONNECTED WL_CONNECTED
116-
#endif
117-
118-
#ifdef ARDUINO_SAMD_MKRGSM1400
119-
#include <MKRGSM.h>
120-
#define BOARD_HAS_GSM
121-
#define NETWORK_HARDWARE_ERROR GPRS_PING_ERROR
122-
#define NETWORK_IDLE_STATUS GSM3_NetworkStatus_t::IDLE
123-
#define NETWORK_CONNECTED GSM3_NetworkStatus_t::GPRS_READY
124-
#endif
125-
126-
#ifdef ARDUINO_SAMD_MKRNB1500
127-
#include <MKRNB.h>
128-
#define BOARD_HAS_NB
129-
#define NETWORK_HARDWARE_ERROR
130-
#define NETWORK_IDLE_STATUS NB_NetworkStatus_t::IDLE
131-
#define NETWORK_CONNECTED NB_NetworkStatus_t::GPRS_READY
132-
#endif
133-
134-
#if defined(ARDUINO_SAMD_MKRWAN1300) || defined(ARDUINO_SAMD_MKRWAN1310)
135-
#include <MKRWAN.h>
136-
#define BOARD_HAS_LORA
137-
#endif
138-
139-
#if defined(ARDUINO_ARCH_ESP8266)
140-
#include <ESP8266WiFi.h>
141-
#include <WiFiUdp.h>
142-
143-
#define BOARD_HAS_WIFI
144-
#define NETWORK_HARDWARE_ERROR WL_NO_SHIELD
145-
#define NETWORK_IDLE_STATUS WL_IDLE_STATUS
146-
#define NETWORK_CONNECTED WL_CONNECTED
147-
#define WIFI_FIRMWARE_VERSION_REQUIRED WIFI_FIRMWARE_REQUIRED
148-
#endif
149-
150-
#if defined(ARDUINO_ARCH_ESP32)
151-
#include <WiFi.h>
152-
#include <WiFiUdp.h>
153-
154-
#define BOARD_HAS_WIFI
155-
#define NETWORK_HARDWARE_ERROR WL_NO_SHIELD
156-
#define NETWORK_IDLE_STATUS WL_IDLE_STATUS
157-
#define NETWORK_CONNECTED WL_CONNECTED
158-
#define WIFI_FIRMWARE_VERSION_REQUIRED WIFI_FIRMWARE_REQUIRED
159-
#endif
160-
161-
#if defined(ARDUINO_UNOR4_WIFI)
162-
#include <WiFiS3.h>
163-
164-
#define BOARD_HAS_WIFI
165-
#define NETWORK_HARDWARE_ERROR WL_NO_SHIELD
166-
#define NETWORK_IDLE_STATUS WL_IDLE_STATUS
167-
#define NETWORK_CONNECTED WL_CONNECTED
168-
#define WIFI_FIRMWARE_VERSION_REQUIRED WIFI_FIRMWARE_LATEST_VERSION
32+
#if defined(BOARD_HAS_WIFI)
33+
#include "Arduino_WiFiConnectionHandler.h"
16934
#endif
17035

171-
#ifdef ARDUINO_EDGE_CONTROL
172-
#include <GSM.h>
173-
#define BOARD_HAS_CATM1_NBIOT
174-
#define BOARD_HAS_PORTENTA_CATM1_NBIOT_SHIELD
175-
#define NETWORK_HARDWARE_ERROR
36+
#if defined(BOARD_HAS_GSM)
37+
#include "Arduino_GSMConnectionHandler.h"
17638
#endif
17739

178-
/******************************************************************************
179-
TYPEDEFS
180-
******************************************************************************/
181-
182-
enum class NetworkConnectionState : unsigned int {
183-
INIT = 0,
184-
CONNECTING = 1,
185-
CONNECTED = 2,
186-
DISCONNECTING = 3,
187-
DISCONNECTED = 4,
188-
CLOSED = 5,
189-
ERROR = 6
190-
};
191-
192-
enum class NetworkConnectionEvent {
193-
CONNECTED,
194-
DISCONNECTED,
195-
ERROR
196-
};
197-
198-
enum class NetworkAdapter {
199-
WIFI,
200-
ETHERNET,
201-
NB,
202-
GSM,
203-
LORA,
204-
CATM1
205-
};
206-
207-
typedef void (*OnNetworkEventCallback)();
208-
209-
/******************************************************************************
210-
CONSTANTS
211-
******************************************************************************/
212-
213-
static unsigned int const CHECK_INTERVAL_TABLE[] =
214-
{
215-
/* INIT */ 100,
216-
#if defined(ARDUINO_ARCH_ESP8266) || defined(ARDUINO_ARCH_ESP32)
217-
/* CONNECTING */ 4000,
218-
#else
219-
/* CONNECTING */ 500,
40+
#if defined(BOARD_HAS_NB)
41+
#include "Arduino_NBConnectionHandler.h"
22042
#endif
221-
/* CONNECTED */ 10000,
222-
/* DISCONNECTING */ 100,
223-
/* DISCONNECTED */ 1000,
224-
/* CLOSED */ 1000,
225-
/* ERROR */ 1000
226-
};
227-
228-
/******************************************************************************
229-
CLASS DECLARATION
230-
******************************************************************************/
231-
232-
class ConnectionHandler {
233-
public:
234-
235-
ConnectionHandler(bool const keep_alive, NetworkAdapter interface);
236-
23743

238-
NetworkConnectionState check();
239-
240-
#if defined(BOARD_HAS_WIFI) || defined(BOARD_HAS_GSM) || defined(BOARD_HAS_NB) || defined(BOARD_HAS_ETHERNET) || defined(BOARD_HAS_CATM1_NBIOT)
241-
virtual unsigned long getTime() = 0;
242-
virtual Client &getClient() = 0;
243-
virtual UDP &getUDP() = 0;
244-
#endif
245-
246-
#if defined(BOARD_HAS_LORA)
247-
virtual int write(const uint8_t *buf, size_t size) = 0;
248-
virtual int read() = 0;
249-
virtual bool available() = 0;
250-
#endif
251-
252-
NetworkConnectionState getStatus() __attribute__((deprecated)) {
253-
return _current_net_connection_state;
254-
}
255-
256-
NetworkAdapter getInterface() {
257-
return _interface;
258-
}
259-
260-
void connect();
261-
void disconnect();
262-
263-
void addCallback(NetworkConnectionEvent const event, OnNetworkEventCallback callback);
264-
void addConnectCallback(OnNetworkEventCallback callback) __attribute__((deprecated));
265-
void addDisconnectCallback(OnNetworkEventCallback callback) __attribute__((deprecated));
266-
void addErrorCallback(OnNetworkEventCallback callback) __attribute__((deprecated));
267-
268-
protected:
269-
270-
bool _keep_alive;
271-
NetworkAdapter _interface;
272-
273-
virtual NetworkConnectionState update_handleInit () = 0;
274-
virtual NetworkConnectionState update_handleConnecting () = 0;
275-
virtual NetworkConnectionState update_handleConnected () = 0;
276-
virtual NetworkConnectionState update_handleDisconnecting() = 0;
277-
virtual NetworkConnectionState update_handleDisconnected () = 0;
278-
279-
280-
private:
281-
282-
unsigned long _lastConnectionTickTime;
283-
NetworkConnectionState _current_net_connection_state;
284-
OnNetworkEventCallback _on_connect_event_callback = NULL,
285-
_on_disconnect_event_callback = NULL,
286-
_on_error_event_callback = NULL;
287-
};
288-
289-
#if defined(BOARD_HAS_WIFI)
290-
#include "Arduino_WiFiConnectionHandler.h"
291-
#elif defined(BOARD_HAS_GSM)
292-
#include "Arduino_GSMConnectionHandler.h"
293-
#elif defined(BOARD_HAS_NB)
294-
#include "Arduino_NBConnectionHandler.h"
295-
#elif defined(BOARD_HAS_LORA)
44+
#if defined(BOARD_HAS_LORA)
29645
#include "Arduino_LoRaConnectionHandler.h"
29746
#endif
29847

0 commit comments

Comments
 (0)