diff --git a/firmware/console/binary/output_channels.txt b/firmware/console/binary/output_channels.txt index 2b634eec8d..302e71215a 100644 --- a/firmware/console/binary/output_channels.txt +++ b/firmware/console/binary/output_channels.txt @@ -40,36 +40,36 @@ bit isIdleClosedLoop; uint16_t autoscale RPMValue;@@GAUGE_NAME_RPM@@;"RPM",1, 0, 0, 8000, 0 -uint16_t rpmAcceleration;dRPM;"RPM/s",1, 0, 0, 5, 0 +uint16_t rpmAcceleration;dRPM;"RPM/s",1, 0, 0, 5, 2 - uint16_t autoscale speedToRpmRatio;@@GAUGE_NAME_GEAR_RATIO@@;"value",{1/@@PACK_MULT_PERCENT@@}, 0, 0, 0, 0 - uint8_t autoscale vehicleSpeedKph;@@GAUGE_NAME_VVS@@;"kph",1, 0, 0, 0, 0 + uint16_t autoscale speedToRpmRatio;@@GAUGE_NAME_GEAR_RATIO@@;"value",{1/@@PACK_MULT_PERCENT@@}, 0, 0, 0, 2 + uint8_t autoscale vehicleSpeedKph;@@GAUGE_NAME_VVS@@;"kph",1, 0, 0, 0, 1 int8_t autoscale internalMcuTemperature;@@GAUGE_NAME_CPU_TEMP@@;"deg C",1, 0, 0, 0, 0 - int16_t autoscale coolant;@@GAUGE_NAME_CLT@@;"deg C",{1/@@PACK_MULT_TEMPERATURE@@}, 0, 0, 0, 0 - int16_t autoscale intake;@@GAUGE_NAME_IAT@@;"deg C",{1/@@PACK_MULT_TEMPERATURE@@}, 0, 0, 0, 0 + int16_t autoscale coolant;@@GAUGE_NAME_CLT@@;"deg C",{1/@@PACK_MULT_TEMPERATURE@@}, 0, 0, 0, 1 + int16_t autoscale intake;@@GAUGE_NAME_IAT@@;"deg C",{1/@@PACK_MULT_TEMPERATURE@@}, 0, 0, 0, 1 - int16_t autoscale auxTemp1;;"deg C",{1/@@PACK_MULT_TEMPERATURE@@}, 0, 0, 0, 0 - int16_t autoscale auxTemp2;;"deg C",{1/@@PACK_MULT_TEMPERATURE@@}, 0, 0, 0, 0 + int16_t autoscale auxTemp1;;"deg C",{1/@@PACK_MULT_TEMPERATURE@@}, 0, 0, 0, 1 + int16_t autoscale auxTemp2;;"deg C",{1/@@PACK_MULT_TEMPERATURE@@}, 0, 0, 0, 1 - int16_t autoscale TPSValue;@@GAUGE_NAME_TPS@@;"%",{1/@@PACK_MULT_PERCENT@@}, 0, 0, 0, 0 - int16_t autoscale throttlePedalPosition;@@GAUGE_NAME_THROTTLE_PEDAL@@;"%",{1/@@PACK_MULT_PERCENT@@}, 0, 0, 0, 0 + int16_t autoscale TPSValue;@@GAUGE_NAME_TPS@@;"%",{1/@@PACK_MULT_PERCENT@@}, 0, 0, 0, 2 + int16_t autoscale throttlePedalPosition;@@GAUGE_NAME_THROTTLE_PEDAL@@;"%",{1/@@PACK_MULT_PERCENT@@}, 0, 0, 0, 2 uint16_t tpsADC;;"ADC", 1, 0, 0, 0, 0 uint16_t autoscale rawMaf;;"V",{1/@@PACK_MULT_VOLTAGE@@}, 0, 0, 5, 3 - uint16_t autoscale mafMeasured;@@GAUGE_NAME_AIR_FLOW_MEASURED@@;"kg/h",{1/@@PACK_MULT_MASS_FLOW@@}, 0, 0, 0, 0 - uint16_t autoscale MAPValue;@@GAUGE_NAME_MAP@@;"kPa",{1/@@PACK_MULT_PRESSURE@@}, 0, 0, 0, 0 - uint16_t autoscale baroPressure;;"kPa",{1/@@PACK_MULT_PRESSURE@@}, 0, 0, 0, 0 + uint16_t autoscale mafMeasured;@@GAUGE_NAME_AIR_FLOW_MEASURED@@;"kg/h",{1/@@PACK_MULT_MASS_FLOW@@}, 0, 0, 0, 1 + uint16_t autoscale MAPValue;@@GAUGE_NAME_MAP@@;"kPa",{1/@@PACK_MULT_PRESSURE@@}, 0, 0, 0, 1 + uint16_t autoscale baroPressure;;"kPa",{1/@@PACK_MULT_PRESSURE@@}, 0, 0, 0, 1 - uint16_t autoscale lambdaValue;@@GAUGE_NAME_LAMBDA@@;"",{1/@@PACK_MULT_LAMBDA@@}, 0, 0, 0, 0 + uint16_t autoscale lambdaValue;@@GAUGE_NAME_LAMBDA@@;"",{1/@@PACK_MULT_LAMBDA@@}, 0, 0, 0, 3 uint8_t autoscale knockRetard;@@GAUGE_NAME_KNOCK_RETARD@@;"deg",{1/10}, 0, 0, 0, 0 uint8_t autoscale idleCurrentPosition;;"%", 0.5, 0, 0, 100, 1 - uint16_t autoscale VBatt;@@GAUGE_NAME_VBAT@@;"V",{1/@@PACK_MULT_VOLTAGE@@}, 0, 0, 0, 0 + uint16_t autoscale VBatt;@@GAUGE_NAME_VBAT@@;"V",{1/@@PACK_MULT_VOLTAGE@@}, 0, 0, 0, 2 uint16_t autoscale oilPressure;@@GAUGE_NAME_OIL_PRESSURE@@;"kPa",{1/@@PACK_MULT_PRESSURE@@}, 0, 0, 0, 0 - int16_t autoscale vvtPositionB1I;@@GAUGE_NAME_VVT_B1I@@;"deg",{1/@@PACK_MULT_ANGLE@@}, 0, 0, 0, 0 + int16_t autoscale vvtPositionB1I;@@GAUGE_NAME_VVT_B1I@@;"deg",{1/@@PACK_MULT_ANGLE@@}, 0, 0, 0, 1 uint16_t autoscale chargeAirMass;@@GAUGE_NAME_AIR_MASS@@;"g",{1/1000}, 0, 0, 0, 0 uint16_t autoscale crankingFuelMs;crankingFuelMs\nairmass in mg, 0-65 grams;"ms",{1/@@PACK_MULT_FUEL_MASS@@}, 0, 0, 0, 0 @@ -162,13 +162,13 @@ uint16_t rpmAcceleration;dRPM;"RPM/s",1, 0, 0, 5, 0 uint16_t[8 iterate] recentErrorCode;;"error", 1, 0, 0, 0, 0 ! todo: re-implement enableLogDebugChannels - float autoscale debugFloatField1;;"val", 1, 0, 0, 0, 0 - float autoscale debugFloatField2;;"val", 1, 0, 0, 0, 0 - float autoscale debugFloatField3;;"val", 1, 0, 0, 0, 0 - float autoscale debugFloatField4;;"val", 1, 0, 0, 0, 0 - float autoscale debugFloatField5;;"val", 1, 0, 0, 0, 0 - float autoscale debugFloatField6;;"val", 1, 0, 0, 0, 0 - float autoscale debugFloatField7;;"val", 1, 0, 0, 0, 0 + float autoscale debugFloatField1;;"val", 1, 0, 0, 0, 3 + float autoscale debugFloatField2;;"val", 1, 0, 0, 0, 3 + float autoscale debugFloatField3;;"val", 1, 0, 0, 0, 3 + float autoscale debugFloatField4;;"val", 1, 0, 0, 0, 3 + float autoscale debugFloatField5;;"val", 1, 0, 0, 0, 3 + float autoscale debugFloatField6;;"val", 1, 0, 0, 0, 3 + float autoscale debugFloatField7;;"val", 1, 0, 0, 0, 3 uint32_t autoscale debugIntField1;;"val", 1, 0, 0, 0, 0 uint32_t autoscale debugIntField2;;"val", 1, 0, 0, 0, 0 @@ -177,8 +177,8 @@ uint16_t rpmAcceleration;dRPM;"RPM/s",1, 0, 0, 5, 0 int16_t autoscale debugIntField5;;"val", 1, 0, 0, 0, 0 ! todo: reimplement { LIS302DLCsPin != 0 || imuType != 0 } - int16_t autoscale accelerationX;@@GAUGE_NAME_ACCEL_X@@;"G",{1/@@PACK_MULT_PERCENT@@}, 0, 0, 0, 0 - int16_t autoscale accelerationY;@@GAUGE_NAME_ACCEL_Y@@;"G",{1/@@PACK_MULT_PERCENT@@}, 0, 0, 0, 0 + int16_t autoscale accelerationX;@@GAUGE_NAME_ACCEL_X@@;"G",{1/@@PACK_MULT_PERCENT@@}, 0, 0, 0, 2 + int16_t autoscale accelerationY;@@GAUGE_NAME_ACCEL_Y@@;"G",{1/@@PACK_MULT_PERCENT@@}, 0, 0, 0, 2 ! todo: { max31855_cs1 != 0} uint16_t[EGT_CHANNEL_COUNT iterate] egt;;"deg C", 1, 0, 0, 0, 0 @@ -212,15 +212,15 @@ uint16_t rpmAcceleration;dRPM;"RPM/s",1, 0, 0, 5, 0 int16_t autoscale highFuelPressure;@@GAUGE_NAME_FUEL_PRESSURE_HIGH@@;"bar",{1/@@PACK_MULT_HIGH_PRESSURE@@}, 0, 0, 0, 0 uint16_t autoscale targetLambda;@@GAUGE_NAME_TARGET_LAMBDA@@;"",{1/@@PACK_MULT_LAMBDA@@}, 0, 0, 0, 0 - uint16_t autoscale AFRValue;@@GAUGE_NAME_AFR@@;"AFR",{1/@@PACK_MULT_AFR@@}, 0, 0, 0, 0 + uint16_t autoscale AFRValue;@@GAUGE_NAME_AFR@@;"AFR",{1/@@PACK_MULT_AFR@@}, 0, 0, 0, 2 uint16_t autoscale VssAcceleration;Vss Accel;"m/s2",{1/@@PACK_MULT_MS@@}, 0, 0, 0, 0 - uint16_t autoscale lambdaValue2;@@GAUGE_NAME_LAMBDA2@@;"",{1/@@PACK_MULT_LAMBDA@@}, 0, 0, 0, 0 + uint16_t autoscale lambdaValue2;@@GAUGE_NAME_LAMBDA2@@;"",{1/@@PACK_MULT_LAMBDA@@}, 0, 0, 0, 3 - uint16_t autoscale AFRValue2;@@GAUGE_NAME_AFR2@@;"AFR",{1/@@PACK_MULT_AFR@@}, 0, 0, 0, 0 - int16_t autoscale vvtPositionB1E;@@GAUGE_NAME_VVT_B1E@@;"deg",{1/@@PACK_MULT_ANGLE@@}, 0, 0, 0, 0 - int16_t autoscale vvtPositionB2I;@@GAUGE_NAME_VVT_B2I@@;"deg",{1/@@PACK_MULT_ANGLE@@}, 0, 0, 0, 0 - int16_t autoscale vvtPositionB2E;@@GAUGE_NAME_VVT_B2E@@;"deg",{1/@@PACK_MULT_ANGLE@@}, 0, 0, 0, 0 + uint16_t autoscale AFRValue2;@@GAUGE_NAME_AFR2@@;"AFR",{1/@@PACK_MULT_AFR@@}, 0, 0, 0, 2 + int16_t autoscale vvtPositionB1E;@@GAUGE_NAME_VVT_B1E@@;"deg",{1/@@PACK_MULT_ANGLE@@}, 0, 0, 0, 1 + int16_t autoscale vvtPositionB2I;@@GAUGE_NAME_VVT_B2I@@;"deg",{1/@@PACK_MULT_ANGLE@@}, 0, 0, 0, 1 + int16_t autoscale vvtPositionB2E;@@GAUGE_NAME_VVT_B2E@@;"deg",{1/@@PACK_MULT_ANGLE@@}, 0, 0, 0, 1 int16_t[2 iterate] autoscale fuelPidCorrection;;"%",{1/@@PACK_MULT_PERCENT@@}, 0, -20, 20, 2 diff --git a/firmware/console/binary_log/log_fields_generated.h b/firmware/console/binary_log/log_fields_generated.h index 1048c837dd..41f339082b 100644 --- a/firmware/console/binary_log/log_fields_generated.h +++ b/firmware/console/binary_log/log_fields_generated.h @@ -2,19 +2,30 @@ // todo https://github.com/rusefi/rusefi/issues/3985 static constexpr LogField fields[] = { - {engine->outputChannels.RPMValue, GAUGE_NAME_RPM, "rpm", 0}, {packedTime, GAUGE_NAME_TIME, "sec", 0}, + {engine->outputChannels.RPMValue, "RPM", "RPM", 0}, + {engine->outputChannels.rpmAcceleration, "dRPM", "RPM/s", 2}, + {engine->outputChannels.speedToRpmRatio, "Gearbox Ratio", "value", 2}, + {engine->outputChannels.vehicleSpeedKph, "Vehicle Speed", "kph", 1}, {engine->outputChannels.totalTriggerErrorCounter, GAUGE_NAME_TRG_ERR, "err", 0}, - {engine->outputChannels.vehicleSpeedKph, GAUGE_NAME_VVS, "kph", 0}, {engine->outputChannels.internalMcuTemperature, GAUGE_NAME_CPU_TEMP, "C", 0}, - {engine->outputChannels.coolant, GAUGE_NAME_CLT, "C", 1}, - {engine->outputChannels.intake, GAUGE_NAME_IAT, "C", 1}, - {engine->outputChannels.auxTemp1, GAUGE_NAME_AUX_TEMP1, "C", 1}, - {engine->outputChannels.auxTemp2, GAUGE_NAME_AUX_TEMP2, "C", 1}, - {engine->outputChannels.TPSValue, GAUGE_NAME_TPS, "%", 2}, - {engine->outputChannels.TPS2Value, GAUGE_NAME_TPS2, "%", 2}, + {engine->outputChannels.internalMcuTemperature, "CPU Temperature", "deg C", 0}, + {engine->outputChannels.coolant, "CLT", "deg C", 1}, + {engine->outputChannels.intake, "IAT", "deg C", 1}, + {engine->outputChannels.auxTemp1, "auxTemp1", "deg C", 1}, + {engine->outputChannels.auxTemp2, "auxTemp2", "deg C", 1}, + {engine->outputChannels.TPSValue, "TPS", "%", 2}, {engine->outputChannels.throttlePedalPosition, GAUGE_NAME_THROTTLE_PEDAL, "%", 2}, - {engine->outputChannels.MAPValue, GAUGE_NAME_MAP, "kPa", 1}, + {engine->outputChannels.tpsADC, "tpsADC", "ADC", 0}, + {engine->outputChannels.rawMaf, "rawMaf", "V", 3}, + {engine->outputChannels.mafMeasured, "MAF sensor", "kg/h", 1}, + {engine->outputChannels.MAPValue, "MAP", "kPa", 1}, + + + + + + {engine->outputChannels.TPS2Value, GAUGE_NAME_TPS2, "%", 2}, {engine->outputChannels.AFRValue, GAUGE_NAME_AFR, "afr", 2}, {engine->outputChannels.AFRValue2, GAUGE_NAME_AFR2, "afr", 2}, {engine->outputChannels.lambdaValue, GAUGE_NAME_LAMBDA, "", 3}, @@ -82,7 +93,6 @@ static constexpr LogField fields[] = { {engine->outputChannels.fuelTankLevel, GAUGE_NAME_FUEL_LEVEL, "%", 0}, // {engine->outputChannels.fuelingLoad, GAUGE_NAME_FUEL_LOAD, "%", 1}, // {engine->outputChannels.ignitionLoad, GAUGE_NAME_IGNITION_LOAD, "%", 1}, - {engine->outputChannels.mafMeasured, GAUGE_NAME_AIR_FLOW_MEASURED, "kg/h", 1}, {engine->outputChannels.mafEstimate, GAUGE_NAME_AIR_FLOW_ESTIMATE, "kg/h", 1}, {engine->outputChannels.tcuDesiredGear, GAUGE_NAME_DESIRED_GEAR, "gear", 0}, {engine->outputChannels.tcuCurrentGear, GAUGE_NAME_CURRENT_GEAR, "gear", 0}, diff --git a/firmware/integration/rusefi_config.txt b/firmware/integration/rusefi_config.txt index 9b3201b7d3..03069ebd68 100644 --- a/firmware/integration/rusefi_config.txt +++ b/firmware/integration/rusefi_config.txt @@ -47,7 +47,7 @@ ! ! each field is declared as ! type name;comment;scale,offset,min,max,number_of_digits -! hello;I like rusEFI;1,0,-10,10,2 +! hello;I like rusEFI;"ms",1,0,-10,10,2 ! ! ! diff --git a/java_tools/configuration_definition/src/main/java/com/rusefi/output/SdCardFieldsConsumer.java b/java_tools/configuration_definition/src/main/java/com/rusefi/output/SdCardFieldsConsumer.java index 8b62245d07..a15b3b5a70 100644 --- a/java_tools/configuration_definition/src/main/java/com/rusefi/output/SdCardFieldsConsumer.java +++ b/java_tools/configuration_definition/src/main/java/com/rusefi/output/SdCardFieldsConsumer.java @@ -41,7 +41,12 @@ public class SdCardFieldsConsumer implements ConfigurationConsumer { } private String processOutput(ReaderState readerState, ConfigField configField, String prefix) { - + if (configField.getName().startsWith(ConfigStructure.ALIGNMENT_FILL_AT)) + return ""; + if (configField.getName().startsWith(ConfigStructure.UNUSED_BIT_PREFIX)) + return ""; + if (configField.isBit()) + return ""; return "\t{engine->outputChannels." + configField.getName() + ", " diff --git a/java_tools/configuration_definition/src/test/java/com/rusefi/test/SdCardFieldsGeneratorTest.java b/java_tools/configuration_definition/src/test/java/com/rusefi/test/SdCardFieldsGeneratorTest.java index 0b72b2e5d6..f4a862d0dc 100644 --- a/java_tools/configuration_definition/src/test/java/com/rusefi/test/SdCardFieldsGeneratorTest.java +++ b/java_tools/configuration_definition/src/test/java/com/rusefi/test/SdCardFieldsGeneratorTest.java @@ -12,9 +12,9 @@ public class SdCardFieldsGeneratorTest { @Test public void outputs() { String test = "struct_no_prefix output_channels_s\n" + - "uint16_t autoscale RPMValue;@@GAUGE_NAME_RPM@@;\"RPM\",1, 0, 0, 8000, 0\n" + + "uint16_t autoscale RPMValue;@@GAUGE_NAME_RPM@@;\"RPM\",1, 0, 0, 8000, 2\n" + "\n" + - "uint16_t rpmAcceleration;dRPM;\"RPM/s\",1, 0, 0, 5, 0\n" + + "uint16_t rpmAcceleration;dRPM;\"RPM/s\",1, 0, 0, 5, 2\n" + "\n" + "\tuint16_t autoscale speedToRpmRatio;@@GAUGE_NAME_GEAR_RATIO@@;\"value\",{1/@@PACK_MULT_PERCENT@@}, 0, 0, 0, 0\n" + "\tint8_t autoscale internalMcuTemperature;@@GAUGE_NAME_CPU_TEMP@@;\"deg C\",1, 0, 0, 0, 0\n" + @@ -29,10 +29,23 @@ public class SdCardFieldsGeneratorTest { SdCardFieldsConsumer consumer = new SdCardFieldsConsumer(LazyFile.TEST); state.readBufferedReader(test, consumer); - assertEquals("\t{engine->outputChannels.RPMValue, \"hello\", \"RPM\", 0},\n" + - "\t{engine->outputChannels.rpmAcceleration, \"dRPM\", \"RPM/s\", 0},\n" + + assertEquals("\t{engine->outputChannels.RPMValue, \"hello\", \"RPM\", 2},\n" + + "\t{engine->outputChannels.rpmAcceleration, \"dRPM\", \"RPM/s\", 2},\n" + "\t{engine->outputChannels.speedToRpmRatio, \"ra\", \"value\", 0},\n" + - "\t{engine->outputChannels.internalMcuTemperature, \"te\", \"deg C\", 0},\n" + - "\t{engine->outputChannels.alignmentFill_at_7, \"need 4 byte alignment\", \"units\", 0},\n", consumer.getBody()); + "\t{engine->outputChannels.internalMcuTemperature, \"te\", \"deg C\", 0},\n", consumer.getBody()); + } + + @Test + public void bitAndAlignment() { + String test = "struct_no_prefix output_channels_s\n" + + "uint16_t autoscale RPMValue;feee;\"RPM\",1, 0, 0, 8000, 2\n" + + "bit sd_logging_internal\n" + + "end_struct"; + + ReaderState state = new ReaderState(); + + SdCardFieldsConsumer consumer = new SdCardFieldsConsumer(LazyFile.TEST); + state.readBufferedReader(test, consumer); + assertEquals("\t{engine->outputChannels.RPMValue, \"feee\", \"RPM\", 2},\n", consumer.getBody()); } }