automation around outputs section #197

This commit is contained in:
rusefillc 2021-11-27 13:05:44 -05:00
parent dc820c0b4a
commit 547a045a14
5 changed files with 123 additions and 117 deletions

View File

@ -59,7 +59,7 @@ uint16_t rpmAcceleration;;"RPM/s",1, 0, 0, 0, 0
uint16_t autoscale baroPressure;;"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 lambdaValue;;"",{1/@@PACK_MULT_LAMBDA@@}, 0, 0, 0, 0 uint16_t autoscale lambdaValue;;"",{1/@@PACK_MULT_LAMBDA@@}, 0, 0, 0, 0
uint8_t autoscale knockRetard;;"",{1/10}, 0, 0, 0, 0 uint8_t autoscale knockRetard;;"deg",{1/10}, 0, 0, 0, 0
uint8_t unused37;;"",1, 0, 0, 0, 0 uint8_t unused37;;"",1, 0, 0, 0, 0
uint16_t autoscale VBatt;;"V",{1/@@PACK_MULT_VOLTAGE@@}, 0, 0, 0, 0 uint16_t autoscale VBatt;;"V",{1/@@PACK_MULT_VOLTAGE@@}, 0, 0, 0, 0
@ -115,14 +115,15 @@ uint16_t rpmAcceleration;;"RPM/s",1, 0, 0, 0, 0
uint16_t autoscale fuelFlowRate;;"gram/s",{1/@@PACK_MULT_FUEL_FLOW@@}, 0, 0, 0, 0 uint16_t autoscale fuelFlowRate;;"gram/s",{1/@@PACK_MULT_FUEL_FLOW@@}, 0, 0, 0, 0
! Y axis values for selectable tables ! Y axis values for selectable tables
uint16_t autoscale veTableYAxis;;"",{1/100}, 0, 0, 0, 0 uint16_t autoscale veTableYAxis;;"%",{1/100}, 0, 0, 0, 0
uint16_t autoscale afrTableYAxis;;"",{1/100}, 0, 0, 0, 0 uint16_t autoscale afrTableYAxis;;"%",{1/100}, 0, 0, 0, 0
float autoscale knockLevel;;"", 1, 0, 0, 0, 0 float autoscale knockLevel;;"Volts", 1, 0, 0, 0, 0
uint32_t autoscale timeSeconds;;"", 1, 0, 0, 0, 0 ! integration magic: TS requires exact 'seconds' name
uint32_t autoscale engineMode;;"", 1, 0, 0, 0, 0 uint32_t autoscale seconds;;"sec", 1, 0, 0, 0, 0
uint32_t autoscale firmwareVersion;;"", 1, 0, 0, 0, 0 uint32_t autoscale engineMode;;"em", 1, 0, 0, 0, 0
uint32_t autoscale firmwareVersion;;"version_f", 1, 0, 0, 0, 0
! todo: this not needed in light of TS_SIGNATURE but rusEFI console still uses it. Need to migrate ! todo: this not needed in light of TS_SIGNATURE but rusEFI console still uses it. Need to migrate
! rusEFI console from TS_FILE_VERSION to TS_SIGNATURE :( ! rusEFI console from TS_FILE_VERSION to TS_SIGNATURE :(
@ -145,40 +146,40 @@ uint16_t rpmAcceleration;;"RPM/s",1, 0, 0, 0, 0
! Values used for load axes for fuel/ign tables ! Values used for load axes for fuel/ign tables
! These may or may not be the same value, depending on mode ! These may or may not be the same value, depending on mode
uint16_t autoscale fuelingLoad;;"",{1/100}, 0, 0, 0, 0 uint16_t autoscale fuelingLoad;;"%",{1/100}, 0, 0, 0, 0
uint16_t autoscale ignitionLoad;;"",{1/100}, 0, 0, 0, 0 uint16_t autoscale ignitionLoad;;"%",{1/100}, 0, 0, 0, 0
! we want a hash of engineMake+engineCode+vehicleName in the log file in order to match TS logs to rusEFI Online tune ! we want a hash of engineMake+engineCode+vehicleName in the log file in order to match TS logs to rusEFI Online tune
uint16_t autoscale engineMakeCodeNameCrc16;;"",1, 0, 0, 0, 0 uint16_t autoscale engineMakeCodeNameCrc16;;"crc16",1, 0, 0, 0, 0
! Errors ! Errors
uint32_t autoscale totalTriggerErrorCounter;;"",1, 0, 0, 0, 0 uint32_t autoscale totalTriggerErrorCounter;;"counter",1, 0, 0, 0, 0
uint32_t orderingErrorCounter;;"",1, 0, 0, 0, 0 uint32_t orderingErrorCounter;;"",1, 0, 0, 0, 0
uint16_t autoscale warningCounter;;"",1, 0, 0, 0, 0 uint16_t autoscale warningCounter;;"count",1, 0, 0, 0, 0
uint16_t autoscale lastErrorCode;;"",1, 0, 0, 0, 0 uint16_t autoscale lastErrorCode;;"error",1, 0, 0, 0, 0
uint16_t[8] recentErrorCodes;;"", 1, 0, 0, 0, 0 uint16_t[8] recentErrorCodes;;"error", 1, 0, 0, 0, 0
float autoscale debugFloatField1;;"", 1, 0, 0, 0, 0 float autoscale debugFloatField1;;"val", 1, 0, 0, 0, 0
float autoscale debugFloatField2;;"", 1, 0, 0, 0, 0 float autoscale debugFloatField2;;"val", 1, 0, 0, 0, 0
float autoscale debugFloatField3;;"", 1, 0, 0, 0, 0 float autoscale debugFloatField3;;"val", 1, 0, 0, 0, 0
float autoscale debugFloatField4;;"", 1, 0, 0, 0, 0 float autoscale debugFloatField4;;"val", 1, 0, 0, 0, 0
float autoscale debugFloatField5;;"", 1, 0, 0, 0, 0 float autoscale debugFloatField5;;"val", 1, 0, 0, 0, 0
float autoscale debugFloatField6;;"", 1, 0, 0, 0, 0 float autoscale debugFloatField6;;"val", 1, 0, 0, 0, 0
float autoscale debugFloatField7;;"", 1, 0, 0, 0, 0 float autoscale debugFloatField7;;"val", 1, 0, 0, 0, 0
uint32_t autoscale debugIntField1;;"", 1, 0, 0, 0, 0 uint32_t autoscale debugIntField1;;"val", 1, 0, 0, 0, 0
uint32_t autoscale debugIntField2;;"", 1, 0, 0, 0, 0 uint32_t autoscale debugIntField2;;"val", 1, 0, 0, 0, 0
uint32_t autoscale debugIntField3;;"", 1, 0, 0, 0, 0 uint32_t autoscale debugIntField3;;"val", 1, 0, 0, 0, 0
uint16_t autoscale debugIntField4;;"", 1, 0, 0, 0, 0 uint16_t autoscale debugIntField4;;"val", 1, 0, 0, 0, 0
uint16_t autoscale debugIntField5;;"", 1, 0, 0, 0, 0 uint16_t autoscale debugIntField5;;"val", 1, 0, 0, 0, 0
uint16_t autoscale accelerationX;;"",{1/@@PACK_MULT_PERCENT@@}, 0, 0, 0, 0 uint16_t autoscale accelerationX;;"G",{1/@@PACK_MULT_PERCENT@@}, 0, 0, 0, 0
uint16_t autoscale accelerationY;;"",{1/@@PACK_MULT_PERCENT@@}, 0, 0, 0, 0 uint16_t autoscale accelerationY;;"G",{1/@@PACK_MULT_PERCENT@@}, 0, 0, 0, 0
uint16_t[EGT_CHANNEL_COUNT] egtValues;;"", 1, 0, 0, 0, 0 uint16_t[EGT_CHANNEL_COUNT] egtValues;;"deg C", 1, 0, 0, 0, 0
uint16_t autoscale throttle2Position;;"",{1/@@PACK_MULT_PERCENT@@}, 0, 0, 0, 0 uint16_t autoscale TPS2Value;;"%",{1/@@PACK_MULT_PERCENT@@}, 0, 0, 0, 0
uint16_t autoscale rawTps1Primary;;"",{1/@@PACK_MULT_VOLTAGE@@}, 0, 0, 0, 0 uint16_t autoscale rawTps1Primary;;"",{1/@@PACK_MULT_VOLTAGE@@}, 0, 0, 0, 0
uint16_t autoscale rawPpsPrimary;;"",{1/@@PACK_MULT_VOLTAGE@@}, 0, 0, 0, 0 uint16_t autoscale rawPpsPrimary;;"",{1/@@PACK_MULT_VOLTAGE@@}, 0, 0, 0, 0
@ -186,7 +187,7 @@ uint16_t rpmAcceleration;;"RPM/s",1, 0, 0, 0, 0
uint16_t autoscale rawIat;;"",{1/@@PACK_MULT_VOLTAGE@@}, 0, 0, 0, 0 uint16_t autoscale rawIat;;"",{1/@@PACK_MULT_VOLTAGE@@}, 0, 0, 0, 0
uint16_t autoscale rawOilPressure;;"",{1/@@PACK_MULT_VOLTAGE@@}, 0, 0, 0, 0 uint16_t autoscale rawOilPressure;;"",{1/@@PACK_MULT_VOLTAGE@@}, 0, 0, 0, 0
uint16_t autoscale tuneCrc16;;"", 1, 0, 0, 0, 0 uint16_t autoscale tuneCrc16;;"crc16", 1, 0, 0, 0, 0
uint8_t autoscale unusedAt246;;"", 1, 0, 0, 0, 0 uint8_t autoscale unusedAt246;;"", 1, 0, 0, 0, 0
uint8_t autoscale tcuCurrentGear;;"", 1, 0, 0, 0, 0 uint8_t autoscale tcuCurrentGear;;"", 1, 0, 0, 0, 0
@ -228,7 +229,7 @@ uint16_t rpmAcceleration;;"RPM/s",1, 0, 0, 0, 0
uint16_t autoscale rawTps2Secondary;;"",{1/@@PACK_MULT_VOLTAGE@@}, 0, 0, 0, 0 uint16_t autoscale rawTps2Secondary;;"",{1/@@PACK_MULT_VOLTAGE@@}, 0, 0, 0, 0
uint16_t knockCount;;"",1, 0, 0, 0, 0 uint16_t knockCount;;"",1, 0, 0, 0, 0
uint16_t autoscale accelerationZ;;"",{1/@@PACK_MULT_PERCENT@@}, 0, 0, 0, 0 uint16_t autoscale accelerationZ;;"G",{1/@@PACK_MULT_PERCENT@@}, 0, 0, 0, 0
uint16_t autoscale accelerationRoll;;"",{1/@@PACK_MULT_PERCENT@@}, 0, 0, 0, 0 uint16_t autoscale accelerationRoll;;"",{1/@@PACK_MULT_PERCENT@@}, 0, 0, 0, 0
uint16_t autoscale accelerationYaw;;"",{1/@@PACK_MULT_PERCENT@@}, 0, 0, 0, 0 uint16_t autoscale accelerationYaw;;"",{1/@@PACK_MULT_PERCENT@@}, 0, 0, 0, 0

View File

@ -1,4 +1,4 @@
// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) console/binary/output_channels.txt Sat Nov 27 11:56:34 EST 2021 // this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) console/binary/output_channels.txt Sat Nov 27 13:01:48 EST 2021
// by class com.rusefi.output.CHeaderConsumer // by class com.rusefi.output.CHeaderConsumer
// begin // begin
#pragma once #pragma once
@ -186,6 +186,7 @@ struct ts_outputs_s {
*/ */
scaled_channel<uint16_t, 10000, 1> lambdaValue = (uint16_t)0; scaled_channel<uint16_t, 10000, 1> lambdaValue = (uint16_t)0;
/** /**
deg
* offset 36 * offset 36
*/ */
scaled_channel<uint8_t, 10, 1> knockRetard = (uint8_t)0; scaled_channel<uint8_t, 10, 1> knockRetard = (uint8_t)0;
@ -367,26 +368,32 @@ struct ts_outputs_s {
*/ */
scaled_channel<uint16_t, 200, 1> fuelFlowRate = (uint16_t)0; scaled_channel<uint16_t, 200, 1> fuelFlowRate = (uint16_t)0;
/** /**
%
* offset 104 * offset 104
*/ */
scaled_channel<uint16_t, 100, 1> veTableYAxis = (uint16_t)0; scaled_channel<uint16_t, 100, 1> veTableYAxis = (uint16_t)0;
/** /**
%
* offset 106 * offset 106
*/ */
scaled_channel<uint16_t, 100, 1> afrTableYAxis = (uint16_t)0; scaled_channel<uint16_t, 100, 1> afrTableYAxis = (uint16_t)0;
/** /**
Volts
* offset 108 * offset 108
*/ */
scaled_channel<float, 1, 1> knockLevel = (float)0; scaled_channel<float, 1, 1> knockLevel = (float)0;
/** /**
sec
* offset 112 * offset 112
*/ */
scaled_channel<uint32_t, 1, 1> timeSeconds = (uint32_t)0; scaled_channel<uint32_t, 1, 1> seconds = (uint32_t)0;
/** /**
em
* offset 116 * offset 116
*/ */
scaled_channel<uint32_t, 1, 1> engineMode = (uint32_t)0; scaled_channel<uint32_t, 1, 1> engineMode = (uint32_t)0;
/** /**
version_f
* offset 120 * offset 120
*/ */
scaled_channel<uint32_t, 1, 1> firmwareVersion = (uint32_t)0; scaled_channel<uint32_t, 1, 1> firmwareVersion = (uint32_t)0;
@ -407,18 +414,22 @@ struct ts_outputs_s {
*/ */
scaled_channel<uint8_t, 1, 1> padding = (uint8_t)0; scaled_channel<uint8_t, 1, 1> padding = (uint8_t)0;
/** /**
%
* offset 134 * offset 134
*/ */
scaled_channel<uint16_t, 100, 1> fuelingLoad = (uint16_t)0; scaled_channel<uint16_t, 100, 1> fuelingLoad = (uint16_t)0;
/** /**
%
* offset 136 * offset 136
*/ */
scaled_channel<uint16_t, 100, 1> ignitionLoad = (uint16_t)0; scaled_channel<uint16_t, 100, 1> ignitionLoad = (uint16_t)0;
/** /**
crc16
* offset 138 * offset 138
*/ */
scaled_channel<uint16_t, 1, 1> engineMakeCodeNameCrc16 = (uint16_t)0; scaled_channel<uint16_t, 1, 1> engineMakeCodeNameCrc16 = (uint16_t)0;
/** /**
counter
* offset 140 * offset 140
*/ */
scaled_channel<uint32_t, 1, 1> totalTriggerErrorCounter = (uint32_t)0; scaled_channel<uint32_t, 1, 1> totalTriggerErrorCounter = (uint32_t)0;
@ -427,81 +438,100 @@ struct ts_outputs_s {
*/ */
uint32_t orderingErrorCounter = (uint32_t)0; uint32_t orderingErrorCounter = (uint32_t)0;
/** /**
count
* offset 148 * offset 148
*/ */
scaled_channel<uint16_t, 1, 1> warningCounter = (uint16_t)0; scaled_channel<uint16_t, 1, 1> warningCounter = (uint16_t)0;
/** /**
error
* offset 150 * offset 150
*/ */
scaled_channel<uint16_t, 1, 1> lastErrorCode = (uint16_t)0; scaled_channel<uint16_t, 1, 1> lastErrorCode = (uint16_t)0;
/** /**
error
* offset 152 * offset 152
*/ */
uint16_t recentErrorCodes[8]; uint16_t recentErrorCodes[8];
/** /**
val
* offset 168 * offset 168
*/ */
scaled_channel<float, 1, 1> debugFloatField1 = (float)0; scaled_channel<float, 1, 1> debugFloatField1 = (float)0;
/** /**
val
* offset 172 * offset 172
*/ */
scaled_channel<float, 1, 1> debugFloatField2 = (float)0; scaled_channel<float, 1, 1> debugFloatField2 = (float)0;
/** /**
val
* offset 176 * offset 176
*/ */
scaled_channel<float, 1, 1> debugFloatField3 = (float)0; scaled_channel<float, 1, 1> debugFloatField3 = (float)0;
/** /**
val
* offset 180 * offset 180
*/ */
scaled_channel<float, 1, 1> debugFloatField4 = (float)0; scaled_channel<float, 1, 1> debugFloatField4 = (float)0;
/** /**
val
* offset 184 * offset 184
*/ */
scaled_channel<float, 1, 1> debugFloatField5 = (float)0; scaled_channel<float, 1, 1> debugFloatField5 = (float)0;
/** /**
val
* offset 188 * offset 188
*/ */
scaled_channel<float, 1, 1> debugFloatField6 = (float)0; scaled_channel<float, 1, 1> debugFloatField6 = (float)0;
/** /**
val
* offset 192 * offset 192
*/ */
scaled_channel<float, 1, 1> debugFloatField7 = (float)0; scaled_channel<float, 1, 1> debugFloatField7 = (float)0;
/** /**
val
* offset 196 * offset 196
*/ */
scaled_channel<uint32_t, 1, 1> debugIntField1 = (uint32_t)0; scaled_channel<uint32_t, 1, 1> debugIntField1 = (uint32_t)0;
/** /**
val
* offset 200 * offset 200
*/ */
scaled_channel<uint32_t, 1, 1> debugIntField2 = (uint32_t)0; scaled_channel<uint32_t, 1, 1> debugIntField2 = (uint32_t)0;
/** /**
val
* offset 204 * offset 204
*/ */
scaled_channel<uint32_t, 1, 1> debugIntField3 = (uint32_t)0; scaled_channel<uint32_t, 1, 1> debugIntField3 = (uint32_t)0;
/** /**
val
* offset 208 * offset 208
*/ */
scaled_channel<uint16_t, 1, 1> debugIntField4 = (uint16_t)0; scaled_channel<uint16_t, 1, 1> debugIntField4 = (uint16_t)0;
/** /**
val
* offset 210 * offset 210
*/ */
scaled_channel<uint16_t, 1, 1> debugIntField5 = (uint16_t)0; scaled_channel<uint16_t, 1, 1> debugIntField5 = (uint16_t)0;
/** /**
G
* offset 212 * offset 212
*/ */
scaled_channel<uint16_t, 100, 1> accelerationX = (uint16_t)0; scaled_channel<uint16_t, 100, 1> accelerationX = (uint16_t)0;
/** /**
G
* offset 214 * offset 214
*/ */
scaled_channel<uint16_t, 100, 1> accelerationY = (uint16_t)0; scaled_channel<uint16_t, 100, 1> accelerationY = (uint16_t)0;
/** /**
deg C
* offset 216 * offset 216
*/ */
uint16_t egtValues[EGT_CHANNEL_COUNT]; uint16_t egtValues[EGT_CHANNEL_COUNT];
/** /**
%
* offset 232 * offset 232
*/ */
scaled_channel<uint16_t, 100, 1> throttle2Position = (uint16_t)0; scaled_channel<uint16_t, 100, 1> TPS2Value = (uint16_t)0;
/** /**
* offset 234 * offset 234
*/ */
@ -523,6 +553,7 @@ struct ts_outputs_s {
*/ */
scaled_channel<uint16_t, 1000, 1> rawOilPressure = (uint16_t)0; scaled_channel<uint16_t, 1000, 1> rawOilPressure = (uint16_t)0;
/** /**
crc16
* offset 244 * offset 244
*/ */
scaled_channel<uint16_t, 1, 1> tuneCrc16 = (uint16_t)0; scaled_channel<uint16_t, 1, 1> tuneCrc16 = (uint16_t)0;
@ -638,6 +669,7 @@ struct ts_outputs_s {
*/ */
uint16_t knockCount = (uint16_t)0; uint16_t knockCount = (uint16_t)0;
/** /**
G
* offset 308 * offset 308
*/ */
scaled_channel<uint16_t, 100, 1> accelerationZ = (uint16_t)0; scaled_channel<uint16_t, 100, 1> accelerationZ = (uint16_t)0;
@ -671,4 +703,4 @@ struct ts_outputs_s {
}; };
// end // end
// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) console/binary/output_channels.txt Sat Nov 27 11:56:34 EST 2021 // this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) console/binary/output_channels.txt Sat Nov 27 13:01:48 EST 2021

View File

@ -28,7 +28,7 @@ static constexpr LogField fields[] = {
{tsOutputChannels.auxTemp1, GAUGE_NAME_AUX_TEMP1, "C", 1}, {tsOutputChannels.auxTemp1, GAUGE_NAME_AUX_TEMP1, "C", 1},
{tsOutputChannels.auxTemp2, GAUGE_NAME_AUX_TEMP2, "C", 1}, {tsOutputChannels.auxTemp2, GAUGE_NAME_AUX_TEMP2, "C", 1},
{tsOutputChannels.throttlePedalPosition, GAUGE_NAME_TPS, "%", 2}, {tsOutputChannels.throttlePedalPosition, GAUGE_NAME_TPS, "%", 2},
{tsOutputChannels.throttle2Position, GAUGE_NAME_TPS2, "%", 2}, {tsOutputChannels.TPS2Value, GAUGE_NAME_TPS2, "%", 2},
{tsOutputChannels.throttlePedalPosition, GAUGE_NAME_THROTTLE_PEDAL, "%", 2}, {tsOutputChannels.throttlePedalPosition, GAUGE_NAME_THROTTLE_PEDAL, "%", 2},
{tsOutputChannels.MAPValue, GAUGE_NAME_MAP, "kPa", 1}, {tsOutputChannels.MAPValue, GAUGE_NAME_MAP, "kPa", 1},
{tsOutputChannels.airFuelRatio, GAUGE_NAME_AFR, "afr", 2}, {tsOutputChannels.airFuelRatio, GAUGE_NAME_AFR, "afr", 2},

View File

@ -478,7 +478,7 @@ static void updateThrottles() {
tsOutputChannels.tpsADC = convertVoltageTo10bitADC(Sensor::getRaw(SensorType::Tps1Primary)); tsOutputChannels.tpsADC = convertVoltageTo10bitADC(Sensor::getRaw(SensorType::Tps1Primary));
SensorResult tps2 = Sensor::get(SensorType::Tps2); SensorResult tps2 = Sensor::get(SensorType::Tps2);
tsOutputChannels.throttle2Position = tps2.Value; tsOutputChannels.TPS2Value = tps2.Value;
// If we don't have a TPS2 at all, don't turn on the failure light // If we don't have a TPS2 at all, don't turn on the failure light
tsOutputChannels.isTps2Error = !tps2.Valid && Sensor::hasSensor(SensorType::Tps2Primary); tsOutputChannels.isTps2Error = !tps2.Valid && Sensor::hasSensor(SensorType::Tps2Primary);
@ -719,7 +719,7 @@ void updateTunerStudioState(TunerStudioOutputChannels *tsOutputChannels) {
// 224 // 224
efitimesec_t timeSeconds = getTimeNowSeconds(); efitimesec_t timeSeconds = getTimeNowSeconds();
tsOutputChannels->timeSeconds = timeSeconds; tsOutputChannels->seconds = timeSeconds;
// 252 // 252
tsOutputChannels->engineMode = packEngineMode(); tsOutputChannels->engineMode = packEngineMode();

View File

@ -260,83 +260,51 @@ unused76 = scalar, U16, 76, "", 1, 0
deltaTps = scalar, U16, 78, "ratio", 0.01, 0 deltaTps = scalar, U16, 78, "ratio", 0.01, 0
unused80 = scalar, U16, 80, "", 1, 0 unused80 = scalar, U16, 80, "", 1, 0
tpsAccelFuel = scalar, U16, 82, "ms", 0.0033333333333333335, 0 tpsAccelFuel = scalar, U16, 82, "ms", 0.0033333333333333335, 0
ignitionAdvance = scalar, U16, 84, "deg", 0.02, 0
; Ignition sparkDwellValue = scalar, U16, 86, "ms", 0.0033333333333333335, 0
ignitionAdvance = scalar, S16, 84, "deg",{1/@@PACK_MULT_ANGLE@@}, 0.0 coilDutyCycle = scalar, U16, 88, "%", 0.01, 0
sparkDwellValue = scalar, U16, 86, "ms",{1/@@PACK_MULT_MS@@}, 0.0 idleAirValvePosition = scalar, U16, 90, "%", 0.01, 0
coilDutyCycle = scalar, S16, 88, "%",{1/@@PACK_MULT_PERCENT@@}, 0 etbTarget = scalar, U16, 92, "%", 0.01, 0
etb1DutyCycle = scalar, U16, 94, "%", 0.01, 0
; Idle & ETB etb1Error = scalar, U16, 96, "%", 0.01, 0
idleAirValvePosition=scalar,S16, 90, "%",{1/@@PACK_MULT_PERCENT@@}, 0 fuelTankLevel = scalar, U16, 98, "%", 0.01, 0
etbTarget = scalar, S16, 92, "%",{1/@@PACK_MULT_PERCENT@@}, 0 totalFuelConsumption = scalar, U16, 100, "grams", 1, 0
etb1DutyCycle = scalar, S16, 94, "%",{1/@@PACK_MULT_PERCENT@@}, 0 fuelFlowRate = scalar, U16, 102, "gram/s", 0.005, 0
etb1Error = scalar, S16, 96, "%",{1/@@PACK_MULT_PERCENT@@}, 0 veTableYAxis = scalar, U16, 104, "%", 0.01, 0
afrTableYAxis = scalar, U16, 106, "%", 0.01, 0
; Fuel system knockLevel = scalar, F32, 108, "Volts", 1, 0
fuelTankLevel = scalar, U16, 98, "%",{1/@@PACK_MULT_PERCENT@@}, 0 timeSeconds = scalar, U32, 112, "sec", 1, 0
totalFuelConsumption=scalar,U16, 100, "grams", 1, 0 engineMode = scalar, U32, 116, "em", 1, 0
fuelFlowRate = scalar, U16, 102, "gram/s",{1/@@PACK_MULT_FUEL_FLOW@@}, 0 firmwareVersion = scalar, U32, 120, "version_f", 1, 0
seconds = scalar, U32, 112, "sec", 1, 0
; Y axis values for selectable tables engineMode = scalar, U32, 116, "em", 1, 0
veTableYAxis = scalar, U16, 104, "%", 0.01, 0 firmwareVersion = scalar, U32, 120, "version_f", 1, 0
afrTableYAxis = scalar, U16, 106, "%", 0.01, 0 tsConfigVersion = scalar, U32, 124, "", 1, 0
calibrationValue = scalar, F32, 128, "", 1, 0
; Knock calibrationMode = scalar, U08, 132, "", 1, 0
knockLevel = scalar, F32, 108, "Volts", 1, 0 padding = scalar, U08, 133, "", 1, 0
knockCount = scalar, U16, 306, "count", 1, 0 fuelingLoad = scalar, U16, 134, "%", 0.01, 0
knockRetard = scalar, U08, 36, "deg", 0.1, 0 ignitionLoad = scalar, U16, 136, "%", 0.01, 0
engineMakeCodeNameCrc16 = scalar, U16, 138, "crc16", 1, 0
; Mode, firmware, protocol, run time totalTriggerErrorCounter = scalar, U32, 140, "counter", 1, 0
; TS requires 'seconds' name since it has special internal meaning orderingErrorCounter = scalar, U32, 144, "", 1, 0
seconds = scalar, U32, 112, "sec", 1, 0.0 warningCounter = scalar, U16, 148, "count", 1, 0
engineMode = scalar, U32, 116, "em", 1, 0.0; lastErrorCode = scalar, U16, 150, "error", 1, 0
firmwareVersion = scalar, U32, 120,"version_f", 1, 0 recentErrorCodes = array, U16, 152, [8], "error", 1, 0
debugFloatField1 = scalar, F32, 168, "val", 1, 0
debugFloatField2 = scalar, F32, 172, "val", 1, 0
; calibation helpers debugFloatField3 = scalar, F32, 176, "val", 1, 0
calibrationValue = scalar, F32, 128, "", 1, 0 debugFloatField4 = scalar, F32, 180, "val", 1, 0
calibrationMode = scalar, U08, 132, "", 1, 0 debugFloatField5 = scalar, F32, 184, "val", 1, 0
; 1 bytes padding1 debugFloatField6 = scalar, F32, 188, "val", 1, 0
debugFloatField7 = scalar, F32, 192, "val", 1, 0
fuelingLoad = scalar, U16, 134, "%", 0.01, 0 debugIntField1 = scalar, U32, 196, "val", 1, 0
ignitionLoad = scalar, U16, 136, "%", 0.01, 0 debugIntField2 = scalar, U32, 200, "val", 1, 0
debugIntField3 = scalar, U32, 204, "val", 1, 0
engineMakeCodeNameCrc16= scalar, U16, 138, "crc16", 1, 0 debugIntField4 = scalar, U16, 208, "val", 1, 0
debugIntField5 = scalar, U16, 210, "val", 1, 0
; Errors accelerationX = scalar, U16, 212, "G", 0.01, 0
totalTriggerErrorCounter=scalar,U32, 140,"counter", 1, 0 accelerationY = scalar, U16, 214, "G", 0.01, 0
; orderingErrorCounter 144
warningCounter = scalar, U16, 148, "count", 1, 0
lastErrorCode = scalar, U16, 150, "error", 1, 0
recentErrorCode0= scalar, U16, 152, "error", 1, 0
recentErrorCode1= scalar, U16, 154, "error", 1, 0
recentErrorCode2= scalar, U16, 156, "error", 1, 0
recentErrorCode3= scalar, U16, 158, "error", 1, 0
recentErrorCode4= scalar, U16, 160, "error", 1, 0
recentErrorCode5= scalar, U16, 162, "error", 1, 0
recentErrorCode6= scalar, U16, 164, "error", 1, 0
recentErrorCode7= scalar, U16, 166, "error", 1, 0
; Debug
debugFloatField1= scalar, F32, 168, "val", 1, 0.0
debugFloatField2= scalar, F32, 172, "val", 1, 0.0
debugFloatField3= scalar, F32, 176, "val", 1, 0.0
debugFloatField4= scalar, F32, 180, "val", 1, 0.0
debugFloatField5= scalar, F32, 184, "val", 1, 0.0
debugFloatField6= scalar, F32, 188, "val", 1, 0.0
debugFloatField7= scalar, F32, 192, "val", 1, 0.0
debugIntField1 = scalar, S32, 196, "val", 1, 0.0
debugIntField2 = scalar, S32, 200, "val", 1, 0.0
debugIntField3 = scalar, S32, 204, "val", 1, 0.0
debugIntField4 = scalar, S16, 208, "val", 1, 0.0
debugIntField5 = scalar, S16, 210, "val", 1, 0.0
; Accel
accelerationX = scalar, S16, 212, "G", {1/@@PACK_MULT_PERCENT@@}, 0
accelerationY = scalar, S16, 214, "G", {1/@@PACK_MULT_PERCENT@@}, 0
accelerationZ = scalar, S16, 308, "G", {1/@@PACK_MULT_PERCENT@@}, 0
accelerationRoll= scalar, S16, 310, "G", {1/@@PACK_MULT_PERCENT@@}, 0
accelerationYaw = scalar, S16, 312, "G", {1/@@PACK_MULT_PERCENT@@}, 0
; egt ; egt
egt1 = scalar, S16, 216, "deg C", 1, 0 egt1 = scalar, S16, 216, "deg C", 1, 0
@ -355,13 +323,13 @@ tpsAccelFuel = scalar, U16, 82, "ms", 0.0033333333333333335, 0
rawClt = scalar, U16, 238, "V",{1/@@PACK_MULT_VOLTAGE@@}, 0.0 rawClt = scalar, U16, 238, "V",{1/@@PACK_MULT_VOLTAGE@@}, 0.0
rawIat = scalar, U16, 240, "V",{1/@@PACK_MULT_VOLTAGE@@}, 0.0 rawIat = scalar, U16, 240, "V",{1/@@PACK_MULT_VOLTAGE@@}, 0.0
rawOilPressure = scalar, U16, 242, "V",{1/@@PACK_MULT_VOLTAGE@@}, 0.0 rawOilPressure = scalar, U16, 242, "V",{1/@@PACK_MULT_VOLTAGE@@}, 0.0
rawPpsSecondary = scalar, U16, 248, "V",{1/@@PACK_MULT_VOLTAGE@@}, 0.0
; we use this to match logs to tunes ; we use this to match logs to tunes
tuneCrc16 = scalar, U16, 244, "crc16", 1, 0 tuneCrc16 = scalar, U16, 244, "crc16", 1, 0
; Transmission ; Transmission
tcuCurrentGear = scalar, S08, 247, "gear", 1, 0 tcuCurrentGear = scalar, S08, 247, "gear", 1, 0
rawPpsSecondary = scalar, U16, 248, "V",{1/@@PACK_MULT_VOLTAGE@@}, 0.0
knock1 = scalar, S08, 250, "dbv", 1, 0 knock1 = scalar, S08, 250, "dbv", 1, 0
knock2 = scalar, S08, 251, "dbv", 1, 0 knock2 = scalar, S08, 251, "dbv", 1, 0
@ -399,6 +367,10 @@ tpsAccelFuel = scalar, U16, 82, "ms", 0.0033333333333333335, 0
fuelPidCorrection=scalar, S16, 296, "%",{1/@@PACK_MULT_PERCENT@@}, 0 fuelPidCorrection=scalar, S16, 296, "%",{1/@@PACK_MULT_PERCENT@@}, 0
fuelPidCorrection2=scalar, S16, 298, "%",{1/@@PACK_MULT_PERCENT@@}, 0 fuelPidCorrection2=scalar, S16, 298, "%",{1/@@PACK_MULT_PERCENT@@}, 0
accelerationZ = scalar, S16, 308, "G", {1/@@PACK_MULT_PERCENT@@}, 0
accelerationRoll= scalar, S16, 310, "G", {1/@@PACK_MULT_PERCENT@@}, 0
accelerationYaw = scalar, S16, 312, "G", {1/@@PACK_MULT_PERCENT@@}, 0
vvtTargetB1I = scalar, S08, 314, "deg", 1, 0 vvtTargetB1I = scalar, S08, 314, "deg", 1, 0
vvtTargetB1E = scalar, S08, 315, "deg", 1, 0 vvtTargetB1E = scalar, S08, 315, "deg", 1, 0
vvtTargetB2I = scalar, S08, 316, "deg", 1, 0 vvtTargetB2I = scalar, S08, 316, "deg", 1, 0
@ -409,6 +381,7 @@ tpsAccelFuel = scalar, U16, 82, "ms", 0.0033333333333333335, 0
rawTps1Secondary = scalar, U16, 300, "V",{1/@@PACK_MULT_VOLTAGE@@}, 0.0 rawTps1Secondary = scalar, U16, 300, "V",{1/@@PACK_MULT_VOLTAGE@@}, 0.0
rawTps2Primary = scalar, U16, 302, "V",{1/@@PACK_MULT_VOLTAGE@@}, 0.0 rawTps2Primary = scalar, U16, 302, "V",{1/@@PACK_MULT_VOLTAGE@@}, 0.0
rawTps2Secondary = scalar, U16, 304, "V",{1/@@PACK_MULT_VOLTAGE@@}, 0.0 rawTps2Secondary = scalar, U16, 304, "V",{1/@@PACK_MULT_VOLTAGE@@}, 0.0
knockCount = scalar, U16, 306, "count", 1, 0
; ;
; see TunerStudioOutputChannels struct ; see TunerStudioOutputChannels struct