From 100821e68cd2af38571e3f371e196beda030c109 Mon Sep 17 00:00:00 2001 From: Janosch Date: Fri, 14 Oct 2022 13:08:23 +0100 Subject: [PATCH] testing calc enable --- include/charger.h | 1 + libopeninv/libopeninv.a | Bin 48478 -> 49702 bytes src/charger.cpp | 31 ++++++++++++++++++++++ src/main.cpp | 30 --------------------- test/test.c | 1 + test/test.out | Bin 57584 -> 58352 bytes test/test_logic.h | 57 ++++++++++++++++++++++++++++++++++++++++ 7 files changed, 90 insertions(+), 30 deletions(-) diff --git a/include/charger.h b/include/charger.h index d44803a..e921599 100644 --- a/include/charger.h +++ b/include/charger.h @@ -12,4 +12,5 @@ void EvseRead(); bool CheckStartCondition(); bool CheckVoltage(); void ResetValuesInOffMode(); +void CalcEnable(); #endif diff --git a/libopeninv/libopeninv.a b/libopeninv/libopeninv.a index bda1a57612eadf27212c2ee2d11b3b13e1e7f9eb..e7fc1de5b2142f33aee1d1361dd30755e98c40e9 100644 GIT binary patch delta 3779 zcmb_e4Qx|Y6u$3u>$X7;ooc0JVO4N`n7=ENrZ^%UP;Kk=+p&- z{3rF(1oc_}kG5VWMArk~5OObSxznkuUs@YyESX)m-m?*=9W8~L`1VBK!Xo#~+SN-v zYigIQ?)oGChnASh6DLiCMM>@gYdSqOF4LKvPEyENBGG3PRkZQkn!6r(r#g1VFG|ME z`QE_y-tE_|K|J(pRLM@yE$^@my+F%JfApMZtuXN83 zE8U^Y^E*P3jt!ypwN0^@YDZ{;H|Q8mFk(>lgeW_10Lj}#(4f2gqzvHmZR!lmgR|5! zZoei45Go`}w z+0rcVRXhF5aFeN&W22{)XRy4Owt@2*vcMZsWpqIPUCz&<&!h1#+@97c&R-XK`HJR1 z2s~vgfdljGaQ;m%#JrT}Or(Aii9>HDG2GrytwfAat)xP^ng&}`JM?e0OA36Fr^4u!+`og{ zFIdEn*p?^IBSD`%e2bTHpInZQaC{-hAL95tJW486njv#!wxA`<6tCu92e}t34C=Xs zx!2V#U0%0z)y#J8}bbk>Sz=hSOAPuH}gmt^Z5*G}C=0{xO5E;=l5 z$&luxLr_W93_D?!KK~ik#0!<3s=Rz#d}k2Lg-J)iWPsY zi){G~jbuBPBe1c&(C}Rm@uVntt_0JM+sX^0&{Lw|bE4ooSvq;21XZ0j=?H|=RYzYG z-?PZdUuv%3VJCMCE|yB<>{StmrmjtXyo2-|!Pf)@qr~cI;5eE*s=EI%!C%bNFW_RH z!N2G6v--@%ZwwXW3#jS?lBrQSh<2HB``u{`paGZv^hwS5_B6 z=y+okyjj4-1soS}aY85Wj{CzG?oNcSM8SWJf*bgSi?ld!x`2xloxyNgRgnRUW9cnf zypo4uWlW^1??=6m4sTl>--b~#uyz1j|5+geo}TV`QOF=p=w|^J7jQ$sONBgUBkfR$ zoWE7WD_BwEz$5%4kj4XWN#caEqu?dt0H8deLRya-)&=ZP?o5D|fK`5!K&R6NFZP(= zH0@rc-5wis^q7)!_+5o#p^iu}M5)U?rljQ&)Im^sRj~A$@(xEZ`nUCL1YQvfL(a*t zxYwfpnJ?-+A@zc@?>dS|UT_(BA z2S1K4Jjp$=8w1A*^5s3o<`f$YWLjbKD!bgudv<6$VKuk%{Y)h=?8=a4 z!`mlRa|Z`)8t7x-DGsJ+;08FCsmfm)!38Y0v=x+WRUV=fYMCH4LM81a#KDIay1`{u zsRdr6fHe-P_D+yGFxKqmKc7PqRC_a|_d&^2VQ{Z0v5Idku0VnM!u%vF|C_Y(vP%Zv h>ngmOV>i1jxMo7O8Q4Y)=Gfz_@CSlQ5YCl3{{mdO)7t<5 delta 2780 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 diff --git a/test/test_logic.h b/test/test_logic.h index 697eb85..3ad5e5b 100644 --- a/test/test_logic.h +++ b/test/test_logic.h @@ -181,3 +181,60 @@ void test_reset_values_in_off_mode(){ assert(0 == Param::GetInt(Param::c3stt)); assert(0 == Param::GetInt(Param::c3uac)); } + +void test_calc_enable(){ + + int enable; + + //default off + Param::SetInt(Param::enable, 0); + Param::SetInt(Param::enablepol, 0); // polarity switch for DigIo + Param::SetInt(Param::cancontrol, 0); + Param::SetInt(Param::canenable, 0); + DigIo::enable_in.Clear(); + CalcEnable(); + enable = Param::GetInt(Param::enable); + assert(!enable); + + //only DigIo high -> on + Param::SetInt(Param::enable, 0); + Param::SetInt(Param::enablepol, 0); + Param::SetInt(Param::cancontrol, 0); + Param::SetInt(Param::canenable, 0); + DigIo::enable_in.Set(); + CalcEnable(); + enable = Param::GetInt(Param::enable); + assert(enable); + + //DigIo and enablepol high -> off + Param::SetInt(Param::enable, 0); + Param::SetInt(Param::enablepol, 1); + Param::SetInt(Param::cancontrol, 0); + Param::SetInt(Param::canenable, 0); + DigIo::enable_in.Set(); + CalcEnable(); + enable = Param::GetInt(Param::enable); + assert(!enable); + + + // DigIo & canenable -> on + Param::SetInt(Param::enable, 0); + Param::SetInt(Param::enablepol, 0); + Param::SetInt(Param::cancontrol, 0); + Param::SetInt(Param::canenable, 2); + DigIo::enable_in.Set(); + CalcEnable(); + enable = Param::GetInt(Param::enable); + assert(enable); + + //recheck can after 10+ calls + // TODO unfinished test + //int canenable = Param::GetInt(Param::canenable); + //Param::SetInt(Param::cancontrol, 1); + //for(int i =0; i < 15;i++){ + // CalcEnable(); + // enable = Param::GetInt(Param::enable); + // assert(enable); + //} + //assert(3 == canenable); +}