Skip to content

Commit e930cc6

Browse files
committed
Allow NTRIP over Ethernet without compiling WiFi.
1 parent b693eaf commit e930cc6

File tree

4 files changed

+177
-69
lines changed

4 files changed

+177
-69
lines changed

Firmware/RTK_Surveyor/NTRIPClient.h

Lines changed: 126 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,21 @@
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

712
class 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

1120
class 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

Comments
 (0)