logging of live data structs was: data points #3614

This commit is contained in:
rusefillc 2022-04-13 22:27:44 -04:00
parent 8752f55a5f
commit 57df620087
5 changed files with 49 additions and 31 deletions

View File

@ -9,12 +9,19 @@
struct FragmentEntry { struct FragmentEntry {
FragmentEntry(const uint8_t *data, size_t size) { FragmentEntry(const uint8_t *data, size_t size) {
init(data, size);
}
FragmentEntry() {
}
const uint8_t *data = nullptr;
size_t size = 0;
void init(const uint8_t *data, size_t size) {
this->data = data; this->data = data;
this->size = size; this->size = size;
} }
const uint8_t *data;
size_t size;
}; };
void copyRange(uint8_t *destination, FragmentEntry *fragments, size_t dataOffset, size_t dataLength); void copyRange(uint8_t *destination, FragmentEntry *fragments, size_t dataOffset, size_t dataLength);

View File

@ -3,22 +3,22 @@
#include "FragmentEntry.h" #include "FragmentEntry.h"
#include "tunerstudio.h" #include "tunerstudio.h"
/* static FragmentEntry fragments[15];
static FragmentEntry fragments[] = {
FragmentEntry((const uint8_t *)getStructAddr(LDS_high_pressure_fuel_pump), sizeof(high_pressure_fuel_pump_s)), void initFragments() {
FragmentEntry((const uint8_t *)getStructAddr(LDS_injector_model), sizeof(injector_model_s)), fragments[0].init((const uint8_t *)getStructAddr(LDS_high_pressure_fuel_pump), sizeof(high_pressure_fuel_pump_s));
FragmentEntry((const uint8_t *)getStructAddr(LDS_launch_control_state), sizeof(launch_control_state_s)), fragments[1].init((const uint8_t *)getStructAddr(LDS_injector_model), sizeof(injector_model_s));
FragmentEntry((const uint8_t *)getStructAddr(LDS_boost_control), sizeof(boost_control_s)), fragments[2].init((const uint8_t *)getStructAddr(LDS_launch_control_state), sizeof(launch_control_state_s));
FragmentEntry((const uint8_t *)getStructAddr(LDS_ac_control), sizeof(ac_control_s)), fragments[3].init((const uint8_t *)getStructAddr(LDS_boost_control), sizeof(boost_control_s));
FragmentEntry((const uint8_t *)getStructAddr(LDS_fan_control), sizeof(fan_control_s)), fragments[4].init((const uint8_t *)getStructAddr(LDS_ac_control), sizeof(ac_control_s));
FragmentEntry((const uint8_t *)getStructAddr(LDS_fuel_pump_control), sizeof(fuel_pump_control_s)), fragments[5].init((const uint8_t *)getStructAddr(LDS_fan_control), sizeof(fan_control_s));
FragmentEntry((const uint8_t *)getStructAddr(LDS_main_relay), sizeof(main_relay_s)), fragments[6].init((const uint8_t *)getStructAddr(LDS_fuel_pump_control), sizeof(fuel_pump_control_s));
FragmentEntry((const uint8_t *)getStructAddr(LDS_engine_state), sizeof(engine_state_s)), fragments[7].init((const uint8_t *)getStructAddr(LDS_main_relay), sizeof(main_relay_s));
FragmentEntry((const uint8_t *)getStructAddr(LDS_tps_accel_state), sizeof(tps_accel_state_s)), fragments[8].init((const uint8_t *)getStructAddr(LDS_engine_state), sizeof(engine_state_s));
FragmentEntry((const uint8_t *)getStructAddr(LDS_trigger_central), sizeof(trigger_central_s)), fragments[9].init((const uint8_t *)getStructAddr(LDS_tps_accel_state), sizeof(tps_accel_state_s));
FragmentEntry((const uint8_t *)getStructAddr(LDS_trigger_state), sizeof(trigger_state_s)), fragments[10].init((const uint8_t *)getStructAddr(LDS_trigger_central), sizeof(trigger_central_s));
FragmentEntry((const uint8_t *)getStructAddr(LDS_wall_fuel_state), sizeof(wall_fuel_state_s)), fragments[11].init((const uint8_t *)getStructAddr(LDS_trigger_state), sizeof(trigger_state_s));
FragmentEntry((const uint8_t *)getStructAddr(LDS_idle_state), sizeof(idle_state_s)), fragments[12].init((const uint8_t *)getStructAddr(LDS_wall_fuel_state), sizeof(wall_fuel_state_s));
FragmentEntry((const uint8_t *)getStructAddr(LDS_ignition_state), sizeof(ignition_state_s)), fragments[13].init((const uint8_t *)getStructAddr(LDS_idle_state), sizeof(idle_state_s));
fragments[14].init((const uint8_t *)getStructAddr(LDS_ignition_state), sizeof(ignition_state_s));
}; };
*/

