Skip to content

Commit 4419df1

Browse files
authored
Merge pull request #121 from andreagilardoni/include-refactoring
Include refactoring
2 parents d05d54c + bc9691b commit 4419df1

18 files changed

+398
-305
lines changed

Diff for: src/Arduino_ConnectionHandler.h

+12-266
Original file line numberDiff line numberDiff line change
@@ -27,288 +27,34 @@
2727
#endif
2828

2929
#include <Arduino.h>
30+
#include "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-
#include <Arduino_Cellular.h>
61-
62-
#define BOARD_HAS_WIFI
63-
#define BOARD_HAS_ETHERNET
64-
#define BOARD_HAS_CATM1_NBIOT
65-
#define BOARD_HAS_CELLULAR
66-
#define BOARD_HAS_PORTENTA_CATM1_NBIOT_SHIELD
67-
#define BOARD_HAS_PORTENTA_VISION_SHIELD_ETHERNET
68-
#define NETWORK_HARDWARE_ERROR WL_NO_SHIELD
69-
#define NETWORK_IDLE_STATUS WL_IDLE_STATUS
70-
#define NETWORK_CONNECTED WL_CONNECTED
71-
#endif
72-
73-
#if defined(ARDUINO_PORTENTA_C33)
74-
#include <WiFiC3.h>
75-
#include <WiFiUdp.h>
76-
#include <EthernetC33.h>
77-
#include <EthernetUdp.h>
78-
#include <Arduino_Cellular.h>
79-
80-
#define BOARD_HAS_WIFI
81-
#define BOARD_HAS_ETHERNET
82-
#define BOARD_HAS_CELLULAR
83-
#define BOARD_HAS_PORTENTA_VISION_SHIELD_ETHERNET
84-
#define NETWORK_HARDWARE_ERROR WL_NO_SHIELD
85-
#define NETWORK_IDLE_STATUS WL_IDLE_STATUS
86-
#define NETWORK_CONNECTED WL_CONNECTED
87-
#endif
88-
89-
#if defined(ARDUINO_NICLA_VISION)
90-
#include <WiFi.h>
91-
#include <WiFiUdp.h>
92-
93-
#define BOARD_HAS_WIFI
94-
#define NETWORK_HARDWARE_ERROR WL_NO_SHIELD
95-
#define NETWORK_IDLE_STATUS WL_IDLE_STATUS
96-
#define NETWORK_CONNECTED WL_CONNECTED
97-
#endif
98-
99-
#if defined(ARDUINO_OPTA)
100-
#include <WiFi.h>
101-
#include <WiFiUdp.h>
102-
#include <Ethernet.h>
103-
#include <PortentaEthernet.h>
104-
105-
#define BOARD_HAS_WIFI
106-
#define BOARD_HAS_ETHERNET
107-
#define NETWORK_HARDWARE_ERROR WL_NO_SHIELD
108-
#define NETWORK_IDLE_STATUS WL_IDLE_STATUS
109-
#define NETWORK_CONNECTED WL_CONNECTED
110-
#endif
111-
112-
#if defined(ARDUINO_GIGA)
113-
#include <WiFi.h>
114-
#include <WiFiUdp.h>
115-
116-
#define BOARD_HAS_WIFI
117-
#define NETWORK_HARDWARE_ERROR WL_NO_SHIELD
118-
#define NETWORK_IDLE_STATUS WL_IDLE_STATUS
119-
#define NETWORK_CONNECTED WL_CONNECTED
120-
#endif
121-
122-
#ifdef ARDUINO_SAMD_MKRGSM1400
123-
#include <MKRGSM.h>
124-
#define BOARD_HAS_GSM
125-
#define NETWORK_HARDWARE_ERROR GPRS_PING_ERROR
126-
#define NETWORK_IDLE_STATUS GSM3_NetworkStatus_t::IDLE
127-
#define NETWORK_CONNECTED GSM3_NetworkStatus_t::GPRS_READY
128-
#endif
129-
130-
#ifdef ARDUINO_SAMD_MKRNB1500
131-
#include <MKRNB.h>
132-
#define BOARD_HAS_NB
133-
#define NETWORK_HARDWARE_ERROR
134-
#define NETWORK_IDLE_STATUS NB_NetworkStatus_t::IDLE
135-
#define NETWORK_CONNECTED NB_NetworkStatus_t::GPRS_READY
136-
#endif
137-
138-
#if defined(ARDUINO_SAMD_MKRWAN1300) || defined(ARDUINO_SAMD_MKRWAN1310)
139-
#include <MKRWAN.h>
140-
#define BOARD_HAS_LORA
141-
#endif
142-
143-
#if defined(ARDUINO_ARCH_ESP8266)
144-
#include <ESP8266WiFi.h>
145-
#include <WiFiUdp.h>
146-
147-
#define BOARD_HAS_WIFI
148-
#define NETWORK_HARDWARE_ERROR WL_NO_SHIELD
149-
#define NETWORK_IDLE_STATUS WL_IDLE_STATUS
150-
#define NETWORK_CONNECTED WL_CONNECTED
151-
#define WIFI_FIRMWARE_VERSION_REQUIRED WIFI_FIRMWARE_REQUIRED
152-
#endif
153-
154-
#if defined(ARDUINO_ARCH_ESP32)
155-
#include <WiFi.h>
156-
#include <WiFiUdp.h>
157-
158-
#define BOARD_HAS_WIFI
159-
#define NETWORK_HARDWARE_ERROR WL_NO_SHIELD
160-
#define NETWORK_IDLE_STATUS WL_IDLE_STATUS
161-
#define NETWORK_CONNECTED WL_CONNECTED
162-
#define WIFI_FIRMWARE_VERSION_REQUIRED WIFI_FIRMWARE_REQUIRED
163-
#endif
164-
165-
#if defined(ARDUINO_UNOR4_WIFI)
166-
#include <WiFiS3.h>
167-
168-
#define BOARD_HAS_WIFI
169-
#define NETWORK_HARDWARE_ERROR WL_NO_SHIELD
170-
#define NETWORK_IDLE_STATUS WL_IDLE_STATUS
171-
#define NETWORK_CONNECTED WL_CONNECTED
172-
#define WIFI_FIRMWARE_VERSION_REQUIRED WIFI_FIRMWARE_LATEST_VERSION
32+
#if defined(BOARD_HAS_WIFI)
33+
#include "WiFiConnectionHandler.h"
17334
#endif
17435

