From 443da3b82208bfac54410b5f034d92693518e923 Mon Sep 17 00:00:00 2001 From: watney Date: Tue, 3 Sep 2024 10:21:34 -0700 Subject: [PATCH] Rename Fw/SMTest to Fw/Sm --- FppTest/state_machine/CMakeLists.txt | 2 +- FppTest/state_machine/DeviceSm.cpp | 7 ++--- FppTest/state_machine/DeviceSm.hpp | 20 +++++-------- FppTest/state_machine/HackSm.cpp | 13 ++++---- FppTest/state_machine/HackSm.hpp | 16 ++++------ FppTest/state_machine/SmTest.cpp | 16 +++++----- FppTest/state_machine/SmTest.hpp | 6 ++-- FppTest/state_machine/test/ut/Tester.cpp | 2 +- Fw/CMakeLists.txt | 2 +- Fw/SMSignal/docs/.gitignore | 1 - Fw/SMSignal/docs/img/FwComBDD.jpg | Bin 60296 -> 0 bytes Fw/SMSignal/docs/sdd.md | 36 ----------------------- Fw/{SMSignal => Sm}/CMakeLists.txt | 0 Fw/{SMSignal => Sm}/README | 0 Fw/{SMSignal => Sm}/SMSignalBuffer.cpp | 2 +- Fw/{SMSignal => Sm}/SMSignalBuffer.hpp | 0 Fw/Types/Types.fpp | 6 ---- 17 files changed, 36 insertions(+), 93 deletions(-) delete mode 100644 Fw/SMSignal/docs/.gitignore delete mode 100644 Fw/SMSignal/docs/img/FwComBDD.jpg delete mode 100644 Fw/SMSignal/docs/sdd.md rename Fw/{SMSignal => Sm}/CMakeLists.txt (100%) rename Fw/{SMSignal => Sm}/README (100%) rename Fw/{SMSignal => Sm}/SMSignalBuffer.cpp (96%) rename Fw/{SMSignal => Sm}/SMSignalBuffer.hpp (100%) diff --git a/FppTest/state_machine/CMakeLists.txt b/FppTest/state_machine/CMakeLists.txt index d4fa621627..4996070a89 100644 --- a/FppTest/state_machine/CMakeLists.txt +++ b/FppTest/state_machine/CMakeLists.txt @@ -4,7 +4,7 @@ set(SOURCE_FILES "${CMAKE_CURRENT_LIST_DIR}/DeviceSm.cpp" "${CMAKE_CURRENT_LIST_DIR}/HackSm.cpp" ) -set(MOD_DEPS Fw/SMSignal) +set(MOD_DEPS Fw/Sm) register_fprime_module() diff --git a/FppTest/state_machine/DeviceSm.cpp b/FppTest/state_machine/DeviceSm.cpp index c4d0ae0801..14b0357cf7 100644 --- a/FppTest/state_machine/DeviceSm.cpp +++ b/FppTest/state_machine/DeviceSm.cpp @@ -8,7 +8,6 @@ #include "stdio.h" #include "assert.h" -#include "Fw/Types/SMSignalsSerializableAc.hpp" #include "DeviceSm.hpp" @@ -22,7 +21,7 @@ void FppTest::DeviceSm::init(const FwEnumStoreType stateMachineId) void FppTest::DeviceSm::update( const FwEnumStoreType stateMachineId, - const DeviceSm_Interface::DeviceSmEvents signal, + const DeviceSm_Interface::DeviceSm_Signals signal, const Fw::SMSignalBuffer &data ) { @@ -35,7 +34,7 @@ void FppTest::DeviceSm::update( switch (signal) { - case DeviceSm_Interface::DeviceSmEvents::RTI_SIG: + case DeviceSm_Interface::DeviceSm_Signals::RTI_SIG: if ( parent->DeviceSm_g1(stateMachineId) ) { parent->DeviceSm_a1(stateMachineId, signal, data); parent->DeviceSm_turnOn(stateMachineId); @@ -56,7 +55,7 @@ void FppTest::DeviceSm::update( switch (signal) { - case DeviceSm_Interface::DeviceSmEvents::RTI_SIG: + case DeviceSm_Interface::DeviceSm_Signals::RTI_SIG: if (parent->DeviceSm_g2(stateMachineId, signal, data) ) { parent->DeviceSm_a2(stateMachineId); parent->DeviceSm_turnOff(stateMachineId); diff --git a/FppTest/state_machine/DeviceSm.hpp b/FppTest/state_machine/DeviceSm.hpp index 884dbca062..bf8c6b0563 100644 --- a/FppTest/state_machine/DeviceSm.hpp +++ b/FppTest/state_machine/DeviceSm.hpp @@ -9,18 +9,14 @@ #ifndef DEVICESM_H_ #define DEVICESM_H_ -#include +#include #include -namespace Fw { - class SMSignals; -} - namespace FppTest { class DeviceSm_Interface { public: - enum DeviceSmEvents { + enum DeviceSm_Signals { RTI_SIG, }; @@ -30,7 +26,7 @@ class DeviceSm_Interface { virtual bool DeviceSm_g2( const FwEnumStoreType stateMachineId, - const DeviceSm_Interface::DeviceSmEvents signal, + const DeviceSm_Interface::DeviceSm_Signals signal, const Fw::SMSignalBuffer &data) = 0; @@ -39,7 +35,7 @@ class DeviceSm_Interface { virtual void DeviceSm_a1( const FwEnumStoreType stateMachineId, - const DeviceSm_Interface::DeviceSmEvents signal, + const DeviceSm_Interface::DeviceSm_Signals signal, const Fw::SMSignalBuffer &data) = 0; @@ -60,19 +56,17 @@ class DeviceSm { DeviceSm(DeviceSm_Interface* parent) : parent(parent) {} - enum DeviceSmStates { + enum DeviceSm_States { OFF, ON, }; - enum DeviceSmStates state; - - void * extension; + enum DeviceSm_States state; void init(const FwEnumStoreType stateMachineId); void update( const FwEnumStoreType stateMachineId, - const DeviceSm_Interface::DeviceSmEvents signal, + const DeviceSm_Interface::DeviceSm_Signals signal, const Fw::SMSignalBuffer &data ); }; diff --git a/FppTest/state_machine/HackSm.cpp b/FppTest/state_machine/HackSm.cpp index e4f88ccd0e..1f0b94840b 100644 --- a/FppTest/state_machine/HackSm.cpp +++ b/FppTest/state_machine/HackSm.cpp @@ -8,7 +8,6 @@ #include "stdio.h" #include "assert.h" -#include "Fw/Types/SMSignalsSerializableAc.hpp" #include "HackSm.hpp" @@ -22,7 +21,7 @@ void FppTest::HackSm::init(const FwEnumStoreType stateMachineId) void FppTest::HackSm::update( const FwEnumStoreType stateMachineId, - const HackSm_Interface::HackSmEvents signal, + const HackSm_Interface::HackSm_Signals signal, const Fw::SMSignalBuffer &data ) { @@ -35,13 +34,13 @@ void FppTest::HackSm::update( switch (signal) { - case HackSm_Interface::HackSmEvents::RTI_SIG: + case HackSm_Interface::HackSm_Signals::RTI_SIG: parent->HackSm_turnOn(stateMachineId); this->state = ON; break; - case HackSm_Interface::HackSmEvents::CHECK_SIG: + case HackSm_Interface::HackSm_Signals::CHECK_SIG: parent->HackSm_doDiag(stateMachineId); this->state = DIAG; @@ -59,13 +58,13 @@ void FppTest::HackSm::update( switch (signal) { - case HackSm_Interface::HackSmEvents::RTI_SIG: + case HackSm_Interface::HackSm_Signals::RTI_SIG: parent->HackSm_turnOff(stateMachineId); this->state = OFF; break; - case HackSm_Interface::HackSmEvents::CHECK_SIG: + case HackSm_Interface::HackSm_Signals::CHECK_SIG: parent->HackSm_doDiag(stateMachineId); this->state = DIAG; @@ -83,7 +82,7 @@ void FppTest::HackSm::update( switch (signal) { - case HackSm_Interface::HackSmEvents::RTI_SIG: + case HackSm_Interface::HackSm_Signals::RTI_SIG: parent->HackSm_turnOff(stateMachineId); this->state = OFF; diff --git a/FppTest/state_machine/HackSm.hpp b/FppTest/state_machine/HackSm.hpp index 438cf3f4ba..2900ac8c16 100644 --- a/FppTest/state_machine/HackSm.hpp +++ b/FppTest/state_machine/HackSm.hpp @@ -9,18 +9,14 @@ #ifndef HACKSM_H_ #define HACKSM_H_ -#include +#include #include -namespace Fw { - class SMSignals; -} - namespace FppTest { class HackSm_Interface { public: - enum HackSmEvents { + enum HackSm_Signals { RTI_SIG, CHECK_SIG, }; @@ -46,20 +42,18 @@ class HackSm { HackSm(HackSm_Interface* parent) : parent(parent) {} - enum HackSmStates { + enum HackSm_States { OFF, ON, DIAG, }; - enum HackSmStates state; - - void * extension; + enum HackSm_States state; void init(const FwEnumStoreType stateMachineId); void update( const FwEnumStoreType stateMachineId, - const HackSm_Interface::HackSmEvents signal, + const HackSm_Interface::HackSm_Signals signal, const Fw::SMSignalBuffer &data ); }; diff --git a/FppTest/state_machine/SmTest.cpp b/FppTest/state_machine/SmTest.cpp index 7e615c537b..5de48fe92b 100644 --- a/FppTest/state_machine/SmTest.cpp +++ b/FppTest/state_machine/SmTest.cpp @@ -31,17 +31,17 @@ SmTest ::~SmTest() {} void SmTest::schedIn_handler(const NATIVE_INT_TYPE portNum, U32 context) { Fw::SMSignalBuffer data; - device1_stateMachineInvoke(DeviceSm_Interface::DeviceSmEvents::RTI_SIG, data); - device2_stateMachineInvoke(DeviceSm_Interface::DeviceSmEvents::RTI_SIG, data); - device3_stateMachineInvoke(HackSm_Interface::HackSmEvents::RTI_SIG, data); - device4_stateMachineInvoke(HackSm_Interface::HackSmEvents::RTI_SIG, data); - device5_stateMachineInvoke(HackSm_Interface::HackSmEvents::RTI_SIG, data); + device1_stateMachineInvoke(DeviceSm_Interface::DeviceSm_Signals::RTI_SIG, data); + device2_stateMachineInvoke(DeviceSm_Interface::DeviceSm_Signals::RTI_SIG, data); + device3_stateMachineInvoke(HackSm_Interface::HackSm_Signals::RTI_SIG, data); + device4_stateMachineInvoke(HackSm_Interface::HackSm_Signals::RTI_SIG, data); + device5_stateMachineInvoke(HackSm_Interface::HackSm_Signals::RTI_SIG, data); } //! Overflow hook for state machine device4 void SmTest::device4_stateMachineOverflowHook( - const HackSm_Interface::HackSmEvents signal, //!< The state machine signal + const HackSm_Interface::HackSm_Signals signal, //!< The state machine signal const Fw::SMSignalBuffer& data //!< The state machine data ) { @@ -57,7 +57,7 @@ void SmTest::DeviceSm_turnOff(const FwEnumStoreType stateMachineId) { void SmTest::DeviceSm_a1( const FwEnumStoreType stateMachineId, - const DeviceSmEvents signal, + const DeviceSm_Signals signal, const Fw::SMSignalBuffer& data ) { printf("Action 1, stateMachineId = %d, signal = %d\n", stateMachineId, signal); @@ -70,7 +70,7 @@ void SmTest::DeviceSm_a1( bool SmTest::DeviceSm_g2( const FwEnumStoreType stateMachineId, - const DeviceSmEvents signal, + const DeviceSm_Signals signal, const Fw::SMSignalBuffer& data ) { return true; diff --git a/FppTest/state_machine/SmTest.hpp b/FppTest/state_machine/SmTest.hpp index 25c5ab4a07..471f70aaf8 100644 --- a/FppTest/state_machine/SmTest.hpp +++ b/FppTest/state_machine/SmTest.hpp @@ -69,7 +69,7 @@ class SmTest : //! Overflow hook for state machine device4 void device4_stateMachineOverflowHook( - const HackSm_Interface::HackSmEvents signal, //!< The state machine signal + const HackSm_Interface::HackSm_Signals signal, //!< The state machine signal const Fw::SMSignalBuffer& data //!< The state machine data ); @@ -80,7 +80,7 @@ class SmTest : void DeviceSm_a1( const FwEnumStoreType stateMachineId, - const DeviceSmEvents signal, + const DeviceSm_Signals signal, const Fw::SMSignalBuffer& data ); @@ -90,7 +90,7 @@ class SmTest : bool DeviceSm_g2( const FwEnumStoreType stateMachineId, - const DeviceSmEvents signal, + const DeviceSm_Signals signal, const Fw::SMSignalBuffer& data ); diff --git a/FppTest/state_machine/test/ut/Tester.cpp b/FppTest/state_machine/test/ut/Tester.cpp index f8a7e93d73..cfb975cd00 100644 --- a/FppTest/state_machine/test/ut/Tester.cpp +++ b/FppTest/state_machine/test/ut/Tester.cpp @@ -52,7 +52,7 @@ void Tester::schedIn_OK() { ASSERT_EQ(DeviceSm::OFF, this->component.m_stateMachine_device5.state); Fw::SMSignalBuffer data; - this->component.device3_stateMachineInvoke(HackSm_Interface::HackSmEvents::CHECK_SIG, data); + this->component.device3_stateMachineInvoke(HackSm_Interface::HackSm_Signals::CHECK_SIG, data); dispatchAll(); ASSERT_EQ(HackSm::DIAG, this->component.m_stateMachine_device3.state); invoke_to_schedIn(0,0); diff --git a/Fw/CMakeLists.txt b/Fw/CMakeLists.txt index ee9eec3898..8905c8647e 100644 --- a/Fw/CMakeLists.txt +++ b/Fw/CMakeLists.txt @@ -14,7 +14,7 @@ add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/Tlm/") # Framework subdirectories add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/Cfg/") add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/Comp/") -add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/SMSignal/") +add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/Sm/") add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/FilePacket/") add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/Obj/") add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/Port/") diff --git a/Fw/SMSignal/docs/.gitignore b/Fw/SMSignal/docs/.gitignore deleted file mode 100644 index 0b84df0f02..0000000000 --- a/Fw/SMSignal/docs/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.html \ No newline at end of file diff --git a/Fw/SMSignal/docs/img/FwComBDD.jpg b/Fw/SMSignal/docs/img/FwComBDD.jpg deleted file mode 100644 index 546c50fbb920fe760172e4db5aedd6c7fd6c454a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60296 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 H znRmsVv$K)GJrvhqj?IDw@Zx;B(26pELGi@&BrxeQ1SwGnU&^xIQ0bW++Hr(@tl&K> zpnrDp0^h47RsG%NzDI_S9((HDQyhpR{jo)x{K3qDA1=VaYFx$yi~DT>R3s;GY@-;k z2g(-{o6X^<3IM9ybARqM%se%?K(^e-Y61PnU-~IZP@6g1&Rr+f!h$G8K7&$OG3jVl zZl-ebqYWUr_oV9nHr+pXPqViEHsix~%s6+u!|8>vmz-bwsIHYy6h?5a(g)-kyiWk52KvWEKUPev7LC z$YGJe09o-mAJs|O7fsmYuOT(U`n`@#1_}8_Q@EOEjRRMiVUAK>G^+!3ZJ5}Odh)FU zy$zTe5mbdxux6*mMll_8>o?I4~&`}3*K)kLrn>;x?p~4o8+-D z9zMla(AkJVREPS#<&ij0zAr! zp5;DO}a0 zA_pZ$KF-fdHc+X7$y)41`|^=rQAmNi#D~8QC?}x5`Bh7zdqas!H#l^19iAPDQoitZ{`t3Mjq?6&F^tuf zatS{PXf4*zN{ShghnIY}0uGOwI!eU#=8BakNW(p&s5%eGYjXbdp+m=7&0sY^($M0OFqJcCivmm zr!DJ89ql+cVHtOz3suy&)q(=l%EkduVev$IT?C%nEAj`wOFSmqvHboCHVgLFi)2t6 z>NI*z$9-Ark?o`3Ub3DMD>wk@LgW9Yr>^)PDV~4nvj6wHIR6XB^S|E4(*Iwzer9-_)BWG^4IP-OOB}QLy+Pe!S@R>a;j{4*7lM z2w`<68{6shUEz}c`TK7XGT>dnb&{=htn?(rI;;?1xZ@UUL-!=hx zb`bUqYn2_6SQH0_fp~vRq;vZJTGe{Q@h`*5`zzomMeB^O2Cf~92(MjR-Oln(ocSbN zL!*uQuT~B$PL^1Hfn@n5WnVDwXa8kd#YFt`FQ8ywl^#BlX8Gd9XROm-Nl;C{=?_j1 zyVi?k+2_*h%Ln$nd}h4BdIRNWuE$5e7fQ04Z2r#3ptee#@00(VJ$u~op*aNVbAR$b->R`;F>POj*5-TsNDj4gk*aDGPm!Ioxitq#Q&9diHF6|h>UWsHV|hf&V8+~e zM(vSkX_7C#dVqZF{KJ{>qs?mlK10nfz|!7F!VZSE727y4q(kzIIRU0BciS9qUQyVk z;}{y$bx^w|PuJ?_9J+(eHpRK)mG0G!@tP4%;hzd!6?xwx1}f|;RCx>>5;YP_KB`e` zdaH)(8moGXJY4z`D-RQq&EvwoBmfefj@bi;1A*Zg%HH8-xj@r8I$xF>-c3uQ7~TdX zKdmZ0v$b#A1n7un@r^oZ+d~-}$jA6z(LwoYa9A-Z|5b}?)>y+3Htr*Cdr;}aHK_!q zFKV38`GhoU2eFxgo3tH>DcMk5Y<7{wyGs%b34^$VHZ_9e8St1A-A1R21}xaR0w@pY zVPR{78$N7v51}&U+5Oq8fu_|2u~~UdFhozN*!c{9AC-tOr)Pl3S$8pTe$T*N1xL^!FhpHN zGGAsfXgM<)YrzX^`vd=-8~nSxYWJ7byXXBY)E?0xK4*!V|*+V?Rb?aNP+2motBBk7V1x;z45JMm|x&qe0@i1*AtjwG17PjkT006gbidf zJ}r$L$yp~XX&mCY7NRC<#i$m7^hJ?xWEs%7Yy}GGRcv$HGXrK0=3V#L=8;_VO%~4q zU|8m|m0Jq<*w$=~d)yr64Gac;COkpXZ)s3Y46}2!HJ6`SywQv%oAU9kI_h|jq)66A z(WwElU76)s!$h(rv4q4p!6&pwQdMj#MaTHwkHr~}Gt1bA@4hLTIlK2n<$mq2e3T7gQ|k3%9SaEqi=7dAOxdxT;T zh~4lAqb$CrFBr1}x4w)V1eVs%r{I(YS9J`>#k-bqj;ZkOlkbS*To9C8J`<} zJ1p;9o|-i;!?d{+-Tj=o^Yfa0;U&Jcz~Om+qala7Vba2<62=_7)-Jf! zIM{3iXK%^L(GT+x{_>tOaLZrGXf3#!^NJzs-;fzscxCVm)Orfw0ori#WM4k9g*Kta zrp1S{V)Hk{tf>kt=Qo0c=x`+8iLIHo5~cGS;0LkA5jbiVL6)KhL%%kTg=#fkzaq4P z-%gQPvNd_970=M6ORaJGf2 z+T28@rgVD7fpeHr)5p#qjT~c7UHU3I`tz>g!}p@^5MoOSD#gcroRm)}(A|qI?K81l z`=ax94i8I(ff+hlU3zJIW#VwkN$oDDJA4i~MD<*ZJ|4rEY6gP)eJ*)F>YmhyyyG^hoWB)SV< zzPI5MEwtI-2~OD%kh2cT9~EG?brnCH*=|t~c>6u+hR>Nw@?EQYP@n15LhH>*k1}>h-8oJm>2$8)+mZt~yl*1;EJ33Bh=nYi^IVlycCh zGorvDg9_EfRz#nVxyK|qL>^;!sqwTxLQ7*j&Prun^Z}t*+6!%P<<;yGDBdOX~%Uxr!L@Vcyj;S_={;sKb zn_81sshm=yEp<&5ngp560eJcNRGZL1*W%-~2_K8yivl=%9P>=!3ta8x(zar)Ve#I- zYr^DG;Zf*?02#&#HV!cV3dx5kuTgSlk$ib@wWn<7Gtq9)Noz)t?cri@dEAd0TX>(U zr&4$KOs(HDbH{rV|3``>Uo*uF;$VL|&X;8e!SbBoTSY+{hxzheaClb)=6P}8T3pPd z0Hcr)s2UQ{pan}%H1z_tV3+QBF2S;OIZtCZeVc#J|7q_%fSSy^e{qym){3qoic0J# zECdUSA`p8)AxevY5Iao>Dosiru%V!`ipYvUY=G2QC<>B?CI~E2LO@_4gd!!B1V~6o z@ty$s?z`8$bLT&EfB*NL*_~lr7)bJb%PF7pIiKTi{qC{pl8;IWHL)u9lFZKEJgsh# zP^#p(zevlxbCH!@{(D{CQ76X)GfDZrY&#`~Hb>JWg)^;xsP8!Bs`>s+vu07bGzRqk zMbm~J|1~E6`u%^@+$SXtv2Q5Vfwq`ak*n!kXk8TXsEbcbnY^#7BmSEfytp`Gmgl1QQ2k=&yxr4X@9r`iiS^qlas?unE+0_7*8xy5w;F2W`E@Ec zN~}K88+(+fE=!YhkTpJUSEK3L5!pwFvP{aUCr$aDo@7tY-ij*`ZAjjsEdn6Es7VtQ zp!kFp&ZsHj7PLHS7atSY#4x#T`f9~e3wF)i^XGjOYvT_?z760dqJ=#}lW}=;IwTc9 zKNvOWMpom+i!ku35>3CihMUEZuWO5chLTRmWfrzVx&w?hOq+`%-X{L=I*c2_vQwZI zVyB%)I3&7wv@T(7Nv^Ey4$*;y7QQ1KII2sP2^_~-Ca1hC+~A(mMbvSrvUEB#v)ehw z8U@*lFc93jdSn0!wTk&GzsQ~EVZ~U|CCspup%TI>;6OD;OM?N?o=|6l))oW&V9Lsp zrychjeA%#IQwONxEn(qmr1Ph2RdFb=y4cGCSd3qbJI&OJsevcMxbduCd=&*pnibo=$Z25O{hb-%W62)m z^yk>dYctcbGe4#g1(QO;7Yy|FG<}hyf9ir1Iew`}BWjCZLkvYG-{@?^=O5bI*($>j zvBH@(ZEc;oVZ~xC>XiVbelN!hBebF(k(ZkUoGhK=goR5hh(letQQoT#`hJ(w1DZ59 zS`OJZo$&OFoFO2bEuVlZM}h5ZFXN81;N+#s#C&Z9iFv33GWaovBzwY>;nR ziy5>b&$UOzM=4X`9ebi=vLnyhq{?3T%lpZz1iElmEZE^2WEpAt{?)H(19qrj+HCV* z_#Q5cbwyq54zVf~wdL1+DDIoWnd4@t>$e>0Y~d{xQd=`R|B_(p7TjX#9Q#c1QFJO9 z8B~E-+i&~RE-w{LT8dA`dG8<#y)|L9#SynV%~b5-lO>V+S=aWRt?6zse7xZg;(iyW z!5#OLw!C|rehJx(3WhkNbq8rRF0LNgzdhmWlc&R1nDybWKR@c(@$hDw-n*zf_gCE85^j`uMdkC8h@X>mj5d(MYn+rnS7xAT znB1S+#peWu>*-Q0;w6ZLTKePh4azNwX56xt5qRK=DX^jgVyQV>@fKM=Y!BT-bLZih z>i!`-BQ>_F*PZken^5M@V$SWB&g4!Fi);Mkp!wX{D&4uFCId{dSL78v|7+9*feE&P;M%$ZvjZ(3 z+@qZ=s(JUhm%50bM#?lZ;xt!X@(3k8KRG|ja^Adk>fs4mM(3k!59%edi#A?ay(sJO zV>`3<^BuQTUc2mxiY(e3HUDwnyt~0y)c1dUw~RF{%V_p9`yCtNFA|d-_??b6H@0tL}7|$psOdOX^BgDEUiH%iPt5HRRzVzx$DskKLSLi^SkZVRJw|%aOGK~ zTkn<|Tnpjia|xcx4KO@owcsvR(fh8gnZ*kZdV^Kvw;f^Olp4ARyS$?CH_3{S@oY3) zR?u=?4AIpL^o`&g2UkdZja>2o-tDZ%g0Ss^^{pYeSynyd*_Yp|C>9!TEc9CQ$$MwP z2u+o%Bu(&Wt(fL)c|mYFKe9h0)yX>Usqg5fiCWkMj!Cf9V=1O%1X)OTl^v29T(zF-PuO&4rT?W=LYg`wMT215g8GMO>0iSOeBIPZM{Pllh)Gt;cQ!9f$*= zPq>6aN(1-<(0n+4u~jIZlH#Z3;%vo5-h(&?c?(zf`kEltz;zwWG^;!+2&IKzyA7gg z;puNHH?5%)OgW0c^R?vkKVV%1#*P-AAKa)~xa-~%RulGdEb!YX;61igEY0l|K; zqB9G>#GBZ9KeP=$!#lJr%b)CkJ^nIl#m;4OHm+A9v zsb}!ho?1pZGSZ!ng!e6b(X%mQ#VvLAgRPdaM$}@H4a7*gSX~m3>f$%c`8m1Dni_mk z;OuYsxJrW zUK&ViT7&~ZwU1HX_xICTCIpar`Klw0~kIPsPOCTn0m(MmvI%??D`!2X{d2yR}& zJrjD7ZE@B%NG0cNPcAxCBoI^ya_BK@2fle1Qg z*EwHJ0NsxG#W&+se!ZqKcVTVe@%5&5wIoT>6g^OuyL>)JJ+1S4REKHUl|+-x7i%xv zUp%v`V{=P;YqRRp4wy+!NRJDPx7f4MEV!WI+1XeXqbGM`Rl*rsyRWAvN{=~VCIfZa zI`j$*5y|6Ts@R*xVT|0O_WBvK@Qv&?&(wPbp})W)`_;*Q$m?Pa16-m z-pUj))yx%jsHjgJt^HieZtKk3;zHH@oc{Kv_y|Xzd`fw4n%NqGc-!4If~E*}*VMPA z+Q)tz(bityZKmGVgM8G8F>f=ScXeNpd#AF>uTk?^oA;kD{pluk(VqQjZJH`BTa%h| zQhqGenp3#v+`UurOAfAJt<8>K^s^2W$D*RBZ_xt9S>CH0<@4{K^S;I`suUz>4eM6A`-W(q*2zmrX}Y5P$_eX5 z^JLRh1<(?W6`1OuHB=Q71xl;}u5vMLxq#C469ojKp3gd2Y^T29^3ghsi15BHu7ot@ z>XW$eIGx*}r+)3F_i8G&&*BBk!iHq^7GDaz5s05gebHxk6YM;k8TYt`^{r~^=|_9s z?KVND;kecm#*VDb zH*b0I?!~>ewJAng>o(JqOru<;m2ME=`Svh*kQs=ZVUuU432g(D{q}M_sa)kYwfC3> z-q}W6uPgd<9}~Sp+i>qu6|ohgS6`R46yNGqI167uQ>oMv+p7hMadA#|x?E$i%AN>E ze)NgYmdka~Qz*c>MYs%VpJprmNAIAWTtbk?Qe_ipFMOw)bi_GQ^NZXkv4Tkdh^-{V zoUWyn>`E*1cfN4?TsvOvju*+`UG|x4yNGE30?-ahqNd_ViVZh?9I~*|B&5EG_WE*9 zO-kYVB#ZYSV`myKYZggp3c9!uXw4tX?|P$LJJFL6YofR zf~C$M9yBljPGD`3HnB3kzurI%1lfLdO9u;}gR!RWtX~&4RLZ=|iC}SJI@VO|c!U@-0Kt*yX!j&~8NV`2G zN=kUi#zSHWScpDl4pPWm2p50e9_}xXbqfb(e(LeL$`AKysaVo&JwO-=F`iC zD_NnJk&NbWk!g?WmTG-$D`@1>)a%G<-NYq^E7|gVmpXklYM08#%*1Z!wbdD@4>5u9 z?~YvgT#yA{h0ctXJnb`FDVVp58+sE&R1W0vM@@1dQMqoYnpW#~vTXtJl|s>C>=eH} z)qd+mb6`&3$y(ZvoHys<1AxMek#h3b}+6^xICJ^uiPXg zmas9G<(yDT&W}@@%QN~-Y`*+T?9Ya((F<$epLp`r=(g@iOk0uNqLb4NStD0Jhw$yvLC&0{AYKAa_om-Q!SMt^%n1JiJ-s4m z6i!Wur&M1;0d(-NU}M|Br3U2crU7N|1w-#?iuAP500M0`XCzRE2)Xp)UqN+JQ`}Ha z{R77_#s=W#AokRmu)_1Xx&_n)F!xFM26+P@k%GM}(xQ5Dne~En5-SIUBJ=xZ6y^`* zp)YwccR0AbIwB`p;8l3zLaev_zRb`=By6GHwWL;Kdn<-`=W};LDaZW&?68?No2b||SkG2go&BnIPfSH}!Q<|x z@>K6ez7bk0p29+ccbajPb3=dfE^eV-_d5qeVE3}(gWYFswc+Bgxr&c5<kC?3{}YXKu&*y#1MX{K0B{-8JUgzd7AIH`}94C5>zGyx`&7tIwY9h|JYH zLOH#zf{j-)n;TM46h57Mb=vV-^^E1mm5lDRCYicLnIG#=2#O}GRyK61x~*9@v-%tq z%Bl)#Jvvlg75;pn;J7xAdoNrC^-pYX%S4V#eF#AU5&teI?iIgRj+w(H$F?nYA?)Yy zAGB7?vF$>p(KH3c`O=>_w3i;q4MzkaMa`Qzq(Gn$OcAWyy}{epHfF$->xw?Lc5EPr zA&E{K8oD#8ZK-)r`Py7^y26zXK_G{{gL@lgQKyoNq)IOtJjFSVcFP~`ss^qJQe;gj zq9{6yHs|;|r|6`F7R)+dQ9xc%W1JpdT!@)na^cY~oe!y0_pkyxX({ffVN_skrxXfP zV{Z%(C_(o;KEQB(v)?j-kVU#mnW;Z_<`=m|h(i-0-;**|Updy#lVcH=(_*WZZ)m`o z{n&*i3cX5E+SIqPz&O#{6{~RcV`S)6lE2;}6N?J7#?LVf(_;LL-nA9j$Cl}9D+?@- zL~ag-*S>g)t6FlQ{80E&L-o1u_g9CecZT~^TV7pT9C>@TQ!K%zK0kFuvc(aLc#|th zMlmXL6MM4UJXk*SyzML0-6XM>99)-OYi&5vnHjV8^Cj<7R>vb3neU%pWpwrKzVfKFEfaN$V_*Q0eLbVO~VzIHI|WP`son`dp41jc5*Kos(5F7 zs$aP&)9nBz&&s{gf7Ma8kFt0rd9G-8T$JBpk|gw|_971zy9SzWW6=>GCDz_4X0zG8 zd#^(F5EPMl@ARVT=ZP)r^zJ<`jrG9K)iY;dk8kFuKYRRR!QJG9EgxeY@bzXNkQN>KE-KL(hVb*wk78y_Ht-ZtKb9o>$($ z;k*6}Bq{oI3+D+g5IEtVWBH9C)Ovq~?N$2gpE??dGacZ0{(rpX&2wrKi6;SMbAr74_@I$F$$Pl8WTYKY@EF$?gtFCn$3f;&&IG=q=J-kMAi_681)vMp+?OLJv(*;TE*6P^v zu2GSV$s)kT;;xb^=HDXr=}^^j-DL}*2!ti=mc9U>;o!# znmD;9L$B!?wH2$(KJ0Y9pFZ#C3&2-C~j&JEV&DG6sMvXIVFw(?mWi_=&-C)TfMb+73B4e(Zx42J!yWlB_O2~w! zG+l{xTljhZAR;Frpknf`a#N=q9KT7m8q_8!nabI(@$2T9a`1=AH9gsTQ6DE6yW*Bf zNDSUJrV}J0Eae$)8~>2TFxyPW$kqvQfnmWfl470Gwn8G}5VtJGxY*$KN9*)g^Vij%;x4XPH5+2i$PuG42u^UZ^Y`lyRe+ z?w9zi+_KeqgiIBq=ELX5=^g{aNk2}Yc65si!t+w`4<*S-l0z0a9uN=0BJl^5~ac3tRdZ-hW26rLwvTd6>VC7KpG9kxh4`*S3-&3 zba*%UgJ0L*DQOWt5IJ~?P&@QfkhFXT-wEDtV@uX3|NCVBN`<<#!@K4Du8NF+LwE+l zPd`X$ng#H7M^^Hi$Hc$BH~ir5RmA?PF6MVYboS;a=|@0ap9Z`EqMHvS??e|uAv5Dm zc|>oo0@5%U*2jts8fQ_h0}~n4sA}8+AolBH1&K&^WY9;Ww}u5&fqBmc|7^PXNuVZ{ zA2}R2(2PcyHZZkluYBrlo(wa+M&&(6ve2Ls5C2ryncolTO@cdGAQY^*{kd!J=8dNYQGB+BK@zaQG*wzVer*hz8Z?g?@~ zy#`p7DKi_>2eO$Zp29|(;U(X0i;Q9?>v9E;wQZy9=qIZW%RgcdKf3ebZ9Bia9~ot6 zFWUS}{)Jfm^f*7Rx}n*RmQiaxY-{jKPOjThxlx3|HVX`pli}Y^vJzOA`Z#wK`l6h7 zC8IdqKgzS&{1Z^rQEQ~55iPuhs*)ZVg%IpKrTgo3GLVL^U9>r6B}Rbj7|jtmCOnk! z0LNHtdccEaOXvTI2w0<_J`qZS^^oscH~*OLNWz4L793jBmoczgN-FVCO$xl-DQ<)0 zS>?r3d3iWHj?dpLGQi`iMreR+&CFS zr{^mnQL=Vw-zY+)OnfShc1(TcN&b)|VIwqG+rm}1$n0eikB=KYYA9+?65@yr5z^c& zHE9y5o<_^O#CTn5E2Ul++Qm@FU*x{x5WvU?T zAIP%4lE1eZ4&McKz6bbFZ+ww+Aqs{h(ZGV$LU=KV!*tOJ+B!*EkqgcqFWNkVLgxcp zN27Cdwse0on<|<@tmJJV0SgwHV8QzA?)M#rk|{VPY>JVL=v@u;X6pxgv}I1FZfLr# z-2lh-r(tnLjw@_?^^&Bp+f9-nVK*?cCymihfplGACOvoXesAjL*#YJ~+Utdqe>-Rv zM`L^xhk~Cc_3()yT{mrpaz>E&Cxi6b4-?KpntpsdavT}wKqpOqI|_fmAmi$Ig2uzM zCtMD$Hg2LYzG)^$-A#MFW%w}EQ>QS+XiJ>tFtAm9o$E^iHE5io4Y;fa=( zy*s_?o(KqD%qqm@1$*Mm$ym5!{1v?kj^e%Fi&x0dTJ=(}PJileG6g#!>qm?zOY#q^ z_d(f-lg14il$3fBs-S2;n?f9t`q0f!wE*qgL}8o8zSJCIOO_^r*>Gx9jY_EZlA<5Z zkKN>PPw4Qk!*9KtI4ss;-o=0Jqs19BUG9g7nGbu`f^7ksx`XU;$UbO7)rFEi`X8`U zN#@BZpLTxr^U!>rLu8j?84s@n$_XCzy|<*iMA(iu~bzW!hA%q|7G%;r5q zQ_GTI-wn%Gt}_s26H7cLM>@uCySmdh?e(TBpj~UJA=)YCrL4&CR}v!SLiB^I&&zrg z%eEQw&ypzzlfq&OcyNML92RZdELB*kjfZW_Z>)6ws*}P@ecg7fLk+Nf1lk17Os=XxX z4RGXhOUBvtQ^y0LH>#aff!P6Z#6w|sJh3~$wSn#RjKCWdE8Tw@F!8JcHs5=pBnNeZ zFyfG{EPA2#GKr^Gw4CDMV*Ol1`ryAs(i$dzN+m3@wX~ead$$l}osS?LzcG-+_d!iU zK3}Ko-=+T56mLiFoQYU>~+$T@m`W_uLwkPuC3Bv~Z52bsKkgUl8RPmZX@^jGE1ZcE0(H@jlS#Z(byQ zzk9t)=VzcdVAY<@w&+qYs}qk}KvT2SctxthTZsV*47|e^fG{6zO{^oAbxPc~fkYX5 zR0LOftS1n$R)+u+#giaz8XT>CX=z7728DCg_~i3m-BMC|wuX)UTJS-5ixNJDnkkf~ z1^ncu?xr`%{7jShZoQ{8>t!j#O^mBYB?`j#I)oQuq!@0GUKB*6~&`bYN59&G~=bZ)42%4{#LI&wTk@Rg{0 z9F3BF3PJ6Sqb1pn3^9IK=;-S~f7E{TJlJWB#3y_rpWG&kbV}Dl)N&?0I71{o@JixK zOTP21J>b~PvFj8kbFa|zEQ{UECkF-wHb6gS4SnucW0F`pZu_7?#hF87ps5i)pKctW z?#_HDF%><8&d2fQm1tRUO|ovRQ4&uTg4J}gPRsrx*T~ec#&w>qU*t39wYMtf-;wpa zgnvZ>t~!M`(MIYQmE>gQ7|iQ#07}rtB_W{+z#*^*haUBTex$-k7B`LhDoS%q#+JeQ zy@%*s1VYGO&X-bn^g+Tz2Sfb7=g5by%7frX&4)MbJn2q|86ot5>`G#6BC{62FPKK; z4elVd-v=^}SanpZYr@&UgZ_IOwr?pKE3??Us6ak?R>ZuFBzf*JZemjLt4DDHtT6;z zLzPGrp$K{1DW(+n;bp`+nE{FKZ6Z1Z$mLQ)Q2V^l#!h~Gg=CUDPGU)U?cq;SaEz{k zgSaqM^2_f@NETE#*bJP+sDKh@4jBl|d;3?m++Y9w&tlKPD2GQINun)*OnyKXgpl5n zN6vkEf=vEL(8UK`-uhfyc(Se1N{gX)Hecjc)q+Vmri1LHm!R#ZukpaW#5t+{q_9oh zW1*avG_B_7%$WFinfHlFpYXb{A=2Z9J^1+DXjcRU!LJEYAMfd1@vo+0=)-d5>5V&x zl#`1cA$c7k`y;Fe5Dt#t7si!;C6Q)_eI`}H=P;C+l+o$w&!_(>qU>(@$xY)(YKkMB zhv3+!4tUljRbk=(J@`s+v&b|i^oi9396RRuHKHC)+UVohIbb+2^h(TIGEsOp2?-3V z8HV70s5UYrEUc28e)?+&b0{1P&8mGJ3t*-`bkHaw^C%OexyIi&OuW=)915&=k3^p;x&2%_uTrv`v=l>7{CK zjX^sr5nk6Cd|Z=FFIwIk^rZ840aZ9MA(6B#_gnIqqM6dvh(Ay!jzA3TjGLs>Ja+`% zp0aP;k|8NN6L#vinH-H>DUh6BVhZo5k?xm))mSYQK7;l>2osc!E916H&l!VZZ$+p= zuBt>nE^ctp%VO(4ASu+$z#kf-=riEv1Xgv`J|;DGY1q~#2L?ov5w zu%X;cG80J$U-Vq-Do`>j_^#BX7I=~w?g+bRg_M}>;{((f$1}T0BS(o6pZG6w2}dpr z(;xw<3;l8J-^@VN_^y_?KMYeu@(hvoeB23)XcM*`Zk>6>r7n4P10*tr-xm{yk&S&C zuoVx-G8%i|HoW9mXrm7;=kKRK{#6H!hLyaYdO{NQ8e|(M!6GIPh_(|Nl(<2C_cmgB zTMZD08K}gb)G(dq6@s)!enfkxQoDStaN?V8wP2Oe(G!nbr;j5OvfysnpIDA;;av^t zAMc=Pj%|Z+W%8P2m(}LBMQ$-!3W}WxRp)rP_UYs3m(`zB80Qy3GG}f&rbs}y04&Wq zGEu#si3lA9%wdMDQ*#+4aDhU;vnimhBL+zRgzrUS_f7Rydijv#_0(4jLc4}hkHNn* z|7nA-OiE9L+T{lE2Zk8mo#H=$8$hjEag7RaER$nGHgW;q9eFp&x0maPLG;7)9kR@2A>!T z9T+td_VS27Sl3$sIHQ@TT)^pYb@RF=i}_ z(t;ba8%sRGQH=+>UgVI|qhxA7tss1?T@iK|aOUs{pMJo4^=a3_AnRz^GEUscK3;-s zdx@Ml`H9aW7{@Wk;}gfk4cq!8vN+Bd%YM}(euoV~J$lbn94^IKsjjTaRu+70M1pt{vT`M$QZhL-V7q)hC@B!8e9K?b(51?$4~45G zI_DJOJb|19w7PLIxfmg?q9GpO2W4pzu0Dgt`l{yw3VBzF4Sb! zl(Rj-a3?@ibkm0vDLVv02Xojw7DqIM8bic0jw?yx(uex&{i)4tU z*|x4JN51+7!q5&PNBMN4SlV|sG-F8!<`o><5kjW zeR_Iuz0k3{X*j!Q-ByQ8AMB8D_Ti{W48B!QGQ7U)WhH;p&R!(*SU{%!gswaGG=GaeaY zOMT3gz>sz-otE7zN59e4kgVqpiK%Bhv~uj451>gI(Z4rA`xC!(W?zYTey|S!JN*8CZ?%F9usqFqGQ#a3-VG;AD%g_?i5;RS1LwR?I(3 zO<-Y!O98K-%B;fgiP@}|p7o~jR4-mKjwe|;oCvW(ZRni;l2~D*8HzTe3F9n_T&*LVbJ+ks4=Y-!ZkyoqR9!u!hg36gIZhqkq7}Jd<=-6C`hQw zHb7jBPC*~@3+{Z&X|46lWT2d4P3@gq>Atk+2p*GI804Ou>62OIMLqz*==u+TLc+Ig zI5+0NAVs!3!`%H!?2A&`0m}s0M_$tO962$b2T8io3HSuQkhP8#L}CSGLn5xUcV_?q z8V4aOfI`R+B*^1+4zxP{tG%}-Fs038|CJ482O2Al>usU@a2rpKDS&MqmrbHucwt<5 zo5wE$6e|3^e1%#}Tv^R|i0u`I5&~AWm`=J4INP|kg^Q94c>s^o&2Dbcx-uIm(t0;% zLN;mz6_Zmu1CY58^S%NP0t>nCxAg-?2YLrCSmMR=*QYs*B^S4> z#tL}mH8R~0kXV37tX9LdjHFv@DNa2zOs5hDg=B2i`Z4pNvs!7z1PB{`;%ky+B+IPa zM|Yl*mrGpRm4ktjZ%RaNc9UKGw!U=;#h-52DLhr|{%ED;W@c0K*IdvyeYV zy8GawONrJ_-<*4%!;{HH@RcP!hjUaxQ=DGbfP5CT~T6*d41Zyd0bJ;nS}}5iQyc=HoQP;l;LoUCgaYOj=IhT z8D<7%bm%%HGzUwc(iSVbgfE0Vdpc)y^!0Gem<3q)Ut$4%k-WHO!*`X%0bl|sX{-Ii zh>NA4a0nmLwbubOKo>4Z9&2>Iq1r9^i0hpm-#M?k6xV(d{Oud&=!t}OS+NUn1la)` zzh;@W6k_=uTOaIuz?g?5)`nGS5whwMrG@5jXu~-(@cKqh<8knc@ss-ap(oD=UB$PS z;#OCV=fDDFG|~NNRLtf0IvFgH##po l0w&Y$~)M3HfAJ8JH9jlUgK0mskTn2VbL zuhKFy%LZ!kanXjhsq**6WM2SHT9*h;00Ko2n-M4N0=)jC$>^~4YJVoOTjKhyg0C$T z=7<|hRccCQ!Ab4i+;)pNj?c^VZW(ZiXkx8>F3b4-#dWuv-@L&I@T#_A@Z3n!CC*_Rq^ zT~|VM(W7N{onjKQ8_Oz&iMqazb0<`KtJPcVWzcO=6r@}UEANfz-rW1Qp5iolODX9@apa|hzk~^GpsQlUXN|wGoEfO(sj`#wIaas*s3^zjzjA- z$37Po?o;ct0@#cQcD(0>B$7SgB#?>pKAXo+hAaUK7l3z!T<$R}UI|70L<7m~mHm9k zAK=a~p-wpsERVou&96cK!AGXrU>~#yD@HJpZ zxje}u!^zO*I&fu~S4AN(CW(V82`K9kZ8B2jD%c54sv3C|aTc|6%7V20lHWyMMz8BW zF{*oT*)gNG*~M}9g)Rx~mQ!uDaT6V&Z6%`Ze)95aZ9(}nDWeJG8Ew#cYN1E2q{s!S zwT0%10r3xsXhAEaJCRQAlZw}(2b337IA=~!4}k-7r`PCDicU##$4ubAS7<9L};`(}x7VHL%=%a0U^H)zv4;cbv;(~zF%6tAZZY`i6SugSj~Tt$RK z1gMf$h(k|(tFn)uUgx5qK1C63UPUqf@*||)m;=A3)pJg?OIq<3+ES@`FQMMGHBTSu za80{u*9V_(N)=X{@1`WPni{fqO zR2Z-@HZ)*xFbe33i7GjEBaSXGAdrf&ef_}3L?+|HKbOtCFS z9(pr}#8L}c*%zBs2jPPf$~g+%1sI)?nCd?RxYF>}B+*`S#i9}ck8|{-G%+F&q79Hq zm3nA{OuGGfq&-Kh4099S&4Qeu;e@+JEOH#Y?-V?2(-84u-@dmpxmwG^<5&n1>m4br z#=NG&;&tX7Q;=BT7ZH~;swJhKMi@F# z&rjew-#bI{;h}rFN{#d|)2z|r`~?{z-DX-Btk_`2zaS5PPn&)YatE_qRGbqZFY8kB zz+s@BN>N}g$R5Ro7+52o*@ksrpuFO_IzeR%l_C=4Q)45>%)mQ-p2RM`DU|u>wcpj=>mZ z7xYob6vyml) z4repim~3(&?V|t6q|{(k*W`VQ^2~wkH5%8s?TSM;Tdx8 zqoK^k+CqPVl5Dx;!UBs zGX3QlL99+VY%7(8-9&9^xvDxR^A_q#ZMa-0oxxob2nD{GJw95Yl83F>8Eh3#^sy7} z1WZZW;#fyH&KQ0el4Cf~8+kRBajUMrf7KvXGgULTUVp<134WRpR`1C@NJ=kUcP+;W z-T9gOnwwI8XCF?%&j|Kd%ZQ6saWr!8P(o6UHxTX`_1VTU){J7F%ZQAxypR92eE9YI z@0JAE?1t|L0oyQkRlDa;`n#F{bd`ON!z4E!$dCWGUw&nj3ZapO^e+E&odnQJn`AhFa9}NmnDw zE3WG+u<*T_c0&gr?s=OnZQ^Rhe|F4N_9VQv@uyhTddx6qdc@b4b?%-1k!JEf{N!D8 zSzC9J+EJPVK;|3k=@xP2&DO4fuazXa7&{@&9SpqYww= za*UxM;T&ggA#tYRa=}hk@oln#AMu?a<#CUlfxte+kHCp}ElJ?mv|;j$@!J`Gnjm(8 zD5PIuJ{2FY(RsMkw4%sO5@uR;w)G92+UFX-s~yLhA%Uc&s{=WO74N{@WJ}^i^Wy(3%U_SsKd0rNOZ1Oz`N!n` zZ(isBsk7igzt0d0FJ2oOfc#*n@I{V<$eJ*AqTp#9?v?^ziOvh3W|KIlk{ +#include #include namespace Fw { diff --git a/Fw/SMSignal/SMSignalBuffer.hpp b/Fw/Sm/SMSignalBuffer.hpp similarity index 100% rename from Fw/SMSignal/SMSignalBuffer.hpp rename to Fw/Sm/SMSignalBuffer.hpp diff --git a/Fw/Types/Types.fpp b/Fw/Types/Types.fpp index 8c9e1a322b..e07dbd8569 100644 --- a/Fw/Types/Types.fpp +++ b/Fw/Types/Types.fpp @@ -13,12 +13,6 @@ module Fw { NO_ROOM_LEFT @< No room left in the buffer to serialize data } - struct SMSignals { - smId : U32 - eventSignal: U32 - payload: [128] U8 - } - @ Deserialization status enum DeserialStatus { OK = 0