1- // Define a hybrid class which can support both WiFiClient and EthernetClient
1+ #if !defined(COMPILE_WIFI) && !defined(COMPILE_ETHERNET)
2+
3+ // Remove all of NTRIPClient.h
24
3- #ifdef COMPILE_WIFI
5+ #else
6+
7+ // Define a hybrid class which can support both WiFiClient and EthernetClient
8+ // Build the Class according to WiFi and Ethernet compile guards
49
5- #ifdef COMPILE_ETHERNET
10+ #if defined(COMPILE_WIFI) && defined( COMPILE_ETHERNET)
611
712class NTRIPClient : public WiFiClient , public EthernetClient
813
9- #else
14+ #elif defined(COMPILE_ETHERNET)
15+
16+ class NTRIPClient : public EthernetClient
17+
18+ #elif defined(COMPILE_WIFI)
1019
1120class NTRIPClient : public WiFiClient
1221
@@ -17,135 +26,223 @@ class NTRIPClient : public WiFiClient
1726
1827 NTRIPClient ()
1928 {
20- #ifdef COMPILE_ETHERNET
29+ #if defined( COMPILE_ETHERNET) && defined(COMPILE_WIFI)
2130 if (HAS_ETHERNET)
2231 _ntripClientEthernet = new EthernetClient;
2332 else
24- #endif
2533 _ntripClientWiFi = new WiFiClient;
34+ #elif defined(COMPILE_ETHERNET)
35+ if (HAS_ETHERNET)
36+ _ntripClientEthernet = new EthernetClient;
37+ #elif defined(COMPILE_WIFI)
38+ _ntripClientWiFi = new WiFiClient;
39+ #endif
2640 };
2741
2842 ~NTRIPClient ()
2943 {
30- #ifdef COMPILE_ETHERNET
44+ #if defined( COMPILE_ETHERNET) && defined(COMPILE_WIFI)
3145 if (HAS_ETHERNET)
3246 {
3347 _ntripClientEthernet->stop ();
3448 delete _ntripClientEthernet;
3549 _ntripClientEthernet = nullptr ;
3650 }
3751 else
38- #endif
3952 {
4053 // EthernetClient does not have a destructor. It is virtual.
4154 delete _ntripClientWiFi;
4255 _ntripClientWiFi = nullptr ;
4356 }
57+ #elif defined(COMPILE_ETHERNET)
58+ if (HAS_ETHERNET)
59+ {
60+ _ntripClientEthernet->stop ();
61+ delete _ntripClientEthernet;
62+ _ntripClientEthernet = nullptr ;
63+ }
64+ #elif defined(COMPILE_WIFI)
65+ // EthernetClient does not have a destructor. It is virtual.
66+ delete _ntripClientWiFi;
67+ _ntripClientWiFi = nullptr ;
68+ #endif
4469 };
4570
4671 operator bool ()
4772 {
48- #ifdef COMPILE_ETHERNET
73+ #if defined( COMPILE_ETHERNET) && defined(COMPILE_WIFI)
4974 if (HAS_ETHERNET)
5075 return _ntripClientEthernet;
5176 else
52- #endif
5377 return _ntripClientWiFi;
78+ #elif defined(COMPILE_ETHERNET)
79+ if (HAS_ETHERNET)
80+ return _ntripClientEthernet;
81+ else
82+ return false ;
83+ #elif defined(COMPILE_WIFI)
84+ return _ntripClientWiFi;
85+ #endif
5486 };
5587
5688 int connect (const char *host, uint16_t port)
5789 {
58- #ifdef COMPILE_ETHERNET
90+ #if defined( COMPILE_ETHERNET) && defined(COMPILE_WIFI)
5991 if (HAS_ETHERNET)
6092 return _ntripClientEthernet->connect (host, port);
6193 else
62- #endif
6394 return _ntripClientWiFi->connect (host, port);
95+ #elif defined(COMPILE_ETHERNET)
96+ if (HAS_ETHERNET)
97+ return _ntripClientEthernet->connect (host, port);
98+ else
99+ return 0 ;
100+ #elif defined(COMPILE_WIFI)
101+ return _ntripClientWiFi->connect (host, port);
102+ #endif
64103 };
65104
66105 size_t write (uint8_t b)
67106 {
68- #ifdef COMPILE_ETHERNET
107+ #if defined( COMPILE_ETHERNET) && defined(COMPILE_WIFI)
69108 if (HAS_ETHERNET)
70109 return _ntripClientEthernet->write (b);
71110 else
72- #endif
73111 return _ntripClientWiFi->write (b);
112+ #elif defined(COMPILE_ETHERNET)
113+ if (HAS_ETHERNET)
114+ return _ntripClientEthernet->write (b);
115+ else
116+ return 0 ;
117+ #elif defined(COMPILE_WIFI)
118+ return _ntripClientWiFi->write (b);
119+ #endif
74120 };
75121
76122 size_t write (const uint8_t *buf, size_t size)
77123 {
78- #ifdef COMPILE_ETHERNET
124+ #if defined( COMPILE_ETHERNET) && defined(COMPILE_WIFI)
79125 if (HAS_ETHERNET)
80126 return _ntripClientEthernet->write (buf, size);
81127 else
82- #endif
83128 return _ntripClientWiFi->write (buf, size);
129+ #elif defined(COMPILE_ETHERNET)
130+ if (HAS_ETHERNET)
131+ return _ntripClientEthernet->write (buf, size);
132+ else
133+ return 0 ;
134+ #elif defined(COMPILE_WIFI)
135+ return _ntripClientWiFi->write (buf, size);
136+ #endif
84137 };
85138
86139 int available ()
87140 {
88- #ifdef COMPILE_ETHERNET
141+ #if defined( COMPILE_ETHERNET) && defined(COMPILE_WIFI)
89142 if (HAS_ETHERNET)
90143 return _ntripClientEthernet->available ();
91144 else
92- #endif
93145 return _ntripClientWiFi->available ();
146+ #elif defined(COMPILE_ETHERNET)
147+ if (HAS_ETHERNET)
148+ return _ntripClientEthernet->available ();
149+ else
150+ return 0 ;
151+ #elif defined(COMPILE_WIFI)
152+ return _ntripClientWiFi->available ();
153+ #endif
94154 };
95155
96156 int read (uint8_t *buf, size_t size)
97157 {
98- #ifdef COMPILE_ETHERNET
158+ #if defined( COMPILE_ETHERNET) && defined(COMPILE_WIFI)
99159 if (HAS_ETHERNET)
100160 return _ntripClientEthernet->read ();
101161 else
102- #endif
103162 return _ntripClientWiFi->read ();
163+ #elif defined(COMPILE_ETHERNET)
164+ if (HAS_ETHERNET)
165+ return _ntripClientEthernet->read ();
166+ else
167+ return 0 ;
168+ #elif defined(COMPILE_WIFI)
169+ return _ntripClientWiFi->read ();
170+ #endif
104171 };
105172
106173 int read ()
107174 {
108- #ifdef COMPILE_ETHERNET
175+ #if defined( COMPILE_ETHERNET) && defined(COMPILE_WIFI)
109176 if (HAS_ETHERNET)
110177 return _ntripClientEthernet->read ();
111178 else
112- #endif
113179 return _ntripClientWiFi->read ();
180+ #elif defined(COMPILE_ETHERNET)
181+ if (HAS_ETHERNET)
182+ return _ntripClientEthernet->read ();
183+ else
184+ return 0 ;
185+ #elif defined(COMPILE_WIFI)
186+ return _ntripClientWiFi->read ();
187+ #endif
114188 };
115189
116190 void stop ()
117191 {
118- #ifdef COMPILE_ETHERNET
192+ #if defined( COMPILE_ETHERNET) && defined(COMPILE_WIFI)
119193 if (HAS_ETHERNET)
120194 _ntripClientEthernet->stop ();
121195 else
122- #endif
123196 _ntripClientWiFi->stop ();
197+ #elif defined(COMPILE_ETHERNET)
198+ if (HAS_ETHERNET)
199+ _ntripClientEthernet->stop ();
200+ else
201+ return ;
202+ #elif defined(COMPILE_WIFI)
203+ _ntripClientWiFi->stop ();
204+ #endif
124205 };
125206
126207 uint8_t connected ()
127208 {
128- #ifdef COMPILE_ETHERNET
209+ #if defined( COMPILE_ETHERNET) && defined(COMPILE_WIFI)
129210 if (HAS_ETHERNET)
130211 return _ntripClientEthernet->connected ();
131212 else
132- #endif
133213 return _ntripClientWiFi->connected ();
214+ #elif defined(COMPILE_ETHERNET)
215+ if (HAS_ETHERNET)
216+ return _ntripClientEthernet->connected ();
217+ else
218+ return 0 ;
219+ #elif defined(COMPILE_WIFI)
220+ return _ntripClientWiFi->connected ();
221+ #endif
134222 };
135223
136224 size_t print (const char *printMe)
137225 {
138- #ifdef COMPILE_ETHERNET
226+ #if defined( COMPILE_ETHERNET) && defined(COMPILE_WIFI)
139227 if (HAS_ETHERNET)
140228 return _ntripClientEthernet->print (printMe);
141229 else
142- #endif
143230 return _ntripClientWiFi->print (printMe);
231+ #elif defined(COMPILE_ETHERNET)
232+ if (HAS_ETHERNET)
233+ return _ntripClientEthernet->print (printMe);
234+ else
235+ return 0 ;
236+ #elif defined(COMPILE_WIFI)
237+ return _ntripClientWiFi->print (printMe);
238+ #endif
144239 };
145240
146241 protected:
242+ #if defined(COMPILE_WIFI)
147243 WiFiClient * _ntripClientWiFi;
148- #ifdef COMPILE_ETHERNET
244+ #endif
245+ #if defined(COMPILE_ETHERNET)
149246 EthernetClient * _ntripClientEthernet;
150247#endif
151248};
0 commit comments