1+ #ifndef CONNECTION_MANAGER_H_INCLUDED
2+ #define CONNECTION_MANAGER_H_INCLUDED
3+
4+ #include < Client.h>
5+
6+ /* NOT USED FOR NOW */
7+ enum ArduinoIoTConnectionStatus {
8+ IOT_STATUS_IDLE,/* only at start */
9+ IOT_STATUS_CLOUD_IDLE,
10+ IOT_STATUS_CLOUD_CONNECTING,
11+ IOT_STATUS_CLOUD_CONNECTED,
12+ IOT_STATUS_CLOUD_DISCONNECTED,
13+ IOT_STATUS_CLOUD_ERROR,
14+ IOT_STATUS_NETWORK_IDLE,
15+ IOT_STATUS_NETWORK_CONNECTED,
16+ IOT_STATUS_NETWORK_CONNECTING,
17+ IOT_STATUS_NETWORK_DISCONNECTED,
18+ IOT_STATUS_NETWORK_ERROR,
19+ IOT_STATUS_ERROR_GENERIC
20+ };
21+
22+ class ConnectionManager {
23+ public:
24+ virtual void init () = 0;
25+ virtual void check () = 0;
26+ virtual ArduinoIoTConnectionStatus status () = 0;
27+ virtual unsigned long getTime () = 0;
28+ virtual Client &getClient ();
29+ };
30+
31+ // ********* NETWORK LAYER **********
32+ // max network layer connection retries
33+ #define NETWORK_LAYER_CONNECTION_RETRIES 6
34+ // ms to wait between each retry
35+ #define NETWORK_LAYER_CONNECTION_TIMEOUT 10000
36+ // ms to wait between each retry
37+ #define NETWORK_LAYER_RECONNECTION_TIMEOUT 2000
38+
39+ // ********** CLOUD LAYER ***********
40+ // max arduino cloud connection retries
41+ #define ARDUINO_IOT_CLOUD_CONNECTION_RETRIES 30
42+ // max wifi connection retries
43+ #define ARDUINO_IOT_CLOUD_CONNECTION_TIMEOUT 3000
44+
45+ // Network Connection Status
46+ // int iotStatus = IOT_STATUS_IDLE;
47+ // int networkStatus = NETWORK_IDLE_STATUS;
48+
49+ // === NETWORK CONNECTION MANAGEMENT ===
50+ // last time when the Network Connection was checked
51+ // unsigned long lastNetworkCheck = 0;
52+ // time interval to check the Network Connection
53+ // static const unsigned long NETWORK_CONNECTION_INTERVAL = 30000;
54+ // timeout between each network connection retry
55+ // static const unsigned long NETWORK_CONNECTION_TIMEOUT = 2000;
56+
57+ #ifdef ARDUINO_SAMD_MKR1000
58+ #include < WiFi101.h>
59+ #include " WiFiConnectionManager.h"
60+ #define BOARD_HAS_WIFI
61+ #define NETWORK_HARDWARE_ERROR WL_NO_SHIELD
62+ #define NETWORK_IDLE_STATUS WL_IDLE_STATUS
63+ #define NETWORK_CONNECTED WL_CONNECTED
64+ #endif
65+
66+ #ifdef ARDUINO_SAMD_MKRWIFI1010
67+ #include < WiFiNINA.h>
68+ #include " WiFiConnectionManager.h"
69+ #define BOARD_HAS_WIFI
70+ #define NETWORK_HARDWARE_ERROR WL_NO_MODULE
71+ #define NETWORK_IDLE_STATUS WL_IDLE_STATUS
72+ #define NETWORK_CONNECTED WL_CONNECTED
73+ #endif
74+
75+ #ifdef ARDUINO_SAMD_MKRGSM1400
76+ #include < MKRGSM.h>
77+ #define BOARD_HAS_GSM
78+ #define NETWORK_HARDWARE_ERROR GPRS_PING_ERROR
79+ #define NETWORK_IDLE_STATUS GSM3_NetworkStatus_t::IDLE
80+ #define NETWORK_CONNECTED GSM3_NetworkStatus_t::GPRS_READY
81+ #endif
82+
83+ #include < ArduinoIoTCloud.h>
84+
85+ #endif
0 commit comments