From 490da9d724ded266b7fe342e2f747acca0b4bca0 Mon Sep 17 00:00:00 2001 From: Tristan Krause Date: Wed, 3 Apr 2019 11:59:15 +0200 Subject: [PATCH] Version 0.2 --- driver/drv/b15f.cpp | 9 +++++++++ driver/drv/b15f.h | 8 ++++++++ driver/drv/b15f.o | Bin 31736 -> 31720 bytes driver/main | Bin 65976 -> 61936 bytes driver/main.cpp | 6 ++++-- driver/main.o | Bin 18472 -> 14768 bytes 6 files changed, 21 insertions(+), 2 deletions(-) diff --git a/driver/drv/b15f.cpp b/driver/drv/b15f.cpp index 04f85ff..4a9cae5 100644 --- a/driver/drv/b15f.cpp +++ b/driver/drv/b15f.cpp @@ -152,6 +152,15 @@ std::vector B15F::getBoardInfo(void) return info; } +bool B15F::activateSelfTestMode() +{ + usart.clearInputBuffer(); + usart.writeByte(RQ_ST); + + uint8_t aw = usart.readByte(); + return aw == MSG_OK; +} + bool B15F::digitalWrite0(uint8_t port) { usart.clearInputBuffer(); diff --git a/driver/drv/b15f.h b/driver/drv/b15f.h index c25b028..067f4a6 100644 --- a/driver/drv/b15f.h +++ b/driver/drv/b15f.h @@ -97,6 +97,13 @@ public: * Steuerbefehle für B15 * *************************/ + /** + * Versetzt das Board in den Selbsttest-Modus + * WICHTIG: Es darf dabei nichts an den Klemmen angeschlossen sein! + * \throws DriverException + */ + bool activateSelfTestMode(void); + /** * Setzt den Wert des digitalen Ausgabeports 0 * \param port Wert für gesamten Port @@ -192,6 +199,7 @@ private: constexpr static uint8_t RQ_TEST = 1; constexpr static uint8_t RQ_INFO = 2; constexpr static uint8_t RQ_INT = 3; + constexpr static uint8_t RQ_ST = 4; constexpr static uint8_t RQ_BA0 = 5; constexpr static uint8_t RQ_BA1 = 6; constexpr static uint8_t RQ_BE0 = 7; diff --git a/driver/drv/b15f.o b/driver/drv/b15f.o index d78839da6bf9fc79760f6b74271d898ea8d466d6..dcffd38294c79d30a4a8705de3981ea6522ea2c6 100644 GIT binary patch delta 5709 zcmZ`-4Nz3q6@GVR4fumB{#;(v=tdMU@n>TRIx5S8=x+RD0TomXo46FB9Uve=mHR`mrfi(3ejS0*&6DKpVQag=_X6!ll-DgjBx@YE| zci;DY=iGDeyZe6j&R62bS7LX%s63W&C2nSszwPb~1I^#|>FGE;+9&Eb@BWB4&a64R zyJGr?3EN0z9Cr>Rw-ozN-bdRq*)Uf4cUD(ol7~(%EHjJ?i{eRie$gigTO zOK^+}iz?UTdNM28^5f3u51xo@`9n%sZH>65%(wQezrDF6(00y0=b!aXHU5&e&((3n zgdF34H9YDoUQy(4AFtAH|9gFszwN4uw~PFJBYcrEuEi=T&nhVoOKSVne<4p-wV~uf zUQ|hWR!MofB+Tk>Q-l2f;%LPhv4-zdN;PTgx@1rTAMdD;UHad3* z;}-&ZhS62@NPfIK1$(~~RunF&VfYf0wmP0oq{36N^}vBCY2pt0NlwyEgfFLzh19eZ zn3xtPO7KiNNmmcPv^23_`EwA#em$H@D-t;{JbjW_51#Z%j-)}bGJT=Il<8>+cLre; zS{Q;;MnYfuIB^obO<(SakAr0yg<>sqW-M=+iGriFGti#LrnYP80x5eaH8TzVa$HDLI&)bIvIK@ z;<|o2_27^ewLC~pMKakKW|Zqe<|9V7K;s=z_&SaEX?%huH#TeBz$2NB@7DOl@8T`S zJDSMR1kIG}tj4!Q;U8=KjK;Gpxp7$TUs}CB+;us-X>eCTe#&4oQ!fG?LfG!nEfp;nS{F<46dYSD&5bcMO-i#}`JGC6 zB!=>o(!8hqC8hiQIY)l9z-`f;qKjGe^TGR3yBoX;^9z_(nQ=NKDi zY!B2T+t1iC#tuN|av6A7-(6@H8yGu*;l&KkV0Z!3d<%?)^~AfwDLVYBz^UN{z%fdh=)%GjSWoJXBt_)|=O8eE0ayvSI- zzVCytPzF9?>^2tLukopfZD;rmjnk}OX80}W#BATNZ2THK_05^)%dbQ!!^>H=5Qriv z-cbH3d2`e-q|qqDZfy37{R~1yGH{l$e7~j+rx?SaYG1=n!sg#y*~iCulSaKQ=vC zV<+?%OVL5zJj^spP-D;ZU2v_C<_XQxd@C9I2k;?#ov}rX9S)wA(lc5=E~Bqq2E!M# zsM!=H7D6v(Ud%Krn5Iy%t75PXl)=2hSbmLeLkL-S5~f3=HF*)6J>N`-;OK?Wy;253 zT0@o7yN<1Ch=I4qz>mPORZ<)S_bO?gWaCa_IWH0`K2m--h*Bv=gR4Y}ROm&Y0iEb) zLO*J9RNt@I72qq8o?p2z5gOI`Lu_`P7a9H(!||01vt3r1`&72iRsW{)!V*D zC}$Om&438jhSvx+^Otc8f!%c?s=i+SW$NXOKt&t)CF7ySe{~~#FD~sYQ z&qpIvOM!z#lOm8}bUG3Qy;ze3*pghhE+)J>%s1l?<;IfOni&?xg0*zDOo zOstrpG*2?kET&ng*e1bJ7x@xXI;laJlZ49Vt5h57lCh`G?!_X>U@l`MNqp=iYkaaEk!MK zV!s)>vHueEVt*$LU>~0d=-&c&xfDME5B5(feK+aN^K4vxXYNy)FKBf9fWVwBcUcXY ztcJn*)tzeNZyUoI&hM_H7|!26#%Y|cAiv+bEqtol`Wx85(^(?^$jOG*a_RB2bUdnq zMFGop0{Y8k%V`$1lCf7<)LRVy57W0ZJV5^opwXi6QHmJO^Hf+%`|A06UmgWJ> zV{f*Hu}?dpfr84 z%Nb6b{T*M$a2jBi)^~K(K3C@yufS*3E%;|hxW2Dci>uW z7QT_Vp7-MaX+iYm5J6u9z38`qtIjLpAz0^i95rE2T{b?%dhz6j3CZ=@u)8iEO6q6h zvouog6(gY+eLA={c@xf!wenwv?uwDHaZ_r-{&5zP5BoM{Ic|-I4>o0sSHacb#hgL( zJrHT|LP0}3Ty2;QyQh}OtlI+3fEr9N;pYhA82R5 eY|ctZr#ECYKa}EG%^d6OZP?eGB^sf(Iqkny*H|$C delta 5656 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 diff --git a/driver/main b/driver/main index d5d4996d1f27da40b066830ac64c8269e90e2cb5..6d56236f2088ca5c38e09ad8b9184c0488b04a62 100755 GIT binary patch delta 21128 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 V>%|!c!%)9YZXxbrU^8y^{D0gA#hw5F delta 22811 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 diff --git a/driver/main.cpp b/driver/main.cpp index 1de1036..2575520 100644 --- a/driver/main.cpp +++ b/driver/main.cpp @@ -122,6 +122,8 @@ void kennlinieZweiterQuadrant() void testFunktionen() { B15F& drv = B15F::getInstance(); + drv.activateSelfTestMode(); + return; std::cout << "DIP-Switch: " << (int) drv.readDipSwitch() << std::endl; @@ -157,8 +159,8 @@ void testFunktionen() int main() { testFunktionen(); - kennlinieZweiterQuadrant(); - kennlinieErsterQuadrant(); + //kennlinieZweiterQuadrant(); + //kennlinieErsterQuadrant(); std::cout << "Schluss." << std::endl; } diff --git a/driver/main.o b/driver/main.o index 5b54449cbccb3b6350e36c801ab5eaf5b9a5a432..74c1ce53ec609f33b65d5ac2aaf1c531b14a81d5 100644 GIT binary patch delta 2872 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 PDvz6cD5WL=)2Z@*EnDgb