From a43bf01ecd4c0943a3ff447ff6e88ab687272a13 Mon Sep 17 00:00:00 2001 From: David Holdeman Date: Sat, 2 Jan 2021 16:18:44 -0600 Subject: [PATCH] Solenoid test in console (#2178) * give it a try * create component * add command maybe * try * try * add pic * try TCU_SOLENOID_COUNT * try * use injection and ignition count fields --- firmware/controllers/bench_test.cpp | 21 +++++++++++++++++ .../ui/resources/com/rusefi/solenoid.jpg | Bin 0 -> 2732 bytes .../main/java/com/rusefi/BenchTestPane.java | 22 ++++++++++++++---- 3 files changed, 38 insertions(+), 5 deletions(-) create mode 100644 java_console/ui/resources/com/rusefi/solenoid.jpg diff --git a/firmware/controllers/bench_test.cpp b/firmware/controllers/bench_test.cpp index f2f70cb00d..d84c9500cf 100644 --- a/firmware/controllers/bench_test.cpp +++ b/firmware/controllers/bench_test.cpp @@ -120,6 +120,16 @@ static void doRunFuel(int humanIndex, const char *delayStr, const char * onTimeS pinbench(delayStr, onTimeStr, offTimeStr, countStr, &enginePins.injectors[humanIndex - 1], b); } +static void doTestSolenoid(int humanIndex, const char *delayStr, const char * onTimeStr, const char *offTimeStr, + const char *countStr) { + if (humanIndex < 1 || humanIndex > TCU_SOLENOID_COUNT) { + scheduleMsg(logger, "Invalid index: %d", humanIndex); + return; + } + brain_pin_e b = CONFIG(tcu_solenoid)[humanIndex - 1]; + pinbench(delayStr, onTimeStr, offTimeStr, countStr, &enginePins.tcuSolenoids[humanIndex - 1], b); +} + static void doBenchTestFsio(int humanIndex, const char *delayStr, const char * onTimeStr, const char *offTimeStr, const char *countStr) { if (humanIndex < 1 || humanIndex > FSIO_COMMAND_COUNT) { @@ -140,6 +150,16 @@ static void fuelbench2(const char *delayStr, const char *indexStr, const char * doRunFuel(index, delayStr, onTimeStr, offTimeStr, countStr); } +/** + * delay 100, solenoid #2, 1000ms ON, 1000ms OFF, repeat 3 times + * tcusolbench 100 2 1000 1000 3 + */ +static void tcusolbench(const char *delayStr, const char *indexStr, const char * onTimeStr, const char *offTimeStr, + const char *countStr) { + int index = atoi(indexStr); + doTestSolenoid(index, delayStr, onTimeStr, offTimeStr, countStr); +} + /** * delay 100, channel #1, 5ms ON, 1000ms OFF, repeat 3 times * fsiobench2 100 1 5 1000 3 @@ -409,6 +429,7 @@ void initBenchTest(Logging *sharedLogger) { addConsoleAction(CMD_HPFP_BENCH, hpfpValveBench); addConsoleActionSSSSS("fuelbench2", fuelbench2); + addConsoleActionSSSSS("tcusolbench", tcusolbench); addConsoleActionSSSSS("fsiobench2", fsioBench2); addConsoleActionSSSSS("sparkbench2", sparkbench2); instance.setPeriod(200 /*ms*/); diff --git a/java_console/ui/resources/com/rusefi/solenoid.jpg b/java_console/ui/resources/com/rusefi/solenoid.jpg new file mode 100644 index 0000000000000000000000000000000000000000..beaffa5b15b5f38050756d395ba6a90510ca83dc GIT binary patch literal 2732 zcmbW2cU03^7RP@nln??0Lm5Db1Ox>X1f>WGh?JlsPL!bvLPR=ErbQ z5C{ZZXAOWk18D1!oNfXD9)BF*1ONa8I7LHQGXRLN{6Js;{2T1g6ARW3@^9;dD03Xp z1t4JXfw2T-85<`X8x+dM#lgYO$<4*h4d;Tx5j^~S2p%L49L^`mhdhK55D?(z6%rOi z3G<@_PzR5IAgnu3HW(Wl426IrQ2(=-3_w$tpr>=yn4p1nxS`;D%iaO)t8_vUE$idu z?v2}Iw_D5@>)y{AM%+~;t6R-d*ARtKqj08cDAZ7<3 z!72zFt6B#I`=>x)79l$aCyWcuN~q-nz#s?&422vpv$BI(aR7>B<3FOL!+z)&TMkK2 z)TyxK98S!+$~FPQAWcfy?shngOHfGoClTqRGP1{xtDHWgs-~`?dtOi9zz}bA<*LcA zre@|A#2fZE9UPsUy}W&V{Yd@+5qBe_qVL7TraXA~C^hZzll0uY{DNnNMa3mm)it$s zFY6l`-?Vphc6ImkzWqoZ8Xg(_G)9@3otyvsWnpn?dGqVmw{7~)?)SX|E)W3u2i9L? z|G|Z1ae<*w2$bW13k3FKIRpu1JEFwSuk#Cst>+=hQ(>H_bICcCZ7_^7fhJ&gdyq>| zN@YfR^8oEnvi}Y&{Qn~R3+!K96o4B7VtpP23E+VJE4i_ORl2jmqIcik9)h{=Tnhg%2^Ye8WQaTV(-6PGbNCR&F1CSZ@&t6@%;u_PWrfUwmI2C`>;2lA(#y}LOyYt%&Y0Z$t{*VEC=rR3 zUb0}Xd|UG6TtfVj;`HEm^X{SH^GQ6WC=Y^xl+OUE@~Sx(@=^5yIDyWWIcP zyjOH$iIClB)z#tFvwli3VCP#)U?)RrzadEV*|g>EB~a<2m;6U_(XrC2d9ceDL4#tU#C!G#_ZzNV+M{$`QfD+Ni)B2S^Vlo#R^UWhJQX!(#E7lHYN)1JMkv-!IbE z@6RSe%$CwoRR+X`vHroylTS2>UKg7T0UpnUGVC!_-=knT%6Q9WzS@4R(^l*XMT zx%%>cp5eoWg;W`t24M-=+16UxMms!C?p#^x=e;PYd65xXe;RF^`nmS)F7aF)+5N~=@TY#dr<)%7OeiI_C-0he;J7qpW?L|`?gg~=S=HFWA(h_qFP3g!>+hV8 z8ER?D4~v4ASYbfnBANlFlOf7?92eNgHABrZkiO;fbPgE&mCQ1rsJftOyrje?&_c&9v^dZwOo}h{Y!;i4Q>o zh__UZQVxIA%nWsgzlyS{)6dNkAt!69mh>LGfQXiNKaya8=H2rUq@HzmC3=>HQiyYf ziOp^^G1LZfxtljVR!{cD0l@@4Ur9hJIL ziEqQPTe%WG9_#5}rzyJhbaId%g7JvDf1C-Jl9<5YJc)Y5Zu=$&^dycHA2{MwPsW~T zaCsNi;NN@J6O+9mxPY_Pb0ooDpDqO?`Y?5L!! zn5X;e9^#$QOL7yMFzUT+4?(AqaRF$G>rFK9e5y=;uS%>eXZxE3@4EXPm$+i7Mb&^& zU3;p6#t?CJ$_4aJU24?!nZ?vHXKp*bwGkRrUbk8_ZQy!x`vBiE)c=LW(qMMW zLSL)#kIx_u#-2b*j79ZRnnbi+Vy6hP9p(JS-i{B@wt1S^Gy36l->yyD8HT8rYKFVJ z(b|-$qjNSSmfdo!K?HJj#7{?Rxt66*o!+kS#;9C*s5)Oul$o` z6V#!wZfw^polyIYJ6^j6=4qW8Wf`en@(PH2A*IzM!5{rszcvTuY57UG?h6$-2KYvT mB7P>XdGF$T6GjALLZ!hKCN?=@jgyh6UkqRTO=E^I$Nm8O_t|p* literal 0 HcmV?d00001 diff --git a/java_console/ui/src/main/java/com/rusefi/BenchTestPane.java b/java_console/ui/src/main/java/com/rusefi/BenchTestPane.java index 18b7238c8d..2d17cbec85 100644 --- a/java_console/ui/src/main/java/com/rusefi/BenchTestPane.java +++ b/java_console/ui/src/main/java/com/rusefi/BenchTestPane.java @@ -28,6 +28,7 @@ public class BenchTestPane { content.add(createFuelPumpTest()); content.add(createSparkTest()); content.add(createInjectorTest()); + content.add(createSolenoidTest()); content.add(createMILTest()); content.add(createIdleTest()); content.add(createStarterTest()); @@ -105,7 +106,7 @@ public class BenchTestPane { } private Component createSparkTest() { - final JComboBox indexes = createIndexCombo(); + final JComboBox indexes = createIndexCombo(Fields.IGNITION_PIN_COUNT); CommandControl panel = new CommandControl(uiContext,"Spark #", "spark.jpg", TEST, indexes) { @Override protected String getCommand() { @@ -116,7 +117,7 @@ public class BenchTestPane { } private Component createInjectorTest() { - final JComboBox indexes = createIndexCombo(); + final JComboBox indexes = createIndexCombo(Fields.INJECTION_PIN_COUNT); CommandControl panel = new CommandControl(uiContext,"Injector #", "injector.png", TEST, indexes) { @Override protected String getCommand() { @@ -126,10 +127,21 @@ public class BenchTestPane { return panel.getContent(); } + private Component createSolenoidTest() { + final JComboBox indexes = createIndexCombo(Fields.TCU_SOLENOID_COUNT); + CommandControl panel = new CommandControl(uiContext,"TCU Solenoid #", "solenoid.jpg", TEST, indexes) { + @Override + protected String getCommand() { + return "tcusolbench 1000 " + indexes.getSelectedItem() + " 1000 1000 3"; + } + }; + return panel.getContent(); + } + @NotNull - private JComboBox createIndexCombo() { + private JComboBox createIndexCombo(Integer count) { JComboBox indexes = new JComboBox<>(); - for (int i = 1; i <= 12; i++) { + for (int i = 1; i <= count; i++) { indexes.addItem(i); } return indexes; @@ -139,4 +151,4 @@ public class BenchTestPane { return content; } -} \ No newline at end of file +}