Live Data progress

This commit is contained in:
rusefillc 2022-01-06 17:58:59 -05:00
parent 32086b58a8
commit 25ca48c408
10 changed files with 93 additions and 90 deletions

View File

@ -0,0 +1,19 @@
// generated by gen_live_documentation.sh / UsagesReader.java
#pragma once
typedef enum {
LDS_high_pressure_fuel_pump,
LDS_injector_model,
LDS_launch_control_state,
LDS_boost_control,
LDS_ac_control,
LDS_fan_control,
LDS_fuel_pump,
LDS_main_relay,
LDS_engine_state,
LDS_tps_accel_state,
LDS_trigger_central,
LDS_trigger_state,
LDS_wall_fuel_state,
LDS_idle_state,
} live_data_e;

View File

@ -190,35 +190,35 @@ static void handlePageSelectCommand(TsChannelBase *tsChannel, ts_response_format
static const void * getStructAddr(live_data_e structId) {
switch (structId) {
case LDS_ENGINE:
case LDS_engine_state:
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);
case LDS_TRIGGER_CENTRAL:
case LDS_trigger_central:
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);
case LDS_AC_CONTROL:
case LDS_ac_control:
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());
#if EFI_ELECTRONIC_THROTTLE_BODY
case LDS_ETB_PID:
return engine->etbControllers[0]->getPidState();
#endif /* EFI_ELECTRONIC_THROTTLE_BODY */
#ifndef EFI_IDLE_CONTROL
case LDS_IDLE_PID:
return static_cast<pid_state_s*>(getIdlePid());
#endif /* EFI_IDLE_CONTROL */
case LDS_IDLE:
//#if EFI_ELECTRONIC_THROTTLE_BODY
// case LDS_ETB_PID:
// return engine->etbControllers[0]->getPidState();
//#endif /* EFI_ELECTRONIC_THROTTLE_BODY */
//
//#ifndef EFI_IDLE_CONTROL
// case LDS_IDLE_PID:
// return static_cast<pid_state_s*>(getIdlePid());
//#endif /* EFI_IDLE_CONTROL */
case LDS_idle_state:
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);
case LDS_MAIN_RELAY:
case LDS_main_relay:
return static_cast<main_relay_s*>(&engine->module<MainRelayController>().unmock());
#if EFI_BOOST_CONTROL
case LDS_BOOST_CONTROL:
case LDS_boost_control:
return static_cast<boost_control_s*>(&engine->boostController);
#endif // EFI_BOOST_CONTROL
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
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; }
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 {
LDS_SPEED_DENSITY,
LDS_ENGINE,
LDS_FUEL_TRIM,
LDS_TPS_TPS_ENRICHMENT,
LDS_TRIGGER_CENTRAL,
LDS_ETB_PID,
LDS_IDLE_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,
LDS_high_pressure_fuel_pump,
LDS_injector_model,
LDS_launch_control_state,
LDS_boost_control,
LDS_ac_control,
LDS_fan_control,
LDS_fuel_pump,
LDS_main_relay,
LDS_engine_state,
LDS_tps_accel_state,
LDS_trigger_central,
LDS_trigger_state,
LDS_wall_fuel_state,
LDS_idle_state,
}

View File

@ -16,24 +16,26 @@ public enum StateDictionary {
private final Map<live_data_e, Field[]> map = new HashMap<>();
StateDictionary() {
register(live_data_e.LDS_SPEED_DENSITY, EngineState.VALUES); // 2
register(live_data_e.LDS_ENGINE, EngineState.VALUES); // 3
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_ETB_PID, PidState.VALUES); // 7
//register(live_data_e.LDS_IDLE_PID, PidState.VALUES);
//register(live_data_e.LDS_ALTERNATOR_PID,
// LDS_CJ125_PID
register(live_data_e.LDS_IDLE, IdleState.VALUES);
register(live_data_e.LDS_TRIGGER_STATE, TriggerState.VALUES); // 11
register(live_data_e.LDS_AC_CONTROL, AcControl.VALUES); // 12
register(live_data_e.LDS_FUEL_PUMP, FuelPump.VALUES);
register(live_data_e.LDS_TPS_ACCEL, 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, LaunchControl.VALUES);
register(live_data_e.LDS_HIGH_PRESSURE, HighPressureFuelPump.VALUES);
//register(live_data_e.LDS_IDLE, IdleState.VALUES);
// todo: code generate this!
register(live_data_e.LDS_engine_state, EngineState.VALUES); // 3
register(live_data_e.LDS_trigger_central, TriggerCentral.VALUES);
register(live_data_e.LDS_trigger_state, TriggerState.VALUES); // 11
register(live_data_e.LDS_ac_control, AcControl.VALUES); // 12
register(live_data_e.LDS_fan_control, FuelPump.VALUES);
register(live_data_e.LDS_injector_model, InjectorModel.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) {
Set<live_data_e> missing = new HashSet<>(Arrays.asList(live_data_e.values()));
missing.removeAll(map.keySet());

View File

@ -7,6 +7,6 @@ public class StateDictionaryTest {
@Test
public void testStateDictionaryIsComplete() {
// 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
*/
public enum LiveDataView {
AC_CONTROL(live_data_e.LDS_AC_CONTROL, AcControl.VALUES, "ac_control.cpp"),
FUEL_PUMP(live_data_e.LDS_FUEL_PUMP, FuelPump.VALUES, "fuel_pump.cpp"),
MAIN_RELAY(live_data_e.LDS_MAIN_RELAY, MainRelay.VALUES, "main_relay.cpp"),
TPS_ACCEL(live_data_e.LDS_TPS_ACCEL, TpsAccelState.VALUES, "accel_enrichment.cpp"),
BOOST_CONTROL(live_data_e.LDS_BOOST_CONTROL, BoostControl.VALUES, "boost_control.cpp"),
LAUNCH_CONTROL(live_data_e.LDS_LAUNCH_CONTROL, LaunchControl.VALUES, "launch_control.cpp"),
HIGH_PRESSURE(live_data_e.LDS_HIGH_PRESSURE, HighPressureFuelPump.VALUES, "high_pressure_fuel_pump.cpp"),
// 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"),
FUEL_PUMP(live_data_e.LDS_fuel_pump, FuelPump.VALUES, "fuel_pump.cpp"),
MAIN_RELAY(live_data_e.LDS_main_relay, MainRelay.VALUES, "main_relay.cpp"),
TPS_ACCEL(live_data_e.LDS_tps_accel_state, TpsAccelState.VALUES, "accel_enrichment.cpp"),
BOOST_CONTROL(live_data_e.LDS_boost_control, BoostControl.VALUES, "boost_control.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;
@ -23,7 +24,6 @@ public enum LiveDataView {
private final String fileName;
LiveDataView(live_data_e liveDataE, Field[] values, String fileName) {
this.liveDataE = liveDataE;
this.values = values;
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.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;
import java.util.Map;
@ -20,6 +21,11 @@ public class UsagesReader {
Yaml yaml = new Yaml();
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");
for (Map.Entry entry : liveDocs.entrySet()) {
String name = (String) entry.getKey();
@ -41,6 +47,13 @@ public class UsagesReader {
ConfigDefinition.KEY_C_DESTINATION,
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());
}
}
}