Live Data progress

This commit is contained in:
rusefillc 2022-01-06 17:58:59 -05:00
parent e7c28e685e
commit ca6b7bba23
9 changed files with 74 additions and 90 deletions

View File

@ -190,35 +190,35 @@ static void handlePageSelectCommand(TsChannelBase *tsChannel, ts_response_format
static const void * getStructAddr(live_data_e structId) { static const void * getStructAddr(live_data_e structId) {
switch (structId) { switch (structId) {
case LDS_ENGINE: case LDS_engine_state:
return static_cast<engine_state2_s*>(&engine->engineState); return static_cast<engine_state2_s*>(&engine->engineState);
case LDS_FUEL_TRIM: case LDS_wall_fuel_state:
return static_cast<wall_fuel_state*>(&engine->injectionEvents.elements[0].wallFuel); return static_cast<wall_fuel_state*>(&engine->injectionEvents.elements[0].wallFuel);
case LDS_TRIGGER_CENTRAL: case LDS_trigger_central:
return static_cast<trigger_central_s*>(&engine->triggerCentral); return static_cast<trigger_central_s*>(&engine->triggerCentral);
case LDS_TRIGGER_STATE: case LDS_trigger_state:
return static_cast<trigger_state_s*>(&engine->triggerCentral.triggerState); return static_cast<trigger_state_s*>(&engine->triggerCentral.triggerState);
case LDS_AC_CONTROL: case LDS_ac_control:
return static_cast<ac_control_s*>(&engine->module<AcController>().unmock()); return static_cast<ac_control_s*>(&engine->module<AcController>().unmock());
case LDS_FUEL_PUMP: case LDS_fuel_pump:
return static_cast<fuel_pump_control_s*>(&engine->module<FuelPumpController>().unmock()); return static_cast<fuel_pump_control_s*>(&engine->module<FuelPumpController>().unmock());
#if EFI_ELECTRONIC_THROTTLE_BODY //#if EFI_ELECTRONIC_THROTTLE_BODY
case LDS_ETB_PID: // case LDS_ETB_PID:
return engine->etbControllers[0]->getPidState(); // return engine->etbControllers[0]->getPidState();
#endif /* EFI_ELECTRONIC_THROTTLE_BODY */ //#endif /* EFI_ELECTRONIC_THROTTLE_BODY */
//
#ifndef EFI_IDLE_CONTROL //#ifndef EFI_IDLE_CONTROL
case LDS_IDLE_PID: // case LDS_IDLE_PID:
return static_cast<pid_state_s*>(getIdlePid()); // return static_cast<pid_state_s*>(getIdlePid());
#endif /* EFI_IDLE_CONTROL */ //#endif /* EFI_IDLE_CONTROL */
case LDS_IDLE: case LDS_idle_state:
return static_cast<idle_state_s*>(&engine->idle); return static_cast<idle_state_s*>(&engine->idle);
case LDS_TPS_ACCEL: case LDS_tps_accel_state:
return static_cast<tps_accel_state_s*>(&engine->tpsAccelEnrichment); return static_cast<tps_accel_state_s*>(&engine->tpsAccelEnrichment);
case LDS_MAIN_RELAY: case LDS_main_relay:
return static_cast<main_relay_s*>(&engine->module<MainRelayController>().unmock()); return static_cast<main_relay_s*>(&engine->module<MainRelayController>().unmock());
#if EFI_BOOST_CONTROL #if EFI_BOOST_CONTROL
case LDS_BOOST_CONTROL: case LDS_boost_control:
return static_cast<boost_control_s*>(&engine->boostController); return static_cast<boost_control_s*>(&engine->boostController);
#endif // EFI_BOOST_CONTROL #endif // EFI_BOOST_CONTROL
default: default:

View File

@ -1,29 +0,0 @@
/**
* @file live_data_ids.h
*
* Live Documentation Structure
* these indexes are used by custom protocol command TS_GET_STRUCT
*/
#pragma once
typedef enum {
LDS_SPEED_DENSITY,
LDS_ENGINE,
LDS_FUEL_TRIM,
LDS_TPS_TPS_ENRICHMENT,
LDS_TRIGGER_CENTRAL,
LDS_ETB_PID,
LDS_IDLE_PID,
//LDS_ALTERNATOR_PID,
//LDS_CJ125_PID,
LDS_TRIGGER_STATE,
LDS_AC_CONTROL,
LDS_FUEL_PUMP,
LDS_IDLE,
LDS_TPS_ACCEL,
LDS_MAIN_RELAY,
LDS_BOOST_CONTROL,
LDS_LAUNCH_CONTROL,
LDS_HIGH_PRESSURE,
} live_data_e;

View File

@ -4,7 +4,7 @@ echo "This batch files reads rusefi_enums.h and produces auto_generated_enums.*
rm gen_enum_to_string.log rm gen_enum_to_string.log
java -DSystemOut.name=logs/gen_java_enum -cp ../java_tools/enum2string.jar com.rusefi.ToJavaEnum -enumInputFile controllers/algo/live_data_ids.h -outputPath ../java_console/io/src/main/java/com/rusefi/enums java -DSystemOut.name=logs/gen_java_enum -cp ../java_tools/enum2string.jar com.rusefi.ToJavaEnum -enumInputFile console/binary/generated/live_data_ids.h -outputPath ../java_console/io/src/main/java/com/rusefi/enums
[ $? -eq 0 ] || { echo "ERROR generating live data ids"; exit 1; } [ $? -eq 0 ] || { echo "ERROR generating live data ids"; exit 1; }
java -DSystemOut.name=logs/gen_java_enum -cp ../java_tools/enum2string.jar com.rusefi.ToJavaEnum -enumInputFile controllers/sensors/sensor_type.h -outputPath ../java_console/io/src/main/java/com/rusefi/enums java -DSystemOut.name=logs/gen_java_enum -cp ../java_tools/enum2string.jar com.rusefi.ToJavaEnum -enumInputFile controllers/sensors/sensor_type.h -outputPath ../java_console/io/src/main/java/com/rusefi/enums

View File

@ -4,20 +4,18 @@ package com.rusefi.enums;
public enum live_data_e { public enum live_data_e {
LDS_SPEED_DENSITY, LDS_high_pressure_fuel_pump,
LDS_ENGINE, LDS_injector_model,
LDS_FUEL_TRIM, LDS_launch_control_state,
LDS_TPS_TPS_ENRICHMENT, LDS_boost_control,
LDS_TRIGGER_CENTRAL, LDS_ac_control,
LDS_ETB_PID, LDS_fan_control,
LDS_IDLE_PID, LDS_fuel_pump,
LDS_TRIGGER_STATE, LDS_main_relay,
LDS_AC_CONTROL, LDS_engine_state,
LDS_FUEL_PUMP, LDS_tps_accel_state,
LDS_IDLE, LDS_trigger_central,
LDS_TPS_ACCEL, LDS_trigger_state,
LDS_MAIN_RELAY, LDS_wall_fuel_state,
LDS_BOOST_CONTROL, LDS_idle_state,
LDS_LAUNCH_CONTROL,
LDS_HIGH_PRESSURE,
} }

View File

@ -16,24 +16,26 @@ public enum StateDictionary {
private final Map<live_data_e, Field[]> map = new HashMap<>(); private final Map<live_data_e, Field[]> map = new HashMap<>();
StateDictionary() { StateDictionary() {
register(live_data_e.LDS_SPEED_DENSITY, EngineState.VALUES); // 2 //register(live_data_e.LDS_ETB_PID, PidState.VALUES); // 7
register(live_data_e.LDS_ENGINE, EngineState.VALUES); // 3 //register(live_data_e.LDS_IDLE_PID, PidState.VALUES);
register(live_data_e.LDS_FUEL_TRIM, EngineState.VALUES);
register(live_data_e.LDS_TPS_TPS_ENRICHMENT, EngineState.VALUES); // 5
register(live_data_e.LDS_TRIGGER_CENTRAL, TriggerCentral.VALUES);
register(live_data_e.LDS_ETB_PID, PidState.VALUES); // 7
register(live_data_e.LDS_IDLE_PID, PidState.VALUES);
//register(live_data_e.LDS_ALTERNATOR_PID, //register(live_data_e.LDS_ALTERNATOR_PID,
// LDS_CJ125_PID // LDS_CJ125_PID
register(live_data_e.LDS_IDLE, IdleState.VALUES); //register(live_data_e.LDS_IDLE, IdleState.VALUES);
register(live_data_e.LDS_TRIGGER_STATE, TriggerState.VALUES); // 11 // todo: code generate this!
register(live_data_e.LDS_AC_CONTROL, AcControl.VALUES); // 12 register(live_data_e.LDS_engine_state, EngineState.VALUES); // 3
register(live_data_e.LDS_FUEL_PUMP, FuelPump.VALUES); register(live_data_e.LDS_trigger_central, TriggerCentral.VALUES);
register(live_data_e.LDS_TPS_ACCEL, TpsAccelState.VALUES); register(live_data_e.LDS_trigger_state, TriggerState.VALUES); // 11
register(live_data_e.LDS_MAIN_RELAY, MainRelay.VALUES); register(live_data_e.LDS_ac_control, AcControl.VALUES); // 12
register(live_data_e.LDS_BOOST_CONTROL, BoostControl.VALUES); register(live_data_e.LDS_fan_control, FuelPump.VALUES);
register(live_data_e.LDS_LAUNCH_CONTROL, LaunchControl.VALUES); register(live_data_e.LDS_injector_model, InjectorModel.VALUES);
register(live_data_e.LDS_HIGH_PRESSURE, HighPressureFuelPump.VALUES); register(live_data_e.LDS_idle_state, IdleState.VALUES);
register(live_data_e.LDS_fuel_pump, FuelPump.VALUES);
register(live_data_e.LDS_wall_fuel_state, WallFuelState.VALUES);
register(live_data_e.LDS_tps_accel_state, TpsAccelState.VALUES);
register(live_data_e.LDS_main_relay, MainRelay.VALUES);
register(live_data_e.LDS_boost_control, BoostControl.VALUES);
register(live_data_e.LDS_launch_control_state, LaunchControl.VALUES);
register(live_data_e.LDS_high_pressure_fuel_pump, HighPressureFuelPump.VALUES);
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());

View File

@ -7,6 +7,6 @@ public class StateDictionaryTest {
@Test @Test
public void testStateDictionaryIsComplete() { public void testStateDictionaryIsComplete() {
// we assert that this does not fail // we assert that this does not fail
StateDictionary.INSTANCE.getFields(live_data_e.LDS_AC_CONTROL); StateDictionary.INSTANCE.getFields(live_data_e.LDS_ac_control);
} }
} }

View File

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

Binary file not shown.

View File

@ -6,6 +6,7 @@ import org.yaml.snakeyaml.Yaml;
import java.io.File; import java.io.File;
import java.io.FileReader; import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException; import java.io.IOException;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -20,6 +21,11 @@ public class UsagesReader {
Yaml yaml = new Yaml(); Yaml yaml = new Yaml();
Map<String, Object> data = yaml.load(new FileReader(yamlFileName)); Map<String, Object> data = yaml.load(new FileReader(yamlFileName));
StringBuilder enumContent = new StringBuilder("// generated by gen_live_documentation.sh / UsagesReader.java\n" +
"#pragma once\n" +
"\n" +
"typedef enum {\n");
Map<?, ?> liveDocs = (Map) data.get("Usages"); Map<?, ?> liveDocs = (Map) data.get("Usages");
for (Map.Entry entry : liveDocs.entrySet()) { for (Map.Entry entry : liveDocs.entrySet()) {
String name = (String) entry.getKey(); String name = (String) entry.getKey();
@ -41,6 +47,13 @@ public class UsagesReader {
ConfigDefinition.KEY_C_DESTINATION, ConfigDefinition.KEY_C_DESTINATION,
folder + File.separator + name + "_generated.h" folder + File.separator + name + "_generated.h"
}); });
enumContent.append("LDS_" + name + ",\n");
}
enumContent.append("} live_data_e;\n");
try (FileWriter fw = new FileWriter("console/binary/generated/live_data_ids.h")) {
fw.write(enumContent.toString());
} }
} }
} }