Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit ae44e9e

Browse files
committedAug 3, 2024·
Updated
1 parent 87151f9 commit ae44e9e

File tree

3 files changed

+17
-14
lines changed

3 files changed

+17
-14
lines changed
 

‎main_2024.py

+5-4
Original file line numberDiff line numberDiff line change
@@ -122,9 +122,10 @@ def main() -> int:
122122
mp_manager,
123123
QUEUE_MAX_SIZE,
124124
)
125-
odometry_to_data_merge_queue = queue_proxy_wrapper.QueueProxyWrapper(
125+
# Queue size of latest odometry data must be 1
126+
flight_interface_to_decision_queue = queue_proxy_wrapper.QueueProxyWrapper(
126127
mp_manager,
127-
QUEUE_MAX_SIZE,
128+
1,
128129
)
129130
data_merge_to_geolocation_queue = queue_proxy_wrapper.QueueProxyWrapper(
130131
mp_manager,
@@ -218,7 +219,7 @@ def main() -> int:
218219
FLIGHT_INTERFACE_WORKER_PERIOD,
219220
),
220221
input_queues=[],
221-
output_queues=[flight_interface_to_data_merge_queue, odometry_to_data_merge_queue],
222+
output_queues=[flight_interface_to_data_merge_queue, flight_interface_to_decision_queue],
222223
controller=controller,
223224
local_logger=main_logger,
224225
)
@@ -379,7 +380,7 @@ def main() -> int:
379380
video_input_to_detect_target_queue.fill_and_drain_queue()
380381
detect_target_to_data_merge_queue.fill_and_drain_queue()
381382
flight_interface_to_data_merge_queue.fill_and_drain_queue()
382-
odometry_to_data_merge_queue.fill_and_drain_queue()
383+
flight_interface_to_decision_queue.fill_and_drain_queue()
383384
data_merge_to_geolocation_queue.fill_and_drain_queue()
384385
geolocation_to_main_queue.fill_and_drain_queue()
385386

‎modules/flight_interface/flight_interface_worker.py

+7-7
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
import inspect
66
import os
77
import pathlib
8+
import queue
89
import time
9-
import multiprocessing as mp
1010

1111
from utilities.workers import queue_proxy_wrapper
1212
from utilities.workers import worker_controller
@@ -20,7 +20,7 @@ def flight_interface_worker(
2020
baud_rate: int,
2121
period: float,
2222
output_queue: queue_proxy_wrapper.QueueProxyWrapper,
23-
odometry_queue: queue_proxy_wrapper.QueueProxyWrapper,
23+
most_recent_odometry_queue: queue_proxy_wrapper.QueueProxyWrapper,
2424
controller: worker_controller.WorkerController,
2525
) -> None:
2626
"""
@@ -31,8 +31,8 @@ def flight_interface_worker(
3131
output_queue is the data queue.
3232
controller is how the main process communicates to this worker process.
3333
"""
34-
if len(odometry_queue) > 1:
35-
print("ERROR: Queue should have a maximum size of 1")
34+
if most_recent_odometry_queue.maxsize != 1:
35+
print("ERROR: most_recent_odometry_queue must have a maximum size of 1")
3636
return
3737

3838
# TODO: Error handling
@@ -72,9 +72,9 @@ def flight_interface_worker(
7272

7373
# Replace any existing odometry data with the latest odometry data
7474
try:
75-
odometry_queue.queue.get_nowait()
76-
except queue_proxy_wrapper.queue.Empty:
75+
most_recent_odometry_queue.queue.get_nowait()
76+
except queue.Empty:
7777
pass
7878

79-
odometry_queue.queue.put(value)
79+
most_recent_odometry_queue.queue.put(value)
8080
output_queue.queue.put(value)

‎tests/integration/test_flight_interface_worker.py

+5-3
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
FLIGHT_INTERFACE_TIMEOUT = 10.0 # seconds
1717
FLIGHT_INTERFACE_BAUD_RATE = 57600 # symbol rate
1818
FLIGHT_INTERFACE_WORKER_PERIOD = 0.1 # seconds
19-
QUEUE_MAX_SIZE = 1 # Max items allowed in odometry queue
19+
LATEST_ODOMETRY_QUEUE_MAX_SIZE = 1 # Max items allowed in latest odometry queue
2020

2121

2222
def main() -> int:
@@ -29,7 +29,9 @@ def main() -> int:
2929
mp_manager = mp.Manager()
3030

3131
out_queue = queue_proxy_wrapper.QueueProxyWrapper(mp_manager)
32-
odometry_queue = queue_proxy_wrapper.QueueProxyWrapper(mp_manager, QUEUE_MAX_SIZE)
32+
latest_odometry_queue = queue_proxy_wrapper.QueueProxyWrapper(
33+
mp_manager, LATEST_ODOMETRY_QUEUE_MAX_SIZE
34+
)
3335

3436
worker = mp.Process(
3537
target=flight_interface_worker.flight_interface_worker,
@@ -39,7 +41,7 @@ def main() -> int:
3941
FLIGHT_INTERFACE_BAUD_RATE,
4042
FLIGHT_INTERFACE_WORKER_PERIOD,
4143
out_queue,
42-
odometry_queue,
44+
latest_odometry_queue,
4345
controller,
4446
),
4547
)

0 commit comments

Comments
 (0)
Please sign in to comment.