From f46759230f5c1fe37f7e7d1e1c8f1c7c962af60b Mon Sep 17 00:00:00 2001 From: jtkenny <jtkenny@iastate.edu> Date: Mon, 23 Oct 2023 22:18:00 +0200 Subject: [PATCH] implementing queueing --- .../crazyflie_connection.cpython-38.pyc | Bin 0 -> 2650 bytes .../groundstation_socket.cpython-38.pyc | Bin 0 -> 4253 bytes cflib_groundstation/groundstation_socket.py | 9 ++--- cflib_groundstation/main.py | 33 ++++++++++++++++-- 4 files changed, 36 insertions(+), 6 deletions(-) create mode 100644 cflib_groundstation/__pycache__/crazyflie_connection.cpython-38.pyc create mode 100644 cflib_groundstation/__pycache__/groundstation_socket.cpython-38.pyc diff --git a/cflib_groundstation/__pycache__/crazyflie_connection.cpython-38.pyc b/cflib_groundstation/__pycache__/crazyflie_connection.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..46a66108eef65d96e5e41d73bf7defe483a5523d GIT binary patch literal 2650 zcmb`J%Wl&^6o$u1lh{ezv`z2#+oqdlhgcxgHiZfaQq<5*HkRu%4OSC7jBP}_ggyc< z(f8mfyyX$tvEm$?xGsz+i*YpPkL};{oip}~eQugnhTGF`PxwKRvG25#-|!eaz!uD4 zIAOp*yT$gU&|^^Ovb~~%#~*A3+&jP)e8s?7PXpE~fChzI)+<60CQv7!1ZC6`R6s{9 zg8^043e=#Es)GrWs0K7(3bhK;FoRlyCd{JNVGia|O;~_M)Ja%^Wz+_&z$)q#tid|! zG;F{o>I`hbHfj@gFz4O4*%tQA_2t0jZQt{_6S}_lS0Nha-=;!z3?ciBg>>1S*16MS z<HaY3kLap9CQ5iZ2|tfp@BJZfUAUox{qxov*AagE@a$d7LDq%U7k=bH5ZZKQi#$mV zmXjs1Ke~=f$NVDdPY{{Ll4&<fl63bI*Z(Cgs2@?JkR_Y`E90@)cxyXXJbdl<X?F}= zlR-1560mu~!>q?-n8)xf8T^4;Ndo2b5!fN8DKI84%gCus39@#?`>vOESkG}cWZaxr z3EVvW$c1o$pGKo7oXp{+1OC9RB!Md4!;TO96$Dc``ns(6d#e((-ld04*h5;$#&>&F z1|A#LV3Vg7v9ph1$3`Vs1B>YTk#P8Yjw_whnNtlI%SgeCkAX9%5^(j52cwj{oFhvg zt$V8yw1JhJMj=kA)f`zm*qKuaSjX;YItA-FuJoB68<k)yhX91#%u!clGwHWa36z!& zd_}!<2YfrnmEPZbs}ghrxkm%vxoZ2vq3ywLj=v+T`wxF-Z#LE~%d>~vvf`>`4Sk3P z^uKOdA0m5@o)H!7SJ2mnFeuP#Nz^FNi$a(bXw4Q43bcNTX$rKUi6#YFW5gT<n)PCV ng5-@a=+mZ%EufLqHNEifU*hlVX^F}@jP++}NzbX*AK2J0Fy{P} literal 0 HcmV?d00001 diff --git a/cflib_groundstation/__pycache__/groundstation_socket.cpython-38.pyc b/cflib_groundstation/__pycache__/groundstation_socket.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..704af640fbe957aa1ab2b02b8e7b8d6685ee8597 GIT binary patch literal 4253 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 A-T(jq literal 0 HcmV?d00001 diff --git a/cflib_groundstation/groundstation_socket.py b/cflib_groundstation/groundstation_socket.py index f0c15296d..803726dc3 100644 --- a/cflib_groundstation/groundstation_socket.py +++ b/cflib_groundstation/groundstation_socket.py @@ -1,3 +1,4 @@ +from queue import Queue import socket import os import collections @@ -8,7 +9,7 @@ socket_path = './cflib_groundstation.socket' class GroundstationSocket(): metadata = collections.namedtuple("metadata", ["msg_type", "msg_id", "data_len"]) - def groundstation_connect(self): + def groundstation_connect(self, inputQueue: Queue): # remove the socket file if it already exists try: os.unlink(socket_path) @@ -45,8 +46,9 @@ class GroundstationSocket(): print("There was an error decoding the packet") break - #TODO: Add the message to the main function queue, which will + #Add the message to the main function queue, which will #which will send the appropriate command to the quad. + inputQueue.put(message) finally: # close the connection self.connection.close() @@ -149,7 +151,6 @@ class MessageTypeID(Enum): SEND_RT_ID = 20 MAX_TYPE_ID = 21 -if __name__ == '__main__': - GroundstationSocket().groundstation_connect() + diff --git a/cflib_groundstation/main.py b/cflib_groundstation/main.py index a7d3ccd07..76e489c3c 100644 --- a/cflib_groundstation/main.py +++ b/cflib_groundstation/main.py @@ -1,5 +1,34 @@ - +from email import message +from queue import Queue +from threading import Thread +from groundstation_socket import GroundstationSocket +from crazyflie_connection import CrazyflieConnection class main(): - print("main") \ No newline at end of file + def __init__(self) -> None: + self.inputQueue = Queue() + self.outputQueue = Queue() + + + + def processCommands(self): + gs = GroundstationSocket() + self.inThread = Thread(target = gs.groundstation_connect, args = (self.inputQueue,)) + self.inThread.start() + while True: + if self.inputQueue.not_empty: + command = self.inputQueue.get() + print(command) + msg_type = command["msg_type"] + print(msg_type) + + + + + + +if __name__ == '__main__': + main().processCommands() + + \ No newline at end of file -- GitLab