Merge branch 'master' of https://github.com/rusefi/rusefi
This commit is contained in:
commit
2a1d8c69d6
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
#pragma once
|
||||
#define VCS_DATE 20200727
|
||||
#define VCS_DATE 20200728
|
||||
|
|
|
@ -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];
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
Binary file not shown.
|
@ -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
|
@ -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
|
||||
|
|
|
@ -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
|
@ -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
|
||||
|
|
|
@ -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
|
@ -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
|
||||
|
|
|
@ -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
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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<>();
|
|
@ -0,0 +1,5 @@
|
|||
package com.rusefi.io;
|
||||
|
||||
public interface ConnectionFailedListener {
|
||||
void onConnectionFailed();
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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)) {
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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;
|
||||
}
|
|
@ -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);
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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));
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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 -> () -> {
|
||||
|
|
|
@ -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"));
|
||||
*/
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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
|
||||
*/
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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));
|
||||
|
||||
|
|
Loading…
Reference in New Issue