-
Notifications
You must be signed in to change notification settings - Fork 0
/
server.py
57 lines (42 loc) · 1.6 KB
/
server.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import socket
from struct import unpack
import json
ids_to_name: dict = {
1: "canCoder right front",
2: "canCoder right rear",
3: "canCoder left rear",
4: "canCoder left front",
11: "driveMotor right front",
12: "driveMotor right rear",
13: "driveMotor left rear",
14: "driveMotor left front",
21: "rotationMotor right front",
22: "rotationMotor right rear",
23: "rotationMotor left rear",
24: "rotationMotor left front"
}
log_data_to_save = json.load(open("./data.json", "r"))
for value in ids_to_name:
log_data_to_save[value] = []
with open("./data.json", "w") as json_file:
json.dump(log_data_to_save, json_file)
HOST: str = socket.gethostbyname(socket.gethostname())
print(HOST)
PORT = 2230
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as socket_server:
socket_server.bind((HOST, PORT))
socket_server.listen()
connection, address = socket_server.accept()
print("connection accepted")
with connection:
while True:
try:
input_id: int = int(unpack(">i", connection.recv(4))[0]) # java sends big first -> that's why big emdian
value: float = float(unpack(">d", connection.recv(8))[0]) # java sends big first -> that's why big emdian
print(input_id, round(value, 3))
log_data_to_save[ids_to_name[input_id]].append(value)
with open("./data.json", "w") as json_file:
json.dump(log_data_to_save, json_file)
except Exception as e:
socket_server.close()
break