Skip to content

Commit 021f8b7

Browse files
authored
Merge pull request #408 from sparkfun/TCP_Updates
TCP updates
2 parents e862e56 + a6f0ea2 commit 021f8b7

File tree

3 files changed

+86
-1
lines changed

3 files changed

+86
-1
lines changed

Firmware/RTK_Everywhere/TcpServer.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -359,7 +359,7 @@ void tcpServerUpdate()
359359
// Wait until the TCP server is enabled
360360
case TCP_SERVER_STATE_OFF:
361361
// Determine if the TCP server should be running
362-
if (EQ_RTK_MODE(tcpServerMode) && settings.enableTcpServer && (!wifiIsConnected()))
362+
if (EQ_RTK_MODE(tcpServerMode) && settings.enableTcpServer) // Was && (!wifiIsConnected())) - TODO check this
363363
{
364364
if (networkUserOpen(NETWORK_USER_TCP_SERVER, NETWORK_TYPE_ACTIVE))
365365
{

Firmware/Tools/TCP_Client.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import socket
2+
import argparse
3+
import multiprocessing
4+
5+
def client(server, port):
6+
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
7+
sock.connect((server, port))
8+
while True:
9+
payload = sock.recv(1024)
10+
print(payload.decode('latin1'), end='')
11+
12+
if __name__ == "__main__":
13+
14+
parser = argparse.ArgumentParser(
15+
description='TCP Client')
16+
17+
parser.add_argument('-server', type=str, default="",
18+
help='Host Name or IP Address of the TCP Server')
19+
20+
parser.add_argument('-port', type=int, default=2948,
21+
help='TCP Port Number')
22+
23+
args = parser.parse_args()
24+
25+
print("Connecting to " + args.server + " on port " + str(args.port))
26+
27+
proc = multiprocessing.Process(target = client, args = (args.server, args.port))
28+
proc.start()
29+
30+
try:
31+
while True:
32+
pass
33+
except KeyboardInterrupt:
34+
proc.terminate()

Firmware/Tools/TCP_Server.py

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
import socket
2+
import argparse
3+
import multiprocessing
4+
5+
6+
def client(server, port):
7+
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
8+
sock.bind((server, port))
9+
sock.listen()
10+
while True:
11+
print("Waiting for new connection")
12+
conn, addr = sock.accept()
13+
print("Connection from " + str(addr))
14+
conn.settimeout(5.0)
15+
keepGoing = True
16+
while keepGoing:
17+
try:
18+
payload = conn.recv(1024)
19+
except TimeoutError:
20+
keepGoing = False
21+
if len(payload) > 0:
22+
print(payload.decode('latin1'), end='')
23+
conn.close()
24+
print()
25+
26+
if __name__ == "__main__":
27+
28+
parser = argparse.ArgumentParser(
29+
description='TCP Server')
30+
31+
parser.add_argument('-server', type=str, default="",
32+
help='Host Name or IP Address (e.g. 127.0.0.1 localhost)')
33+
34+
parser.add_argument('-port', type=int, default=2948,
35+
help='TCP Port Number')
36+
37+
args = parser.parse_args()
38+
39+
if (args.server != ""):
40+
print("Listening on " + args.server + ":" + str(args.port))
41+
else:
42+
print("Listening on port " + str(args.port))
43+
44+
proc = multiprocessing.Process(target = client, args = (args.server, args.port))
45+
proc.start()
46+
47+
try:
48+
while True:
49+
pass
50+
except KeyboardInterrupt:
51+
proc.terminate()

0 commit comments

Comments
 (0)