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