RE usability: live data for idle controller

This commit is contained in:
rusefillc 2022-01-10 21:56:27 -05:00
parent 699a5ef302
commit cca765ebe6
3 changed files with 37 additions and 28 deletions

View File

@ -14,6 +14,7 @@ public enum StateDictionary {
INSTANCE; INSTANCE;
private final Map<live_data_e, Field[]> map = new HashMap<>(); private final Map<live_data_e, Field[]> map = new HashMap<>();
private final Map<live_data_e, String> fileNames = new HashMap<>();
StateDictionary() { StateDictionary() {
//register(live_data_e.LDS_ETB_PID, PidState.VALUES); // 7 //register(live_data_e.LDS_ETB_PID, PidState.VALUES); // 7
@ -22,20 +23,20 @@ public enum StateDictionary {
// LDS_CJ125_PID // LDS_CJ125_PID
//register(live_data_e.LDS_IDLE, IdleState.VALUES); //register(live_data_e.LDS_IDLE, IdleState.VALUES);
// todo: code generate this! // todo: code generate this!
register(live_data_e.LDS_engine_state, EngineState.VALUES); // 3 register(live_data_e.LDS_engine_state, EngineState.VALUES, "engine.cpp"); // 3
register(live_data_e.LDS_trigger_central, TriggerCentral.VALUES); register(live_data_e.LDS_trigger_central, TriggerCentral.VALUES, "trigger_central.cpp");
register(live_data_e.LDS_trigger_state, TriggerState.VALUES); // 11 register(live_data_e.LDS_trigger_state, TriggerState.VALUES, "trigger_decoder.cpp"); // 11
register(live_data_e.LDS_ac_control, AcControl.VALUES); // 12 register(live_data_e.LDS_ac_control, AcControl.VALUES, "ac_control.cpp"); // 12
register(live_data_e.LDS_fan_control, FuelPump.VALUES); register(live_data_e.LDS_fan_control, FuelPump.VALUES, "fan_control.cpp");
register(live_data_e.LDS_injector_model, InjectorModel.VALUES); register(live_data_e.LDS_injector_model, InjectorModel.VALUES, "injector_model");
register(live_data_e.LDS_idle_state, IdleState.VALUES); register(live_data_e.LDS_idle_state, IdleState.VALUES, "idle_thread.cpp");
register(live_data_e.LDS_fuel_pump, FuelPump.VALUES); register(live_data_e.LDS_fuel_pump, FuelPump.VALUES, "fuel_pump.cpp");
register(live_data_e.LDS_wall_fuel_state, WallFuelState.VALUES); register(live_data_e.LDS_wall_fuel_state, WallFuelState.VALUES, "wall_fuel.cpp");
register(live_data_e.LDS_tps_accel_state, TpsAccelState.VALUES); register(live_data_e.LDS_tps_accel_state, TpsAccelState.VALUES, "accel_enrichment.cpp");
register(live_data_e.LDS_main_relay, MainRelay.VALUES); register(live_data_e.LDS_main_relay, MainRelay.VALUES, "main_relay.cpp");
register(live_data_e.LDS_boost_control, BoostControl.VALUES); register(live_data_e.LDS_boost_control, BoostControl.VALUES, "boost_control.cpp");
register(live_data_e.LDS_launch_control_state, LaunchControl.VALUES); register(live_data_e.LDS_launch_control_state, LaunchControl.VALUES, "launch_control.cpp");
register(live_data_e.LDS_high_pressure_fuel_pump, HighPressureFuelPump.VALUES); register(live_data_e.LDS_high_pressure_fuel_pump, HighPressureFuelPump.VALUES, "high_pressure_fuel_pump.cpp");
if (map.size() != live_data_e.values().length) { if (map.size() != live_data_e.values().length) {
Set<live_data_e> missing = new HashSet<>(Arrays.asList(live_data_e.values())); Set<live_data_e> missing = new HashSet<>(Arrays.asList(live_data_e.values()));
missing.removeAll(map.keySet()); missing.removeAll(map.keySet());
@ -43,15 +44,24 @@ public enum StateDictionary {
} }
} }
private void register(live_data_e ldsIndex, Field[] values) { private void register(live_data_e ldsIndex, Field[] values, String fileName) {
map.put(ldsIndex, values); map.put(ldsIndex, values);
fileNames.put(ldsIndex, fileName);
}
public String getFileName(live_data_e ldsIndex) {
String result = fileNames.get(ldsIndex);
if (result == null) {
throw new IllegalStateException("Nothing for " + ldsIndex);
}
return result;
} }
@NotNull @NotNull
public Field[] getFields(live_data_e indexFieldName) { public Field[] getFields(live_data_e ldsIndex) {
Field[] result = map.get(indexFieldName); Field[] result = map.get(ldsIndex);
if (result == null) { if (result == null) {
throw new IllegalStateException("Nothing for " + indexFieldName); throw new IllegalStateException("Nothing for " + ldsIndex);
} }
return result; return result;
} }

View File

@ -1,6 +1,5 @@
package com.rusefi.ui.livedocs; package com.rusefi.ui.livedocs;
import com.rusefi.binaryprotocol.BinaryProtocol;
import com.rusefi.enums.live_data_e; import com.rusefi.enums.live_data_e;
/** /**

View File

@ -10,23 +10,23 @@ import com.rusefi.ldmp.StateDictionary;
*/ */
public enum LiveDataView { public enum LiveDataView {
// todo: code generate this part of the enum with some BEFORE/AFTER tag? // todo: code generate this part of the enum with some BEFORE/AFTER tag?
AC_CONTROL(live_data_e.LDS_ac_control, AcControl.VALUES, "ac_control.cpp"), AC_CONTROL(live_data_e.LDS_ac_control, AcControl.VALUES),
FUEL_PUMP(live_data_e.LDS_fuel_pump, FuelPump.VALUES, "fuel_pump.cpp"), FUEL_PUMP(live_data_e.LDS_fuel_pump, FuelPump.VALUES),
MAIN_RELAY(live_data_e.LDS_main_relay, MainRelay.VALUES, "main_relay.cpp"), MAIN_RELAY(live_data_e.LDS_main_relay, MainRelay.VALUES),
TPS_ACCEL(live_data_e.LDS_tps_accel_state, TpsAccelState.VALUES, "accel_enrichment.cpp"), TPS_ACCEL(live_data_e.LDS_tps_accel_state, TpsAccelState.VALUES),
BOOST_CONTROL(live_data_e.LDS_boost_control, BoostControl.VALUES, "boost_control.cpp"), BOOST_CONTROL(live_data_e.LDS_boost_control, BoostControl.VALUES),
LAUNCH_CONTROL(live_data_e.LDS_launch_control_state, LaunchControl.VALUES, "launch_control.cpp"), LAUNCH_CONTROL(live_data_e.LDS_launch_control_state, LaunchControl.VALUES),
HIGH_PRESSURE(live_data_e.LDS_high_pressure_fuel_pump, HighPressureFuelPump.VALUES, "high_pressure_fuel_pump.cpp"), HIGH_PRESSURE(live_data_e.LDS_high_pressure_fuel_pump, HighPressureFuelPump.VALUES),
; ;
private final live_data_e liveDataE; private final live_data_e liveDataE;
private final Field[] values; private final Field[] values;
private final String fileName; private final String fileName;
LiveDataView(live_data_e liveDataE, Field[] values, String fileName) { LiveDataView(live_data_e liveDataE, Field[] values) {
this.liveDataE = liveDataE; this.liveDataE = liveDataE;
this.values = values; this.values = values;
this.fileName = fileName; this.fileName = StateDictionary.INSTANCE.getFileName(liveDataE);
} }
public live_data_e getLiveDataE() { public live_data_e getLiveDataE() {