This commit is contained in:
kon 2020-07-27 20:06:27 -07:00
commit 2a1d8c69d6
65 changed files with 312 additions and 17908 deletions

View File

@ -18,6 +18,7 @@ jobs:
# Board configurations
- build-target: frankenso_na6
folder: frankenso
ini-file: rusefi_frankenso_na6.ini
- build-target: kinetis
folder: kinetis
@ -28,7 +29,7 @@ jobs:
- build-target: mre_f4_hardware_QC_special_build
folder: microrusefi
ini-file: rusefi_microrusefi.ini
ini-file: rusefi_mre_f4.ini
- build-target: mre_f7
folder: microrusefi

View File

@ -1,4 +1,4 @@
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Sun Jul 26 19:09:03 UTC 2020
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Mon Jul 27 13:47:20 UTC 2020
// by class com.rusefi.output.CHeaderConsumer
// begin
#pragma once
@ -3533,4 +3533,4 @@ struct persistent_config_s {
typedef struct persistent_config_s persistent_config_s;
// end
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Sun Jul 26 19:09:03 UTC 2020
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Mon Jul 27 13:47:20 UTC 2020

View File

@ -1075,8 +1075,8 @@
#define showHumanReadableWarning_offset 976
#define showSdCardWarning_offset 76
#define SIGNATURE_BOARD kin
#define SIGNATURE_DATE 2020.07.26
#define SIGNATURE_HASH 2735505253
#define SIGNATURE_DATE 2020.07.27
#define SIGNATURE_HASH 3345389999
#define silentTriggerError_offset 1464
#define slowAdcAlpha_offset 2088
#define sparkDwellRpmBins_offset 332
@ -1344,7 +1344,7 @@
#define ts_show_spi true
#define ts_show_trigger_comparator true
#define ts_show_tunerstudio_port true
#define TS_SIGNATURE "rusEFI 2020.07.26.kin.2735505253"
#define TS_SIGNATURE "rusEFI 2020.07.27.kin.3345389999"
#define TS_SINGLE_WRITE_COMMAND 'W'
#define tunerStudioSerialSpeed_offset 728
#define twoWireBatchIgnition_offset 1476

View File

@ -166,6 +166,14 @@ static void setupDefaultSensorInputs() {
// iat = "23 - AN temp 2"
engineConfiguration->iat.adcChannel = EFI_ADC_1;
engineConfiguration->iat.config.bias_resistor = 2700;
setCommonNTCSensor(&engineConfiguration->auxTempSensor1, 2700);
setCommonNTCSensor(&engineConfiguration->auxTempSensor2, 2700);
#if HW_CHECK_MODE
engineConfiguration->auxTempSensor1.adcChannel = EFI_ADC_2;
engineConfiguration->auxTempSensor2.adcChannel = EFI_ADC_3;
#endif // HW_CHECK_MODE
}
void setPinConfigurationOverrides(void) {

View File

@ -898,10 +898,12 @@ int tunerStudioHandleCrcCommand(ts_channel_s *tsChannel, char *data, int incomin
break;
#endif /* ENABLE_PERF_TRACE */
case TS_GET_CONFIG_ERROR: {
#if HW_CHECK_MODE
#define configError "FACTORY_MODE_PLEASE_CONTACT_SUPPORT"
#else
char * configError = getFirmwareError();
#if HW_CHECK_MODE
// analog input errors are returned as firmware error in QC mode
if (!hasFirmwareError()) {
strcpy(configError, "FACTORY_MODE_PLEASE_CONTACT_SUPPORT");
}
#endif // HW_CHECK_MODE
sr5SendResponse(tsChannel, TS_CRC, reinterpret_cast<const uint8_t*>(configError), strlen(configError));
break;

View File

@ -130,6 +130,14 @@ static void cylinderCleanupControl(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
#endif
}
#if HW_CHECK_MODE
static void assertCloseTo(const char * msg, float actual, float expected) {
if (actual < 0.9 * expected || actual > 1.1 * expected) {
firmwareError(OBD_PCM_Processor_Fault, "%s analog input validation failed %f vs %f", msg, actual, expected);
}
}
#endif // HW_CHECK_MODE
void Engine::periodicSlowCallback(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
ScopePerf perf(PE::EnginePeriodicSlowCallback);
@ -163,7 +171,14 @@ void Engine::periodicSlowCallback(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
}
#endif
slowCallBackWasInvoked = TRUE;
slowCallBackWasInvoked = true;
#if HW_CHECK_MODE
assertCloseTo("clt", Sensor::get(SensorType::Clt).Value, 49.3);
assertCloseTo("iat", Sensor::get(SensorType::Iat).Value, 73.2);
assertCloseTo("aut1", Sensor::get(SensorType::AuxTemp1).Value, 13.8);
assertCloseTo("aut2", Sensor::get(SensorType::AuxTemp2).Value, 6.2);
#endif // HW_CHECK_MODE
}

View File

@ -1,2 +1,2 @@
#pragma once
#define VCS_DATE 20200727
#define VCS_DATE 20200728

View File

@ -324,6 +324,8 @@ static void printAnalogInfo(void) {
printAnalogChannelInfo("pPS", engineConfiguration->throttlePedalPositionAdcChannel);
printAnalogChannelInfo("CLT", engineConfiguration->clt.adcChannel);
printAnalogChannelInfo("IAT", engineConfiguration->iat.adcChannel);
printAnalogChannelInfo("AuxT1", engineConfiguration->auxTempSensor1.adcChannel);
printAnalogChannelInfo("AuxT2", engineConfiguration->auxTempSensor2.adcChannel);
printAnalogChannelInfo("MAF", engineConfiguration->mafAdcChannel);
for (int i = 0; i < FSIO_ANALOG_INPUT_COUNT ; i++) {
adc_channel_e ch = engineConfiguration->fsioAdc[i];

View File

@ -1,4 +1,4 @@
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Jul 26 19:08:53 UTC 2020
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Mon Jul 27 13:47:09 UTC 2020
// by class com.rusefi.output.CHeaderConsumer
// begin
#pragma once
@ -3533,4 +3533,4 @@ struct persistent_config_s {
typedef struct persistent_config_s persistent_config_s;
// end
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Jul 26 19:08:53 UTC 2020
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Mon Jul 27 13:47:09 UTC 2020

View File

@ -1,4 +1,4 @@
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Jul 26 19:08:53 UTC 2020
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Mon Jul 27 13:47:09 UTC 2020
// by class com.rusefi.output.FileFsioSettingsConsumer
FSIO_SETTING_FANONTEMPERATURE = 1000,

View File

@ -1,4 +1,4 @@
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Jul 26 19:08:53 UTC 2020
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Mon Jul 27 13:47:09 UTC 2020
// by class com.rusefi.output.FileFsioSettingsConsumer
case FSIO_SETTING_FANONTEMPERATURE:

View File

@ -1,4 +1,4 @@
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Jul 26 19:08:53 UTC 2020
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Mon Jul 27 13:47:09 UTC 2020
// by class com.rusefi.output.FileFsioSettingsConsumer
static LENameOrdinalPair lefanOnTemperature(FSIO_SETTING_FANONTEMPERATURE, "cfg_fanOnTemperature");

View File

@ -1,4 +1,4 @@
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Jul 26 19:08:53 UTC 2020
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Mon Jul 27 13:47:09 UTC 2020
// by class com.rusefi.output.FileFsioSettingsConsumer
case FSIO_SETTING_FANONTEMPERATURE:

View File

@ -1075,8 +1075,8 @@
#define showHumanReadableWarning_offset 976
#define showSdCardWarning_offset 76
#define SIGNATURE_BOARD all
#define SIGNATURE_DATE 2020.07.26
#define SIGNATURE_HASH 1848812543
#define SIGNATURE_DATE 2020.07.27
#define SIGNATURE_HASH 173557045
#define silentTriggerError_offset 1464
#define slowAdcAlpha_offset 2088
#define sparkDwellRpmBins_offset 332
@ -1344,7 +1344,7 @@
#define ts_show_spi true
#define ts_show_trigger_comparator false
#define ts_show_tunerstudio_port true
#define TS_SIGNATURE "rusEFI 2020.07.26.all.1848812543"
#define TS_SIGNATURE "rusEFI 2020.07.27.all.173557045"
#define TS_SINGLE_WRITE_COMMAND 'W'
#define tunerStudioSerialSpeed_offset 728
#define twoWireBatchIgnition_offset 1476

View File

@ -3,6 +3,6 @@
//
#define SIGNATURE_BOARD all
#define SIGNATURE_DATE 2020.07.26
#define SIGNATURE_HASH 1848812543
#define TS_SIGNATURE "rusEFI 2020.07.26.all.1848812543"
#define SIGNATURE_DATE 2020.07.28
#define SIGNATURE_HASH 2435517493
#define TS_SIGNATURE "rusEFI 2020.07.28.all.2435517493"

View File

@ -3,6 +3,6 @@
//
#define SIGNATURE_BOARD frankenso_na6
#define SIGNATURE_DATE 2020.07.26
#define SIGNATURE_HASH 2964705052
#define TS_SIGNATURE "rusEFI 2020.07.26.frankenso_na6.2964705052"
#define SIGNATURE_DATE 2020.07.28
#define SIGNATURE_HASH 1336697046
#define TS_SIGNATURE "rusEFI 2020.07.28.frankenso_na6.1336697046"

View File

@ -3,6 +3,6 @@
//
#define SIGNATURE_BOARD kin
#define SIGNATURE_DATE 2020.07.26
#define SIGNATURE_HASH 2735505253
#define TS_SIGNATURE "rusEFI 2020.07.26.kin.2735505253"
#define SIGNATURE_DATE 2020.07.28
#define SIGNATURE_HASH 1544933551
#define TS_SIGNATURE "rusEFI 2020.07.28.kin.1544933551"

View File

@ -3,6 +3,6 @@
//
#define SIGNATURE_BOARD mre_f4
#define SIGNATURE_DATE 2020.07.26
#define SIGNATURE_HASH 667710833
#define TS_SIGNATURE "rusEFI 2020.07.26.mre_f4.667710833"
#define SIGNATURE_DATE 2020.07.28
#define SIGNATURE_HASH 3637893819
#define TS_SIGNATURE "rusEFI 2020.07.28.mre_f4.3637893819"

View File

@ -3,6 +3,6 @@
//
#define SIGNATURE_BOARD mre_f7
#define SIGNATURE_DATE 2020.07.26
#define SIGNATURE_HASH 667710833
#define TS_SIGNATURE "rusEFI 2020.07.26.mre_f7.667710833"
#define SIGNATURE_DATE 2020.07.28
#define SIGNATURE_HASH 3637893819
#define TS_SIGNATURE "rusEFI 2020.07.28.mre_f7.3637893819"

View File

@ -3,6 +3,6 @@
//
#define SIGNATURE_BOARD prometheus_405
#define SIGNATURE_DATE 2020.07.26
#define SIGNATURE_HASH 2603514747
#define TS_SIGNATURE "rusEFI 2020.07.26.prometheus_405.2603514747"
#define SIGNATURE_DATE 2020.07.28
#define SIGNATURE_HASH 1681380529
#define TS_SIGNATURE "rusEFI 2020.07.28.prometheus_405.1681380529"

View File

@ -3,6 +3,6 @@
//
#define SIGNATURE_BOARD prometheus_469
#define SIGNATURE_DATE 2020.07.26
#define SIGNATURE_HASH 2603514747
#define TS_SIGNATURE "rusEFI 2020.07.26.prometheus_469.2603514747"
#define SIGNATURE_DATE 2020.07.28
#define SIGNATURE_HASH 1681380529
#define TS_SIGNATURE "rusEFI 2020.07.28.prometheus_469.1681380529"

View File

@ -3,6 +3,6 @@
//
#define SIGNATURE_BOARD proteus_f4
#define SIGNATURE_DATE 2020.07.26
#define SIGNATURE_HASH 3819164208
#define TS_SIGNATURE "rusEFI 2020.07.26.proteus_f4.3819164208"
#define SIGNATURE_DATE 2020.07.28
#define SIGNATURE_HASH 481983994
#define TS_SIGNATURE "rusEFI 2020.07.28.proteus_f4.481983994"

View File

@ -3,6 +3,6 @@
//
#define SIGNATURE_BOARD proteus_f7
#define SIGNATURE_DATE 2020.07.26
#define SIGNATURE_HASH 3819164208
#define TS_SIGNATURE "rusEFI 2020.07.26.proteus_f7.3819164208"
#define SIGNATURE_DATE 2020.07.28
#define SIGNATURE_HASH 481983994
#define TS_SIGNATURE "rusEFI 2020.07.28.proteus_f7.481983994"

View File

@ -18,6 +18,9 @@
! rename the bit or substitute unused integer with any new fields of the same size
! invoke gen_config.bat to apply the tools which would generate .h and .ini files
!
! Q: Which files to include into Pull Requests?
! A: Please only include source files (.txt and .input) into a PR, we have amazing GitHub Actions which would do the rest really
! really nicely!
!
! each field is declared as
! type name;comment

View File

@ -33,12 +33,12 @@ enable2ndByteCanID = false
[MegaTune]
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
signature = "rusEFI 2020.07.26.all.1848812543"
signature = "rusEFI 2020.07.28.all.2435517493"
[TunerStudio]
queryCommand = "S"
versionInfo = "V" ; firmwave version for title bar.
signature = "rusEFI 2020.07.26.all.1848812543" ; signature is expected to be 7 or more characters.
signature = "rusEFI 2020.07.28.all.2435517493" ; signature is expected to be 7 or more characters.
[Constants]
; new packet serial format with CRC
@ -76,7 +76,7 @@ enable2ndByteCanID = false
; see PAGE_0_SIZE in C source code
; CONFIG_DEFINITION_START
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Jul 26 19:08:53 UTC 2020
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Jul 28 02:58:17 UTC 2020
pageSize = 20000
page = 1
@ -1491,8 +1491,8 @@ page = 1
internalMcuTemperature = scalar,S08, 11, "deg C", 1, 0
coolant = scalar, S16, 12, "deg C",{1/100}, 0.0
intake = scalar, S16, 14, "deg C",{1/100}, 0.0
; todo: aux1
; todo: aux2
auxt1 = scalar, S16, 16, "deg C",{1/100}, 0.0
auxt2 = scalar, S16, 18, "deg C",{1/100}, 0.0
; throttle, pedal
@ -2227,6 +2227,8 @@ gaugeCategory = Sensors - Extra 1
internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0
OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0
idleAirValvePositionGauge = idleAirValvePosition, "Idle position", "%", 0, 100, 0, 0, 100, 100, 1, 1
AuxT1Gauge = auxt1, "Aux temp 1", "deg C", -40, 140, -15, 1, 95, 110, 1, 1
AuxT2Gauge = auxt2, "Aux temp 2", "deg C", -40, 140, -15, 1, 95, 110, 1, 1
gaugeCategory = Ignition
ignadvGauge = ignitionAdvance, "Ignition timing", "degrees", -100, 100, -999, -999, 999, 999, 1, 1

File diff suppressed because it is too large Load Diff

View File

@ -33,12 +33,12 @@ enable2ndByteCanID = false
[MegaTune]
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
signature = "rusEFI 2020.07.26.frankenso_na6.2964705052"
signature = "rusEFI 2020.07.28.frankenso_na6.1336697046"
[TunerStudio]
queryCommand = "S"
versionInfo = "V" ; firmwave version for title bar.
signature = "rusEFI 2020.07.26.frankenso_na6.2964705052" ; signature is expected to be 7 or more characters.
signature = "rusEFI 2020.07.28.frankenso_na6.1336697046" ; signature is expected to be 7 or more characters.
[Constants]
; new packet serial format with CRC
@ -76,7 +76,7 @@ enable2ndByteCanID = false
; see PAGE_0_SIZE in C source code
; CONFIG_DEFINITION_START
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Jul 26 19:08:57 UTC 2020
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Jul 28 02:58:22 UTC 2020
pageSize = 20000
page = 1
@ -1491,8 +1491,8 @@ page = 1
internalMcuTemperature = scalar,S08, 11, "deg C", 1, 0
coolant = scalar, S16, 12, "deg C",{1/100}, 0.0
intake = scalar, S16, 14, "deg C",{1/100}, 0.0
; todo: aux1
; todo: aux2
auxt1 = scalar, S16, 16, "deg C",{1/100}, 0.0
auxt2 = scalar, S16, 18, "deg C",{1/100}, 0.0
; throttle, pedal
@ -2227,6 +2227,8 @@ gaugeCategory = Sensors - Extra 1
internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0
OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0
idleAirValvePositionGauge = idleAirValvePosition, "Idle position", "%", 0, 100, 0, 0, 100, 100, 1, 1
AuxT1Gauge = auxt1, "Aux temp 1", "deg C", -40, 140, -15, 1, 95, 110, 1, 1
AuxT2Gauge = auxt2, "Aux temp 2", "deg C", -40, 140, -15, 1, 95, 110, 1, 1
gaugeCategory = Ignition
ignadvGauge = ignitionAdvance, "Ignition timing", "degrees", -100, 100, -999, -999, 999, 999, 1, 1

View File

@ -33,12 +33,12 @@ enable2ndByteCanID = false
[MegaTune]
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
signature = "rusEFI 2020.07.26.kin.2735505253"
signature = "rusEFI 2020.07.28.kin.1544933551"
[TunerStudio]
queryCommand = "S"
versionInfo = "V" ; firmwave version for title bar.
signature = "rusEFI 2020.07.26.kin.2735505253" ; signature is expected to be 7 or more characters.
signature = "rusEFI 2020.07.28.kin.1544933551" ; signature is expected to be 7 or more characters.
[Constants]
; new packet serial format with CRC
@ -76,7 +76,7 @@ enable2ndByteCanID = false
; see PAGE_0_SIZE in C source code
; CONFIG_DEFINITION_START
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Sun Jul 26 19:09:03 UTC 2020
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Tue Jul 28 02:58:34 UTC 2020
pageSize = 20000
page = 1
@ -1491,8 +1491,8 @@ page = 1
internalMcuTemperature = scalar,S08, 11, "deg C", 1, 0
coolant = scalar, S16, 12, "deg C",{1/100}, 0.0
intake = scalar, S16, 14, "deg C",{1/100}, 0.0
; todo: aux1
; todo: aux2
auxt1 = scalar, S16, 16, "deg C",{1/100}, 0.0
auxt2 = scalar, S16, 18, "deg C",{1/100}, 0.0
; throttle, pedal
@ -2227,6 +2227,8 @@ gaugeCategory = Sensors - Extra 1
internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0
OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0
idleAirValvePositionGauge = idleAirValvePosition, "Idle position", "%", 0, 100, 0, 0, 100, 100, 1, 1
AuxT1Gauge = auxt1, "Aux temp 1", "deg C", -40, 140, -15, 1, 95, 110, 1, 1
AuxT2Gauge = auxt2, "Aux temp 2", "deg C", -40, 140, -15, 1, 95, 110, 1, 1
gaugeCategory = Ignition
ignadvGauge = ignitionAdvance, "Ignition timing", "degrees", -100, 100, -999, -999, 999, 999, 1, 1

File diff suppressed because it is too large Load Diff

View File

@ -33,12 +33,12 @@ enable2ndByteCanID = false
[MegaTune]
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
signature = "rusEFI 2020.07.26.mre_f4.667710833"
signature = "rusEFI 2020.07.28.mre_f4.3637893819"
[TunerStudio]
queryCommand = "S"
versionInfo = "V" ; firmwave version for title bar.
signature = "rusEFI 2020.07.26.mre_f4.667710833" ; signature is expected to be 7 or more characters.
signature = "rusEFI 2020.07.28.mre_f4.3637893819" ; signature is expected to be 7 or more characters.
[Constants]
; new packet serial format with CRC
@ -76,7 +76,7 @@ enable2ndByteCanID = false
; see PAGE_0_SIZE in C source code
; CONFIG_DEFINITION_START
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Jul 26 19:08:56 UTC 2020
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Jul 28 02:58:20 UTC 2020
pageSize = 20000
page = 1
@ -1491,8 +1491,8 @@ page = 1
internalMcuTemperature = scalar,S08, 11, "deg C", 1, 0
coolant = scalar, S16, 12, "deg C",{1/100}, 0.0
intake = scalar, S16, 14, "deg C",{1/100}, 0.0
; todo: aux1
; todo: aux2
auxt1 = scalar, S16, 16, "deg C",{1/100}, 0.0
auxt2 = scalar, S16, 18, "deg C",{1/100}, 0.0
; throttle, pedal
@ -2227,6 +2227,8 @@ gaugeCategory = Sensors - Extra 1
internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0
OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0
idleAirValvePositionGauge = idleAirValvePosition, "Idle position", "%", 0, 100, 0, 0, 100, 100, 1, 1
AuxT1Gauge = auxt1, "Aux temp 1", "deg C", -40, 140, -15, 1, 95, 110, 1, 1
AuxT2Gauge = auxt2, "Aux temp 2", "deg C", -40, 140, -15, 1, 95, 110, 1, 1
gaugeCategory = Ignition
ignadvGauge = ignitionAdvance, "Ignition timing", "degrees", -100, 100, -999, -999, 999, 999, 1, 1

View File

@ -33,12 +33,12 @@ enable2ndByteCanID = false
[MegaTune]
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
signature = "rusEFI 2020.07.26.mre_f7.667710833"
signature = "rusEFI 2020.07.28.mre_f7.3637893819"
[TunerStudio]
queryCommand = "S"
versionInfo = "V" ; firmwave version for title bar.
signature = "rusEFI 2020.07.26.mre_f7.667710833" ; signature is expected to be 7 or more characters.
signature = "rusEFI 2020.07.28.mre_f7.3637893819" ; signature is expected to be 7 or more characters.
[Constants]
; new packet serial format with CRC
@ -76,7 +76,7 @@ enable2ndByteCanID = false
; see PAGE_0_SIZE in C source code
; CONFIG_DEFINITION_START
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Jul 26 19:08:55 UTC 2020
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Jul 28 02:58:19 UTC 2020
pageSize = 20000
page = 1
@ -1491,8 +1491,8 @@ page = 1
internalMcuTemperature = scalar,S08, 11, "deg C", 1, 0
coolant = scalar, S16, 12, "deg C",{1/100}, 0.0
intake = scalar, S16, 14, "deg C",{1/100}, 0.0
; todo: aux1
; todo: aux2
auxt1 = scalar, S16, 16, "deg C",{1/100}, 0.0
auxt2 = scalar, S16, 18, "deg C",{1/100}, 0.0
; throttle, pedal
@ -2227,6 +2227,8 @@ gaugeCategory = Sensors - Extra 1
internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0
OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0
idleAirValvePositionGauge = idleAirValvePosition, "Idle position", "%", 0, 100, 0, 0, 100, 100, 1, 1
AuxT1Gauge = auxt1, "Aux temp 1", "deg C", -40, 140, -15, 1, 95, 110, 1, 1
AuxT2Gauge = auxt2, "Aux temp 2", "deg C", -40, 140, -15, 1, 95, 110, 1, 1
gaugeCategory = Ignition
ignadvGauge = ignitionAdvance, "Ignition timing", "degrees", -100, 100, -999, -999, 999, 999, 1, 1

File diff suppressed because it is too large Load Diff

View File

@ -33,12 +33,12 @@ enable2ndByteCanID = false
[MegaTune]
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
signature = "rusEFI 2020.07.26.prometheus_405.2603514747"
signature = "rusEFI 2020.07.28.prometheus_405.1681380529"
[TunerStudio]
queryCommand = "S"
versionInfo = "V" ; firmwave version for title bar.
signature = "rusEFI 2020.07.26.prometheus_405.2603514747" ; signature is expected to be 7 or more characters.
signature = "rusEFI 2020.07.28.prometheus_405.1681380529" ; signature is expected to be 7 or more characters.
[Constants]
; new packet serial format with CRC
@ -76,7 +76,7 @@ enable2ndByteCanID = false
; see PAGE_0_SIZE in C source code
; CONFIG_DEFINITION_START
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Jul 26 19:08:59 UTC 2020
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Jul 28 02:58:27 UTC 2020
pageSize = 20000
page = 1
@ -1491,8 +1491,8 @@ page = 1
internalMcuTemperature = scalar,S08, 11, "deg C", 1, 0
coolant = scalar, S16, 12, "deg C",{1/100}, 0.0
intake = scalar, S16, 14, "deg C",{1/100}, 0.0
; todo: aux1
; todo: aux2
auxt1 = scalar, S16, 16, "deg C",{1/100}, 0.0
auxt2 = scalar, S16, 18, "deg C",{1/100}, 0.0
; throttle, pedal
@ -2227,6 +2227,8 @@ gaugeCategory = Sensors - Extra 1
internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0
OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0
idleAirValvePositionGauge = idleAirValvePosition, "Idle position", "%", 0, 100, 0, 0, 100, 100, 1, 1
AuxT1Gauge = auxt1, "Aux temp 1", "deg C", -40, 140, -15, 1, 95, 110, 1, 1
AuxT2Gauge = auxt2, "Aux temp 2", "deg C", -40, 140, -15, 1, 95, 110, 1, 1
gaugeCategory = Ignition
ignadvGauge = ignitionAdvance, "Ignition timing", "degrees", -100, 100, -999, -999, 999, 999, 1, 1

View File

@ -33,12 +33,12 @@ enable2ndByteCanID = false
[MegaTune]
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
signature = "rusEFI 2020.07.26.prometheus_469.2603514747"
signature = "rusEFI 2020.07.28.prometheus_469.1681380529"
[TunerStudio]
queryCommand = "S"
versionInfo = "V" ; firmwave version for title bar.
signature = "rusEFI 2020.07.26.prometheus_469.2603514747" ; signature is expected to be 7 or more characters.
signature = "rusEFI 2020.07.28.prometheus_469.1681380529" ; signature is expected to be 7 or more characters.
[Constants]
; new packet serial format with CRC
@ -76,7 +76,7 @@ enable2ndByteCanID = false
; see PAGE_0_SIZE in C source code
; CONFIG_DEFINITION_START
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Jul 26 19:08:58 UTC 2020
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Jul 28 02:58:23 UTC 2020
pageSize = 20000
page = 1
@ -1491,8 +1491,8 @@ page = 1
internalMcuTemperature = scalar,S08, 11, "deg C", 1, 0
coolant = scalar, S16, 12, "deg C",{1/100}, 0.0
intake = scalar, S16, 14, "deg C",{1/100}, 0.0
; todo: aux1
; todo: aux2
auxt1 = scalar, S16, 16, "deg C",{1/100}, 0.0
auxt2 = scalar, S16, 18, "deg C",{1/100}, 0.0
; throttle, pedal
@ -2227,6 +2227,8 @@ gaugeCategory = Sensors - Extra 1
internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0
OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0
idleAirValvePositionGauge = idleAirValvePosition, "Idle position", "%", 0, 100, 0, 0, 100, 100, 1, 1
AuxT1Gauge = auxt1, "Aux temp 1", "deg C", -40, 140, -15, 1, 95, 110, 1, 1
AuxT2Gauge = auxt2, "Aux temp 2", "deg C", -40, 140, -15, 1, 95, 110, 1, 1
gaugeCategory = Ignition
ignadvGauge = ignitionAdvance, "Ignition timing", "degrees", -100, 100, -999, -999, 999, 999, 1, 1

File diff suppressed because it is too large Load Diff

View File

@ -33,12 +33,12 @@ enable2ndByteCanID = false
[MegaTune]
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
signature = "rusEFI 2020.07.26.proteus_f4.3819164208"
signature = "rusEFI 2020.07.28.proteus_f4.481983994"
[TunerStudio]
queryCommand = "S"
versionInfo = "V" ; firmwave version for title bar.
signature = "rusEFI 2020.07.26.proteus_f4.3819164208" ; signature is expected to be 7 or more characters.
signature = "rusEFI 2020.07.28.proteus_f4.481983994" ; signature is expected to be 7 or more characters.
[Constants]
; new packet serial format with CRC
@ -76,7 +76,7 @@ enable2ndByteCanID = false
; see PAGE_0_SIZE in C source code
; CONFIG_DEFINITION_START
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Jul 26 19:09:02 UTC 2020
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Jul 28 02:58:32 UTC 2020
pageSize = 20000
page = 1
@ -1491,8 +1491,8 @@ page = 1
internalMcuTemperature = scalar,S08, 11, "deg C", 1, 0
coolant = scalar, S16, 12, "deg C",{1/100}, 0.0
intake = scalar, S16, 14, "deg C",{1/100}, 0.0
; todo: aux1
; todo: aux2
auxt1 = scalar, S16, 16, "deg C",{1/100}, 0.0
auxt2 = scalar, S16, 18, "deg C",{1/100}, 0.0
; throttle, pedal
@ -2227,6 +2227,8 @@ gaugeCategory = Sensors - Extra 1
internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0
OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0
idleAirValvePositionGauge = idleAirValvePosition, "Idle position", "%", 0, 100, 0, 0, 100, 100, 1, 1
AuxT1Gauge = auxt1, "Aux temp 1", "deg C", -40, 140, -15, 1, 95, 110, 1, 1
AuxT2Gauge = auxt2, "Aux temp 2", "deg C", -40, 140, -15, 1, 95, 110, 1, 1
gaugeCategory = Ignition
ignadvGauge = ignitionAdvance, "Ignition timing", "degrees", -100, 100, -999, -999, 999, 999, 1, 1

View File

@ -33,12 +33,12 @@ enable2ndByteCanID = false
[MegaTune]
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
signature = "rusEFI 2020.07.26.proteus_f7.3819164208"
signature = "rusEFI 2020.07.28.proteus_f7.481983994"
[TunerStudio]
queryCommand = "S"
versionInfo = "V" ; firmwave version for title bar.
signature = "rusEFI 2020.07.26.proteus_f7.3819164208" ; signature is expected to be 7 or more characters.
signature = "rusEFI 2020.07.28.proteus_f7.481983994" ; signature is expected to be 7 or more characters.
[Constants]
; new packet serial format with CRC
@ -76,7 +76,7 @@ enable2ndByteCanID = false
; see PAGE_0_SIZE in C source code
; CONFIG_DEFINITION_START
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Jul 26 19:09:00 UTC 2020
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Jul 28 02:58:31 UTC 2020
pageSize = 20000
page = 1
@ -1491,8 +1491,8 @@ page = 1
internalMcuTemperature = scalar,S08, 11, "deg C", 1, 0
coolant = scalar, S16, 12, "deg C",{1/100}, 0.0
intake = scalar, S16, 14, "deg C",{1/100}, 0.0
; todo: aux1
; todo: aux2
auxt1 = scalar, S16, 16, "deg C",{1/100}, 0.0
auxt2 = scalar, S16, 18, "deg C",{1/100}, 0.0
; throttle, pedal
@ -2227,6 +2227,8 @@ gaugeCategory = Sensors - Extra 1
internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0
OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0
idleAirValvePositionGauge = idleAirValvePosition, "Idle position", "%", 0, 100, 0, 0, 100, 100, 1, 1
AuxT1Gauge = auxt1, "Aux temp 1", "deg C", -40, 140, -15, 1, 95, 110, 1, 1
AuxT2Gauge = auxt2, "Aux temp 2", "deg C", -40, 140, -15, 1, 95, 110, 1, 1
gaugeCategory = Ignition
ignadvGauge = ignitionAdvance, "Ignition timing", "degrees", -100, 100, -999, -999, 999, 999, 1, 1

View File

@ -206,8 +206,8 @@ enable2ndByteCanID = false
internalMcuTemperature = scalar,S08, 11, "deg C", 1, 0
coolant = scalar, S16, 12, "deg C",{1/@@PACK_MULT_TEMPERATURE@@}, 0.0
intake = scalar, S16, 14, "deg C",{1/@@PACK_MULT_TEMPERATURE@@}, 0.0
; todo: aux1
; todo: aux2
auxt1 = scalar, S16, 16, "deg C",{1/@@PACK_MULT_TEMPERATURE@@}, 0.0
auxt2 = scalar, S16, 18, "deg C",{1/@@PACK_MULT_TEMPERATURE@@}, 0.0
; throttle, pedal
@ -942,6 +942,8 @@ gaugeCategory = Sensors - Extra 1
internalMcuTemperatureGauge = internalMcuTemperature, @@GAUGE_NAME_ECU_TEMPERATURE@@, "C", 0, 100, 0, 0, 75, 100, 0, 0
OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0
idleAirValvePositionGauge = idleAirValvePosition, "Idle position", "%", 0, 100, 0, 0, 100, 100, 1, 1
AuxT1Gauge = auxt1, "Aux temp 1", "deg C", -40, 140, -15, 1, 95, 110, 1, 1
AuxT2Gauge = auxt2, "Aux temp 2", "deg C", -40, 140, -15, 1, 95, 110, 1, 1
gaugeCategory = Ignition
ignadvGauge = ignitionAdvance, "Ignition timing", "degrees", -100, 100, -999, -999, 999, 999, 1, 1

View File

@ -1,6 +1,6 @@
package com.rusefi.autodetect;
import com.rusefi.FileLog;
import com.devexperts.logging.Logging;
import com.rusefi.NamedThreadFactory;
import com.rusefi.io.IoStream;
import com.rusefi.io.LinkManager;
@ -19,19 +19,23 @@ import java.util.function.Function;
* Andrey Belomutskiy, (c) 2013-2020
*/
public class PortDetector {
private final static Logging log = Logging.getLogging(PortDetector.class);
private static final NamedThreadFactory AUTO_DETECT_PORT = new NamedThreadFactory("AutoDetectPort");
/**
* Connect to all serial ports and find out which one respond first
* @param callback
* @return port name on which rusEFI was detected or null if none
*/
@Nullable
public static String autoDetectSerial(Function<IoStream, Void> callback) {
String[] serialPorts = getPortNames();
if (serialPorts.length == 0) {
System.err.println("No serial ports detected");
log.error("No serial ports detected");
return null;
}
FileLog.MAIN.logLine("Trying " + Arrays.toString(serialPorts));
log.info("Trying " + Arrays.toString(serialPorts));
List<Thread> serialFinder = new ArrayList<>();
CountDownLatch portFound = new CountDownLatch(1);
AtomicReference<String> result = new AtomicReference<>();

View File

@ -0,0 +1,5 @@
package com.rusefi.io;
public interface ConnectionFailedListener {
void onConnectionFailed();
}

View File

@ -4,13 +4,11 @@ package com.rusefi.io;
* @author Andrey Belomutskiy
* 3/1/2017
*/
public interface ConnectionStateListener {
public interface ConnectionStateListener extends ConnectionFailedListener {
ConnectionStateListener VOID = new AbstractConnectionStateListener();
/**
* This method is invoked once we have connection & configuration from controller
*/
void onConnectionEstablished();
void onConnectionFailed();
}

View File

@ -196,7 +196,7 @@ public class LinkManager implements Closeable {
return connector;
}
public void start(String port, ConnectionStateListener stateListener) {
public void start(String port, ConnectionFailedListener stateListener) {
Objects.requireNonNull(port, "port");
log.info("LinkManager: Starting " + port);
if (isLogViewerMode(port)) {

View File

@ -29,7 +29,7 @@ public class BinaryProtocolProxy {
*/
public static final int USER_IO_TIMEOUT = 10 * Timeouts.MINUTE;
public static ServerSocketReference createProxy(IoStream targetEcuSocket, int serverProxyPort, AtomicInteger relayCommandCounter) {
public static ServerSocketReference createProxy(IoStream targetEcuSocket, int serverProxyPort, AtomicInteger relayCommandCounter) throws IOException {
Function<Socket, Runnable> clientSocketRunnableFactory = clientSocket -> () -> {
TcpIoStream clientStream = null;
try {

View File

@ -43,25 +43,25 @@ public class BinaryProtocolServer implements BinaryProtocolCommands {
public AtomicInteger unknownCommands = new AtomicInteger();
public static final Function<Integer, ServerSocket> SECURE_SOCKET_FACTORY = rusEFISSLContext::getSSLServerSocket;
public static final ServerSocketFunction SECURE_SOCKET_FACTORY = rusEFISSLContext::getSSLServerSocket;
public static final Function<Integer, ServerSocket> PLAIN_SOCKET_FACTORY = port -> {
try {
ServerSocket serverSocket = new ServerSocket(port);
log.info("ServerSocket " + port + " created");
return serverSocket;
} catch (IOException e) {
throw new IllegalStateException("Error binding server socket " + port, e);
}
public static final ServerSocketFunction PLAIN_SOCKET_FACTORY = port -> {
ServerSocket serverSocket = new ServerSocket(port);
log.info("ServerSocket " + port + " created");
return serverSocket;
};
private static ConcurrentHashMap<String, ThreadFactory> THREAD_FACTORIES_BY_NAME = new ConcurrentHashMap<>();
public void start(LinkManager linkManager) {
try {
start(linkManager, DEFAULT_PROXY_PORT, Listener.empty(), new Context());
} catch (IOException e) {
log.error("Error starting local proxy", e);
}
}
public void start(LinkManager linkManager, int port, Listener serverSocketCreationCallback, Context context) {
public void start(LinkManager linkManager, int port, Listener serverSocketCreationCallback, Context context) throws IOException {
log.info("BinaryProtocolServer on " + port);
Function<Socket, Runnable> clientSocketRunnableFactory = clientSocket -> () -> {
@ -84,11 +84,11 @@ public class BinaryProtocolServer implements BinaryProtocolCommands {
* @param serverSocketCreationCallback this callback is invoked once we open the server socket
* @return
*/
public static ServerSocketReference tcpServerSocket(int port, String threadName, Function<Socket, Runnable> socketRunnableFactory, Listener serverSocketCreationCallback) {
public static ServerSocketReference tcpServerSocket(int port, String threadName, Function<Socket, Runnable> socketRunnableFactory, Listener serverSocketCreationCallback) throws IOException {
return tcpServerSocket(socketRunnableFactory, port, threadName, serverSocketCreationCallback, PLAIN_SOCKET_FACTORY);
}
public static ServerSocketReference tcpServerSocket(Function<Socket, Runnable> clientSocketRunnableFactory, int port, String threadName, Listener serverSocketCreationCallback, Function<Integer, ServerSocket> nonSecureSocketFunction) {
public static ServerSocketReference tcpServerSocket(Function<Socket, Runnable> clientSocketRunnableFactory, int port, String threadName, Listener serverSocketCreationCallback, ServerSocketFunction nonSecureSocketFunction) throws IOException {
ThreadFactory threadFactory = getThreadFactory(threadName);
Objects.requireNonNull(serverSocketCreationCallback, "serverSocketCreationCallback");

View File

@ -0,0 +1,8 @@
package com.rusefi.io.tcp;
import java.io.IOException;
import java.net.ServerSocket;
public interface ServerSocketFunction {
ServerSocket apply(int port) throws IOException;
}

View File

@ -34,7 +34,11 @@ public class NetworkConnector implements Closeable {
private final static Logging log = Logging.getLogging(NetworkConnector.class);
private boolean isClosed;
public NetworkConnectorResult runNetworkConnector(String authToken, String controllerPort, NetworkConnectorContext context, ReconnectListener reconnectListener) {
public NetworkConnectorResult start(String authToken, String controllerPort, NetworkConnectorContext context) {
return start(authToken, controllerPort, context, ReconnectListener.VOID);
}
public NetworkConnectorResult start(String authToken, String controllerPort, NetworkConnectorContext context, ReconnectListener reconnectListener) {
LinkManager controllerConnector = new LinkManager()
.setCompositeLogicEnabled(false)
.setNeedPullData(false);
@ -74,7 +78,7 @@ public class NetworkConnector implements Closeable {
proxyReconnectSemaphore.acquire();
try {
runNetworkConnector(context.serverPortForControllers(), controllerConnector, authToken, (String message) -> {
start(context.serverPortForControllers(), controllerConnector, authToken, (String message) -> {
log.error(message + " Disconnect from proxy server detected, now sleeping " + context.reconnectDelay() + " seconds");
sleep(context.reconnectDelay() * Timeouts.SECOND);
log.debug("Releasing semaphore");
@ -94,7 +98,7 @@ public class NetworkConnector implements Closeable {
}
@NotNull
private static SessionDetails runNetworkConnector(int serverPortForControllers, LinkManager linkManager, String authToken, final TcpIoStream.DisconnectListener disconnectListener, int oneTimeToken, ControllerInfo controllerInfo, final NetworkConnectorContext context) throws IOException {
private static SessionDetails start(int serverPortForControllers, LinkManager linkManager, String authToken, final TcpIoStream.DisconnectListener disconnectListener, int oneTimeToken, ControllerInfo controllerInfo, final NetworkConnectorContext context) throws IOException {
IoStream targetEcuSocket = linkManager.getConnector().getBinaryProtocol().getStream();
SessionDetails deviceSessionDetails = new SessionDetails(controllerInfo, authToken, oneTimeToken);

View File

@ -47,7 +47,7 @@ public class TestHelper {
}
@NotNull
public static BinaryProtocolServer createVirtualController(ConfigurationImage ci, int port, Listener serverSocketCreationCallback, BinaryProtocolServer.Context context) {
public static BinaryProtocolServer createVirtualController(ConfigurationImage ci, int port, Listener serverSocketCreationCallback, BinaryProtocolServer.Context context) throws IOException {
BinaryProtocolState state = new BinaryProtocolState();
state.setController(ci);
state.setCurrentOutputs(new byte[1 + Fields.TS_OUTPUT_SIZE]);
@ -83,9 +83,13 @@ public class TestHelper {
public static BinaryProtocolServer createVirtualController(int controllerPort, ConfigurationImage controllerImage, BinaryProtocolServer.Context context) throws InterruptedException {
CountDownLatch controllerCreated = new CountDownLatch(1);
BinaryProtocolServer server = createVirtualController(controllerImage, controllerPort, parameter -> controllerCreated.countDown(), context);
assertLatch(controllerCreated);
return server;
try {
BinaryProtocolServer server = createVirtualController(controllerImage, controllerPort, parameter -> controllerCreated.countDown(), context);
assertLatch(controllerCreated);
return server;
} catch (IOException e) {
throw new IllegalStateException(e);
}
}
public static SessionDetails createTestSession(String authToken, String signature) {

View File

@ -1,6 +1,6 @@
package com.rusefi.config.generated;
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Jul 26 19:08:53 UTC 2020
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Mon Jul 27 13:47:09 UTC 2020
// by class com.rusefi.output.FileJavaFieldsConsumer
import com.rusefi.config.*;
@ -1057,7 +1057,7 @@ public class Fields {
public static final int servoOutputPins8_offset = 3147;
public static final int showHumanReadableWarning_offset = 976;
public static final int showSdCardWarning_offset = 76;
public static final int SIGNATURE_HASH = 1848812543;
public static final int SIGNATURE_HASH = 173557045;
public static final int silentTriggerError_offset = 1464;
public static final int slowAdcAlpha_offset = 2088;
public static final int sparkDwellRpmBins_offset = 332;
@ -1304,7 +1304,7 @@ public class Fields {
public static final int TS_RESPONSE_COMMAND_OK = 7;
public static final int TS_RESPONSE_OK = 0;
public static final char TS_SET_LOGGER_SWITCH = 'l';
public static final String TS_SIGNATURE = "rusEFI 2020.07.26.all.1848812543";
public static final String TS_SIGNATURE = "rusEFI 2020.07.27.all.173557045";
public static final char TS_SINGLE_WRITE_COMMAND = 'W';
public static final int tunerStudioSerialSpeed_offset = 728;
public static final int twoWireBatchIgnition_offset = 1476;

View File

@ -32,6 +32,8 @@ public enum Sensor {
INT_TEMP(GAUGE_NAME_CPU_TEMP, SensorCategory.OPERATIONS, FieldType.INT8, 10, 1, 0, 5, "C"),
CLT(GAUGE_NAME_CLT, SensorCategory.SENSOR_INPUTS, FieldType.INT16, 12, 1.0 / PACK_MULT_TEMPERATURE, -40, 150, "deg C"),
IAT(GAUGE_NAME_IAT, SensorCategory.SENSOR_INPUTS, FieldType.INT16, 14, 1.0 / PACK_MULT_TEMPERATURE, -40, 150, "deg C"),
AuxT1("AuxT1", SensorCategory.SENSOR_INPUTS, FieldType.INT16, 16, 1.0 / PACK_MULT_TEMPERATURE, -40, 150, "deg C"),
AuxT2("AuxT2", SensorCategory.SENSOR_INPUTS, FieldType.INT16, 18, 1.0 / PACK_MULT_TEMPERATURE, -40, 150, "deg C"),
// throttle, pedal
TPS(GAUGE_NAME_TPS, SensorCategory.SENSOR_INPUTS, FieldType.INT16, 20, 1.0 / PACK_MULT_PERCENT, 0, 100, "%"), // throttle position sensor

View File

@ -1,6 +1,6 @@
<roms>
<!-- was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh Sun Jul 26 19:08:54 UTC 2020 -->
<!-- was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh Mon Jul 27 13:47:10 UTC 2020 -->
<rom>
<romid>

View File

@ -5,7 +5,6 @@ import com.rusefi.auth.AutoTokenUtil;
import com.rusefi.autodetect.PortDetector;
import com.rusefi.proxy.NetworkConnector;
import com.rusefi.proxy.NetworkConnectorContext;
import com.rusefi.tools.online.ProxyClient;
import com.rusefi.ui.AuthTokenPanel;
public class NetworkConnectorStartup {
@ -25,7 +24,7 @@ public class NetworkConnectorStartup {
NetworkConnectorContext connectorContext = new NetworkConnectorContext();
NetworkConnector.NetworkConnectorResult networkConnectorResult = new NetworkConnector().runNetworkConnector(authToken, autoDetectedPort, connectorContext, NetworkConnector.ReconnectListener.VOID);
NetworkConnector.NetworkConnectorResult networkConnectorResult = new NetworkConnector().start(authToken, autoDetectedPort, connectorContext);
log.info("Running with oneTimeToken=" + networkConnectorResult.getOneTimeToken());
}
}

View File

@ -13,6 +13,7 @@ import com.rusefi.ui.util.UiUtils;
import java.util.TimeZone;
import static com.devexperts.logging.Logging.getLogging;
import static com.rusefi.ui.storage.PersistentConfiguration.getConfig;
public class MainFrame {
@ -21,7 +22,7 @@ public class MainFrame {
/**
* @see StartupFrame
*/
private FrameHelper frame = new FrameHelper() {
private final FrameHelper frame = new FrameHelper() {
@Override
protected void onWindowOpened() {
FileLog.MAIN.logLine("onWindowOpened");
@ -42,22 +43,13 @@ public class MainFrame {
}
};
public ConnectionStateListener listener;
public ConnectionFailedListener listener;
public MainFrame(ConsoleUI consoleUI, TabbedPanel tabbedPane) {
this.consoleUI = consoleUI;
this.tabbedPane = tabbedPane;
listener = new AbstractConnectionStateListener() {
@Override
public void onConnectionEstablished() {
FileLog.MAIN.logLine("onConnectionEstablished");
// tabbedPane.romEditorPane.showContent();
tabbedPane.settingsTab.showContent();
tabbedPane.logsManager.showContent();
tabbedPane.fuelTunePane.showContent();
new BinaryProtocolServer().start(consoleUI.uiContext.getLinkManager());
}
listener = () -> {
};
}
@ -87,8 +79,6 @@ public class MainFrame {
@Override
public void onConnectionEstablished() {
FileLog.MAIN.logLine("onConnectionEstablished");
// tabbedPane.romEditorPane.showContent();
tabbedPane.settingsTab.showContent();
tabbedPane.logsManager.showContent();
tabbedPane.fuelTunePane.showContent();

View File

@ -8,6 +8,7 @@ import com.rusefi.server.rusEFISSLContext;
import com.rusefi.tools.online.HttpUtil;
import org.jetbrains.annotations.NotNull;
import java.io.IOException;
import java.net.MalformedURLException;
import java.util.concurrent.CountDownLatch;
@ -16,13 +17,21 @@ import static com.rusefi.TestHelper.assertLatch;
public class BackendTestHelper {
public static void runApplicationConnectorBlocking(Backend backend, int serverPortForRemoteUsers) throws InterruptedException {
CountDownLatch applicationServerCreated = new CountDownLatch(1);
backend.runApplicationConnector(serverPortForRemoteUsers, parameter -> applicationServerCreated.countDown());
try {
backend.runApplicationConnector(serverPortForRemoteUsers, parameter -> applicationServerCreated.countDown());
} catch (IOException e) {
throw new IllegalStateException(e);
}
assertLatch(applicationServerCreated);
}
public static void runControllerConnectorBlocking(Backend backend, int serverPortForControllers) throws InterruptedException {
CountDownLatch controllerServerCreated = new CountDownLatch(1);
backend.runControllerConnector(serverPortForControllers, parameter -> controllerServerCreated.countDown());
try {
backend.runControllerConnector(serverPortForControllers, parameter -> controllerServerCreated.countDown());
} catch (IOException e) {
throw new IllegalStateException(e);
}
assertLatch(controllerServerCreated);
}

View File

@ -101,7 +101,7 @@ public class FullServerTest {
};
// start "rusEFI network connector" to connect controller with backend since in real life controller has only local serial port it does not have network
NetworkConnector.NetworkConnectorResult networkConnectorResult = new NetworkConnector().runNetworkConnector(TestHelper.TEST_TOKEN_1, TestHelper.LOCALHOST + ":" + controllerPort, networkConnectorContext, NetworkConnector.ReconnectListener.VOID);
NetworkConnector.NetworkConnectorResult networkConnectorResult = new NetworkConnector().start(TestHelper.TEST_TOKEN_1, TestHelper.LOCALHOST + ":" + controllerPort, networkConnectorContext, NetworkConnector.ReconnectListener.VOID);
ControllerInfo controllerInfo = networkConnectorResult.getControllerInfo();
TestHelper.assertLatch("controllerRegistered", controllerRegistered);

View File

@ -1,6 +1,5 @@
package com.rusefi;
import com.opensr5.Logger;
import com.rusefi.config.generated.Fields;
import com.rusefi.io.IoStream;
import com.rusefi.io.commands.GetOutputsCommand;
@ -34,8 +33,6 @@ import static org.junit.Assert.assertEquals;
* https://github.com/rusefi/web_backend/blob/master/documentation/rusEFI%20remote.png
*/
public class ServerTest {
private final static Logger logger = Logger.CONSOLE;
@Before
public void setup() throws MalformedURLException {
BackendTestHelper.commonServerTest();
@ -126,7 +123,7 @@ covered by FullServerTest
TestHelper.createVirtualController(controllerPort, new ConfigurationImage(Fields.TOTAL_CONFIG_SIZE), logger);
// start "rusEFI network connector" to connect controller with backend since in real life controller has only local serial port it does not have network
SessionDetails deviceSessionDetails = NetworkConnector.runNetworkConnector(MockRusEfiDevice.TEST_TOKEN_1, TestHelper.LOCALHOST + ":" + controllerPort, serverPortForControllers);
SessionDetails deviceSessionDetails = NetworkConnector.start(MockRusEfiDevice.TEST_TOKEN_1, TestHelper.LOCALHOST + ":" + controllerPort, serverPortForControllers);
assertTrue(controllerRegistered.await(READ_IMAGE_TIMEOUT, TimeUnit.MILLISECONDS));

View File

@ -10,6 +10,7 @@ import com.rusefi.io.tcp.BinaryProtocolProxy;
import com.rusefi.io.tcp.BinaryProtocolServer;
import org.junit.Test;
import java.io.IOException;
import java.util.Objects;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.atomic.AtomicInteger;
@ -83,7 +84,7 @@ public class TcpCommunicationIntegrationTest {
}
@Test
public void testProxy() throws InterruptedException {
public void testProxy() throws InterruptedException, IOException {
ConfigurationImage serverImage = TestHelper.prepareImage(239, TestHelper.createIniField(Fields.CYLINDERSCOUNT));
int controllerPort = 6102;

View File

@ -75,7 +75,7 @@ public class NetworkConnectorTest {
reconnectCounter.countDown();
}
};
new NetworkConnector().runNetworkConnector(TestHelper.TEST_TOKEN_1, TestHelper.LOCALHOST + ":" + controllerPort, connectorContext, reconnectListener);
new NetworkConnector().start(TestHelper.TEST_TOKEN_1, TestHelper.LOCALHOST + ":" + controllerPort, connectorContext, reconnectListener);
assertLatch(reconnectCounter);

View File

@ -161,7 +161,7 @@ public class Backend implements Closeable {
}
}
public void runApplicationConnector(int serverPortForApplications, Listener<?> serverSocketCreationCallback) {
public void runApplicationConnector(int serverPortForApplications, Listener<?> serverSocketCreationCallback) throws IOException {
this.serverPortForApplications = serverPortForApplications;
// connection from authenticator app which proxies for Tuner Studio
// authenticator pushed hello packet on connect
@ -246,7 +246,7 @@ public class Backend implements Closeable {
log.info("Disconnecting application " + applicationConnectionState);
}
public void runControllerConnector(int serverPortForControllers, Listener<?> serverSocketCreationCallback) {
public void runControllerConnector(int serverPortForControllers, Listener<?> serverSocketCreationCallback) throws IOException {
this.serverPortForControllers = serverPortForControllers;
log.info("Starting controller connector at " + serverPortForControllers);
controllerConnector = BinaryProtocolServer.tcpServerSocket(controllerSocket -> () -> {

View File

@ -4,8 +4,10 @@ import com.rusefi.proxy.client.LocalApplicationProxy;
import com.rusefi.tools.online.HttpUtil;
import com.rusefi.tools.online.ProxyClient;
import java.io.IOException;
public class BackendLauncher {
public static void main(String[] args) {
public static void main(String[] args) throws IOException {
/* todo
rusEFISSLContext.setupCertificates(new File("keystore.jks"), System.getProperty("RUSEFI_KEYSTORE_PASSWORD"));
*/

View File

@ -1,15 +1,84 @@
package com.rusefi.ts_plugin;
import com.rusefi.auth.AutoTokenUtil;
import com.rusefi.autodetect.PortDetector;
import com.rusefi.autoupdate.AutoupdateUtil;
import com.rusefi.proxy.NetworkConnector;
import com.rusefi.proxy.NetworkConnectorContext;
import com.rusefi.ui.AuthTokenPanel;
import com.rusefi.ui.util.URLLabel;
import org.putgemin.VerticalFlowLayout;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
* @see PluginEntry
*/
public class BroadcastTab {
private final JComponent content = new JPanel();
private final JComponent content = new JPanel(new VerticalFlowLayout());
private final JLabel status = new JLabel();
private final JButton disconnect = new JButton("Disconnect");
private NetworkConnector networkConnector;
public BroadcastTab() {
// NetworkConnector
JButton broadcast = new JButton("Broadcast");
disconnect.setEnabled(false);
broadcast.addActionListener(e -> {
String authToken = AuthTokenPanel.getAuthToken();
if (!AutoTokenUtil.isToken(authToken)) {
status.setText("Auth token is required to broadcast ECU");
return;
}
new Thread(() -> {
String autoDetectedPort = PortDetector.autoDetectSerial(null);
SwingUtilities.invokeLater(() -> {
startBroadcasting(authToken, autoDetectedPort);
});
}).start();
});
disconnect.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
networkConnector.close();
disconnect.setEnabled(false);
}
});
content.add(broadcast);
content.add(status);
content.add(disconnect);
content.add(new URLLabel(RemoteTab.HOWTO_REMOTE_TUNING));
content.add(new JLabel(PluginEntry.LOGO));
AutoupdateUtil.trueLayout(content);
}
private void startBroadcasting(String authToken, String autoDetectedPort) {
if (autoDetectedPort == null) {
status.setText("<html>rusEFI ECU not detected.<br/>Please make sure that TunerStudio is currently not connected to ECU.</html>");
} else {
status.setText("rusEFI detected at " + autoDetectedPort);
disconnect.setEnabled(true);
NetworkConnectorContext connectorContext = new NetworkConnectorContext();
new Thread(() -> {
networkConnector = new NetworkConnector();
NetworkConnector.NetworkConnectorResult networkConnectorResult = networkConnector.start(authToken, autoDetectedPort, connectorContext);
SwingUtilities.invokeLater(() -> status.setText("One time password to connect to this ECU: " + networkConnectorResult.getOneTimeToken()));
}).start();
}
AutoupdateUtil.trueLayout(content);
}
public JComponent getContent() {

View File

@ -1,6 +1,7 @@
package com.rusefi.ts_plugin;
import com.efiAnalytics.plugin.ecu.ControllerAccess;
import com.rusefi.autoupdate.AutoupdateUtil;
import com.rusefi.ts_plugin.util.ManifestHelper;
import com.rusefi.tune.xml.Constant;
@ -11,10 +12,17 @@ import java.util.function.Supplier;
/**
* {@link TsPluginLauncher} creates an instance of this class via reflection.
* @see UploadTab upload tune & TODO upload logs
* @see RemoteTab remote ECU access & control
* @see BroadcastTab offer your ECU for remove access & control
* @see PluginBodySandbox
*/
public class PluginEntry implements TsPluginBody {
private final JPanel content = new JPanel(new BorderLayout());
static final ImageIcon LOGO = AutoupdateUtil.loadIcon("/rusefi_online_color_300.png");
/**
* the real constructor - this one is invoked via reflection
*/

View File

@ -29,10 +29,14 @@ import java.util.concurrent.atomic.AtomicReference;
import static com.rusefi.ui.storage.PersistentConfiguration.getConfig;
/**
* remote ECU access & control
*
* @see RemoteTabSandbox
* @see PluginEntry
*/
public class RemoteTab {
private static final String APPLICATION_PORT = "application_port";
public static final String HOWTO_REMOTE_TUNING = "https://github.com/rusefi/rusefi/wiki/HOWTO-Remote-Tuning";
private final JComponent content = new JPanel(new BorderLayout());
private final JPanel list = new JPanel(new VerticalFlowLayout());
@ -87,7 +91,7 @@ public class RemoteTab {
topPanel.add(oneTimePasswordControl);
topLines.add(topPanel);
topLines.add(new URLLabel("https://github.com/rusefi/rusefi/wiki/HOWTO-Remote-Tuning"));
topLines.add(new URLLabel(HOWTO_REMOTE_TUNING));
content.add(topLines, BorderLayout.NORTH);
content.add(list, BorderLayout.CENTER);

View File

@ -142,8 +142,7 @@ public class UploadTab {
content.add(uploadView.getContent());
content.add(upload);
ImageIcon LOGO = AutoupdateUtil.loadIcon("/rusefi_online_color_300.png");
content.add(new JLabel(LOGO));
content.add(new JLabel(PluginEntry.LOGO));
content.add(tokenPanel.getContent());
content.add(new URLLabel(REO_URL));