mirror of https://github.com/rusefi/wideband.git
ini updates
This commit is contained in:
parent
36c0c3e4ab
commit
3807bb20e2
|
@ -120,23 +120,29 @@ void SetAuxDac(int channel, float voltage)
|
|||
|
||||
#if (defined(AUXOUT_DAC_PWM_DEVICE) || defined(AUXOUT_DAC_DEVICE))
|
||||
|
||||
static float AuxGetInputSignal(int sel)
|
||||
static float AuxGetInputSignal(AuxOutputMode sel)
|
||||
{
|
||||
switch (sel)
|
||||
{
|
||||
case 0:
|
||||
case 1:
|
||||
return GetLambda(sel);
|
||||
case AuxOutputMode::Afr0:
|
||||
return 14.7f * GetLambda(0);
|
||||
case AuxOutputMode::Afr1:
|
||||
return 14.7f * GetLambda(1);
|
||||
case AuxOutputMode::Lambda0:
|
||||
return GetLambda(0);
|
||||
case AuxOutputMode::Lambda1:
|
||||
return GetLambda(1);
|
||||
#if HAL_USE_SPI
|
||||
case 2:
|
||||
case 3:
|
||||
return getEgtDrivers()[sel - 2].temperature;
|
||||
case AuxOutputMode::Egt0:
|
||||
return getEgtDrivers()[0].temperature;
|
||||
case AuxOutputMode::Egt1:
|
||||
return getEgtDrivers()[1].temperature;
|
||||
#endif
|
||||
default:
|
||||
return 0.0;
|
||||
|
||||
return 0;
|
||||
}
|
||||
return 0.0;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* TODO: merge with some other communication thread? */
|
||||
|
@ -150,7 +156,7 @@ void AuxOutThread(void*)
|
|||
for (int ch = 0; ch < AFR_CHANNELS; ch++)
|
||||
{
|
||||
auto cfg = GetConfiguration();
|
||||
float input = AuxGetInputSignal(cfg->auxInput[ch]);
|
||||
float input = AuxGetInputSignal(cfg->auxOutputSource[ch]);
|
||||
float voltage = interpolate2d(input, cfg->auxOutBins[ch], cfg->auxOutValues[ch]);
|
||||
|
||||
SetAuxDac(ch, voltage);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#pragma once
|
||||
|
||||
// TS settings
|
||||
#define TS_SIGNATURE "rusEFI 2022.12.02.wideband_dual"
|
||||
#define TS_SIGNATURE "rusEFI 2022\.12\.06\.wideband_dual"
|
||||
|
||||
// This board implements two channels
|
||||
#define AFR_CHANNELS 2
|
||||
|
@ -68,5 +68,5 @@
|
|||
|
||||
// Serial connection over BT module
|
||||
// enable BT module setup attempt
|
||||
#define BT_SERIAL_OVER_JDY33 TRUE
|
||||
#define BT_SERIAL_OVER_JDY33 FALSE
|
||||
#define BT_BROADCAST_NAME "RusEFI WBO x2"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#pragma once
|
||||
|
||||
// TS settings
|
||||
#define TS_SIGNATURE "rusEFI 2022.12.02.wideband_f1"
|
||||
#define TS_SIGNATURE "rusEFI 2022\.12\.06\.wideband_f1"
|
||||
|
||||
// Fundamental board constants
|
||||
#define VCC_VOLTS (3.3f)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#pragma once
|
||||
|
||||
// TS settings
|
||||
#define TS_SIGNATURE "rusEFI 2022.12.02.wideband_f1"
|
||||
#define TS_SIGNATURE "rusEFI 2022\.12\.06\.wideband_f1"
|
||||
|
||||
// Fundamental board constants
|
||||
#define VCC_VOLTS (3.3f)
|
||||
|
|
|
@ -24,6 +24,15 @@ enum class SensorType : uint8_t {
|
|||
LSUADV = 2,
|
||||
};
|
||||
|
||||
enum class AuxOutputMode : uint8_t {
|
||||
Afr0 = 0,
|
||||
Afr1 = 1,
|
||||
Lambda0 = 2,
|
||||
Lambda1 = 3,
|
||||
Egt0 = 4,
|
||||
Egt1 = 5,
|
||||
};
|
||||
|
||||
class Configuration {
|
||||
private:
|
||||
// Increment this any time the configuration format changes
|
||||
|
@ -45,7 +54,7 @@ public:
|
|||
// AUX0 and AUX1 curves
|
||||
float auxOutBins[2][8];
|
||||
float auxOutValues[2][8];
|
||||
uint8_t auxInput[2];
|
||||
AuxOutputMode auxOutputSource[2];
|
||||
|
||||
SensorType sensorType;
|
||||
} __attribute__((packed));
|
||||
|
|
|
@ -12,12 +12,12 @@ enable2ndByteCanID = false
|
|||
|
||||
[MegaTune]
|
||||
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
||||
signature = "rusEFI 2022.12.02.wideband_rev2"
|
||||
signature = "rusEFI 2022\.12\.06\.wideband_rev2"
|
||||
|
||||
[TunerStudio]
|
||||
queryCommand = "S"
|
||||
versionInfo = "V" ; firmware version for title bar.
|
||||
signature = "rusEFI 2022.12.02.wideband_f1" ; signature is expected to be 7 or more characters.
|
||||
signature = "rusEFI 2022\.12\.06\.wideband_f1" ; signature is expected to be 7 or more characters.
|
||||
|
||||
; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C
|
||||
useLegacyFTempUnits = false
|
||||
|
@ -79,20 +79,18 @@ LsuSensorType = bits, U08, 135, [0:2], "LSU 4.9", "LSU 4.2", "LSU ADV"
|
|||
ochBlockSize = 256
|
||||
|
||||
; Common
|
||||
VBatt = scalar, F32, 0, "V", 1, 0, 0.0, 30.0, 2
|
||||
VBatt = scalar, F32, 0, "V", 1, 0
|
||||
|
||||
; AFR0
|
||||
AFR0_in = scalar, F32, 32, "", 14.7, 0, 0.0, 20.0, 2
|
||||
AFR0_temp = scalar, F32, 36, "C", 1, 0, 0.0, 1050.0, 0
|
||||
AFR0_Nernst = scalar, F32, 40, "V", 1, 0, 0.0, 1.0, 2
|
||||
AFR0_PumpITarget = scalar, F32, 44, "mA", 1, 0, -5.0, 5.0, 2
|
||||
AFR0_PumpIMeasure = scalar, F32, 48, "mA", 1, 0, -5.0, 5.0, 2
|
||||
AFR0_HeaterDuty = scalar, F32, 52, "%", 100, 0, 0.0, 100.0, 0
|
||||
AFR0_fault = scalar, U08, 56, "", 1, 0, 0, 6, 0
|
||||
AFR0_heater = scalar, U08, 57, "", 1, 0, 0, 4, 0
|
||||
|
||||
|
||||
seconds = scalar, U32, 124, "sec", 1, 0
|
||||
AFR0_lambda = scalar, F32, 32, "", 1, 0
|
||||
AFR0_afr = scalar, F32, 32, "", 14.7, 0
|
||||
AFR0_temp = scalar, F32, 36, "C", 1, 0
|
||||
AFR0_Nernst = scalar, F32, 40, "V", 1, 0
|
||||
AFR0_PumpITarget = scalar, F32, 44, "mA", 1, 0
|
||||
AFR0_PumpIMeasure = scalar, F32, 48, "mA", 1, 0
|
||||
AFR0_HeaterDuty = scalar, F32, 52, "%", 100, 0
|
||||
AFR0_fault = scalar, U08, 56, "", 1, 0
|
||||
AFR0_heater = scalar, U08, 57, "", 1, 0
|
||||
|
||||
[PcVariables]
|
||||
; Keep in sync with Max31855State enum from max31855.h
|
||||
|
@ -108,19 +106,18 @@ seconds = scalar, U32, 124, "sec", 1, 0
|
|||
|
||||
gaugeCategory = Common
|
||||
; Name = Channel, Title, Units, Lo, Hi, LoD, LoW, HiW, HiD, vd, ld, Active
|
||||
VBattGauge = VBatt, "Battery", "V", 3.0, 24.0, 9.0, 11.0, 15.0, 16.0, 2, 2
|
||||
VBattGauge = VBatt, "Battery", "V", 3.0, 24.0, 9.0, 11.0, 15.0, 16.0, 1, 1
|
||||
|
||||
; AFR0
|
||||
gaugeCategory = AFR channel 0
|
||||
; Name = Channel, Title, Units, Lo, Hi, LoD, LoW, HiW, HiD, vd, ld, Active
|
||||
AFR0_Gauge = AFR0_in, "0: AFR", "", 6.5, 20.0, 9.0, 10.0, 16.0, 17.0, 2, 2
|
||||
AFR0_TempGauge = AFR0_temp, "0: AFR t", "C", 500, 1050, 500, 650, 800, 950, 2, 2
|
||||
AFR0_NernstGauge = AFR0_Nernst, "0: nernst", "V", 0.0, 1.0, 0.0, 0.0, 0.9, 0.95, 2, 2
|
||||
AFR0_HeaterDutyGauge = AFR0_HeaterDuty, "0: Heater", "%", 0.0, 100.0, 1.0, 3.0, 90, 95, 2, 2
|
||||
AFR0_LambdaGauge = AFR0_lambda, "0: lambda", "", 0.5, 1.3, 0.5, 0.6, 1.05, 1.2, 3, 3
|
||||
AFR0_AfrGauge = AFR0_afr, "0: AFR", "", 6.5, 20.0, 9.0, 10.0, 16.0, 17.0, 2, 2
|
||||
AFR0_TempGauge = AFR0_temp, "0: AFR t", "C", 500, 1050, 500, 650, 800, 950, 0, 0
|
||||
AFR0_NernstGauge = AFR0_Nernst, "0: nernst", "V", 0.0, 1.0, 0.0, 0.0, 0.9, 0.95, 3, 3
|
||||
AFR0_HeaterDutyGauge = AFR0_HeaterDuty, "0: Heater Duty", "%", 0.0, 100.0, 1.0, 3.0, 90, 95, 1, 1
|
||||
AFR0_PumpITargetGauge = AFR0_PumpITarget, "0: Ipump Target", "mA", -5.0, 5.0, -4.0, -3.0, 3.0, 4.0, 2, 2
|
||||
AFR0_PumpIMeasureGauge = AFR0_PumpIMeasure, "0: Ipump Actual", "mA", -5.0, 5.0, -4.0, -3.0, 3.0, 4.0, 2, 2
|
||||
AFR0_FaultGauge = AFR0_fault, "0: AFR fault", "", 0.0, 6.0, 0.0, 0.0, 0.5, 0.5, 2, 2
|
||||
AFR0_HeaterGauge = AFR0_heater, "0: AFR heater state", "", 0.0, 4.0, 0.0, 1.5, 2.5, 2.5, 2, 2
|
||||
|
||||
|
||||
[FrontPage]
|
||||
|
@ -130,7 +127,7 @@ AFR0_HeaterGauge = AFR0_heater, "0: AFR heater state", "",
|
|||
; 5 6 7 8
|
||||
|
||||
gauge1 = VBattGauge
|
||||
gauge2 = AFR0_Gauge
|
||||
gauge2 = AFR0_AfrGauge
|
||||
gauge3 = AFR0_TempGauge
|
||||
gauge4 = AFR0_HeaterDutyGauge
|
||||
gauge5 = AFR0_NernstGauge
|
||||
|
@ -144,30 +141,28 @@ AFR0_HeaterGauge = AFR0_heater, "0: AFR heater state", "",
|
|||
[KeyActions]
|
||||
|
||||
[Datalog]
|
||||
; Channel Label Type Format
|
||||
entry = time, "Time", float, "%.3f"
|
||||
; Channel Label Type Format
|
||||
entry = time, "Time", float, "%.3f"
|
||||
|
||||
entry = VBatt "Battery", float, "%.2f"
|
||||
|
||||
; AFR0
|
||||
entry = AFR0_lambda "0: Lambda", float, "%.3f"
|
||||
entry = AFR0_afr "0: AFR", float, "%.2f"
|
||||
entry = AFR0_temp "0: Temp C", int, "%d"
|
||||
entry = AFR0_Nernst "0: Nernst", float, "%.3f"
|
||||
entry = AFR0_PumpITarget "0: Ipump target", float, "%.2f"
|
||||
entry = AFR0_PumpIMeasure "0: Ipump actual", float, "%.2f"
|
||||
entry = AFR0_HeaterDuty "0: Heater duty", float, "%.1f"
|
||||
entry = AFR0_fault "0: Fault code", int, "%d"
|
||||
entry = AFR0_heater "0: Heater status code", int, "%d"
|
||||
|
||||
[Menu]
|
||||
|
||||
menuDialog = main
|
||||
|
||||
menu = "&Base &Engine"
|
||||
|
||||
menu = "Fuel"
|
||||
|
||||
menu = "Ignition"
|
||||
|
||||
menu = "&Cranking"
|
||||
|
||||
menu = "&Idle"
|
||||
|
||||
menu = "&View"
|
||||
menu = "&Settings"
|
||||
subMenu = sensor_settings, "Sensor settings"
|
||||
|
||||
|
||||
menu = "&Advanced"
|
||||
|
||||
menu = "&Sensors"
|
||||
subMenu = can_settings, "CAN settings"
|
||||
|
||||
[ControllerCommands]
|
||||
; commandName = command1, command2, commandn...
|
||||
|
@ -186,4 +181,10 @@ cmd_dfu = "Z\x00\xba\x00\x00"
|
|||
|
||||
[UserDefined]
|
||||
|
||||
dialog = sensor_settings, "Sensor Settings"
|
||||
field = "Sensor Type", LsuSensorType
|
||||
|
||||
dialog = can_settings, "CAN Settings"
|
||||
field = "CAN message ID offset", CanIndexOffset
|
||||
|
||||
[Tools]
|
||||
|
|
|
@ -12,12 +12,12 @@ enable2ndByteCanID = false
|
|||
|
||||
[MegaTune]
|
||||
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
||||
signature = "rusEFI 2022.12.02.wideband_dual"
|
||||
signature = "rusEFI 2022\.12\.06\.wideband_dual"
|
||||
|
||||
[TunerStudio]
|
||||
queryCommand = "S"
|
||||
versionInfo = "V" ; firmware version for title bar.
|
||||
signature = "rusEFI 2022.12.02.wideband_dual" ; signature is expected to be 7 or more characters.
|
||||
signature = "rusEFI 2022\.12\.06\.wideband_dual" ; signature is expected to be 7 or more characters.
|
||||
|
||||
; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C
|
||||
useLegacyFTempUnits = false
|
||||
|
@ -70,8 +70,8 @@ Aux0OutBins = array, F32, 5, [8], "", 1, 0, 0, 1
|
|||
Aux1OutBins = array, F32, 37, [8], "", 1, 0, 0, 1500, 2
|
||||
Aux0Out = array, F32, 69, [8], "V", 1, 0, 0, 5.0, 2
|
||||
Aux1Out = array, F32, 101, [8], "V", 1, 0, 0, 5.0, 2
|
||||
Aux0InputSel = bits, U08, 133, [0:3], "AFR 0", "AFR 1", "EGT 0", "EGT 1"
|
||||
Aux1InputSel = bits, U08, 134, [0:3], "AFR 0", "AFR 1", "EGT 0", "EGT 1"
|
||||
Aux0InputSel = bits, U08, 133, [0:3], "AFR 0", "AFR 1", "Lambda 0", "Lambda 1", "EGT 0", "EGT 1"
|
||||
Aux1InputSel = bits, U08, 134, [0:3], "AFR 0", "AFR 1", "Lambda 0", "Lambda 1", "EGT 0", "EGT 1"
|
||||
LsuSensorType = bits, U08, 135, [0:2], "LSU 4.9", "LSU 4.2", "LSU ADV"
|
||||
|
||||
[SettingContextHelp]
|
||||
|
@ -86,42 +86,43 @@ LsuSensorType = bits, U08, 135, [0:2], "LSU 4.9", "LSU 4.2", "LSU ADV"
|
|||
ochBlockSize = 256
|
||||
|
||||
; Common
|
||||
VBatt = scalar, F32, 0, "V", 1, 0, 0.0, 30.0, 2
|
||||
VBatt = scalar, F32, 0, "V", 1, 0
|
||||
|
||||
; AFR0
|
||||
AFR0_in = scalar, F32, 32, "", 14.7, 0, 0.0, 20.0, 2
|
||||
AFR0_temp = scalar, F32, 36, "C", 1, 0, 0.0, 1050.0, 0
|
||||
AFR0_Nernst = scalar, F32, 40, "V", 1, 0, 0.0, 1.0, 2
|
||||
AFR0_PumpITarget = scalar, F32, 44, "mA", 1, 0, -5.0, 5.0, 2
|
||||
AFR0_PumpIMeasure = scalar, F32, 48, "mA", 1, 0, -5.0, 5.0, 2
|
||||
AFR0_HeaterDuty = scalar, F32, 52, "%", 100, 0, 0.0, 100.0, 0
|
||||
AFR0_fault = scalar, U08, 56, "", 1, 0, 0, 6, 0
|
||||
AFR0_heater = scalar, U08, 57, "", 1, 0, 0, 4, 0
|
||||
AFR0_lambda = scalar, F32, 32, "", 1, 0
|
||||
AFR0_afr = scalar, F32, 32, "", 14.7, 0
|
||||
AFR0_temp = scalar, F32, 36, "C", 1, 0
|
||||
AFR0_Nernst = scalar, F32, 40, "V", 1, 0
|
||||
AFR0_PumpITarget = scalar, F32, 44, "mA", 1, 0
|
||||
AFR0_PumpIMeasure = scalar, F32, 48, "mA", 1, 0
|
||||
AFR0_HeaterDuty = scalar, F32, 52, "%", 100, 0
|
||||
AFR0_fault = scalar, U08, 56, "", 1, 0
|
||||
AFR0_heater = scalar, U08, 57, "", 1, 0
|
||||
|
||||
; AFR1
|
||||
AFR1_in = scalar, F32, 64, "", 14.7, 0, 0.0, 20.0, 2
|
||||
AFR1_temp = scalar, F32, 68, "C", 1, 0, 0.0, 1050.0, 0
|
||||
AFR1_Nernst = scalar, F32, 72, "V", 1, 0, 0.0, 1.0, 2
|
||||
AFR1_PumpITarget = scalar, F32, 76, "mA", 1, 0, -5.0, 5.0, 2
|
||||
AFR1_PumpIMeasure = scalar, F32, 80, "mA", 1, 0, -5.0, 5.0, 2
|
||||
AFR1_HeaterDuty = scalar, F32, 84, "%", 100, 0, 0.0, 100.0, 0
|
||||
AFR1_fault = scalar, U08, 88, "", 1, 0, 0, 6, 0
|
||||
AFR1_heater = scalar, U08, 89, "", 1, 0, 0, 4, 0
|
||||
AFR1_lambda = scalar, F32, 64, "", 1, 0
|
||||
AFR1_afr = scalar, F32, 64, "", 14.7, 0
|
||||
AFR1_temp = scalar, F32, 68, "C", 1, 0
|
||||
AFR1_Nernst = scalar, F32, 72, "V", 1, 0
|
||||
AFR1_PumpITarget = scalar, F32, 76, "mA", 1, 0
|
||||
AFR1_PumpIMeasure = scalar, F32, 80, "mA", 1, 0
|
||||
AFR1_HeaterDuty = scalar, F32, 84, "%", 100, 0
|
||||
AFR1_fault = scalar, U08, 88, "", 1, 0
|
||||
AFR1_heater = scalar, U08, 89, "", 1, 0
|
||||
|
||||
; EGT0
|
||||
EGT0_temp = scalar, F32, 96, "C", 1, 0, -250.0, 1600.0, 0
|
||||
EGT0_coldJunction = scalar, F32, 100, "C", 1, 0, -55.0, 127.0, 0
|
||||
EGT0_state = scalar, U08, 104, "", 1, 0, 0, 4, 0
|
||||
EGT0_temp = scalar, F32, 96, "C", 1, 0
|
||||
EGT0_coldJunction = scalar, F32, 100, "C", 1, 0
|
||||
EGT0_state = scalar, U08, 104, "", 1, 0
|
||||
|
||||
; EGT1
|
||||
EGT1_temp = scalar, F32, 112, "C", 1, 0, -250.0, 1600.0, 0
|
||||
EGT1_coldJunction = scalar, F32, 116, "C", 1, 0, -55.0, 127.0, 0
|
||||
EGT1_state = scalar, U08, 120, "", 1, 0, 0, 4, 0
|
||||
EGT1_temp = scalar, F32, 112, "C", 1, 0
|
||||
EGT1_coldJunction = scalar, F32, 116, "C", 1, 0
|
||||
EGT1_state = scalar, U08, 120, "", 1, 0
|
||||
|
||||
seconds = scalar, U32, 124, "sec", 1, 0
|
||||
|
||||
Aux0InputSig = { (Aux0InputSel == 0) ? AFR0_in : ((Aux0InputSel == 1) ? AFR1_in : ((Aux0InputSel == 2) ? EGT0_temp : EGT1_temp)) }
|
||||
Aux1InputSig = { (Aux1InputSel == 0) ? AFR0_in : ((Aux1InputSel == 1) ? AFR1_in : ((Aux1InputSel == 2) ? EGT0_temp : EGT1_temp)) }
|
||||
; TODO: something is wrong with these
|
||||
Aux0InputSig = { (Aux0InputSel == 0) ? AFR0_lambda : ((Aux0InputSel == 1) ? AFR1_lambda : ((Aux0InputSel == 2) ? EGT0_temp : EGT1_temp)) }
|
||||
Aux1InputSig = { (Aux1InputSel == 0) ? AFR0_lambda : ((Aux1InputSel == 1) ? AFR1_lambda : ((Aux1InputSel == 2) ? EGT0_temp : EGT1_temp)) }
|
||||
|
||||
;Aux0InputSigMax = { (Aux0InputSel == 0) ? 25 : ((Aux0InputSel == 1) ? 25 : 1500 }
|
||||
;Aux1InputSigMax = { (Aux1InputSel == 0) ? 25 : ((Aux1InputSel == 1) ? 25 : 1500 }
|
||||
|
@ -157,49 +158,47 @@ Aux1InputSig = { (Aux1InputSel == 0) ? AFR0_in : ((Aux1InputSel == 1) ? AFR1_in
|
|||
|
||||
gaugeCategory = Common
|
||||
; Name = Channel, Title, Units, Lo, Hi, LoD, LoW, HiW, HiD, vd, ld, Active
|
||||
VBattGauge = VBatt, "Battery", "V", 3.0, 24.0, 9.0, 11.0, 15.0, 16.0, 2, 2
|
||||
VBattGauge = VBatt, "Battery", "V", 3.0, 24.0, 9.0, 11.0, 15.0, 16.0, 1, 1
|
||||
|
||||
; AFR0
|
||||
gaugeCategory = AFR channel 0
|
||||
; Name = Channel, Title, Units, Lo, Hi, LoD, LoW, HiW, HiD, vd, ld, Active
|
||||
AFR0_Gauge = AFR0_in, "0: AFR", "", 6.5, 20.0, 9.0, 10.0, 16.0, 17.0, 2, 2
|
||||
AFR0_TempGauge = AFR0_temp, "0: AFR t", "C", 500, 1050, 500, 650, 800, 950, 2, 2
|
||||
AFR0_NernstGauge = AFR0_Nernst, "0: nernst", "V", 0.0, 1.0, 0.0, 0.0, 0.9, 0.95, 2, 2
|
||||
AFR0_HeaterDutyGauge = AFR0_HeaterDuty, "0: Heater", "%", 0.0, 100.0, 1.0, 3.0, 90, 95, 2, 2
|
||||
AFR0_LambdaGauge = AFR0_lambda, "0: lambda", "", 0.5, 1.3, 0.5, 0.6, 1.05, 1.2, 3, 3
|
||||
AFR0_AfrGauge = AFR0_afr, "0: AFR", "", 6.5, 20.0, 9.0, 10.0, 16.0, 17.0, 2, 2
|
||||
AFR0_TempGauge = AFR0_temp, "0: AFR t", "C", 500, 1050, 500, 650, 800, 950, 0, 0
|
||||
AFR0_NernstGauge = AFR0_Nernst, "0: nernst", "V", 0.0, 1.0, 0.0, 0.0, 0.9, 0.95, 3, 3
|
||||
AFR0_HeaterDutyGauge = AFR0_HeaterDuty, "0: Heater Duty", "%", 0.0, 100.0, 1.0, 3.0, 90, 95, 1, 1
|
||||
AFR0_PumpITargetGauge = AFR0_PumpITarget, "0: Ipump Target", "mA", -5.0, 5.0, -4.0, -3.0, 3.0, 4.0, 2, 2
|
||||
AFR0_PumpIMeasureGauge = AFR0_PumpIMeasure, "0: Ipump Actual", "mA", -5.0, 5.0, -4.0, -3.0, 3.0, 4.0, 2, 2
|
||||
AFR0_FaultGauge = AFR0_fault, "0: AFR fault", "", 0.0, 6.0, 0.0, 0.0, 0.5, 0.5, 2, 2
|
||||
AFR0_HeaterGauge = AFR0_heater, "0: AFR heater state", "", 0.0, 4.0, 0.0, 1.5, 2.5, 2.5, 2, 2
|
||||
|
||||
; AFR1
|
||||
gaugeCategory = AFR channel 1
|
||||
; Name = Channel, Title, Units, Lo, Hi, LoD, LoW, HiW, HiD, vd, ld, Active
|
||||
AFR1_Gauge = AFR1_in, "1: AFR", "", 6.5, 20.0, 9.0, 10.0, 16.0, 17.0, 2, 2
|
||||
AFR1_TempGauge = AFR1_temp, "1: AFR t", "C", 500, 1050, 500, 650, 800, 950, 2, 2
|
||||
AFR1_NernstGauge = AFR1_Nernst, "1: nernst", "V", 0.0, 1.0, 0.0, 0.0, 0.9, 0.95, 2, 2
|
||||
AFR1_HeaterDutyGauge = AFR1_HeaterDuty, "1: Heater", "%", 0.0, 100.0, 1.0, 3.0, 90, 95, 2, 2
|
||||
AFR1_LambdaGauge = AFR1_lambda, "1: lambda", "", 0.5, 1.3, 0.5, 0.6, 1.05, 1.2, 3, 3
|
||||
AFR1_AfrGauge = AFR1_afr, "1: AFR", "", 6.5, 20.0, 9.0, 10.0, 16.0, 17.0, 2, 2
|
||||
AFR1_TempGauge = AFR1_temp, "1: AFR t", "C", 500, 1050, 500, 650, 800, 950, 0, 0
|
||||
AFR1_NernstGauge = AFR1_Nernst, "1: nernst", "V", 0.0, 1.0, 0.0, 0.0, 0.9, 0.95, 3, 3
|
||||
AFR1_HeaterDutyGauge = AFR1_HeaterDuty, "1: Heater Duty", "%", 0.0, 100.0, 1.0, 3.0, 90, 95, 1, 1
|
||||
AFR1_PumpITargetGauge = AFR1_PumpITarget, "1: Ipump Target", "mA", -5.0, 5.0, -4.0, -3.0, 3.0, 4.0, 2, 2
|
||||
AFR1_PumpIMeasureGauge = AFR1_PumpIMeasure, "1: Ipump Actual", "mA", -5.0, 5.0, -4.0, -3.0, 3.0, 4.0, 2, 2
|
||||
AFR1_FaultGauge = AFR1_fault, "1: AFR fault", "", 0.0, 6.0, 0.0, 0.0, 0.5, 0.5, 2, 2
|
||||
AFR1_HeaterGauge = AFR1_heater, "1: AFR heater state", "", 0.0, 4.0, 0.0, 1.5, 2.5, 2.5, 2, 2
|
||||
|
||||
; EGT0
|
||||
gaugeCategory = EGT channel 0
|
||||
; Name = Channel, Title, Units, Lo, Hi, LoD, LoW, HiW, HiD, vd, ld, Active
|
||||
EGT0_Gauge = EGT0_temp, "0: EGT", "C", 0.0, 1600.0, 100.0, 250.0, 900.0, 1000.0, 2, 2
|
||||
EGT0_ColdJunctionGauge = EGT0_coldJunction, "0: EGT CJ", "C", 0.0, 130.0, -55.0, -20.0, 95.0, 105.0, 2, 2
|
||||
EGT0_StateGauge = EGT0_state, "0: EGT state", "", 0.0, 5.0, 0.0, 0.0, 0.5, 0.5, 2, 2
|
||||
EGT0_Gauge = EGT0_temp, "0: EGT", "C", 0.0, 1600.0, 100.0, 250.0, 900.0, 1000.0, 0, 0
|
||||
EGT0_ColdJunctionGauge = EGT0_coldJunction, "0: EGT CJ", "C", 0.0, 130.0, -55.0, -20.0, 95.0, 105.0, 1, 1
|
||||
EGT0_StateGauge = EGT0_state, "0: EGT state", "", 0.0, 5.0, 0.0, 0.0, 0.5, 0.5, 0, 0
|
||||
|
||||
; EGT1
|
||||
gaugeCategory = EGT channel 1
|
||||
; Name = Channel, Title, Units, Lo, Hi, LoD, LoW, HiW, HiD, vd, ld, Active
|
||||
EGT1_Gauge = EGT1_temp, "1: EGT", "C", 0.0, 1600.0, 100.0, 250.0, 900.0, 1000.0, 2, 2
|
||||
EGT1_ColdJunctionGauge = EGT1_coldJunction, "1: EGT CJ", "C", 0.0, 130.0, -55.0, -20.0, 95.0, 105.0, 2, 2
|
||||
EGT1_StateGauge = EGT1_state, "1: EGT state", "", 0.0, 5.0, 0.0, 0.0, 0.5, 0.5, 2, 2
|
||||
EGT1_Gauge = EGT1_temp, "1: EGT", "C", 0.0, 1600.0, 100.0, 250.0, 900.0, 1000.0, 0, 0
|
||||
EGT1_ColdJunctionGauge = EGT1_coldJunction, "1: EGT CJ", "C", 0.0, 130.0, -55.0, -20.0, 95.0, 105.0, 1, 1
|
||||
EGT1_StateGauge = EGT1_state, "1: EGT state", "", 0.0, 5.0, 0.0, 0.0, 0.5, 0.5, 0, 0
|
||||
|
||||
; AUX outputs
|
||||
Aux0InputGauge = { (Aux0InputSel == 0) ? AFR0_Gauge : ((Aux0InputSel == 1) ? AFR1_Gauge : ((Aux0InputSel == 2) ? EGT0_Gauge : EGT1_Gauge)) }
|
||||
Aux1InputGauge = { (Aux1InputSel == 0) ? AFR0_Gauge : ((Aux1InputSel == 1) ? AFR1_Gauge : ((Aux1InputSel == 2) ? EGT0_Gauge : EGT1_Gauge)) }
|
||||
Aux0InputGauge = { (Aux0InputSel == 0) ? AFR0_AfrGauge : ((Aux0InputSel == 1) ? AFR1_AfrGauge : ((Aux0InputSel == 2) ? EGT0_Gauge : EGT1_Gauge)) }
|
||||
Aux1InputGauge = { (Aux1InputSel == 0) ? AFR0_AfrGauge : ((Aux1InputSel == 1) ? AFR1_AfrGauge : ((Aux1InputSel == 2) ? EGT0_Gauge : EGT1_Gauge)) }
|
||||
|
||||
[FrontPage]
|
||||
; Gauges are numbered left to right, top to bottom.
|
||||
|
@ -208,8 +207,8 @@ Aux1InputGauge = { (Aux1InputSel == 0) ? AFR0_Gauge : ((Aux1InputSel == 1) ? AFR
|
|||
; 5 6 7 8
|
||||
|
||||
gauge1 = AFR0_TempGauge
|
||||
gauge2 = AFR0_Gauge
|
||||
gauge3 = AFR1_Gauge
|
||||
gauge2 = AFR0_AfrGauge
|
||||
gauge3 = AFR1_AfrGauge
|
||||
gauge4 = AFR1_TempGauge
|
||||
gauge5 = VBattGauge
|
||||
gauge6 = EGT0_Gauge
|
||||
|
@ -226,24 +225,47 @@ Aux1InputGauge = { (Aux1InputSel == 0) ? AFR0_Gauge : ((Aux1InputSel == 1) ? AFR
|
|||
[KeyActions]
|
||||
|
||||
[Datalog]
|
||||
; Channel Label Type Format
|
||||
entry = time, "Time", float, "%.3f"
|
||||
; Channel Label Type Format
|
||||
entry = time, "Time", float, "%.3f"
|
||||
|
||||
entry = VBatt "Battery", float, "%.2f"
|
||||
|
||||
; AFR0
|
||||
entry = AFR0_lambda "0: Lambda", float, "%.3f"
|
||||
entry = AFR0_afr "0: AFR", float, "%.2f"
|
||||
entry = AFR0_temp "0: Temp C", int, "%d"
|
||||
entry = AFR0_Nernst "0: Nernst", float, "%.3f"
|
||||
entry = AFR0_PumpITarget "0: Ipump target", float, "%.2f"
|
||||
entry = AFR0_PumpIMeasure "0: Ipump actual", float, "%.2f"
|
||||
entry = AFR0_HeaterDuty "0: Heater duty", float, "%.1f"
|
||||
entry = AFR0_fault "0: Fault code", int, "%d"
|
||||
entry = AFR0_heater "0: Heater status code", int, "%d"
|
||||
|
||||
; AFR1
|
||||
entry = AFR1_lambda "1: Lambda", float, "%.3f"
|
||||
entry = AFR1_afr "1: AFR", float, "%.2f"
|
||||
entry = AFR1_temp "1: Temp C", int, "%d"
|
||||
entry = AFR1_Nernst "1: Nernst", float, "%.3f"
|
||||
entry = AFR1_PumpITarget "1: Ipump target", float, "%.2f"
|
||||
entry = AFR1_PumpIMeasure "1: Ipump actual", float, "%.2f"
|
||||
entry = AFR1_HeaterDuty "1: Heater duty", float, "%.1f"
|
||||
entry = AFR1_fault "1: Fault code", int, "%d"
|
||||
entry = AFR1_heater "1: Heater status code", int, "%d"
|
||||
|
||||
; EGT0
|
||||
entry = EGT0_temp "EGT 0: EGT", int, "%d"
|
||||
entry = EGT0_coldJunction "EGT 0: CJ", int, "%d"
|
||||
entry = EGT0_state "EGT 0: State", int, "%d"
|
||||
|
||||
; EGT1
|
||||
entry = EGT1_temp "EGT 1: EGT", int, "%d"
|
||||
entry = EGT1_coldJunction "EGT 1: CJ", int, "%d"
|
||||
entry = EGT1_state "EGT 1: State", int, "%d"
|
||||
|
||||
[Menu]
|
||||
|
||||
menuDialog = main
|
||||
|
||||
menu = "&Base &Engine"
|
||||
|
||||
menu = "Fuel"
|
||||
|
||||
menu = "Ignition"
|
||||
|
||||
menu = "&Cranking"
|
||||
|
||||
menu = "&Idle"
|
||||
|
||||
menu = "&View"
|
||||
menu = "&Settings"
|
||||
subMenu = sensor_settings, "Sensor settings"
|
||||
subMenu = can_settings, "CAN settings"
|
||||
|
||||
|
@ -251,10 +273,6 @@ menuDialog = main
|
|||
subMenu = auxOut0, "AUX analog output 0"
|
||||
subMenu = auxOut1, "AUX analog output 1"
|
||||
|
||||
menu = "&Advanced"
|
||||
|
||||
menu = "&Sensors"
|
||||
|
||||
[ControllerCommands]
|
||||
; commandName = command1, command2, commandn...
|
||||
; command in standard ini format, a command name can be assigned to 1 to n commands that will be executed in order.
|
||||
|
|
|
@ -20,7 +20,7 @@ void SamplingUpdateLiveData()
|
|||
{
|
||||
volatile struct livedata_afr_s *data = &livedata_afr[ch];
|
||||
|
||||
data->afr = GetLambda(ch);
|
||||
data->lambda = GetLambda(ch);
|
||||
data->temperature = GetSensorTemperature(ch);
|
||||
data->nernstVoltage = GetNernstDc(ch);
|
||||
data->pumpCurrentTarget = GetPumpCurrent(ch);
|
||||
|
|
|
@ -20,7 +20,8 @@ struct livedata_common_s {
|
|||
struct livedata_afr_s {
|
||||
union {
|
||||
struct {
|
||||
float afr;
|
||||
// lambda also displayed by TS as AFR, same data with different scale factor
|
||||
float lambda;
|
||||
float temperature;
|
||||
float nernstVoltage;
|
||||
float pumpCurrentTarget;
|
||||
|
|
Loading…
Reference in New Issue