From e54de686058342c2570659294e49fca363951179 Mon Sep 17 00:00:00 2001 From: Janosch Date: Tue, 11 Oct 2022 12:20:37 +0100 Subject: [PATCH] test CheckVoltage --- include/charger.h | 1 + libopeninv/libopeninv.a | Bin 47558 -> 47964 bytes src/charger.cpp | 17 +++++++++++++++++ src/main.cpp | 17 ----------------- test/test.c | 1 + test/test.out | Bin 52088 -> 52600 bytes test/test_logic.h | 16 ++++++++++++++++ 7 files changed, 35 insertions(+), 17 deletions(-) diff --git a/include/charger.h b/include/charger.h index f4e138e..872dc06 100644 --- a/include/charger.h +++ b/include/charger.h @@ -9,4 +9,5 @@ void CalcTotals(); void DisableAll(); void EvseRead(); bool CheckStartCondition(); +bool CheckVoltage(); #endif diff --git a/libopeninv/libopeninv.a b/libopeninv/libopeninv.a index c947dd3ad9d8baca4050b55d6c98e3afced7b6cb..ba7384aef8f7ad8119d426f180a2c9590852004b 100644 GIT binary patch delta 2346 zcmb_eeQZ-z6hH5F-P+=|R~fIRGfl^!=@=gc5hhM1VIyTDuwX*WFm41VplBCUME$2r zwxCEN3&$XSz?P9z+>|P1V+#pu#B7)tqu~z-5{Ley2{SG;(U}nE{d&nsW8>#Z&iUQ* zJLjHrd*8`>9sil#`i1qZPp*lEq_lYeU>AV<^M9}AEWkh1q};Ih768?#3GjEc_AbDG z(M8kIJF2w6(waF zo3Qt+k3A0fk>6s^O9&k2v3tP*bvh@iF{Q#2Ivm&ZA&u8nktqp=1Jiz=Q7-LjX}3t* zChZ|4gB@uaT(tLA6v74evxsr(%rg)}RGawdP!8VP|7 zI;&r21vNIQtX2gH1t%mJqgXl^Uf8l~^`?F8d!Esw@Em zd2b$m3E?Y9ot1>A^=lQMgxm&O@@#mO@D-%NDZo#F=Qnd- zHl?H7O$vp{hOY@9A^dHI(;r%a8PcbUgq;pF&s&Yf4$g5AS>iQiAFncp7db*6*1R}& zHCH=-n*$$t#cF(vgz4d*%EKSb!>439Hl*M)1>Y+8T|s$)=*Vg%1Y+VqTm;a@Pphn# z6uhS3Ed>J#MkV0oOtvbbr$^j|Q2YHB%i;So$1YSFI5Sj+<3q~~6W=*jjlp3T%NAgB zPY~BH_j_C=ya1OM3vu7@T4p+NcZr2h^hCt6qr$?=^Gz(g=ofD2;szFWVjG8ACwgNl zIL?FhPQ1<84tuwWn@9Xc2eyvXd3y9Gug$<_4C45R-`%M{Fw^*bWlfp>Ce`S>;r}zB b6t|nzp2$3TG`Pv+aaWx5vyKJWHyZu}_EVw2 delta 1798 zcmb_dTS!z<6g~IOBgd{b%}jI0#+;!hvvSh1RK(IiY62<0`cTm#D2p(a2tSIcJ}T0{ zW{3JAWhMD4XQoS|*#qmN2N)Fn2o;t=MUVuQM45J8!WqHnwPEkI*V<>FbM86!&O9HJ z?|qURa{Mc^-PE?lB7}+&GDZI0%_9i?q5Elr=N>|$r+q`{cRcqELjUG|getH8A8)Qi zXv$mnAoOc5FW$VSVD~OLF(4b= z>(6y9%Y*za`=RR6kRcIY7J}+_r@@UAH=J(IfPwZif!Ri=>9~*(hsA|x7LLs999`h; zR1?xLvmhPU5X$3OK1j<|X)BEf;8dq7ouqj;+`{<{nm?xTEsc{T>g*DN^M~f?yc`QS zmN0bINNhEHRn&So9_8cCF_iAYi!RmqjF0|`kysG}^ns5y%5*iSS!T2PFcM4RxPaAl zD>-i9Si!N5q8$#m#^`obRcXrQAqmE=48~d5JV=kx0#ABWh|!d|t%7O;DX7Mgqa2@P z=7;JQ6>@_LID(2)N7-J?e3&&+)`D3rW)~?N#H<6eAZ6p6-JmQrq`(la-KVS+v+R%} zJ*BK3vkJ_HDZ3d`5?sPA4E(6b&Ry^-q{fTY#S+{O*-IN>Ev_2f&bb>V<3@h{$ zx`n|uI3HG{)_)LHeG;Z8w|zuZ#oh9YBD-BA=oUdIcQJLw%eYR!Bj`uq(N)!dOz4^; zRGS5TiJ*52dWxWHTqi(2o2k_wPSbIT+H0m;>Fcr-OH&P>WmuuvH%;(9`Zft=g@1L^ zb>|FvA$T=aDxq;7jmK$hqwx-nBP7lronZ#Eo@_{VF-T{S$DoKoIR(hQHem7aTO->i z?vtU%l?`Q)_fkBB>#b1Qn+m>O8?^Mg<(+y+%E^pPC%-n>-Wgz`H&c%2p*r3U1Kt## z239zrt Param::Get(Param::udclim)) + { + timeout++; + } + else + { + timeout = 0; + } + + return timeout > 10; +} + + bool CheckTimeout() { uint32_t now = rtc_get_counter_val(); diff --git a/src/main.cpp b/src/main.cpp index 8d37c57..755c775 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -48,23 +48,6 @@ static Can* can; static PiController dcCurController; uint32_t startTime; - -static bool CheckVoltage() -{ - static int timeout = 0; - - if (Param::Get(Param::udc) > Param::Get(Param::udclim)) - { - timeout++; - } - else - { - timeout = 0; - } - - return timeout > 10; -} - static bool CheckChargerFaults() { const int acPresentThresh = 70; diff --git a/test/test.c b/test/test.c index 4737b31..5bdf44c 100644 --- a/test/test.c +++ b/test/test.c @@ -23,6 +23,7 @@ int main() { (TestCase){"test_check_timeout", test_check_timeout}, (TestCase){"test_evse_read", test_evse_read}, (TestCase){"test_check_start_condition", test_check_start_condition}, + (TestCase){"test_check_voltage", test_check_voltage}, // Example: //(TestCase){"Your tests name", function_name_without_brackets} //... diff --git a/test/test.out b/test/test.out index 109cd2a8a10b56bb25551dd8ec6695e924f21b7c..ff6cca7cedf4561166c5b1a3845963361bf99bc9 100755 GIT binary patch delta 16399 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 RX}5r!dZSpbQ1nL~{x7aJ8J_?E diff --git a/test/test_logic.h b/test/test_logic.h index 7193552..9a9f28b 100644 --- a/test/test_logic.h +++ b/test/test_logic.h @@ -129,3 +129,19 @@ void test_check_start_condition() res = CheckStartCondition(); assert(!res); } + +void test_check_voltage(){ + bool res; + Param::SetInt(Param::udc, 400); + Param::SetInt(Param::udclim, 390); + + // tolerate up to ten one off spikes + res = CheckVoltage(); + assert(!res); + + // drop out if received more than ten + for(int i =0; i < 15;i++){ + res = CheckVoltage(); + } + assert(res); +}