Skip to content

Commit be84c53

Browse files
committed
small updates to emu and emu sample code usage. does in fact work
1 parent 8694f24 commit be84c53

File tree

2 files changed

+45
-12
lines changed

2 files changed

+45
-12
lines changed

samples/emu_connection.py

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,39 @@
11
from src.modules.emu import Emu
2+
import time
3+
import json
4+
5+
emu = Emu()
26

37
def onConnect():
4-
print("connected!")
8+
loadCurrent = {
9+
"type": "load",
10+
"uavStatus": {
11+
"connection": "no",
12+
"mode": "test",
13+
"imageCount": "2",
14+
"timeSinceMessage": "3"
15+
},
16+
"imageName": "res/sample1.jpg"
17+
}
18+
emu.send_msg(json.dumps(loadCurrent))
519

6-
emu = Emu("127.0.0.1", 14555)
7-
emu.set_on_connect(onConnect)
820

21+
emu.set_on_connect(onConnect)
922
emu.start_comms()
1023

11-
emu.send_log("normal log message", "normal")
12-
emu.send_log("warning log message", "warning")
13-
emu.send_log("error log message", "error")
24+
time.sleep(2)
25+
26+
# test different logs
27+
for i in range(6):
28+
if i % 3 == 0: severity = "normal"
29+
elif i % 3 == 1: severity = "warning"
30+
else: severity = "error"
31+
emu.send_log(f"log text {i}", severity)
32+
time.sleep(0.5)
33+
34+
# send new photo
35+
36+
# change mode
37+
38+
while True:
39+
pass

src/modules/emu/emu.py

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ class Emu():
1616
class representation of a connection to Emu
1717
"""
1818

19-
def __init__(self, hostname: str, port: int):
20-
self.hostname = hostname
21-
self.port = port
19+
def __init__(self):
20+
self.hostname = "127.0.0.1"
21+
self.port = 14555
2222

2323
self._send_queue = queue.Queue()
2424
self._recv_queue = queue.Queue()
@@ -28,7 +28,7 @@ def __init__(self, hostname: str, port: int):
2828
self._is_connected = False
2929

3030
def start_comms(self):
31-
self._comms_thread = threading.Thread(target=self._start_comms_loop)
31+
self._comms_thread = threading.Thread(target=self._start_comms_loop, daemon=True)
3232
self._comms_thread.start()
3333

3434
def send_image(self, path: str):
@@ -53,22 +53,29 @@ def send_log(self, message: str, severity: str="normal"):
5353
}
5454
self._send_queue.put(json.dumps(content))
5555

56+
def send_msg(self, message: str):
57+
"""
58+
sends message as it is, follow the proper JSON API messages
59+
"""
60+
self._send_queue.put(message)
61+
5662
def set_on_connect(self, func: Callable):
5763
self._on_connect = func
5864

5965
def _start_comms_loop(self):
6066
"""
6167
starts connection loop with asyncio
6268
"""
69+
print("start_comms loop")
6370
asyncio.run(self._connect())
64-
pass
6571

6672
async def _connect(self):
6773
"""
6874
starts the server and waits for clients to connect. Once they do,
6975
self._handler handles each client
7076
"""
71-
async with serve(self._handler, self.hostname, self.port) as server:
77+
print("connect")
78+
async with serve(self._handler, "", self.port) as server:
7279
await server.serve_forever()
7380

7481

0 commit comments

Comments
 (0)