Skip to content
This repository was archived by the owner on Nov 13, 2025. It is now read-only.

Commit 6b1c2d4

Browse files
committed
Updated
1 parent 860a0df commit 6b1c2d4

3 files changed

Lines changed: 16 additions & 13 deletions

File tree

main_2024.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -132,9 +132,10 @@ def main() -> int:
132132
mp_manager,
133133
QUEUE_MAX_SIZE,
134134
)
135-
odometry_to_data_merge_queue = queue_proxy_wrapper.QueueProxyWrapper(
135+
# Queue size of latest odometry data must be 1
136+
flight_interface_to_decision_queue = queue_proxy_wrapper.QueueProxyWrapper(
136137
mp_manager,
137-
QUEUE_MAX_SIZE,
138+
1,
138139
)
139140
data_merge_to_geolocation_queue = queue_proxy_wrapper.QueueProxyWrapper(
140141
mp_manager,
@@ -184,7 +185,7 @@ def main() -> int:
184185
FLIGHT_INTERFACE_BAUD_RATE,
185186
FLIGHT_INTERFACE_WORKER_PERIOD,
186187
flight_interface_to_data_merge_queue,
187-
odometry_to_data_merge_queue,
188+
flight_interface_to_decision_queue,
188189
controller,
189190
),
190191
)

modules/flight_interface/flight_interface_worker.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
Gets odometry information from drone.
33
"""
44

5+
import queue
56
import time
6-
import multiprocessing as mp
77

88
from utilities.workers import queue_proxy_wrapper
99
from utilities.workers import worker_controller
@@ -16,7 +16,7 @@ def flight_interface_worker(
1616
baud_rate: int,
1717
period: float,
1818
output_queue: queue_proxy_wrapper.QueueProxyWrapper,
19-
odometry_queue: queue_proxy_wrapper.QueueProxyWrapper,
19+
most_recent_odometry_queue: queue_proxy_wrapper.QueueProxyWrapper,
2020
controller: worker_controller.WorkerController,
2121
) -> None:
2222
"""
@@ -27,8 +27,8 @@ def flight_interface_worker(
2727
output_queue is the data queue.
2828
controller is how the main process communicates to this worker process.
2929
"""
30-
if len(odometry_queue) > 1:
31-
print("ERROR: Queue should have a maximum size of 1")
30+
if most_recent_odometry_queue.maxsize != 1:
31+
print("ERROR: most_recent_odometry_queue must have a maximum size of 1")
3232
return
3333

3434
# TODO: Error handling
@@ -53,9 +53,9 @@ def flight_interface_worker(
5353

5454
# Replace any existing odometry data with the latest odometry data
5555
try:
56-
odometry_queue.queue.get_nowait()
57-
except queue_proxy_wrapper.queue.Empty:
56+
most_recent_odometry_queue.queue.get_nowait()
57+
except queue.Empty:
5858
pass
5959

60-
odometry_queue.queue.put(value)
60+
most_recent_odometry_queue.queue.put(value)
6161
output_queue.queue.put(value)

tests/integration/test_flight_interface_worker.py

Lines changed: 5 additions & 3 deletions
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)