Refinements - ensure gca/gcf are gone.

This commit is contained in:
Danny Staple 2022-11-16 22:44:25 +00:00
parent 66a49b4ec3
commit 97018fc119
7 changed files with 15 additions and 11 deletions

View File

@ -11,6 +11,7 @@ class RobotDisplay:
self.line = "" self.line = ""
self.arena = {} self.arena = {}
self.display_closed = False self.display_closed = False
self.fig, self.ax = plt.subplots()
def handle_close(self, _): def handle_close(self, _):
self.display_closed = True self.display_closed = True
@ -43,12 +44,11 @@ class RobotDisplay:
async def main(self): async def main(self):
plt.ion() plt.ion()
await self.ble_connection.connect() await self.ble_connection.connect()
self.fig, self.ax = plt.subplots()
try: try:
request = json.dumps({"command": "arena"}).encode() request = json.dumps({"command": "arena"}).encode()
print(f"Sending request for arena: {request}") print(f"Sending request for arena: {request}")
await self.ble_connection.send_uart_data(request) await self.ble_connection.send_uart_data(request)
plt.gcf().canvas.mpl_connect("close_event", self.handle_close) self.fig.canvas.mpl_connect("close_event", self.handle_close)
while not self.display_closed: while not self.display_closed:
self.draw() self.draw()

View File

@ -19,7 +19,9 @@ class BleConnection:
async def connect(self): async def connect(self):
print("Scanning for devices...") print("Scanning for devices...")
devices = await bleak.BleakScanner.discover(service_uuids=[self.ble_uuid]) devices = await bleak.BleakScanner.discover(
service_uuids=[self.ble_uuid]
)
print(f"Found {len(devices)} devices") print(f"Found {len(devices)} devices")
print([device.name for device in devices]) print([device.name for device in devices])
ble_device_info = [device for device in devices if device.name==self.ble_name][0] ble_device_info = [device for device in devices if device.name==self.ble_name][0]

View File

@ -4,6 +4,9 @@ import json
import arena import arena
import robot import robot
def send_json(data):
robot.uart.write((json.dumps(data)+"\n").encode())
async def command_handler(): async def command_handler():
while True: while True:
@ -17,11 +20,10 @@ async def command_handler():
continue continue
# {"command": "arena"} # {"command": "arena"}
if request["command"] == "arena": if request["command"] == "arena":
response = { send_json({
"arena": arena.boundary_lines, "arena": arena.boundary_lines,
"target_zone": arena.target_zone, "target_zone": arena.target_zone,
} })
robot.uart.write((json.dumps(response)+"\n").encode())
await asyncio.sleep(0.1) await asyncio.sleep(0.1)
asyncio.run(command_handler()) asyncio.run(command_handler())

View File

@ -12,6 +12,7 @@ class RobotDisplay:
self.line = "" self.line = ""
self.arena = {} self.arena = {}
self.display_closed = False self.display_closed = False
self.fig, self.ax = plt.subplots()
self.pose_coords = [] self.pose_coords = []
self.pose_uv = [] self.pose_uv = []
@ -55,12 +56,11 @@ class RobotDisplay:
async def main(self): async def main(self):
plt.ion() plt.ion()
await self.ble_connection.connect() await self.ble_connection.connect()
self.fig, self.ax = plt.subplots()
try: try:
request = json.dumps({"command": "arena"}).encode() request = json.dumps({"command": "arena"}).encode()
print(f"Sending request for arena: {request}") print(f"Sending request for arena: {request}")
await self.ble_connection.send_uart_data(request) await self.ble_connection.send_uart_data(request)
plt.gcf().canvas.mpl_connect("close_event", self.handle_close) self.fig.canvas.mpl_connect("close_event", self.handle_close)
while not self.display_closed: while not self.display_closed:
self.draw() self.draw()

View File

@ -13,6 +13,7 @@ class RobotDisplay:
self.line = "" self.line = ""
self.arena = {} self.arena = {}
self.display_closed = False self.display_closed = False
self.fig, self.ax = plt.subplots()
self.pose_coords = [] self.pose_coords = []
self.pose_uv = [] self.pose_uv = []
@ -67,7 +68,6 @@ class RobotDisplay:
async def main(self): async def main(self):
plt.ion() plt.ion()
await self.ble_connection.connect() await self.ble_connection.connect()
self.fig, self.ax = plt.subplots()
try: try:
await self.send_command("arena") await self.send_command("arena")
self.fig.canvas.mpl_connect("close_event", self.handle_close) self.fig.canvas.mpl_connect("close_event", self.handle_close)

View File

@ -13,6 +13,7 @@ class RobotDisplay:
self.line = "" self.line = ""
self.arena = {} self.arena = {}
self.display_closed = False self.display_closed = False
self.fig, self.ax = plt.subplots()
self.pose_coords = [] self.pose_coords = []
self.pose_uv = [] self.pose_uv = []
@ -67,7 +68,6 @@ class RobotDisplay:
async def main(self): async def main(self):
plt.ion() plt.ion()
await self.ble_connection.connect() await self.ble_connection.connect()
self.fig, self.ax = plt.subplots()
try: try:
await self.send_command("arena") await self.send_command("arena")
self.fig.canvas.mpl_connect("close_event", self.handle_close) self.fig.canvas.mpl_connect("close_event", self.handle_close)

View File

@ -13,6 +13,7 @@ class RobotDisplay:
self.line = "" self.line = ""
self.arena = {} self.arena = {}
self.display_closed = False self.display_closed = False
self.fig, self.ax = plt.subplots()
self.pose_coords = [] self.pose_coords = []
self.pose_uv = [] self.pose_uv = []
@ -67,7 +68,6 @@ class RobotDisplay:
async def main(self): async def main(self):
plt.ion() plt.ion()
await self.ble_connection.connect() await self.ble_connection.connect()
self.fig, self.ax = plt.subplots()
try: try:
await self.send_command("arena") await self.send_command("arena")
self.fig.canvas.mpl_connect("close_event", self.handle_close) self.fig.canvas.mpl_connect("close_event", self.handle_close)