From 8e61ddd188ebaf54c5f5f4a97c185053f3165c2c Mon Sep 17 00:00:00 2001 From: Janosch Date: Tue, 11 Oct 2022 13:28:13 +0100 Subject: [PATCH] test_check_delay --- include/charger.h | 1 + libopeninv/libopeninv.a | Bin 47964 -> 48232 bytes src/charger.cpp | 9 +++++++++ src/main.cpp | 8 -------- test/test.c | 1 + test/test.out | Bin 52600 -> 57112 bytes test/test_logic.h | 23 +++++++++++++++++++++++ 7 files changed, 34 insertions(+), 8 deletions(-) diff --git a/include/charger.h b/include/charger.h index 872dc06..14e3c24 100644 --- a/include/charger.h +++ b/include/charger.h @@ -5,6 +5,7 @@ extern uint32_t startTime; bool IsEvseInput(); bool CheckUnplugged(); bool CheckTimeout(); +bool CheckDelay(); void CalcTotals(); void DisableAll(); void EvseRead(); diff --git a/libopeninv/libopeninv.a b/libopeninv/libopeninv.a index ba7384aef8f7ad8119d426f180a2c9590852004b..62596d2c1c5eb10b2f4dfb1dc1badaa825951e18 100644 GIT binary patch delta 1318 zcmb_bUr19?82`?>yK{HVF684qOSsk_hrtZk`o`aFzu8S-qeIBv|{eis+yPuXS*jXgATq;8=Tuc0> zAQoDkDd4OnJ=ywLD0itZ2j`2~jR*TF1;Dw7VeD;fW@m=Ir0lTj2{~N@w5iZa8yy8U zfbCp5!EQc!BUEYAJZ<5|Vh~`Nvl``jZl{3v`bvb;dA^+I;XJ?6SjPU8jeUF)q=m+# zTwps!W-a6?-WgZuG{u)pCiD1uT-ml$(A%h8c5&p^_1G=o+PF;W(Z`fMt@$DgFQ_pT z9W|KwX?~ec3fK~p$rZfLl(MA3>@yVI#|%@*s5Z{1V|2x&a@|CCtNY=hl5yo46TR6) zkLY^MZwn2W7!nrs4@RGvOwXF=Z%y>~Ci)i>T@bZnTlM{7?Zo%uZlXz`UZaX-iX#>K zSm*OjLhT}!*9D}MQ!mNlj~79DOvJNJ8M8hw?GSO^E#tLGFX_OE$phj!b$uK=af(A?q zVw-<0xXiR!e2FmAWSwORnX)F1U!I>vjD|_0S*`cge0zsB+kkVqlWVD^ExJ6vj56J`_B$W}9H*OJUOaqgpAhLcL4wYMRh@ZqE{t$=w zKOExHAkQ%{XoEe8>_i)g1ctZ=%VfStvHC0=(v>*GyKsol#38;4hxks2I2*)WlRs*U zPqx|iWV6Ng35<*fChyHM=j7l6`-q`pGUrZnMuEwWJMDpFBbYo0B-JJ}?y_gJnd}H8 zT_!gI$%4rT!6f5u`^gQvI2aQqf3%jLoUvPivq1!6)`!W0Di$1U5RS# 0 && (now - startTime) > timeout; } +bool CheckDelay() +{ + uint32_t now = rtc_get_counter_val(); + uint32_t start = Param::GetInt(Param::timedly) * 60; + + return start <= 0 || (now - startTime) > start; +} + + void EvseRead() { const int threshProxType1 = 2200; diff --git a/src/main.cpp b/src/main.cpp index 755c775..57ede44 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -93,14 +93,6 @@ static bool CheckChargerFaults() (active3 && ((Param::GetInt(Param::c3flag) & FLAG_FAULT) || timeouts[2])); } -static bool CheckDelay() -{ - uint32_t now = rtc_get_counter_val(); - uint32_t start = Param::GetInt(Param::timedly) * 60; - - return start <= 0 || (now - startTime) > start; -} - static void CalcAcCurrentLimit() { int configuredChargers = Param::GetInt(Param::chargerena); diff --git a/test/test.c b/test/test.c index 5bdf44c..7b98ac0 100644 --- a/test/test.c +++ b/test/test.c @@ -21,6 +21,7 @@ int main() { (TestCase){"test_disable_all", test_disable_all}, (TestCase){"test_calc_totals", test_calc_totals}, (TestCase){"test_check_timeout", test_check_timeout}, + (TestCase){"test_check_delay", test_check_delay}, (TestCase){"test_evse_read", test_evse_read}, (TestCase){"test_check_start_condition", test_check_start_condition}, (TestCase){"test_check_voltage", test_check_voltage}, diff --git a/test/test.out b/test/test.out index ff6cca7cedf4561166c5b1a3845963361bf99bc9..4c716870ed653a5f45d87c9ae5b7f2f11b4afe99 100755 GIT binary patch literal 57112 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 R4Q$%U*JNt5Nx+oU{y(M`wCVr= literal 52600 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 W^Unq?+I9_m1<%ODc9Vc9sr^6b)w4SQ diff --git a/test/test_logic.h b/test/test_logic.h index 9a9f28b..749b852 100644 --- a/test/test_logic.h +++ b/test/test_logic.h @@ -52,6 +52,29 @@ void test_check_timeout() assert(res); } +void test_check_delay() +{ + bool res; + startTime = 11; + + //after delay + Param::SetInt(Param::test_time, 14 * 60); + Param::SetInt(Param::timedly, 13); + res = CheckDelay(); + assert(res); + + //before delay + Param::SetInt(Param::test_time, 12 * 60); + res = CheckDelay(); + assert(!res); + + //start time changes result + startTime = 1100; + res = CheckDelay(); + assert(res); +} + + void test_evse_read() { // INP_MANUAL