View File

@ -171,29 +171,37 @@ static void handlePageSelectCommand(TsChannelBase *tsChannel, ts_response_format
#if EFI_TUNER_STUDIO #if EFI_TUNER_STUDIO
const void * getStructAddr(live_data_e structId) { const void * getStructAddr(live_data_e structId) {
#if EFI_UNIT_TEST
if (engine == nullptr) { if (engine == nullptr) {
#if ! EFI_UNIT_TEST
firmwareError(OBD_PCM_Processor_Fault, "getStructAddr: No engine reference");
#endif
return nullptr; return nullptr;
} }
#endif
switch (structId) { switch (structId) {
case LDS_high_pressure_fuel_pump: case LDS_high_pressure_fuel_pump:
#if EFI_HPFP #if EFI_HPFP
return static_cast<high_pressure_fuel_pump_s*>(&engine->module<HpfpController>().unmock()); return static_cast<high_pressure_fuel_pump_s*>(&engine->module<HpfpController>().unmock());
#else #else
return nullptr; // explicit null to confirm that this struct is handled return nullptr; // explicit null to confirm that this struct is handled
#endif // EFI_HPFP #endif // EFI_HPFP
case LDS_launch_control_state: case LDS_launch_control_state:
#if EFI_LAUNCH_CONTROL
return static_cast<launch_control_state_s*>(&engine->launchController); return static_cast<launch_control_state_s*>(&engine->launchController);
#else
return nullptr; // explicit null to confirm that this struct is handled
#endif // EFI_LAUNCH_CONTROL
case LDS_injector_model: case LDS_injector_model:
return static_cast<injector_model_s*>(&engine->module<InjectorModel>().unmock()); return static_cast<injector_model_s*>(&engine->module<InjectorModel>().unmock());
case LDS_boost_control: case LDS_boost_control:
#if EFI_BOOST_CONTROL #if EFI_BOOST_CONTROL
return static_cast<boost_control_s*>(&engine->boostController); return static_cast<boost_control_s*>(&engine->boostController);
#else #else
return nullptr; // explicit null to confirm that this struct is handled return nullptr; // explicit null to confirm that this struct is handled
#endif // EFI_BOOST_CONTROL #endif // EFI_BOOST_CONTROL
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_fan_control: case LDS_fan_control:

Binary file not shown.

View File

@ -28,16 +28,18 @@ public class UsagesReader {
"\n" + "\n" +
"typedef enum {\n"); "typedef enum {\n");
LinkedHashMap<?, ?> liveDocs = (LinkedHashMap) data.get("Usages");
StringBuilder fragmentsContent = new StringBuilder( StringBuilder fragmentsContent = new StringBuilder(
header + header +
"#include \"pch.h\"\n" + "#include \"pch.h\"\n" +
"#include \"FragmentEntry.h\"\n\n" + "#include \"FragmentEntry.h\"\n\n" +
"#include \"tunerstudio.h\"\n" + "#include \"tunerstudio.h\"\n" +
"/*\n" + "static FragmentEntry fragments[" + liveDocs.size() + "];\n\n" +
"static FragmentEntry fragments[] = {\n"); "void initFragments() {\n");
int index = 0;
LinkedHashMap<?, ?> liveDocs = (LinkedHashMap) 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();
System.out.println(" " + name); System.out.println(" " + name);
@ -65,11 +67,14 @@ public class UsagesReader {
enumContent.append(enumName + ",\n"); enumContent.append(enumName + ",\n");
fragmentsContent fragmentsContent
.append("\tFragmentEntry((const uint8_t *)getStructAddr(") .append("\tfragments[")
.append(index++)
.append("].init(")
.append("(const uint8_t *)getStructAddr(")
.append(enumName) .append(enumName)
.append("), sizeof(") .append("), sizeof(")
.append(type) .append(type)
.append(")),\n"); .append("));\n");
} }
enumContent.append("} live_data_e;\n"); enumContent.append("} live_data_e;\n");
@ -79,8 +84,6 @@ public class UsagesReader {
fragmentsContent.append("};\n"); fragmentsContent.append("};\n");
fragmentsContent.append("*/\n");
try (FileWriter fw = new FileWriter("console/binary/generated/live_data_fragments.cpp")) { try (FileWriter fw = new FileWriter("console/binary/generated/live_data_fragments.cpp")) {
fw.write(fragmentsContent.toString()); fw.write(fragmentsContent.toString());
} }