From f36bf079875794ea407c92ee3a20047e6edab379 Mon Sep 17 00:00:00 2001 From: 488_MP-4 <488_MP-4@iastate.edu> Date: Fri, 1 Dec 2023 20:13:47 +0100 Subject: [PATCH] attempting timer --- cflib_groundstation/SetpointHandler.py | 30 ++++++++++-------- .../__pycache__/LogfileHandler.cpython-38.pyc | Bin 5394 -> 5394 bytes .../SetpointHandler.cpython-38.pyc | Bin 7058 -> 7662 bytes .../crazyflie_connection.cpython-38.pyc | Bin 10349 -> 10524 bytes .../groundstation_socket.cpython-38.pyc | Bin 4730 -> 4730 bytes .../__pycache__/uCartCommander.cpython-38.pyc | Bin 7993 -> 7993 bytes cflib_groundstation/crazyflie_connection.py | 8 +++-- .../logs/cflie1_2023_12_01_19:57:31.txt | 1 + .../logs/cflie1_2023_12_01_19:57:44.txt | 1 + .../logs/cflie1_2023_12_01_19:58:02.txt | 0 .../logs/cflie1_2023_12_01_20:00:03.txt | 1 + .../logs/cflie1_2023_12_01_20:05:31.txt | 1 + 12 files changed, 26 insertions(+), 16 deletions(-) create mode 100644 cflib_groundstation/logs/cflie1_2023_12_01_19:57:31.txt create mode 100644 cflib_groundstation/logs/cflie1_2023_12_01_19:57:44.txt create mode 100644 cflib_groundstation/logs/cflie1_2023_12_01_19:58:02.txt create mode 100644 cflib_groundstation/logs/cflie1_2023_12_01_20:00:03.txt create mode 100644 cflib_groundstation/logs/cflie1_2023_12_01_20:05:31.txt diff --git a/cflib_groundstation/SetpointHandler.py b/cflib_groundstation/SetpointHandler.py index 352ef3c2c..9a93d361e 100644 --- a/cflib_groundstation/SetpointHandler.py +++ b/cflib_groundstation/SetpointHandler.py @@ -5,10 +5,12 @@ the controls tab. """ +from ast import While, arg from enum import Enum +from time import sleep from PyQt5.QtCore import QTimer from uCartCommander import Commander -from threading import Semaphore, Timer +from threading import Semaphore, Thread, Timer class FlightMode(Enum): @@ -61,23 +63,28 @@ class SetpointHandler: self.setpoint_semaphore = Semaphore(1) self._flight_mode = FlightMode.TYPE_STOP self.is_running = False + self.setpoint_time = 0 + self.curr_time = 0 # Send setpoints to crazyflie every 20 ms. - def start(self): - if not self.is_running: - self.timer = Timer(0.2, self.update) - self.timer.start() - self.is_running = True - def stop(self): - self.timer.cancel() - self.is_running = False + def updateThread(self): + while self.is_running: + if self.curr_time < self.setpoint_time: + self.update() + sleep(.2) + + def startSetpointThread(self): + setpointThread = Thread(target = self.updateThread, args=None) + setpointThread.start() + """" def setTimer(self, time) : #A way to set the timer so the setpoint is reguluarly sent self.timer.stop() self.timer.timeout.connect(self.update) self.timer.start(time) + """ def setCommander(self, commander: Commander): @@ -92,9 +99,6 @@ class SetpointHandler: self.commander = None def update(self): - self.is_running = False - self.start() - print("update") """ If the flight mode is not stopped, send the current setpoint. """ if self._flight_mode != FlightMode.TYPE_STOP: self.sendSetpoint() @@ -148,7 +152,7 @@ class SetpointHandler: self.setpoint.pitch = pitch self.setpoint.roll = roll self.setpoint.thrust = thrust - self.sendSetpointUnsafe() + #self.sendSetpointUnsafe() self.setpoint_semaphore.release() diff --git a/cflib_groundstation/__pycache__/LogfileHandler.cpython-38.pyc b/cflib_groundstation/__pycache__/LogfileHandler.cpython-38.pyc index fac69a6d1b9e4014f14f747ad3fc8027b237b5fb..ffd3eb187ae669b573249628651bb2b325cdd03d 100644 GIT binary patch delta 20 acmbQFHA#y*l$V!_0SGuXvo><Givj>Cc>{3( delta 20 acmbQFHA#y*l$V!_0SK18&)CS#E(!oLUIfwr diff --git a/cflib_groundstation/__pycache__/SetpointHandler.cpython-38.pyc b/cflib_groundstation/__pycache__/SetpointHandler.cpython-38.pyc index 92c67d4aa6b16a61e2670e99263fe0b7ee77a2ff..088476dc88ca402313c06ba04de9260ad332b941 100644 GIT binary patch delta 2559 zcmai0U2GIp6rMYOJF~y-?n>zobW1_limf7lic)^0fIy`bB$=3uo8H@Y>&|SsGn+`Q z*_ieLO-zIv{|E`?k@#k#@A}4*M&IVm7vhT~_@wd0bMAC$X_h#X`R=)M?m6?_bI(0@ zZXJ4bBy%N`Nh)xCx_6F+H#6IsH=simN1=qOHR7p`>S>Nfu&>p0&u|PW>owC$I0-2m zHOsRdTgqlF>7|^MloPeImvJ&)*2#J~Cr6ai3bm-ctWcX7OPbRG{Ul96KeePfozP3u zTn4%s=;mp5QYq(de*ME+YGhoUt=3qiRrpMqMEWVe;X!KzHOA&aFeffoJ;p(@Pu4xJ z;#25okv+-0%KU7dv&g(W%UOl4UMGK(o-|A`(yD$K<y^Po`}MFAR_lJ?y5b9Mu)zC3 z&$k2ISNJZJcZnahQ$`BJ4w2IPNlJWd6ve3iQ+KS!G0y`;mg`piYUsKHqQ}^MtREF6 zgaL#d2qOsVW>P|1z8e4y0v*62I^nzFGuy~*ao6bTqdGN~6~~|^O+ah11hwuEYSZMh zE`Bxky+*s}R#4<<H|>G8gLTF??Y*PZKDupLhmdZk{h%w*5*>iHNOwSp2Umy9v`P+& zBi2x-zNol1MNCoxN<++9H?kREG{y;FIR&i#wYr-YbfSE~!udJ`(hXXX<`^X|Bb;`p zYt@<A(Dmw+MagR5@`mqM{h289#4dz&i|nZe=Pru;MYLXzjtmS&Y(G3f7C^BqVya1# zKtoLNq1`KfPxUnSfM!vdQ}|9m0+0H>!r{$|c26Nns8g~;h;j`w8z!ZW&)oh7uLq-L zgC77>ehA?pKx8)NX(eRbz&CB^MCo`yoKRyhDzKC$G{7eftQPtv*Mf2e^03DE@W$~| z7{u14f`E&C5}u$3AjCNk3VZD{^&_%KR#ara#<{FUW(XUAg^><TP}aB&HvCn9ChP^! zg=LiwL)Xc+0vxm46w#<42e){}W6pz}Og)8U$--bu*_uQfi~EG{1EVRJhPY=x96k!2 zH3Cwx`KxIl^<;ZG;``*!(xh#W3$z+c)qS5$t(&|jzDu2LZiTPlN{0m2SmVXk8q0K5 z7e-5Gr%T~1E5*52!rUuWgA#1=QV`bX=Na8w3YbsjAWS^wgJx~XhD+mRonx|X%wrth zipS1&bopVhVDQ8NRE3|O+9SQROP~xa;h5YR7l7QH_$U4F+$&%lB`Q<b8dc8XZ_6r# zPND>7HC74Q?v5x2+>eK0HEd9Z{(Lc%{p$?+<Cs^mFDz#9wBAIi9jhYvxlsLp(T&a; zg694l-Q)~2^?#hDz}Y3(MM!8-eBSZfe$138Ewc#9!gZ(uZCRw`h%q@}Nqp7$Z4Vmq zO$@NS@crW5eE+Uz&L@eh9Xt9&tmH??9`Q?l8#yc<<wx{6WhEiXg)f`d2G=j6*D}Ho z!V3s{5%3#OC~#-B)jwUYBAoo>T0-3dn*ix5T2i&3Jix6j^tROEK{B=K7LTYWHcfLq z1!WpYYRDxr<~h{cO*En{kfLIst4Mmp<1GVZyC`(+kfFIB7le2oPxIu*!Qb6gr>jeC zj)TbGM!1MD0We<f;Fqu?nLUfoCL(+iEd~)}mRv?jCf^m5-a&Yp1)d?k_@j^`55(i{ z+2(WnnTIA8I{pSi0$~*47y|A-egfeX0@h@H8sRL$Ie^HRuGK3cKaVeP-ux=UIu$9w zY135rOQ6ByBq#yEIh?ZcmT6_Pre(mbTM2oamR-zPLvr+ZxggJW_&*6kj#Zs&0Fln% zKZRq3k92vu86Z08i`OT@1H%(g*kG%hsLeJ`Lh;7hC`NkCX`EhUhw_gFHwvD$ajnN+ pwRlJ4--7&jn@PZb$m>w|8Z~wlkDDM5peH)uc#7|$){)EF{{foPH6Q>0 delta 1947 zcmah~&2Jk;6yI6z$LxCTe5bMFG^C|84v>_7P-v=>wj}+cQA<>zZY3-$Gl?DSbvnC7 zZ58mLK|%;2wIlV?3Iz!c5fTy#2M$Oeq#o!6Ax`WcfW)Dw;siI|n<O}m9O03Fo{#t5 z{N~MXp8p)bdo*<=m2x%soO)8??w!;?qXYw{`5GfkuaK(l>je9WN}_7`hUyy?vugR4 z>YEk2N_|>&e1~XfG-fe-Sz|WWZzp^g#*{fQc5dr_5=Jgd!YBzNk9jj%K6UFWcZNrc zwQ>+WQz{0ma_6TnY!VxjLA@$JCVieBJ2SjmTrAZDU;CE)O$e1=C$bKb79N0nl-TR6 zYGMc{hVB}ZrVYKcJZ}sVTmE2n%lC~RGwZ8pvIiihg+e(fM}@+mylU>B=*NW|!T`c< zgy#{OZmNgAVlM!ig$4j61`&H<n*sS7@#G(-m*XZg9uQ_SYuWH29gHq(zReuwE^D&G zIyl1H)*IXPz+inW17__k%lg5rgXP!&{C2Y4ke$J`_bg8*Bl06UViK4z<U{(Q<G{XC zc?Y(==49qg7{#68MiL9*X0imPK~P-v3Uih6d?_kaYmCQkIV^~J5R`*?kw=^6A=UZt z;0NIwDqT=YEZv2q|Ks!<t3-^-&y$ZwaXqh#5p*9#csfSx0iV;gY87sjiy8U7_p@?o zwO`!D%HeD+2>5K%<*NKHb*_Q;z{rwT(3Z3X66p(xcM>AIq^%gAX&^ogGNMmU<xTMt zQaFIH<<KDy*rv8xZfw;TSux^ogI{O?Xv8u+a;taKNq&=lYgk2Xk)}8`&!Z`o){BtU zIeDn<_X}eXB({sQ*Xw1$*SYk;l%f{ff>(Gk<Sn_hLBdW(Q8}tJj`0>GYyayk#uKj~ zsB>jEV~JO>*NRm)#JO0$!P(Ye*X5@jk6+sstoQ$eB_Y_GkRc>=Lq6*K^)TKwTy9hp z5oqe>4ibu!%3?|xG~_Q`UuKm^wlP3$iUaaq_u#%A&*O$sZE-!&2Quy+BhN~=XMjw| z;hr&X#YP=~HnbHgul3w(IHI}5ix_<$!gC1w5rzTqtu%#kB?yaiT;&sVr1advXS=*H zF*6%4?h}X^rUA5s=jxPfG<|KZ_mX~W+qs(>Rk~0d6)AI3KndK+S3c>>kzSd~43VrH z%j{7(THSba=(CNKI0AF`*WS(S(i^Yi@+86(!Wn?+e7iV{1I1`39$N{Z@i~M+1SOaA z*i$OJfW0>mo__h_B+QYAGM6hgy2Ork6-%c$gm4()WrU*$#}LL5jw75vm;i{)xk{}V ziBmX%CsiA5*<8_3_3H&##Vc=wSka+CC+Seyq9&!(ptfojb-Gh@M4;((KBWqNY;gF` z5jsry-ldzDqa&l2p&-FKPQX;0uAc_c|5wulo*;IjlHf&#&j8D?z$&u-RN+rzTvPE| cag6D4D8=;(KS97lsmHKAf~`H#-j;U$1#7;L8vp<R diff --git a/cflib_groundstation/__pycache__/crazyflie_connection.cpython-38.pyc b/cflib_groundstation/__pycache__/crazyflie_connection.cpython-38.pyc index 4c89ea7f02e6a8fa71da9a0958cffb32a399799b..e039163235a5740cf6f54c2b8bc4a2907e881d45 100644 GIT binary patch delta 1165 zcmY+DO>7fq5QaUrceAl$8^`M;I0=n$e&i}qQ>juBibTRsN}vrPg#1_vX0bPp9mi{Z zy8&!1gaA?ypn^2LH4;Hp4@f-#76<5|ATBLb6+u-h?E!IUZ*V}gDxByyOL2=WJv;Br ze7o<Az0XHhM*RnUK97TcCc1O#ue~??uLU@Zl30>VM=rP;y6UJbioF0bUa$E+oCxWL z!i)o|QPi>pV{DeGN*d>+ctoaq)ObJ!5C4iFxn<`Dp&rW3`0*yWa#xyj!FBAeTZiw^ z<trb`)#ZGqFz31q`g#5&fos26^PUcv;(L07=_buqsDCwR)|i4Rn(nJ^aF{O2CF|2p z`x?RvKAl^B<6GJz>HnIwgksi6&04OKa?ElwEuXhUW0o!GM#9T`-p!Qoy*rRJvh!-9 zHnqT*9pXiQbC7N4bFyuO0YX0xghROI4?!RP;onjV{ZJ1Ql%q5@eiE4WT;^@Mlf!|R zY8xvz18d;jK}Saj`|-<QA7JHS@IEYlMwzXIA&$)QxvvlWbob>C>{G5RabC|PvuU=Q zi)(I6B59P0Dx0LLlvWHSnO6&}m&@U}%r^5Y+e6q(s3&|*Xd`?<7$)o^*j|GBd1%#U zR3mv*$uFpE6gSEJ5!>uUwTqhA7~voum;2!xye)r=zlEc?7@mY5F&S>dSK%qo1K#rA z+{hZH;Agw|tYO0YOSK62Lf(j(#!+~LcN+hSRxMhtyq0-uag=vobFyZ7=rAoj7$B3p zp2-&Y7PQo3{IlurNcHUh#-p=r&i<8}B7S&U>562WBJGS#;a4p~FpW=IViAQB^Bf7^ z4y{-k(^6yFU^cI^JT|wse`F8+Auq@4-rA@x#d2oTmNdg#3(CA|Z=W5(LhB$rtK4c` z2iT1lKR7Ge{RTF)^*~Q$XImVAVIdk9On%QHT#3HwTOtRHK<|>})(x%5&X8`YqLrdW zjuGI?b@RaClA#>4|7^c+o)pSFGmZnXRXB}@+na<FTu<SfSV=g^qeFP2eGQgyUq>&0 z$xn4egk_#p@JfdUItDts)LmS&LBcq}OGpvY1eGvD$Pi`;Swfyb+hZldDFRJqdu3#b ckrPHH*fQSpHsa0B7{qbCvl}i|TwOW%2j5XGOaK4? delta 919 zcmYk2QAkr^6vsVtcP{5Pv$^SPwz=t8nfg?bMVh9mIZP+w(B^WtZ8mq;x2w4|v#=<V zBsq`vphSc(L9LexDyX2OB42#iLlC_MMIli^MBkY(x)*-m`JeC4z5jD=_I~Nn^=q|- zdHi|!H6-4szo+{xKoZreM0!qD2e1tv6+FgkYFAkanF<QQ0EPTjfm&%$6bs1;v}p|K zkLuI;FoNAh>o9~4ZBn;XlqyIGDOF0jtb{!Lqm6?WW4en)nz$(UiE>N|M`di(SD3vj zIm9O7vR8<O<<XE=$)rfco1gHX#WB4d_TapJA1H8##)zNv!!Vz2F8&UhLp%&SM(D<a zB?n+3oh*3{GcDBFPdLI6ymEE1@Ab2dr))1*8P#|^=nDr}D;F!ujGCmJh>6TYx9Wgj z_WL4Ylr?bab{SX|KUo{0oj?m<M+sI!2ceVDMaX8^+Re+%mY^v6CjF5Kk-71$p~;*L z+m~~ZiS-bUqqDRLmN8U%8(yH!IE7lH4euBS;T3`@0js=c#YNMA<_)*U6&!hhOQq## zEbE1L7%ux^%O%R>N2K6pA~*M~C|CtQSSQYu+u=RlD*tKDdH+jKUKYd$W*dA+ubYDk z6|IByV~eE&2JyPZZXTvan8T}WkzxstH0qJs!V!^$aMj|d&(5=xU%QGnf0>&%qX-8w z>Qmer^^c3$#j+D<sceJK=|JT=Kr1#{FR8Nr7{0XbhF$3ms|z5CmMWJp#lP8(T~)v8 zrYS*`VBp9o<FXWEGo-iYV4><9ha1n>lfopgJowGN1m|(VQ6?m~9>BYfgplOb5Y|?& z!8HD@Zh#9|Ut<<#dDn;T8VMwPQsWexxn_q6y#x)xM;Iaa2`34ogaAP#gb1`NHbF=c iXpU?$MxhubVHASR;+n~Xey1Irc-dJCbLsoeG580tZRVf= diff --git a/cflib_groundstation/__pycache__/groundstation_socket.cpython-38.pyc b/cflib_groundstation/__pycache__/groundstation_socket.cpython-38.pyc index a1ce4ff794d9ac33d55246bcee325aff4b671ac9..b0ef6e3fb8c859a32aa8281c5053a0b7b98eccde 100644 GIT binary patch delta 20 acmeyR@=Jv~l$V!_0SGuXvo><)3jqK)-UONe delta 20 acmeyR@=Jv~l$V!_0SLslrElcU7Xko0cm**4 diff --git a/cflib_groundstation/__pycache__/uCartCommander.cpython-38.pyc b/cflib_groundstation/__pycache__/uCartCommander.cpython-38.pyc index b459f6ac1b89232a83a696d2147df4b794fdad0b..60a4cea95f06d8a8f3144272a60da6dfd06f4fa1 100644 GIT binary patch delta 332 zcmdmKx6_V0l$V!_0SGuXvo>-s;9`v0yoM`;l~H#xqkuG{-ey^W1SS|~@+=`!0Ry1g zB0~_N2qH{3-xr#}2vadhN@Vj2kx2+0;o`R3_8@f*Ai{C-eDOL7TM$zLM96~(B@p2R zBqkS%MsJ=V5sYM-1*7d|OQ|S?c^hQR8Qmry<Pe_xTV|Dk7D%fOh%g2bW+1`>MA!j| zTdZk0`H3Y(E+7GS5aBubs%#Xa?_>kH6dyg1fI5iK1`+xo!URY}aVO@Kc;x4#gj5!! n7MX)Y_}xN%eBy&c979~=Lm~rQi!4Ekok4^vi13*FKrRvhsd7j^ delta 332 zcmdmKx6_V0l$V!_0SHv5rElb3z{PlL^BS%YRz|(ai~`b(`kQ415}06|$+Lt^1q^{| zi;O^oB8V{Cd|zk=BTU64DUr=9L?$70gp1p9JAl+Vf(WO{^Tq2V>_AKf5FrmDlt6?t zkeFO38ohafL@<(R7L0bAEv2Fm=53HMXLO%@kVAO#Z<$pF+90jEAi@Mhn1cvQ5Md7_ zZn382<R_LCxq<{dK!n%itFlpyev=L4QhfA50_q?_2SgZv2vZ;t#hsW_;*p<|5>i=^ nT4Vtd;dcx5@re%(aSU;d4~YzLEwTbBb^#G?Ai{I<1Gz{51vE)+ diff --git a/cflib_groundstation/crazyflie_connection.py b/cflib_groundstation/crazyflie_connection.py index 8e98010d8..d079bf50d 100644 --- a/cflib_groundstation/crazyflie_connection.py +++ b/cflib_groundstation/crazyflie_connection.py @@ -80,7 +80,7 @@ class CrazyflieConnection: # refresh the logging page so that it displays the toc # refresh the parameter page so that it displays the correct information self.setpoint_handler.setCommander(self.scf.cf.commander) - #self.setpoint_handler.start() + self.setpoint_handler.startSetpointThread() def disconnect(self): """ Disconnect from crazyflie. """ @@ -135,8 +135,10 @@ class CrazyflieConnection: raise Exception # Not implemented else : raise Exception - - self.setpoint_handler.setSetpoint(yaw, pitch, roll, thrust) + if self.setpoint_handler.setpoint.pitch != pitch or self.setpoint_handler.setpoint.yaw != yaw or self.setpoint_handler.setpoint.roll != roll or self.setpoint_handler.setpoint.thrust != thrust: + self.setpoint_handler.setSetpoint(yaw, pitch, roll, thrust) + self.setpoint_handler.setpoint_time = time + self.setpoint_handler.curr_time = 0 #self.setpoint_handler.sendSetpoint() def GetNodeIds(): diff --git a/cflib_groundstation/logs/cflie1_2023_12_01_19:57:31.txt b/cflib_groundstation/logs/cflie1_2023_12_01_19:57:31.txt new file mode 100644 index 000000000..f2deb3d7f --- /dev/null +++ b/cflib_groundstation/logs/cflie1_2023_12_01_19:57:31.txt @@ -0,0 +1 @@ +#Crazyflie #Controller:Unknown \ No newline at end of file diff --git a/cflib_groundstation/logs/cflie1_2023_12_01_19:57:44.txt b/cflib_groundstation/logs/cflie1_2023_12_01_19:57:44.txt new file mode 100644 index 000000000..f2deb3d7f --- /dev/null +++ b/cflib_groundstation/logs/cflie1_2023_12_01_19:57:44.txt @@ -0,0 +1 @@ +#Crazyflie #Controller:Unknown \ No newline at end of file diff --git a/cflib_groundstation/logs/cflie1_2023_12_01_19:58:02.txt b/cflib_groundstation/logs/cflie1_2023_12_01_19:58:02.txt new file mode 100644 index 000000000..e69de29bb diff --git a/cflib_groundstation/logs/cflie1_2023_12_01_20:00:03.txt b/cflib_groundstation/logs/cflie1_2023_12_01_20:00:03.txt new file mode 100644 index 000000000..f2deb3d7f --- /dev/null +++ b/cflib_groundstation/logs/cflie1_2023_12_01_20:00:03.txt @@ -0,0 +1 @@ +#Crazyflie #Controller:Unknown \ No newline at end of file diff --git a/cflib_groundstation/logs/cflie1_2023_12_01_20:05:31.txt b/cflib_groundstation/logs/cflie1_2023_12_01_20:05:31.txt new file mode 100644 index 000000000..f2deb3d7f --- /dev/null +++ b/cflib_groundstation/logs/cflie1_2023_12_01_20:05:31.txt @@ -0,0 +1 @@ +#Crazyflie #Controller:Unknown \ No newline at end of file -- GitLab