175-
#ifdef ARDUINO_EDGE_CONTROL
176-
#include <GSM.h>
177-
#define BOARD_HAS_CATM1_NBIOT
178-
#define BOARD_HAS_PORTENTA_CATM1_NBIOT_SHIELD
179-
#define NETWORK_HARDWARE_ERROR
36+
#if defined(BOARD_HAS_GSM)
37+
#include "GSMConnectionHandler.h"
18038
#endif
18139

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

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

30248
#if defined(BOARD_HAS_ETHERNET)
303-
#include "Arduino_EthernetConnectionHandler.h"
49+
#include "EthernetConnectionHandler.h"
30450
#endif
30551

30652
#if defined(BOARD_HAS_CATM1_NBIOT)
307-
#include "Arduino_CatM1ConnectionHandler.h"
53+
#include "CatM1ConnectionHandler.h"
30854
#endif
30955

31056
#if defined(BOARD_HAS_CELLULAR)
311-
#include "Arduino_CellularConnectionHandler.h"
57+
#include "CellularConnectionHandler.h"
31258
#endif
31359

31460
#endif /* CONNECTION_HANDLER_H_ */

Diff for: src/Arduino_CatM1ConnectionHandler.cpp renamed to src/CatM1ConnectionHandler.cpp

+3-2
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,10 @@
1919
INCLUDE
2020
******************************************************************************/
2121

22-
#include "Arduino_CatM1ConnectionHandler.h"
22+
#include "ConnectionHandlerDefinitions.h"
2323

2424
#ifdef BOARD_HAS_CATM1_NBIOT /* Only compile if the board has CatM1 BN-IoT */
25+
#include "CatM1ConnectionHandler.h"
2526

2627
/******************************************************************************
2728
CTOR/DTOR
@@ -96,7 +97,7 @@ NetworkConnectionState CatM1ConnectionHandler::update_handleDisconnected()
9697
}
9798
else
9899
{
99-
return NetworkConnectionState::CLOSED;
100+
return NetworkConnectionState::CLOSED;
100101
}
101102
}
102103

Diff for: src/Arduino_CatM1ConnectionHandler.h renamed to src/CatM1ConnectionHandler.h

+7-4
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,15 @@
2222
INCLUDE
2323
******************************************************************************/
2424

25-
#include "Arduino_ConnectionHandler.h"
25+
#include "ConnectionHandlerInterface.h"
2626

27+
#if defined(ARDUINO_PORTENTA_H7_M7) || defined(ARDUINO_EDGE_CONTROL)
28+
#include <GSM.h>
29+
#endif
2730

28-
#ifdef BOARD_HAS_CATM1_NBIOT /* Only compile if the board has CatM1 BN-IoT */
31+
#ifndef BOARD_HAS_CATM1_NBIOT
32+
#error "Board doesn't support CATM1_NBIOT"
33+
#endif
2934

3035
/******************************************************************************
3136
CLASS DECLARATION
@@ -66,6 +71,4 @@ class CatM1ConnectionHandler : public ConnectionHandler
6671
GSMClient _gsm_client;
6772
};
6873

69-
#endif /* #ifdef BOARD_HAS_CATM1_NBIOT */
70-
7174
#endif /* #ifndef ARDUINO_CATM1_CONNECTION_HANDLER_H_ */

Diff for: src/Arduino_CellularConnectionHandler.cpp renamed to src/CellularConnectionHandler.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,10 @@
1313
INCLUDE
1414
******************************************************************************/
1515

16-
#include "Arduino_CellularConnectionHandler.h"
16+
#include "ConnectionHandlerDefinitions.h"
1717

1818
#ifdef BOARD_HAS_CELLULAR /* Only compile if the board has Cellular */
19+
#include "CellularConnectionHandler.h"
1920

2021
/******************************************************************************
2122
CTOR/DTOR

Diff for: src/Arduino_CellularConnectionHandler.h renamed to src/CellularConnectionHandler.h

+8-3
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,19 @@
1818

1919
#include "Arduino_ConnectionHandler.h"
2020

21-
#ifdef BOARD_HAS_CELLULAR /* Only compile if the board has Cellular */
2221

2322
/******************************************************************************
2423
CLASS DECLARATION
2524
******************************************************************************/
2625

26+
#if defined(ARDUINO_PORTENTA_C33) || defined(ARDUINO_PORTENTA_H7_M7)
27+
#include <Arduino_Cellular.h>
28+
#endif
29+
30+
#ifndef BOARD_HAS_CELLULAR
31+
#error "Board doesn't support CELLULAR"
32+
#endif
33+
2734
class CellularConnectionHandler : public ConnectionHandler
2835
{
2936
public:
@@ -56,6 +63,4 @@ class CellularConnectionHandler : public ConnectionHandler
5663
TinyGsmClient _gsm_client = _cellular.getNetworkClient();
5764
};
5865

59-
#endif /* #ifdef BOARD_HAS_CELLULAR */
60-
6166
#endif /* #ifndef ARDUINO_CELLULAR_CONNECTION_HANDLER_H_ */

0 commit comments

Comments
 (0)