From d6e22519d53603812f5503c52e0522264a701784 Mon Sep 17 00:00:00 2001 From: Miaow <3703781@qq.com> Date: Thu, 10 Mar 2022 15:30:21 +0800 Subject: [PATCH] fix bug at resuming operation The START command following a STOP command can cause misplaced counters. This commit fixes the bug by setting counter variables to their initial value as soon as STOP command reaches. --- binary/target | Bin 60043 -> 59639 bytes source/main.c | 88 ++++++++++++++++++++++---------------------------- 2 files changed, 38 insertions(+), 50 deletions(-) diff --git a/binary/target b/binary/target index 29dd2f86a4f19db5428c3998fa854f342927cb3e..690c2e26895099c82c9157f487aeba555c3c2aad 100644 GIT binary patch delta 9770 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

<^uel%-*+Ag5IrOJ9-C=X;ix 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 b+^oyz9BzZzBJyu3Cf*KOJX8OcG2s6J9EK0o delta 10233 zcmaJ{4O~=Zx_{4^8604+;X}S1MnFPE7!eH>(W}^^qN0q3Mt&3;TV%Q+R}J@IQkUN@ z8v0U~3>L5x}L0t*-gw*>+V zM7&JG@Us)vF_ukO&sYv&w7Z-z{BjASsXW47jO7#dMvn=b7%L#`!`OPlgBdF#{1AFg z*vuqWLWD14rG)($DOYb6|wDJMLfv39~SjCBxx zn6Xa6v5Z|OJc6-a!Xp_QARNcoO~RuYyG=Nru^$NA7`sb&3|0g)AIQ&nMM(B0aE-5a zo6eMV+rK~RROt*2ou;8vG<1@Nj?>W58aiA<2WV)MLQ8VPdX3`lo%@}*t)T}r^mPs0 zp`qI}bc=>QrJ;{%=mU48`;G0>C~7rym4>d+&}ACBL_-&8=mHI$uc32QTEevFs0=NE zhR)E?X&O33LnmqII1L@Gp~E$FfQB}Kj#t-PuTk9n?*6RY*3bjr@j#!%S^GZ5kvoXZ zcZ{(BTeUNQRXcUIS38-Nf5q5>9*ZkMSnYE4bs(SMe`baavwqRy#cnMH)Bz5Vd@)iDa>jZ<1)v_V z4{)~}CkFZ-PV=A48-+Q1o$n*!6mR~%Z>X5;&CmEgDMolZ;{8?&!b!f%{}JIJ|I+`@ zBk#h6nxT-f019seHUqLD&jC;q!HxXwfJ0tnMr^E|uNv~LhIK3r{HqYJMxl;T2gx)Y zKv8L6NsZJ&b#RVng8OvBJ;%cEN#d+*sMY{#05tY8VC~qClU&oePK3P)V6Y7bbnHeZ zfK5P?m<7?G!2< z-wYciPAr170&vu=tp`rW8Z`rY0qx-PfbRlZn_-K-ThY(xg?vHu4NDwIVo6M4Vqua2 zpoZ$3_@d!ALNmcqR5D3(o0D69GhY<5)GHli4j_A><5*0nFk^jkwKLp2yIaRLf3*g* zj@5MK2Uk18esuLSTTPGE=I!(nSznH^+Np;u8#X2zcal6EvVZ>I>QCcCV-v;&Kx4FS zahhYRonG(^XS2ISTk%&6a=jHiwPM@cDO$I5Qe`platD&^q*~1oWTLk33nY#L**8Hh6}XsaMqE zSpnmCxY{YYd-s8@xGQr|b)vHv&dglXH5CqWSJ8Eyt+-RPp{wRCP8%9{g=}m!T{_qW z^A#h4hMK5(OxIta(Nj|x0`YHxZ{e?vcw~6Rcx7NDeFxHdk7_4bm!l(fpbvmv!*7jv zcytlCI&hnz8E1Rk`3|N6L-5K*1U2p&=r=$g&c}=l8XoLY`Xj;;FMh8$MBuQ7q!Y zZ92Bcf-Y*M1eU8{ImO+IXr10&z=w?r5(4;yQ4uTK9*As%{XE#m!oEF8S<-PfYz*{{ zW)jJ*r^)RjxJSa^GYvjr@S(Xl;+7BStDPy358)q;iWu6AXw)m3rQNCLJ@D`7e-Gv42JmkJS09$ z3|7QT`H2L7zC7M$`1?<;{$<=Z!Qb;Kj0x3HXcgZdA0$kXEjnP)3X7?*2otQb#wu&F z6Ksb4&~0nn`gmOlDxef`$%BD@w`?zsBb zqrF*p8VigN&Nad*(5V5TKIymOPcL-_d8cV3e>*GSxrwBKbMpse93=Knl7D!T#uP$ zr62VMoMS8)5Dt(Z_dtVN=X3`%Z)9F?XDJ3zik0!AOa{6L^dQh{Ko@`>eb?15V8x8s zteCgH034qj=;-*oi_K0+iB=j1Ar!iJoYk5xROtOFFj|Yw(0IwI z_+R|iIDhY6yeq0-!D22Exc~TJk{R6!HitP|*$FzKU9@44G`j-O1=BC*DXV83nlvLi z&yojvJLZBgy0+}BL{vWHG;Qp%b<&oaZoyCOlE|q!2^Fu?KXgtmBPl+o{X)uiHw3F}c_HCU%*+#_O=gCS{GgN#BlRO9NDwxIy71Y$)aRa74Jj z#^k83@kETE0l}&eJPd1G1V?p^%OLv)I)U{1%k<)dG;}n43ZNT?*`1HsHPZ~ZJ3ynx z*RQ;pbtu4kJi#;~@NsOUM`0WX$IWPvig%rRijyI0M?>miU%o_OxqvU`JZa7Yrc<>B zIPN3HqU8ke)AW4s>7ZKyx6koy$%!F@)P0OGf1;sR^UKLu!_OdLSy`Af(_HQRTAdA8 z)@m#>`TPk%!V$i9qCYR15Fj=z<~t^g4>_$dFV>jH@vaG3!%H=R|E#fmQe!z-4!i+@ z9}a22Xw*DyM*1=%eJ%H`c4qPY6T_r5P+K%nQZ-Tf{)r(#KYhxp-L2M>T{o>Ky3E*~ z3(*5JhGvAWK;xUB@x2P)>lnJagUGiH^ZuyYw*|VD0+WOe(csZxTwY7HhwVWF<}Synf&;8D!}ONl8((3jCU|?s!RYa z5xtYc0qO>v3OQ}c>?M5nKJD*=5*93+J9p;X z-}rc?(BtEU%;n>iN{^4%3k53**1a%!^31t2?KA%)W9E_>X*@F{pMT=8>Lw4*<^CDN z9Y-^c3R2ofE(zO&RRP!6*B93V+wQrfcHksn;|Z6P47~4@OG*LGJ?)aF0^1v1QW|h} zvr9?`j{VdnWdN50X96DwwgV@ffemo*S(lUpTm-xvxcoE30+vplcS(65dV%wSZ??Lm zHNXR3xTFH$>uoM+J#fdDa0Z@w(Ipj=9=HTJ>5@w-1y1R7NoByzz~#V|T`s8tn012& zwgFcG*8#K(IN6Dr0Iu(KNe6)UeeIGO2=}?9qrkBP7#(o! zH_FVl0@v5SUtIpJGJ|En0{?m5^w5mcjN#%;zA?mw8N>UY;R21>=JO?)sp8ZHd}roH zF?l`@oPR?aKviWr17ko2ARkZ$*av6<3;;}Lp$B9D@&RRleSj9g0KnLSO#+w-$N{Ve zQ~>G$Er3=)8=xJ~0q6u=2lTcuE-e_!%NOV^1K@80ZUcS*+yyY?K0UyAj{kmvh0Fp? zV9fy9J1U5bi&=|M*YZVKujBLLo2)P)pL^OP1UnyLkBFrElyu~2^}*#K6WPg8%FLjf z#~jbtTXj;kk+HW7j6JvFx2u^8#G2nd|J2GCURd_jbGhsVyo3u^SZfeKlOa>%HOd(gqFQ?R}`#Z8^IB=Z0)+0>sGQduxP^ZVfG-8 zXu2fvAB?xW5IX@wGU(`*#D6imER0YDIj8ycr7w!+EXRsvcqeq)9Yw2BaPhm4AAV-F zNB(}sMh)V(Hu&?M%i#SC+6p*1vmA1FZRZ<)}63uq>8&j?R} z;5c7Wm}Y3N$1?M`3MYu^3;ACQ$9qvs`vJyodAZ|`bFBK$=LG}F)A*J36AWn|phoAx z8-^PWfEwV_HjFh4fXd?=AkTCa;_CSCHbxohNX~a|%n}P0 z^1pAi&Wgp=hR-#ufiPqw)>$y<(n&(AAcVRlbp7G8l4d5tEh#0*J@OjnmNaMa#V=X| z>PS&bipUBjTyGZN`l9s-x{LC;gNYV~yA^bq46iT3={Z^0ryLsHJs8IOcvAJlRPWX}kMf!*5YMAJZdeO{3D1KL} zL@WN6aB0r`ui~%ZFF`H(H-Ogp?*y%9;(q}N0c&9yC_IK@T^J=SfdjP>ehBwEQ2Yo8 z8ZYZeC2r3R(#sqv#O=$2Y5xinFQbp*_PmhSDB>hoN?;3^hrSk0p@Jv5%n~SQ)rVLw z_|j~L$QoR zF+mAv1B@pz!3q1YtBjoFK9|K`x3w z(oroCQgL6R%O=4PY9^dEr$I-hYRFe)F;r=nN`#QT6xE^#sD20uCzl9CKt)E#BobH^ z0hPA$fYtF@mGM3*57?lSs}aqp4LT}_t(u`5bok(8YzFOa7V1SO?pgGSX7l&N_p5mI8|Uy=d2Z(>yjA*l#uAbvz*>g(rl>ZWD+hpZS9=D%1Mv>Q%|KBZvLd-FWXSeXYUE}!EyUKA-^uw-c zK{P)@ptafX2al-7mSW5?Z}tV6NOj9&^@E%MBdK#>X!6!Ge0s4{2tsG0MBsnjZSk@~RDzRm{TTmtZ)7C> zAOenIy_gG+z=Wc~CLft^hNAvsN8(%89(ri*Jo_?j)w$1hXP zpMltX#_0%;;Lnij=JIDwM|#LVVb9|`Kq|jg^TQx*xF$x?*$pxYBz}zYYK-(yeyrw+ zAgAIdQ-4076li5>+sS1eh0<50rV#$Eq{; z#EjE?)!BHl?L2?|Y`mY^ONL%j9Ag&0c-A6jp5}MXTKv>DQC!MeQx=bDNllE#JX36e z1lkhOR#jJFMpGEvY>Eb91CRN`_HxgG%KE@YFtjf%G_MSwQtHofEYM z;+02f(d-@@>KoaO%3b9d%$h(Dk7EM=!Hnh|)oR@`XEYP^ZpdKWeE8|PE~ z+8^-Fg?H;}Ke{82(|Dt%KGYiTclQD7qE>#VHFXT#t}BnSirMulZ;}^^YIEf=$>YxD zD=#EOQX#IDCjYXG%Iws(@{;+sxF~!OTMwS<7FE9uJe4gdvgIAL z8$1;)Dt`bx)hsHHAMPYZHH#YXa~M#`qVnH>r;0`82crO^f<@(H!Bf4W@-UZcZDjz; zG??&))AD7%niky2c4+4Xmdc$TxeS&UkzSF?qXf)DMXU1EAeF-^Pn)~)@O_^2RN^X+ z;$MR|tI7-GK+&sK6;J>(Uau-o0qAwB@}w_5#$(zniBvDB;xtUeaScBQ{3#7jZk@+? zVOxA6{aXdqjl{KhWo!9>3o37xhrjP*ezDEsSFbU90?`{j<{n?hkG^?AwN`d~@2Ow& zDZeBL6SMIBXZ;tbxecFDY$F1xJmtDqz^myL{~(H0fxn;BeA#>8)yzei>^OMbj5L0k zDk6b;T$HPqn2V`?)D1g&;wPHeXjCj1MB&AyzNIG_TaGCu@rQCX3NOzUZ=T?dmo4=1edF@n$UNi$r5}N;0ObL#lob<0gWLojFONl6EaLhl zyzq*}kCvaZ7Dc`YEyQnMi5Dv{G#J$%<9Dva`=x6_zJ$|Sisr9I`j~MoLwG{!J%&n;ncZ^HKSQh2_{V@Z+xd;F7L>1sj)WntC(u6_Q~%y1W2!Xy%#JWW zZJ49bAbMekB~qzTm8QRfm@X}nDFC{17d)opP=|%C$1eiG=}w15$m2t> (n)) | ((x) << ((64) - (n))) #define ROTATE_UINT64_LEFT(x, n) ((x) << (n)) | ((x) >> ((64) - (n))) @@ -50,11 +47,15 @@ int main(int argc, char *argv[]) // fflush(stdout); // valve_test3(100.0f); // valve_test2(200.0f, 0); - // valve_test(200.0f); + // for (int i = 0; i < 999; i++) + // { + // valve_test(200.0f); + // } // printf("OK\r\n"); // valve_deinit(); hostcomputer_init(&data_queue, &cmd_queue); + printf("\r\n>>>>>\r\nstatus==SLEEPING\r\n<<<<<\r\n\r\n"); uint64_t cmd; int TRUE = 1; while (TRUE) @@ -62,12 +63,25 @@ int main(int argc, char *argv[]) if (queue_uint64_get(&cmd_queue, &cmd) == 0) { process_cmd(&cmd); - usleep(100000); } + usleep(100000); } hostcomputer_deinit(); queue_uint64_deinit(&data_queue); queue_uint64_deinit(&cmd_queue); + + // encoder_init(on_encoder); + // sleep(100); + // encoder_deinit(); + + // cameratrigger_init(); + // for (int i = 0; i < 100; i++) + // { + // sleep(1); + // cameratrigger_trig(); + // } + // cameratrigger_deinit(); + return 0; } @@ -79,14 +93,16 @@ void process_cmd(uint64_t *cmd) { if (tmp_cmd == HOSTCOMPUTER_CMD_START) { + queue_uint64_clear(&data_queue); valve_should_trigger_pulse_count = camera_trigger_pulse_count / HOST_COMPUTER_PICTURE_ROW_NUM; for (int i = 0; i < camera_to_valve_pulse_count * HOST_COMPUTER_PICTURE_ROW_NUM / camera_trigger_pulse_count; i++) - queue_uint64_put(&data_queue, 0); + queue_uint64_put(&data_queue, 0L); + valve_init(); cameratrigger_init(); encoder_init(on_encoder); + printf("\r\n>>>>>\r\nstatus==RUNNING\r\ncamera_trigger_pulse_count=%d\r\nvalve_trigger_pulse_count=%d\r\ncamera_to_valve_pulse_count=%d\r\n<<<<<\r\n\r\n", camera_trigger_pulse_count, valve_trigger_pulse_count, camera_to_valve_pulse_count); status = RUNNING; - printf("\r\n>>>>>\r\nstatus==RUNNING\r\n<<<<<\r\n\r\n"); } else if (tmp_cmd == HOSTCOMPUTER_CMD_TEST) { @@ -94,10 +110,7 @@ void process_cmd(uint64_t *cmd) valve_test(500.0f); valve_deinit(); } - } - else if (status == NOT_INITIALIZED) - { - if (tmp_cmd == HOSTCOMPUTER_CMD_SETCAMERATRIGPULSECOUNT) + else if (tmp_cmd == HOSTCOMPUTER_CMD_SETCAMERATRIGPULSECOUNT) { camera_trigger_pulse_count = tmp_data; } @@ -109,38 +122,6 @@ void process_cmd(uint64_t *cmd) { camera_to_valve_pulse_count = tmp_data; } - else if (tmp_cmd == HOSTCOMPUTER_CMD_TEST) - { - valve_init(); - valve_test(500.0f); - valve_deinit(); - } - if (camera_trigger_pulse_count != 0 && valve_trigger_pulse_count != 0 && camera_to_valve_pulse_count != 0) - { - status = INITIALIZED; - printf("\r\n>>>>>\r\nstatus==INITIALIZED\r\ncamera_trigger_pulse_count=%d\r\nvalve_trigger_pulse_count=%d\r\ncamera_to_valve_pulse_count=%d\r\n<<<<<\r\n\r\n", camera_trigger_pulse_count, valve_trigger_pulse_count, camera_to_valve_pulse_count); - } - } - else if (status == INITIALIZED) - { - if (tmp_cmd == HOSTCOMPUTER_CMD_START) - { - valve_should_trigger_pulse_count = camera_trigger_pulse_count / HOST_COMPUTER_PICTURE_ROW_NUM; - printf("valve_should_trigger_pulse_count=%d", valve_should_trigger_pulse_count); - for (int i = 0; i < camera_to_valve_pulse_count * HOST_COMPUTER_PICTURE_ROW_NUM / camera_trigger_pulse_count; i++) - queue_uint64_put(&data_queue, 0); - valve_init(); - cameratrigger_init(); - encoder_init(on_encoder); - status = RUNNING; - printf("\r\n>>>>>\r\nstatus==RUNNING\r\n<<<<<\r\n\r\n"); - } - else if (tmp_cmd == HOSTCOMPUTER_CMD_TEST) - { - valve_init(); - valve_test(500.0f); - valve_deinit(); - } } else if (status == RUNNING) { @@ -150,6 +131,12 @@ void process_cmd(uint64_t *cmd) cameratrigger_deinit(); valve_deinit(); queue_uint64_clear(&data_queue); + count_continues = 0UL; + count_valve_continues = 0UL; + count_camera_continues = 0UL; + count_valve = 1; + count_camera = 0; + count_valve_should_be = 2; status = SLEEPING; printf("\r\n>>>>>\r\nstatus==SLEEPING\r\n<<<<<\r\n\r\n"); } @@ -159,6 +146,7 @@ void process_cmd(uint64_t *cmd) void valve_test(float ms_for_each_channel) { uint64_t valve_data = 1ul; + for (int i = 0; i < 48; i++) { usleep((useconds_t)(ms_for_each_channel * 500.0f));