From 7fe8cf40052de51d7e87c88ecb5db55b0f9a8f7e Mon Sep 17 00:00:00 2001 From: sfrana <sfrana@iastate.edu> Date: Wed, 25 Oct 2023 23:36:56 +0200 Subject: [PATCH] added functionality for get/set param --- .../crazyflie_connection.cpython-38.pyc | Bin 2650 -> 5887 bytes .../groundstation_socket.cpython-38.pyc | Bin 4253 -> 4722 bytes cflib_groundstation/crazyflie_connection.py | 37 +++++++++++++++--- 3 files changed, 32 insertions(+), 5 deletions(-) diff --git a/cflib_groundstation/__pycache__/crazyflie_connection.cpython-38.pyc b/cflib_groundstation/__pycache__/crazyflie_connection.cpython-38.pyc index e6d5daf61a108acc7e4a3a17e2ac232b2a13e297..c4249331c166cdd16323d98a46de616822643865 100644 GIT binary patch literal 5887 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 I27cy$0m7+{vH$=8 literal 2650 zcmb`J%Wl&^6o$u1lh{ezv`z2#+oqdljX<bv3KbHhsG*x|EZ1imtR{9C+lY1veFR>j z@4^#!%OkL3#W^-{T^Lao<7mzw+rQ^KXY3jK+%&5Uw{K6M@Pi^_-)Sem;W2iAEttV@ z!hnHxi|tFH$Dq(<dqoG2KiCSmcYrPUih;A92CP>A4GOocSA-%=piV#u%BUr%fR0)Q z1FEPMs6ic72NNby4QRj=Y89qo2DJuFm_@C_9L%GdumFpwlduHKs0~<wRn#e1gLTwt z*nmyc8Q6kt)F$j;&bx85E$o}?%Yn<=zUOf#bbaryLNv_3O@-(fLiQO8>9RYmbEn0| zi%$+8(N%X$l<;&Cejc~p`$OKka6<?C=dCxcBmDN^*}Im5tP86z{K$hKwCTzgd6FC~ zCre^~bRCzD`9;*9ATo_5({7d|>Fy`4|4Uj>KcYw>OE&#i#$&PZ)^@IV_}cH&?ijiz zgJw=8VDp5BS&zvukKtP~_yf0+1j^?lutQE$U`$??kyD!zWbKIeT`%php5t!FxH+#9 zxOw`K3*iDkjYd&8nZrv5{DE6Z0#&?+9Uu5B2&QuMby@NERwZb?OAni{hqRK7@Aj$; zJT|JqCQmJ5XCK3kjY_Zv7SZ)1;qdt!S30LNry4Mpk%AW=17}Vp;OZF<Mk#qYN0vTX z_f{on11mX=LYz{oIkI%HGp7=;j@{983f6O6=`%exD#2C`0SLR9qprwi(r=#<C@mfM zihAh|_;!vfy}$QXCFllnj|RST)%J%&+k@R4e@9mLAO6nXY^+<BXAik$#Z}81`VbB1 zf8DY^MD`#(BP!Uhpsx*KP@vb6s8OI7g)k}5nk^a>X#Et^6lg&cO$xNeh&c*0>%{^E m$s1qLr%e%CKqIMZdg0%{#NXM|5|wor>(A1Xo>Q+su(4mk<@}-m diff --git a/cflib_groundstation/__pycache__/groundstation_socket.cpython-38.pyc b/cflib_groundstation/__pycache__/groundstation_socket.cpython-38.pyc index 8992ae1d5dc36d7cf4ca436430a295654b520bb4..8a732cdc4af311c7f155b3d8ce0fe128b8971509 100644 GIT binary patch delta 1031 zcmZXS-A)rh6vt=U?Xul(q0sPQL_RGF6*WdLL<-#$1WTm_6p3288)%7bGaVBlH5f6z zz{JEGlXB~w;R%c}zC-oKOK&vs1@xSXQgoa7_00dw|ID6~eSP}JfVpHCDuHL>@l|iF z<E<H@G$Z=yP2D~5oUH0@Ynnvb4mj2PgQ@6d>7f^0&+{D1?s(C-SJ~pFa&&{09u?gR z&+>e!c<@S^2<-Zyq5^9gR^<(V6PNB$N;u`dg1;c`(I>vDuNJ6M*Vjp0|0LOmY?C5g z|5pukHlLCIbD?tR+HES<(qtnwxk`CUK`BUZF&M&x2McOJ3X^@`Zx6JqBzG*Ym@B#Y z;zn;do7?g@Yk?lV{zPC~tbrg#gMf&}!Wj1=&I4j>9K$G}E@#VSujsOCsEi^mATA;< z0U~}jfbk??RaxKWo}1-a(WUl<Lm&~VP@T5Y4r(59NW|3s-JB1ThYyY$S7Y2=5L8Kx zROvnrnG|RZMvdLM1iGV1xG@1|ST|w>@aGkVP?$sv|HT=I>gEc|b1zex!eJEMJR#$x zB0+{wmG1N<nm>Sa2?sWI+>wkJVnbaEHtwAPpLl1ri_dB>WWq*)&df1IR>H7!77$;w zlOm+$v{^{98;CjaOp8+{K5FhU^|BtJRq;T-eN26?pQTU5cl}OV63oen%$h6RHLkQT zgZ=_mMFuETf*)IM-21^`r_jX~5Glkh#3CY%aKy4XlWM96V%<(SnN)0g&dJO#B+~b1 z<MrTDDjv%?7@AW~Vm5iSm*EWRD*ijkIL6|eIef0Jr=3iCVQF!?;nSh$(au<O(y61Z zh*>?fF78=fz-_A=_|l36R^V-f_+*XK6=B#tbY6_uqe1MKHB#@akl=Q2aMM<8$(C*7 E7cJi6qyPW_ delta 626 zcmY+B-)qxQ6vuOG6Vm1;P1;EnQKt?h46Qy46hW-bwX18BkRRxZATtSCWvjdE5C`Ie zzKfg}AM`&MsO(SBNB@HT2YV6p!B;(}4|Yp9pL@>t-1E&P_xHl5b5?4aRRy0PH?9}E zjjz@mV|}>523oAR&VB=a>5aYj>`&>W*LpHuFItaAlT5Dd6s^H1ljBZ1O7?ckH&w5M z9uysnEsmHdIeWvHk}K#`@^@;*MmEkz8;|FouVv4QiOXaYx49*`fQ!6^0M|ILl8FL8 z^(MSD_%Yw*u*4rQ4_=!m;4`n($y;Z2W?j}by{T(bg;%xHaKJM|U`yU1bm5-qu?#+% z`4QEyT(%BN*8L;u2WydS!gp)6aTkYuSCfaGuGFp_k5GSsv85q&R>oIG_}zDBX+o|L z`h)?&Cj^KC9Tx57@Q@pdL%S=Iu-#b^Nk8bu4}0FQl7?P85tLfDMYreAY7O_0UZqv| z9_8@OzL*brERr}#qt0}Wqv@<NBN2zQlA1x9glR(K)8?!+u;~Y$n4W~w;QtDI=M)>l zQ>U%Qc=EUK#kqQhGPky`Zf+Obg{13}a|Da941b+V8vQOA<CQg`SD&w}+Eu%3Yqt3h DYCn+N diff --git a/cflib_groundstation/crazyflie_connection.py b/cflib_groundstation/crazyflie_connection.py index 440e1aa72..d744462a8 100644 --- a/cflib_groundstation/crazyflie_connection.py +++ b/cflib_groundstation/crazyflie_connection.py @@ -13,6 +13,8 @@ import cflib.crtp from cflib.crazyflie import Crazyflie from cflib.crazyflie.syncCrazyflie import SyncCrazyflie from queue import Queue +#import groundstation_socket as gs +from groundstation_socket import MessageTypeID from cflib.crazyflie.log import LogConfig @@ -78,13 +80,17 @@ class CrazyflieConnection: def BeginUpdate(): raise Exception def OverrideOuput(): - #Sends all setpoints for a given amount of time + """Sends all setpoints for a given amount of time""" + #TODO raise Exception def GetNodeIds(): raise Exception - def SetParam(self, group: str, name: str, value: float): + def SetParam(self, command): """ Set a crazyflie parameter value. """ + group = command['data'][0:1] + name = command['data'][2:3] + value = command['data'][4:7] try: if self.scf.is_link_open(): full_name = group + "." + name @@ -107,15 +113,36 @@ class CrazyflieConnection: print("Done setting param") self.param_callback_count += 1 - def GetParam(self, group: str, name: str): + def GetParam(self, command, outputQueue: Queue): #group: str, name: str, """ Retrieve parameter value from crazyflie toc. """ + #Bytes 0 and 1 are node ID, ie group + #Bytes 2 and 3 are node paramID, ie name + group = command['data'][0:1] + name = command['data'][2:3] + try: if self.scf.is_link_open(): - return self.scf.cf.param.values[group][name] + val = self.scf.cf.param.values[group][name] + except AttributeError: + val = -1.234567 pass - return -1.234567890 # 1234567890 should be pretty obvious that + + + data = bytearray(group) + data.append(name) + data.append(val) + + responsedata = { + "msg_type": (MessageTypeID.RESPPARAM_ID), + "msg_id": command['msg_id'], + "data_len": 8, + "data": data + } + outputQueue.put(responsedata) + + #return -1.234567890 # 1234567890 should be pretty obvious that # something has gone wrong. def SetSource(): raise Exception -- GitLab