Skip to content

Commit 218be7c

Browse files
authored
Merge pull request #798 from sparkfun/pcUpdates
Add NetworkServer
2 parents 755091b + 7dd5b11 commit 218be7c

16 files changed

+1174
-615
lines changed

Firmware/RTK_Surveyor/Developer.ino

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,17 @@ void pvtUdpServerUpdate() {}
9292
void pvtUdpServerZeroTail() {}
9393
void discardPvtUdpServerBytes(RING_BUFFER_OFFSET previousTail, RING_BUFFER_OFFSET newTail) {}
9494

95+
//----------------------------------------
96+
// PVT server
97+
//----------------------------------------
98+
99+
int32_t pvtServerSendData(uint16_t dataHead) {return 0;}
100+
void pvtServerStop() {}
101+
void pvtServerUpdate() {}
102+
void pvtServerZeroTail() {}
103+
void pvtServerValidateTables() {}
104+
void discardPvtServerBytes(RING_BUFFER_OFFSET previousTail, RING_BUFFER_OFFSET newTail) {}
105+
95106
#endif // COMPILE_NETWORK
96107

97108
//----------------------------------------
@@ -109,23 +120,12 @@ void stopWebServer() {}
109120
bool parseIncomingSettings() {return false;}
110121

111122
#endif // COMPILE_AP
112-
#ifndef COMPILE_WIFI
113-
114-
//----------------------------------------
115-
// PVT server
116-
//----------------------------------------
117-
118-
int32_t pvtServerSendData(uint16_t dataHead) {return 0;}
119-
void pvtServerStop() {}
120-
void pvtServerUpdate() {}
121-
void pvtServerZeroTail() {}
122-
void pvtServerValidateTables() {}
123-
void discardPvtServerBytes(RING_BUFFER_OFFSET previousTail, RING_BUFFER_OFFSET newTail) {}
124123

125124
//----------------------------------------
126125
// WiFi
127126
//----------------------------------------
128127

128+
#ifndef COMPILE_WIFI
129129
void menuWiFi() {systemPrintln("WiFi not compiled");};
130130
bool wifiConnect(unsigned long timeout) {return false;}
131131
IPAddress wifiGetGatewayIpAddress() {return IPAddress((uint32_t)0);}

Firmware/RTK_Surveyor/Display.ino

Lines changed: 448 additions & 389 deletions
Large diffs are not rendered by default.

Firmware/RTK_Surveyor/Network.ino

Lines changed: 61 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,9 @@ void menuNetwork()
236236
if (settings.enablePvtUdpServer)
237237
systemPrintf("7) PVT UDP Server Port: %ld\r\n", settings.pvtUdpServerPort);
238238

239+
if ((settings.enablePvtServer) || (settings.enablePvtUdpServer))
240+
systemPrintf("8) Display server IP address: %s\r\n", settings.displayServerIP ? "Enabled" : "Disabled");
241+
239242
if (HAS_ETHERNET)
240243
{
241244
//------------------------------
@@ -348,7 +351,10 @@ void menuNetwork()
348351
}
349352
}
350353

351-
//------------------------------
354+
else if (incoming == 8 && ((settings.enablePvtServer) || (settings.enablePvtUdpServer)))
355+
settings.displayServerIP ^= 1;
356+
357+
//------------------------------
352358
// Get the network layer parameters
353359
//------------------------------
354360

@@ -386,7 +392,7 @@ void menuNetwork()
386392
NetworkClient * networkClient(uint8_t user, bool useSSL)
387393
{
388394
NetworkClient * client;
389-
int type;
395+
uint8_t type;
390396

391397
type = networkGetType(user);
392398
#if defined(COMPILE_ETHERNET)
@@ -395,7 +401,7 @@ NetworkClient * networkClient(uint8_t user, bool useSSL)
395401
if (useSSL)
396402
client = new NetworkEthernetSslClient();
397403
else
398-
client = new NetworkEthernetClient;
404+
client = new NetworkEthernetClient();
399405
}
400406
else
401407
#endif // COMPILE_ETHERNET
@@ -412,6 +418,58 @@ NetworkClient * networkClient(uint8_t user, bool useSSL)
412418
return client;
413419
}
414420

421+
//----------------------------------------
422+
// Allocate a network server
423+
//----------------------------------------
424+
NetworkServer * networkServer(uint8_t user, uint16_t port)
425+
{
426+
NetworkServer * _server;
427+
uint8_t type;
428+
429+
type = networkGetType(user);
430+
#if defined(COMPILE_ETHERNET)
431+
if (type == NETWORK_TYPE_ETHERNET)
432+
{
433+
_server = new NetworkEthernetServer(port);
434+
}
435+
else
436+
#endif // COMPILE_ETHERNET
437+
{
438+
#if defined(COMPILE_WIFI)
439+
_server = new NetworkWiFiServer(port);
440+
#else // COMPILE_WIFI
441+
_server = nullptr;
442+
#endif // COMPILE_WIFI
443+
}
444+
return _server;
445+
}
446+
447+
//----------------------------------------
448+
// Constructor for NetworkServer - header is in NetworkServer.h
449+
//----------------------------------------
450+
NetworkServer::NetworkServer(uint8_t user, uint16_t port) :
451+
_friendClass(false),
452+
_networkType{networkGetType(user)},
453+
_port{port}
454+
{
455+
#if defined(COMPILE_ETHERNET)
456+
if (_networkType == NETWORK_TYPE_ETHERNET)
457+
{
458+
_server = new EthernetServer(port);
459+
}
460+
else
461+
#endif // COMPILE_ETHERNET
462+
#if defined(COMPILE_WIFI)
463+
{
464+
_server = new WiFiServer(port);
465+
}
466+
#else // COMPILE_WIFI
467+
{
468+
_server = nullptr;
469+
}
470+
#endif // COMPILE_WIFI
471+
}
472+
415473
//----------------------------------------
416474
// Display the IP address
417475
//----------------------------------------

Firmware/RTK_Surveyor/NetworkClient.h

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ class NetworkClient : public Client
3737
#else // COMPILE_WIFI
3838
_client = nullptr;
3939
#endif // COMPILE_WIFI
40-
};
40+
}
4141

4242
//------------------------------
4343
// Delete the network client
@@ -51,7 +51,7 @@ class NetworkClient : public Client
5151
delete _client;
5252
_client = nullptr;
5353
}
54-
};
54+
}
5555

5656
//------------------------------
5757
// Determine if receive data is available
@@ -70,7 +70,17 @@ class NetworkClient : public Client
7070

7171
operator bool()
7272
{
73-
return _client;
73+
#if defined(COMPILE_ETHERNET)
74+
if (_networkType == NETWORK_TYPE_ETHERNET)
75+
if (_client)
76+
return (*((EthernetClient *)_client));
77+
#endif // COMPILE_ETHERNET
78+
#if defined(COMPILE_WIFI)
79+
if (_networkType == NETWORK_TYPE_WIFI)
80+
if (_client)
81+
return (*((WiFiClient *)_client));
82+
#endif // COMPILE_WIFI
83+
return false;
7484
}
7585

7686
//------------------------------

0 commit comments

Comments
 (0)