Merge remote-tracking branch 'upstream/master' into mock-airmass
This commit is contained in:
commit
281c636bef
|
@ -18,6 +18,7 @@ jobs:
|
||||||
# Board configurations
|
# Board configurations
|
||||||
- build-target: frankenso_na6
|
- build-target: frankenso_na6
|
||||||
folder: frankenso
|
folder: frankenso
|
||||||
|
ini-file: rusefi_frankenso_na6.ini
|
||||||
|
|
||||||
- build-target: kinetis
|
- build-target: kinetis
|
||||||
folder: kinetis
|
folder: kinetis
|
||||||
|
@ -28,7 +29,7 @@ jobs:
|
||||||
|
|
||||||
- build-target: mre_f4_hardware_QC_special_build
|
- build-target: mre_f4_hardware_QC_special_build
|
||||||
folder: microrusefi
|
folder: microrusefi
|
||||||
ini-file: rusefi_microrusefi.ini
|
ini-file: rusefi_mre_f4.ini
|
||||||
|
|
||||||
- build-target: mre_f7
|
- build-target: mre_f7
|
||||||
folder: microrusefi
|
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 Tue Jul 28 13:12:25 UTC 2020
|
||||||
// by class com.rusefi.output.CHeaderConsumer
|
// by class com.rusefi.output.CHeaderConsumer
|
||||||
// begin
|
// begin
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -832,7 +832,7 @@ struct engine_configuration_s {
|
||||||
*/
|
*/
|
||||||
float knockBandCustom;
|
float knockBandCustom;
|
||||||
/**
|
/**
|
||||||
* On single-coil or wasted spark setups you have to lower dwell at high RPM
|
* On Single Coil or Wasted Spark setups you have to lower dwell at high RPM
|
||||||
* offset 332
|
* offset 332
|
||||||
*/
|
*/
|
||||||
float sparkDwellRpmBins[DWELL_CURVE_SIZE];
|
float sparkDwellRpmBins[DWELL_CURVE_SIZE];
|
||||||
|
@ -892,7 +892,7 @@ struct engine_configuration_s {
|
||||||
*/
|
*/
|
||||||
angle_t crankingTimingAngle;
|
angle_t crankingTimingAngle;
|
||||||
/**
|
/**
|
||||||
* "One Coil" is for use on distributed ignition system. "Individual Coils" is to be used when you have one coil per cylinder (COP or similar). "Wasted" means one coil is driving two spark plugs in two cylinders, with one of the sparks not doing anything since it's happening on the exhaust cycle
|
* "Single Coil" is for use on distributed ignition system. "Individual Coils" is to be used when you have one coil per cylinder (COP or similar). "Wasted Spark" means one coil is driving two spark plugs in two cylinders, with one of the sparks not doing anything since it's happening on the exhaust cycle
|
||||||
* set ignition_mode X
|
* set ignition_mode X
|
||||||
* offset 440
|
* offset 440
|
||||||
*/
|
*/
|
||||||
|
@ -2143,7 +2143,7 @@ struct engine_configuration_s {
|
||||||
offset 1476 bit 14 */
|
offset 1476 bit 14 */
|
||||||
bool useOnlyRisingEdgeForTrigger : 1;
|
bool useOnlyRisingEdgeForTrigger : 1;
|
||||||
/**
|
/**
|
||||||
* This is needed if your coils are individually wired (COP) and you wish to use batch ignition (wasted spark).
|
* This is needed if your coils are individually wired (COP) and you wish to use batch ignition (Wasted Spark).
|
||||||
offset 1476 bit 15 */
|
offset 1476 bit 15 */
|
||||||
bool twoWireBatchIgnition : 1;
|
bool twoWireBatchIgnition : 1;
|
||||||
/**
|
/**
|
||||||
|
@ -3533,4 +3533,4 @@ struct persistent_config_s {
|
||||||
typedef struct persistent_config_s persistent_config_s;
|
typedef struct persistent_config_s persistent_config_s;
|
||||||
|
|
||||||
// end
|
// 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 Tue Jul 28 13:12:25 UTC 2020
|
||||||
|
|
|
@ -305,7 +305,7 @@
|
||||||
#define enableLaunchRetard_offset 976
|
#define enableLaunchRetard_offset 976
|
||||||
#define enableVerboseCanTx_offset 744
|
#define enableVerboseCanTx_offset 744
|
||||||
#define engine_configuration_s_size 6000
|
#define engine_configuration_s_size 6000
|
||||||
#define engine_load_mode_e_enum "MAF", "Alpha-N/TPS", "INVALID", "SPEED DENSITY", "MAF Air Charge", "Alpha-N", "INVALID"
|
#define engine_load_mode_e_enum "MAF", "Alpha-N/TPS", "INVALID", "Speed Density", "MAF Air Charge", "Alpha-N", "INVALID"
|
||||||
#define ENGINE_MAKE_BMW "BMW"
|
#define ENGINE_MAKE_BMW "BMW"
|
||||||
#define ENGINE_MAKE_GM "GM"
|
#define ENGINE_MAKE_GM "GM"
|
||||||
#define ENGINE_MAKE_LADA "Lada"
|
#define ENGINE_MAKE_LADA "Lada"
|
||||||
|
@ -1075,8 +1075,8 @@
|
||||||
#define showHumanReadableWarning_offset 976
|
#define showHumanReadableWarning_offset 976
|
||||||
#define showSdCardWarning_offset 76
|
#define showSdCardWarning_offset 76
|
||||||
#define SIGNATURE_BOARD kin
|
#define SIGNATURE_BOARD kin
|
||||||
#define SIGNATURE_DATE 2020.07.26
|
#define SIGNATURE_DATE 2020.07.28
|
||||||
#define SIGNATURE_HASH 2735505253
|
#define SIGNATURE_HASH 2529711359
|
||||||
#define silentTriggerError_offset 1464
|
#define silentTriggerError_offset 1464
|
||||||
#define slowAdcAlpha_offset 2088
|
#define slowAdcAlpha_offset 2088
|
||||||
#define sparkDwellRpmBins_offset 332
|
#define sparkDwellRpmBins_offset 332
|
||||||
|
@ -1344,7 +1344,7 @@
|
||||||
#define ts_show_spi true
|
#define ts_show_spi true
|
||||||
#define ts_show_trigger_comparator true
|
#define ts_show_trigger_comparator true
|
||||||
#define ts_show_tunerstudio_port true
|
#define ts_show_tunerstudio_port true
|
||||||
#define TS_SIGNATURE "rusEFI 2020.07.26.kin.2735505253"
|
#define TS_SIGNATURE "rusEFI 2020.07.28.kin.2529711359"
|
||||||
#define TS_SINGLE_WRITE_COMMAND 'W'
|
#define TS_SINGLE_WRITE_COMMAND 'W'
|
||||||
#define tunerStudioSerialSpeed_offset 728
|
#define tunerStudioSerialSpeed_offset 728
|
||||||
#define twoWireBatchIgnition_offset 1476
|
#define twoWireBatchIgnition_offset 1476
|
||||||
|
|
|
@ -166,6 +166,14 @@ static void setupDefaultSensorInputs() {
|
||||||
// iat = "23 - AN temp 2"
|
// iat = "23 - AN temp 2"
|
||||||
engineConfiguration->iat.adcChannel = EFI_ADC_1;
|
engineConfiguration->iat.adcChannel = EFI_ADC_1;
|
||||||
engineConfiguration->iat.config.bias_resistor = 2700;
|
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) {
|
void setPinConfigurationOverrides(void) {
|
||||||
|
|
|
@ -898,10 +898,12 @@ int tunerStudioHandleCrcCommand(ts_channel_s *tsChannel, char *data, int incomin
|
||||||
break;
|
break;
|
||||||
#endif /* ENABLE_PERF_TRACE */
|
#endif /* ENABLE_PERF_TRACE */
|
||||||
case TS_GET_CONFIG_ERROR: {
|
case TS_GET_CONFIG_ERROR: {
|
||||||
#if HW_CHECK_MODE
|
|
||||||
#define configError "FACTORY_MODE_PLEASE_CONTACT_SUPPORT"
|
|
||||||
#else
|
|
||||||
char * configError = getFirmwareError();
|
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
|
#endif // HW_CHECK_MODE
|
||||||
sr5SendResponse(tsChannel, TS_CRC, reinterpret_cast<const uint8_t*>(configError), strlen(configError));
|
sr5SendResponse(tsChannel, TS_CRC, reinterpret_cast<const uint8_t*>(configError), strlen(configError));
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -323,7 +323,7 @@ static void showFuelInfo2(float rpm, float engineLoad) {
|
||||||
|
|
||||||
#if EFI_ENGINE_CONTROL
|
#if EFI_ENGINE_CONTROL
|
||||||
static void showFuelInfo(void) {
|
static void showFuelInfo(void) {
|
||||||
showFuelInfo2((float) GET_RPM(), getEngineLoadT(PASS_ENGINE_PARAMETER_SIGNATURE));
|
showFuelInfo2((float) GET_RPM(), getFuelingLoad(PASS_ENGINE_PARAMETER_SIGNATURE));
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -315,7 +315,7 @@ void TpsAccelEnrichment::onEngineCycleTps(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void LoadAccelEnrichment::onEngineCycle(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
void LoadAccelEnrichment::onEngineCycle(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||||
onNewValue(getEngineLoadT(PASS_ENGINE_PARAMETER_SIGNATURE) PASS_ENGINE_PARAMETER_SUFFIX);
|
onNewValue(getFuelingLoad(PASS_ENGINE_PARAMETER_SIGNATURE) PASS_ENGINE_PARAMETER_SUFFIX);
|
||||||
}
|
}
|
||||||
|
|
||||||
AccelEnrichment::AccelEnrichment() {
|
AccelEnrichment::AccelEnrichment() {
|
||||||
|
|
|
@ -130,6 +130,14 @@ static void cylinderCleanupControl(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||||
#endif
|
#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) {
|
void Engine::periodicSlowCallback(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||||
ScopePerf perf(PE::EnginePeriodicSlowCallback);
|
ScopePerf perf(PE::EnginePeriodicSlowCallback);
|
||||||
|
|
||||||
|
@ -163,7 +171,14 @@ void Engine::periodicSlowCallback(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||||
}
|
}
|
||||||
#endif
|
#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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -123,7 +123,7 @@ static void handleGetDataRequest(const CANRxFrame& rx) {
|
||||||
obdSendValue(1, pid, 2, (2<<8)|(0)); // 2 = "Closed loop, using oxygen sensor feedback to determine fuel mix"
|
obdSendValue(1, pid, 2, (2<<8)|(0)); // 2 = "Closed loop, using oxygen sensor feedback to determine fuel mix"
|
||||||
break;
|
break;
|
||||||
case PID_ENGINE_LOAD:
|
case PID_ENGINE_LOAD:
|
||||||
obdSendValue(1, pid, 1, getEngineLoadT(PASS_ENGINE_PARAMETER_SIGNATURE) * 2.55f);
|
obdSendValue(1, pid, 1, getFuelingLoad(PASS_ENGINE_PARAMETER_SIGNATURE) * 2.55f);
|
||||||
break;
|
break;
|
||||||
case PID_COOLANT_TEMP:
|
case PID_COOLANT_TEMP:
|
||||||
obdSendValue(1, pid, 1, Sensor::get(SensorType::Clt).value_or(0) + 40.0f);
|
obdSendValue(1, pid, 1, Sensor::get(SensorType::Clt).value_or(0) + 40.0f);
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
#define VCS_DATE 20200727
|
#define VCS_DATE 20200728
|
||||||
|
|
|
@ -324,6 +324,8 @@ static void printAnalogInfo(void) {
|
||||||
printAnalogChannelInfo("pPS", engineConfiguration->throttlePedalPositionAdcChannel);
|
printAnalogChannelInfo("pPS", engineConfiguration->throttlePedalPositionAdcChannel);
|
||||||
printAnalogChannelInfo("CLT", engineConfiguration->clt.adcChannel);
|
printAnalogChannelInfo("CLT", engineConfiguration->clt.adcChannel);
|
||||||
printAnalogChannelInfo("IAT", engineConfiguration->iat.adcChannel);
|
printAnalogChannelInfo("IAT", engineConfiguration->iat.adcChannel);
|
||||||
|
printAnalogChannelInfo("AuxT1", engineConfiguration->auxTempSensor1.adcChannel);
|
||||||
|
printAnalogChannelInfo("AuxT2", engineConfiguration->auxTempSensor2.adcChannel);
|
||||||
printAnalogChannelInfo("MAF", engineConfiguration->mafAdcChannel);
|
printAnalogChannelInfo("MAF", engineConfiguration->mafAdcChannel);
|
||||||
for (int i = 0; i < FSIO_ANALOG_INPUT_COUNT ; i++) {
|
for (int i = 0; i < FSIO_ANALOG_INPUT_COUNT ; i++) {
|
||||||
adc_channel_e ch = engineConfiguration->fsioAdc[i];
|
adc_channel_e ch = engineConfiguration->fsioAdc[i];
|
||||||
|
|
|
@ -528,7 +528,7 @@ void updatePrimeInjectionPulseState(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||||
static void showMainInfo(Engine *engine) {
|
static void showMainInfo(Engine *engine) {
|
||||||
#if EFI_PROD_CODE
|
#if EFI_PROD_CODE
|
||||||
int rpm = GET_RPM();
|
int rpm = GET_RPM();
|
||||||
float el = getEngineLoadT(PASS_ENGINE_PARAMETER_SIGNATURE);
|
float el = getFuelingLoad(PASS_ENGINE_PARAMETER_SIGNATURE);
|
||||||
scheduleMsg(logger, "rpm %d engine_load %.2f", rpm, el);
|
scheduleMsg(logger, "rpm %d engine_load %.2f", rpm, el);
|
||||||
scheduleMsg(logger, "fuel %.2fms timing %.2f", getInjectionDuration(rpm PASS_ENGINE_PARAMETER_SUFFIX), engine->engineState.timingAdvance);
|
scheduleMsg(logger, "fuel %.2fms timing %.2f", getInjectionDuration(rpm PASS_ENGINE_PARAMETER_SUFFIX), engine->engineState.timingAdvance);
|
||||||
#endif /* EFI_PROD_CODE */
|
#endif /* EFI_PROD_CODE */
|
||||||
|
|
|
@ -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 Tue Jul 28 13:12:08 UTC 2020
|
||||||
// by class com.rusefi.output.CHeaderConsumer
|
// by class com.rusefi.output.CHeaderConsumer
|
||||||
// begin
|
// begin
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -832,7 +832,7 @@ struct engine_configuration_s {
|
||||||
*/
|
*/
|
||||||
float knockBandCustom;
|
float knockBandCustom;
|
||||||
/**
|
/**
|
||||||
* On single-coil or wasted spark setups you have to lower dwell at high RPM
|
* On Single Coil or Wasted Spark setups you have to lower dwell at high RPM
|
||||||
* offset 332
|
* offset 332
|
||||||
*/
|
*/
|
||||||
float sparkDwellRpmBins[DWELL_CURVE_SIZE];
|
float sparkDwellRpmBins[DWELL_CURVE_SIZE];
|
||||||
|
@ -892,7 +892,7 @@ struct engine_configuration_s {
|
||||||
*/
|
*/
|
||||||
angle_t crankingTimingAngle;
|
angle_t crankingTimingAngle;
|
||||||
/**
|
/**
|
||||||
* "One Coil" is for use on distributed ignition system. "Individual Coils" is to be used when you have one coil per cylinder (COP or similar). "Wasted" means one coil is driving two spark plugs in two cylinders, with one of the sparks not doing anything since it's happening on the exhaust cycle
|
* "Single Coil" is for use on distributed ignition system. "Individual Coils" is to be used when you have one coil per cylinder (COP or similar). "Wasted Spark" means one coil is driving two spark plugs in two cylinders, with one of the sparks not doing anything since it's happening on the exhaust cycle
|
||||||
* set ignition_mode X
|
* set ignition_mode X
|
||||||
* offset 440
|
* offset 440
|
||||||
*/
|
*/
|
||||||
|
@ -2143,7 +2143,7 @@ struct engine_configuration_s {
|
||||||
offset 1476 bit 14 */
|
offset 1476 bit 14 */
|
||||||
bool useOnlyRisingEdgeForTrigger : 1;
|
bool useOnlyRisingEdgeForTrigger : 1;
|
||||||
/**
|
/**
|
||||||
* This is needed if your coils are individually wired (COP) and you wish to use batch ignition (wasted spark).
|
* This is needed if your coils are individually wired (COP) and you wish to use batch ignition (Wasted Spark).
|
||||||
offset 1476 bit 15 */
|
offset 1476 bit 15 */
|
||||||
bool twoWireBatchIgnition : 1;
|
bool twoWireBatchIgnition : 1;
|
||||||
/**
|
/**
|
||||||
|
@ -3533,4 +3533,4 @@ struct persistent_config_s {
|
||||||
typedef struct persistent_config_s persistent_config_s;
|
typedef struct persistent_config_s persistent_config_s;
|
||||||
|
|
||||||
// end
|
// 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 Tue Jul 28 13:12:08 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 Tue Jul 28 13:12:08 UTC 2020
|
||||||
|
|
||||||
// by class com.rusefi.output.FileFsioSettingsConsumer
|
// by class com.rusefi.output.FileFsioSettingsConsumer
|
||||||
FSIO_SETTING_FANONTEMPERATURE = 1000,
|
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 Tue Jul 28 13:12:08 UTC 2020
|
||||||
|
|
||||||
// by class com.rusefi.output.FileFsioSettingsConsumer
|
// by class com.rusefi.output.FileFsioSettingsConsumer
|
||||||
case FSIO_SETTING_FANONTEMPERATURE:
|
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 Tue Jul 28 13:12:08 UTC 2020
|
||||||
|
|
||||||
// by class com.rusefi.output.FileFsioSettingsConsumer
|
// by class com.rusefi.output.FileFsioSettingsConsumer
|
||||||
static LENameOrdinalPair lefanOnTemperature(FSIO_SETTING_FANONTEMPERATURE, "cfg_fanOnTemperature");
|
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 Tue Jul 28 13:12:08 UTC 2020
|
||||||
|
|
||||||
// by class com.rusefi.output.FileFsioSettingsConsumer
|
// by class com.rusefi.output.FileFsioSettingsConsumer
|
||||||
case FSIO_SETTING_FANONTEMPERATURE:
|
case FSIO_SETTING_FANONTEMPERATURE:
|
||||||
|
|
|
@ -305,7 +305,7 @@
|
||||||
#define enableLaunchRetard_offset 976
|
#define enableLaunchRetard_offset 976
|
||||||
#define enableVerboseCanTx_offset 744
|
#define enableVerboseCanTx_offset 744
|
||||||
#define engine_configuration_s_size 6000
|
#define engine_configuration_s_size 6000
|
||||||
#define engine_load_mode_e_enum "MAF", "Alpha-N/TPS", "INVALID", "SPEED DENSITY", "MAF Air Charge", "Alpha-N", "INVALID"
|
#define engine_load_mode_e_enum "MAF", "Alpha-N/TPS", "INVALID", "Speed Density", "MAF Air Charge", "Alpha-N", "INVALID"
|
||||||
#define ENGINE_MAKE_BMW "BMW"
|
#define ENGINE_MAKE_BMW "BMW"
|
||||||
#define ENGINE_MAKE_GM "GM"
|
#define ENGINE_MAKE_GM "GM"
|
||||||
#define ENGINE_MAKE_LADA "Lada"
|
#define ENGINE_MAKE_LADA "Lada"
|
||||||
|
@ -1075,8 +1075,8 @@
|
||||||
#define showHumanReadableWarning_offset 976
|
#define showHumanReadableWarning_offset 976
|
||||||
#define showSdCardWarning_offset 76
|
#define showSdCardWarning_offset 76
|
||||||
#define SIGNATURE_BOARD all
|
#define SIGNATURE_BOARD all
|
||||||
#define SIGNATURE_DATE 2020.07.26
|
#define SIGNATURE_DATE 2020.07.28
|
||||||
#define SIGNATURE_HASH 1848812543
|
#define SIGNATURE_HASH 1542883429
|
||||||
#define silentTriggerError_offset 1464
|
#define silentTriggerError_offset 1464
|
||||||
#define slowAdcAlpha_offset 2088
|
#define slowAdcAlpha_offset 2088
|
||||||
#define sparkDwellRpmBins_offset 332
|
#define sparkDwellRpmBins_offset 332
|
||||||
|
@ -1344,7 +1344,7 @@
|
||||||
#define ts_show_spi true
|
#define ts_show_spi true
|
||||||
#define ts_show_trigger_comparator false
|
#define ts_show_trigger_comparator false
|
||||||
#define ts_show_tunerstudio_port true
|
#define ts_show_tunerstudio_port true
|
||||||
#define TS_SIGNATURE "rusEFI 2020.07.26.all.1848812543"
|
#define TS_SIGNATURE "rusEFI 2020.07.28.all.1542883429"
|
||||||
#define TS_SINGLE_WRITE_COMMAND 'W'
|
#define TS_SINGLE_WRITE_COMMAND 'W'
|
||||||
#define tunerStudioSerialSpeed_offset 728
|
#define tunerStudioSerialSpeed_offset 728
|
||||||
#define twoWireBatchIgnition_offset 1476
|
#define twoWireBatchIgnition_offset 1476
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
#define SIGNATURE_BOARD all
|
#define SIGNATURE_BOARD all
|
||||||
#define SIGNATURE_DATE 2020.07.26
|
#define SIGNATURE_DATE 2020.07.28
|
||||||
#define SIGNATURE_HASH 1848812543
|
#define SIGNATURE_HASH 1542883429
|
||||||
#define TS_SIGNATURE "rusEFI 2020.07.26.all.1848812543"
|
#define TS_SIGNATURE "rusEFI 2020.07.28.all.1542883429"
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
#define SIGNATURE_BOARD frankenso_na6
|
#define SIGNATURE_BOARD frankenso_na6
|
||||||
#define SIGNATURE_DATE 2020.07.26
|
#define SIGNATURE_DATE 2020.07.28
|
||||||
#define SIGNATURE_HASH 2964705052
|
#define SIGNATURE_HASH 2238833798
|
||||||
#define TS_SIGNATURE "rusEFI 2020.07.26.frankenso_na6.2964705052"
|
#define TS_SIGNATURE "rusEFI 2020.07.28.frankenso_na6.2238833798"
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
#define SIGNATURE_BOARD kin
|
#define SIGNATURE_BOARD kin
|
||||||
#define SIGNATURE_DATE 2020.07.26
|
#define SIGNATURE_DATE 2020.07.28
|
||||||
#define SIGNATURE_HASH 2735505253
|
#define SIGNATURE_HASH 2529711359
|
||||||
#define TS_SIGNATURE "rusEFI 2020.07.26.kin.2735505253"
|
#define TS_SIGNATURE "rusEFI 2020.07.28.kin.2529711359"
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
#define SIGNATURE_BOARD mre_f4
|
#define SIGNATURE_BOARD mre_f4
|
||||||
#define SIGNATURE_DATE 2020.07.26
|
#define SIGNATURE_DATE 2020.07.28
|
||||||
#define SIGNATURE_HASH 667710833
|
#define SIGNATURE_HASH 302538475
|
||||||
#define TS_SIGNATURE "rusEFI 2020.07.26.mre_f4.667710833"
|
#define TS_SIGNATURE "rusEFI 2020.07.28.mre_f4.302538475"
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
#define SIGNATURE_BOARD mre_f7
|
#define SIGNATURE_BOARD mre_f7
|
||||||
#define SIGNATURE_DATE 2020.07.26
|
#define SIGNATURE_DATE 2020.07.28
|
||||||
#define SIGNATURE_HASH 667710833
|
#define SIGNATURE_HASH 302538475
|
||||||
#define TS_SIGNATURE "rusEFI 2020.07.26.mre_f7.667710833"
|
#define TS_SIGNATURE "rusEFI 2020.07.28.mre_f7.302538475"
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
#define SIGNATURE_BOARD prometheus_405
|
#define SIGNATURE_BOARD prometheus_405
|
||||||
#define SIGNATURE_DATE 2020.07.26
|
#define SIGNATURE_DATE 2020.07.28
|
||||||
#define SIGNATURE_HASH 2603514747
|
#define SIGNATURE_HASH 2934591713
|
||||||
#define TS_SIGNATURE "rusEFI 2020.07.26.prometheus_405.2603514747"
|
#define TS_SIGNATURE "rusEFI 2020.07.28.prometheus_405.2934591713"
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
#define SIGNATURE_BOARD prometheus_469
|
#define SIGNATURE_BOARD prometheus_469
|
||||||
#define SIGNATURE_DATE 2020.07.26
|
#define SIGNATURE_DATE 2020.07.28
|
||||||
#define SIGNATURE_HASH 2603514747
|
#define SIGNATURE_HASH 2934591713
|
||||||
#define TS_SIGNATURE "rusEFI 2020.07.26.prometheus_469.2603514747"
|
#define TS_SIGNATURE "rusEFI 2020.07.28.prometheus_469.2934591713"
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
#define SIGNATURE_BOARD proteus_f4
|
#define SIGNATURE_BOARD proteus_f4
|
||||||
#define SIGNATURE_DATE 2020.07.26
|
#define SIGNATURE_DATE 2020.07.28
|
||||||
#define SIGNATURE_HASH 3819164208
|
#define SIGNATURE_HASH 3597138346
|
||||||
#define TS_SIGNATURE "rusEFI 2020.07.26.proteus_f4.3819164208"
|
#define TS_SIGNATURE "rusEFI 2020.07.28.proteus_f4.3597138346"
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
#define SIGNATURE_BOARD proteus_f7
|
#define SIGNATURE_BOARD proteus_f7
|
||||||
#define SIGNATURE_DATE 2020.07.26
|
#define SIGNATURE_DATE 2020.07.28
|
||||||
#define SIGNATURE_HASH 3819164208
|
#define SIGNATURE_HASH 3597138346
|
||||||
#define TS_SIGNATURE "rusEFI 2020.07.26.proteus_f7.3819164208"
|
#define TS_SIGNATURE "rusEFI 2020.07.28.proteus_f7.3597138346"
|
||||||
|
|
|
@ -84,7 +84,7 @@ float fuelClosedLoopCorrection(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||||
return 1.0f;
|
return 1.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t binIdx = computeStftBin(GET_RPM(), getEngineLoadT(PASS_ENGINE_PARAMETER_SIGNATURE), CONFIG(stft));
|
size_t binIdx = computeStftBin(GET_RPM(), getFuelingLoad(PASS_ENGINE_PARAMETER_SIGNATURE), CONFIG(stft));
|
||||||
|
|
||||||
#if EFI_TUNER_STUDIO
|
#if EFI_TUNER_STUDIO
|
||||||
if (engineConfiguration->debugMode == DBG_FUEL_PID_CORRECTION) {
|
if (engineConfiguration->debugMode == DBG_FUEL_PID_CORRECTION) {
|
||||||
|
|
|
@ -18,6 +18,9 @@
|
||||||
! rename the bit or substitute unused integer with any new fields of the same size
|
! 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
|
! 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
|
! each field is declared as
|
||||||
! type name;comment
|
! type name;comment
|
||||||
|
@ -432,7 +435,7 @@ ThermistorConf iat;
|
||||||
float knockBandCustom;+We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override;"kHz", 1, 0.0, 0.0, 10.0, 2
|
float knockBandCustom;+We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override;"kHz", 1, 0.0, 0.0, 10.0, 2
|
||||||
|
|
||||||
|
|
||||||
float[DWELL_CURVE_SIZE] sparkDwellRpmBins;On single-coil or wasted spark setups you have to lower dwell at high RPM;"RPM", 1, 0.0, 0.0, 18000, 2
|
float[DWELL_CURVE_SIZE] sparkDwellRpmBins;On Single Coil or Wasted Spark setups you have to lower dwell at high RPM;"RPM", 1, 0.0, 0.0, 18000, 2
|
||||||
float[DWELL_CURVE_SIZE] sparkDwellValues;;"ms", 1, 0.0, 0.0, 30.0, 2
|
float[DWELL_CURVE_SIZE] sparkDwellValues;;"ms", 1, 0.0, 0.0, 30.0, 2
|
||||||
|
|
||||||
struct_no_prefix specs_s
|
struct_no_prefix specs_s
|
||||||
|
@ -457,7 +460,7 @@ int sensorSnifferRpmThreshold;+Disable sensor sniffer above this rpm;"RPM",
|
||||||
int rpmHardLimit;set rpm_hard_limit X;"rpm", 1, 0, 0, 20000.0, 2
|
int rpmHardLimit;set rpm_hard_limit X;"rpm", 1, 0, 0, 20000.0, 2
|
||||||
|
|
||||||
|
|
||||||
#define engine_load_mode_e_enum "MAF", "Alpha-N/TPS", "INVALID", "SPEED DENSITY", "MAF Air Charge", "Alpha-N", "INVALID"
|
#define engine_load_mode_e_enum "MAF", "Alpha-N/TPS", "INVALID", "Speed Density", "MAF Air Charge", "Alpha-N", "INVALID"
|
||||||
|
|
||||||
|
|
||||||
custom engine_load_mode_e 4 bits, U32, @OFFSET@, [0:2], @@engine_load_mode_e_enum@@
|
custom engine_load_mode_e 4 bits, U32, @OFFSET@, [0:2], @@engine_load_mode_e_enum@@
|
||||||
|
@ -470,8 +473,8 @@ injection_mode_e injectionMode;+This is where the fuel injection type is defined
|
||||||
angle_t extraInjectionOffset;+this is about deciding when the injector starts it's squirt\nSee also injectionPhase map\ntodo: do we need even need this since we have the map anyway?;"deg", 1, 0.0, -720, 720, 2
|
angle_t extraInjectionOffset;+this is about deciding when the injector starts it's squirt\nSee also injectionPhase map\ntodo: do we need even need this since we have the map anyway?;"deg", 1, 0.0, -720, 720, 2
|
||||||
angle_t crankingTimingAngle;+Ignition advance angle used during engine cranking, 5-10 degrees will work as a base setting for most engines.\nset cranking_timing_angle X; "deg", 1, 0.0, -360, 360, 2
|
angle_t crankingTimingAngle;+Ignition advance angle used during engine cranking, 5-10 degrees will work as a base setting for most engines.\nset cranking_timing_angle X; "deg", 1, 0.0, -360, 360, 2
|
||||||
|
|
||||||
custom ignition_mode_e 4 bits, U32, @OFFSET@, [0:1], "One coil", "Individual Coils", "Wasted", "Two distributors"
|
custom ignition_mode_e 4 bits, U32, @OFFSET@, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors"
|
||||||
ignition_mode_e ignitionMode;+"One Coil" is for use on distributed ignition system. "Individual Coils" is to be used when you have one coil per cylinder (COP or similar). "Wasted" means one coil is driving two spark plugs in two cylinders, with one of the sparks not doing anything since it's happening on the exhaust cycle\nset ignition_mode X
|
ignition_mode_e ignitionMode;+"Single Coil" is for use on distributed ignition system. "Individual Coils" is to be used when you have one coil per cylinder (COP or similar). "Wasted Spark" means one coil is driving two spark plugs in two cylinders, with one of the sparks not doing anything since it's happening on the exhaust cycle\nset ignition_mode X
|
||||||
|
|
||||||
angle_t ignitionOffset;+this value could be used to offset the whole ignition timing table by a constant;"RPM", 1, 0, 0, 3000.0, 0
|
angle_t ignitionOffset;+this value could be used to offset the whole ignition timing table by a constant;"RPM", 1, 0, 0, 3000.0, 0
|
||||||
|
|
||||||
|
@ -950,7 +953,7 @@ custom idle_mode_e 4 bits, U32, @OFFSET@, [0:0], "Automatic", "Manual"
|
||||||
bit isManualSpinningMode;Usually if we have no trigger events that means engine is stopped\nUnless we are troubleshooting and spinning the engine by hand - this case a longer\ndelay is needed
|
bit isManualSpinningMode;Usually if we have no trigger events that means engine is stopped\nUnless we are troubleshooting and spinning the engine by hand - this case a longer\ndelay is needed
|
||||||
bit twoWireBatchInjection;+This is needed if your coils are individually wired and you wish to use batch injection.\nenable two_wire_batch_injection
|
bit twoWireBatchInjection;+This is needed if your coils are individually wired and you wish to use batch injection.\nenable two_wire_batch_injection
|
||||||
bit useOnlyRisingEdgeForTrigger;+VR sensors are only precise on rising front\nenable trigger_only_front
|
bit useOnlyRisingEdgeForTrigger;+VR sensors are only precise on rising front\nenable trigger_only_front
|
||||||
bit twoWireBatchIgnition;+This is needed if your coils are individually wired (COP) and you wish to use batch ignition (wasted spark).
|
bit twoWireBatchIgnition;+This is needed if your coils are individually wired (COP) and you wish to use batch ignition (Wasted Spark).
|
||||||
bit useFixedBaroCorrFromMap
|
bit useFixedBaroCorrFromMap
|
||||||
bit useSeparateAdvanceForCranking;+This activates a separate advance table for cranking conditions, this allows cranking advance to be RPM dependant.
|
bit useSeparateAdvanceForCranking;+This activates a separate advance table for cranking conditions, this allows cranking advance to be RPM dependant.
|
||||||
bit useAdvanceCorrectionsForCranking;+This enables the various ignition corrections during cranking (IAT, CLT, FSIO and PID idle).
|
bit useAdvanceCorrectionsForCranking;+This enables the various ignition corrections during cranking (IAT, CLT, FSIO and PID idle).
|
||||||
|
|
Binary file not shown.
|
@ -33,12 +33,12 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
[MegaTune]
|
[MegaTune]
|
||||||
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
||||||
signature = "rusEFI 2020.07.26.all.1848812543"
|
signature = "rusEFI 2020.07.28.all.1542883429"
|
||||||
|
|
||||||
[TunerStudio]
|
[TunerStudio]
|
||||||
queryCommand = "S"
|
queryCommand = "S"
|
||||||
versionInfo = "V" ; firmwave version for title bar.
|
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.1542883429" ; signature is expected to be 7 or more characters.
|
||||||
|
|
||||||
[Constants]
|
[Constants]
|
||||||
; new packet serial format with CRC
|
; new packet serial format with CRC
|
||||||
|
@ -76,7 +76,7 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
; see PAGE_0_SIZE in C source code
|
; see PAGE_0_SIZE in C source code
|
||||||
; CONFIG_DEFINITION_START
|
; 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 13:12:08 UTC 2020
|
||||||
|
|
||||||
pageSize = 20000
|
pageSize = 20000
|
||||||
page = 1
|
page = 1
|
||||||
|
@ -166,12 +166,12 @@ page = 1
|
||||||
cylinderBore = scalar, F32, 408, "mm", 1, 0, 0, 20000.0, 2
|
cylinderBore = scalar, F32, 408, "mm", 1, 0, 0, 20000.0, 2
|
||||||
sensorSnifferRpmThreshold = scalar, S32, 412, "RPM", 1, 0, 0,30000, 0
|
sensorSnifferRpmThreshold = scalar, S32, 412, "RPM", 1, 0, 0,30000, 0
|
||||||
rpmHardLimit = scalar, S32, 416, "rpm", 1, 0, 0, 20000.0, 2
|
rpmHardLimit = scalar, S32, 416, "rpm", 1, 0, 0, 20000.0, 2
|
||||||
fuelAlgorithm = bits, U32, 420, [0:2], "MAF", "Alpha-N/TPS", "INVALID", "SPEED DENSITY", "MAF Air Charge", "Alpha-N", "INVALID", "INVALID"
|
fuelAlgorithm = bits, U32, 420, [0:2], "MAF", "Alpha-N/TPS", "INVALID", "Speed Density", "MAF Air Charge", "Alpha-N", "INVALID", "INVALID"
|
||||||
crankingInjectionMode = bits, U32, 424, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point"
|
crankingInjectionMode = bits, U32, 424, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point"
|
||||||
injectionMode = bits, U32, 428, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point"
|
injectionMode = bits, U32, 428, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point"
|
||||||
extraInjectionOffset = scalar, F32, 432, "deg", 1, 0.0, -720, 720, 2
|
extraInjectionOffset = scalar, F32, 432, "deg", 1, 0.0, -720, 720, 2
|
||||||
crankingTimingAngle = scalar, F32, 436, "deg", 1, 0.0, -360, 360, 2
|
crankingTimingAngle = scalar, F32, 436, "deg", 1, 0.0, -360, 360, 2
|
||||||
ignitionMode = bits, U32, 440, [0:1], "One coil", "Individual Coils", "Wasted", "Two distributors"
|
ignitionMode = bits, U32, 440, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors"
|
||||||
ignitionOffset = scalar, F32, 444, "RPM", 1, 0, 0, 3000.0, 0
|
ignitionOffset = scalar, F32, 444, "RPM", 1, 0, 0, 3000.0, 0
|
||||||
timingMode = bits, U32, 448 [0:0], "dynamic", "fixed"
|
timingMode = bits, U32, 448 [0:0], "dynamic", "fixed"
|
||||||
fixedModeTiming = scalar, F32, 452, "RPM", 1, 0, 0, 3000.0, 0
|
fixedModeTiming = scalar, F32, 452, "RPM", 1, 0, 0, 3000.0, 0
|
||||||
|
@ -1203,7 +1203,7 @@ page = 1
|
||||||
injectionMode = "This is where the fuel injection type is defined: "Simultaneous" means all injectors will fire together at once. "Sequential" fires the injectors on a per cylinder basis, which requires individually wired injectors. "Batched" will fire the injectors in groups. If your injectors are individually wired you will also need to enable "Two wire batch emulation". \nset injection_mode X\nSee also twoWireBatchInjection"
|
injectionMode = "This is where the fuel injection type is defined: "Simultaneous" means all injectors will fire together at once. "Sequential" fires the injectors on a per cylinder basis, which requires individually wired injectors. "Batched" will fire the injectors in groups. If your injectors are individually wired you will also need to enable "Two wire batch emulation". \nset injection_mode X\nSee also twoWireBatchInjection"
|
||||||
extraInjectionOffset = "this is about deciding when the injector starts it's squirt\nSee also injectionPhase map\ntodo: do we need even need this since we have the map anyway?"
|
extraInjectionOffset = "this is about deciding when the injector starts it's squirt\nSee also injectionPhase map\ntodo: do we need even need this since we have the map anyway?"
|
||||||
crankingTimingAngle = "Ignition advance angle used during engine cranking, 5-10 degrees will work as a base setting for most engines.\nset cranking_timing_angle X"
|
crankingTimingAngle = "Ignition advance angle used during engine cranking, 5-10 degrees will work as a base setting for most engines.\nset cranking_timing_angle X"
|
||||||
ignitionMode = ""One Coil" is for use on distributed ignition system. "Individual Coils" is to be used when you have one coil per cylinder (COP or similar). "Wasted" means one coil is driving two spark plugs in two cylinders, with one of the sparks not doing anything since it's happening on the exhaust cycle\nset ignition_mode X"
|
ignitionMode = ""Single Coil" is for use on distributed ignition system. "Individual Coils" is to be used when you have one coil per cylinder (COP or similar). "Wasted Spark" means one coil is driving two spark plugs in two cylinders, with one of the sparks not doing anything since it's happening on the exhaust cycle\nset ignition_mode X"
|
||||||
ignitionOffset = "this value could be used to offset the whole ignition timing table by a constant"
|
ignitionOffset = "this value could be used to offset the whole ignition timing table by a constant"
|
||||||
timingMode = "Dynamic uses the timing map to decide the ignition timing, Static timing fixes the timing to the value set below (only use for checking static timing)."
|
timingMode = "Dynamic uses the timing map to decide the ignition timing, Static timing fixes the timing to the value set below (only use for checking static timing)."
|
||||||
fixedModeTiming = "This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing\nThis mode is useful when adjusting distributor location."
|
fixedModeTiming = "This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing\nThis mode is useful when adjusting distributor location."
|
||||||
|
@ -1285,7 +1285,7 @@ page = 1
|
||||||
verboseTriggerSynchDetails = "enable trigger_details"
|
verboseTriggerSynchDetails = "enable trigger_details"
|
||||||
twoWireBatchInjection = "This is needed if your coils are individually wired and you wish to use batch injection.\nenable two_wire_batch_injection"
|
twoWireBatchInjection = "This is needed if your coils are individually wired and you wish to use batch injection.\nenable two_wire_batch_injection"
|
||||||
useOnlyRisingEdgeForTrigger = "VR sensors are only precise on rising front\nenable trigger_only_front"
|
useOnlyRisingEdgeForTrigger = "VR sensors are only precise on rising front\nenable trigger_only_front"
|
||||||
twoWireBatchIgnition = "This is needed if your coils are individually wired (COP) and you wish to use batch ignition (wasted spark)."
|
twoWireBatchIgnition = "This is needed if your coils are individually wired (COP) and you wish to use batch ignition (Wasted Spark)."
|
||||||
useSeparateAdvanceForCranking = "This activates a separate advance table for cranking conditions, this allows cranking advance to be RPM dependant."
|
useSeparateAdvanceForCranking = "This activates a separate advance table for cranking conditions, this allows cranking advance to be RPM dependant."
|
||||||
useAdvanceCorrectionsForCranking = "This enables the various ignition corrections during cranking (IAT, CLT, FSIO and PID idle)."
|
useAdvanceCorrectionsForCranking = "This enables the various ignition corrections during cranking (IAT, CLT, FSIO and PID idle)."
|
||||||
useTPSAdvanceTable = "This flag allows to use TPS for ignition lookup while in Speed Density Fuel Mode"
|
useTPSAdvanceTable = "This flag allows to use TPS for ignition lookup while in Speed Density Fuel Mode"
|
||||||
|
@ -1491,8 +1491,8 @@ page = 1
|
||||||
internalMcuTemperature = scalar,S08, 11, "deg C", 1, 0
|
internalMcuTemperature = scalar,S08, 11, "deg C", 1, 0
|
||||||
coolant = scalar, S16, 12, "deg C",{1/100}, 0.0
|
coolant = scalar, S16, 12, "deg C",{1/100}, 0.0
|
||||||
intake = scalar, S16, 14, "deg C",{1/100}, 0.0
|
intake = scalar, S16, 14, "deg C",{1/100}, 0.0
|
||||||
; todo: aux1
|
auxt1 = scalar, S16, 16, "deg C",{1/100}, 0.0
|
||||||
; todo: aux2
|
auxt2 = scalar, S16, 18, "deg C",{1/100}, 0.0
|
||||||
|
|
||||||
|
|
||||||
; throttle, pedal
|
; throttle, pedal
|
||||||
|
@ -2227,6 +2227,8 @@ gaugeCategory = Sensors - Extra 1
|
||||||
internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0
|
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
|
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
|
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
|
gaugeCategory = Ignition
|
||||||
ignadvGauge = ignitionAdvance, "Ignition timing", "degrees", -100, 100, -999, -999, 999, 999, 1, 1
|
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]
|
[MegaTune]
|
||||||
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
||||||
signature = "rusEFI 2020.07.26.frankenso_na6.2964705052"
|
signature = "rusEFI 2020.07.28.frankenso_na6.2238833798"
|
||||||
|
|
||||||
[TunerStudio]
|
[TunerStudio]
|
||||||
queryCommand = "S"
|
queryCommand = "S"
|
||||||
versionInfo = "V" ; firmwave version for title bar.
|
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.2238833798" ; signature is expected to be 7 or more characters.
|
||||||
|
|
||||||
[Constants]
|
[Constants]
|
||||||
; new packet serial format with CRC
|
; new packet serial format with CRC
|
||||||
|
@ -76,7 +76,7 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
; see PAGE_0_SIZE in C source code
|
; see PAGE_0_SIZE in C source code
|
||||||
; CONFIG_DEFINITION_START
|
; 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 13:12:18 UTC 2020
|
||||||
|
|
||||||
pageSize = 20000
|
pageSize = 20000
|
||||||
page = 1
|
page = 1
|
||||||
|
@ -166,12 +166,12 @@ page = 1
|
||||||
cylinderBore = scalar, F32, 408, "mm", 1, 0, 0, 20000.0, 2
|
cylinderBore = scalar, F32, 408, "mm", 1, 0, 0, 20000.0, 2
|
||||||
sensorSnifferRpmThreshold = scalar, S32, 412, "RPM", 1, 0, 0,30000, 0
|
sensorSnifferRpmThreshold = scalar, S32, 412, "RPM", 1, 0, 0,30000, 0
|
||||||
rpmHardLimit = scalar, S32, 416, "rpm", 1, 0, 0, 20000.0, 2
|
rpmHardLimit = scalar, S32, 416, "rpm", 1, 0, 0, 20000.0, 2
|
||||||
fuelAlgorithm = bits, U32, 420, [0:2], "MAF", "Alpha-N/TPS", "INVALID", "SPEED DENSITY", "MAF Air Charge", "Alpha-N", "INVALID", "INVALID"
|
fuelAlgorithm = bits, U32, 420, [0:2], "MAF", "Alpha-N/TPS", "INVALID", "Speed Density", "MAF Air Charge", "Alpha-N", "INVALID", "INVALID"
|
||||||
crankingInjectionMode = bits, U32, 424, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point"
|
crankingInjectionMode = bits, U32, 424, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point"
|
||||||
injectionMode = bits, U32, 428, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point"
|
injectionMode = bits, U32, 428, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point"
|
||||||
extraInjectionOffset = scalar, F32, 432, "deg", 1, 0.0, -720, 720, 2
|
extraInjectionOffset = scalar, F32, 432, "deg", 1, 0.0, -720, 720, 2
|
||||||
crankingTimingAngle = scalar, F32, 436, "deg", 1, 0.0, -360, 360, 2
|
crankingTimingAngle = scalar, F32, 436, "deg", 1, 0.0, -360, 360, 2
|
||||||
ignitionMode = bits, U32, 440, [0:1], "One coil", "Individual Coils", "Wasted", "Two distributors"
|
ignitionMode = bits, U32, 440, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors"
|
||||||
ignitionOffset = scalar, F32, 444, "RPM", 1, 0, 0, 3000.0, 0
|
ignitionOffset = scalar, F32, 444, "RPM", 1, 0, 0, 3000.0, 0
|
||||||
timingMode = bits, U32, 448 [0:0], "dynamic", "fixed"
|
timingMode = bits, U32, 448 [0:0], "dynamic", "fixed"
|
||||||
fixedModeTiming = scalar, F32, 452, "RPM", 1, 0, 0, 3000.0, 0
|
fixedModeTiming = scalar, F32, 452, "RPM", 1, 0, 0, 3000.0, 0
|
||||||
|
@ -1203,7 +1203,7 @@ page = 1
|
||||||
injectionMode = "This is where the fuel injection type is defined: "Simultaneous" means all injectors will fire together at once. "Sequential" fires the injectors on a per cylinder basis, which requires individually wired injectors. "Batched" will fire the injectors in groups. If your injectors are individually wired you will also need to enable "Two wire batch emulation". \nset injection_mode X\nSee also twoWireBatchInjection"
|
injectionMode = "This is where the fuel injection type is defined: "Simultaneous" means all injectors will fire together at once. "Sequential" fires the injectors on a per cylinder basis, which requires individually wired injectors. "Batched" will fire the injectors in groups. If your injectors are individually wired you will also need to enable "Two wire batch emulation". \nset injection_mode X\nSee also twoWireBatchInjection"
|
||||||
extraInjectionOffset = "this is about deciding when the injector starts it's squirt\nSee also injectionPhase map\ntodo: do we need even need this since we have the map anyway?"
|
extraInjectionOffset = "this is about deciding when the injector starts it's squirt\nSee also injectionPhase map\ntodo: do we need even need this since we have the map anyway?"
|
||||||
crankingTimingAngle = "Ignition advance angle used during engine cranking, 5-10 degrees will work as a base setting for most engines.\nset cranking_timing_angle X"
|
crankingTimingAngle = "Ignition advance angle used during engine cranking, 5-10 degrees will work as a base setting for most engines.\nset cranking_timing_angle X"
|
||||||
ignitionMode = ""One Coil" is for use on distributed ignition system. "Individual Coils" is to be used when you have one coil per cylinder (COP or similar). "Wasted" means one coil is driving two spark plugs in two cylinders, with one of the sparks not doing anything since it's happening on the exhaust cycle\nset ignition_mode X"
|
ignitionMode = ""Single Coil" is for use on distributed ignition system. "Individual Coils" is to be used when you have one coil per cylinder (COP or similar). "Wasted Spark" means one coil is driving two spark plugs in two cylinders, with one of the sparks not doing anything since it's happening on the exhaust cycle\nset ignition_mode X"
|
||||||
ignitionOffset = "this value could be used to offset the whole ignition timing table by a constant"
|
ignitionOffset = "this value could be used to offset the whole ignition timing table by a constant"
|
||||||
timingMode = "Dynamic uses the timing map to decide the ignition timing, Static timing fixes the timing to the value set below (only use for checking static timing)."
|
timingMode = "Dynamic uses the timing map to decide the ignition timing, Static timing fixes the timing to the value set below (only use for checking static timing)."
|
||||||
fixedModeTiming = "This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing\nThis mode is useful when adjusting distributor location."
|
fixedModeTiming = "This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing\nThis mode is useful when adjusting distributor location."
|
||||||
|
@ -1285,7 +1285,7 @@ page = 1
|
||||||
verboseTriggerSynchDetails = "enable trigger_details"
|
verboseTriggerSynchDetails = "enable trigger_details"
|
||||||
twoWireBatchInjection = "This is needed if your coils are individually wired and you wish to use batch injection.\nenable two_wire_batch_injection"
|
twoWireBatchInjection = "This is needed if your coils are individually wired and you wish to use batch injection.\nenable two_wire_batch_injection"
|
||||||
useOnlyRisingEdgeForTrigger = "VR sensors are only precise on rising front\nenable trigger_only_front"
|
useOnlyRisingEdgeForTrigger = "VR sensors are only precise on rising front\nenable trigger_only_front"
|
||||||
twoWireBatchIgnition = "This is needed if your coils are individually wired (COP) and you wish to use batch ignition (wasted spark)."
|
twoWireBatchIgnition = "This is needed if your coils are individually wired (COP) and you wish to use batch ignition (Wasted Spark)."
|
||||||
useSeparateAdvanceForCranking = "This activates a separate advance table for cranking conditions, this allows cranking advance to be RPM dependant."
|
useSeparateAdvanceForCranking = "This activates a separate advance table for cranking conditions, this allows cranking advance to be RPM dependant."
|
||||||
useAdvanceCorrectionsForCranking = "This enables the various ignition corrections during cranking (IAT, CLT, FSIO and PID idle)."
|
useAdvanceCorrectionsForCranking = "This enables the various ignition corrections during cranking (IAT, CLT, FSIO and PID idle)."
|
||||||
useTPSAdvanceTable = "This flag allows to use TPS for ignition lookup while in Speed Density Fuel Mode"
|
useTPSAdvanceTable = "This flag allows to use TPS for ignition lookup while in Speed Density Fuel Mode"
|
||||||
|
@ -1491,8 +1491,8 @@ page = 1
|
||||||
internalMcuTemperature = scalar,S08, 11, "deg C", 1, 0
|
internalMcuTemperature = scalar,S08, 11, "deg C", 1, 0
|
||||||
coolant = scalar, S16, 12, "deg C",{1/100}, 0.0
|
coolant = scalar, S16, 12, "deg C",{1/100}, 0.0
|
||||||
intake = scalar, S16, 14, "deg C",{1/100}, 0.0
|
intake = scalar, S16, 14, "deg C",{1/100}, 0.0
|
||||||
; todo: aux1
|
auxt1 = scalar, S16, 16, "deg C",{1/100}, 0.0
|
||||||
; todo: aux2
|
auxt2 = scalar, S16, 18, "deg C",{1/100}, 0.0
|
||||||
|
|
||||||
|
|
||||||
; throttle, pedal
|
; throttle, pedal
|
||||||
|
@ -2227,6 +2227,8 @@ gaugeCategory = Sensors - Extra 1
|
||||||
internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0
|
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
|
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
|
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
|
gaugeCategory = Ignition
|
||||||
ignadvGauge = ignitionAdvance, "Ignition timing", "degrees", -100, 100, -999, -999, 999, 999, 1, 1
|
ignadvGauge = ignitionAdvance, "Ignition timing", "degrees", -100, 100, -999, -999, 999, 999, 1, 1
|
||||||
|
|
|
@ -33,12 +33,12 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
[MegaTune]
|
[MegaTune]
|
||||||
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
||||||
signature = "rusEFI 2020.07.26.kin.2735505253"
|
signature = "rusEFI 2020.07.28.kin.2529711359"
|
||||||
|
|
||||||
[TunerStudio]
|
[TunerStudio]
|
||||||
queryCommand = "S"
|
queryCommand = "S"
|
||||||
versionInfo = "V" ; firmwave version for title bar.
|
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.2529711359" ; signature is expected to be 7 or more characters.
|
||||||
|
|
||||||
[Constants]
|
[Constants]
|
||||||
; new packet serial format with CRC
|
; new packet serial format with CRC
|
||||||
|
@ -76,7 +76,7 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
; see PAGE_0_SIZE in C source code
|
; see PAGE_0_SIZE in C source code
|
||||||
; CONFIG_DEFINITION_START
|
; 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 13:12:25 UTC 2020
|
||||||
|
|
||||||
pageSize = 20000
|
pageSize = 20000
|
||||||
page = 1
|
page = 1
|
||||||
|
@ -166,12 +166,12 @@ page = 1
|
||||||
cylinderBore = scalar, F32, 408, "mm", 1, 0, 0, 20000.0, 2
|
cylinderBore = scalar, F32, 408, "mm", 1, 0, 0, 20000.0, 2
|
||||||
sensorSnifferRpmThreshold = scalar, S32, 412, "RPM", 1, 0, 0,30000, 0
|
sensorSnifferRpmThreshold = scalar, S32, 412, "RPM", 1, 0, 0,30000, 0
|
||||||
rpmHardLimit = scalar, S32, 416, "rpm", 1, 0, 0, 20000.0, 2
|
rpmHardLimit = scalar, S32, 416, "rpm", 1, 0, 0, 20000.0, 2
|
||||||
fuelAlgorithm = bits, U32, 420, [0:2], "MAF", "Alpha-N/TPS", "INVALID", "SPEED DENSITY", "MAF Air Charge", "Alpha-N", "INVALID", "INVALID"
|
fuelAlgorithm = bits, U32, 420, [0:2], "MAF", "Alpha-N/TPS", "INVALID", "Speed Density", "MAF Air Charge", "Alpha-N", "INVALID", "INVALID"
|
||||||
crankingInjectionMode = bits, U32, 424, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point"
|
crankingInjectionMode = bits, U32, 424, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point"
|
||||||
injectionMode = bits, U32, 428, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point"
|
injectionMode = bits, U32, 428, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point"
|
||||||
extraInjectionOffset = scalar, F32, 432, "deg", 1, 0.0, -720, 720, 2
|
extraInjectionOffset = scalar, F32, 432, "deg", 1, 0.0, -720, 720, 2
|
||||||
crankingTimingAngle = scalar, F32, 436, "deg", 1, 0.0, -360, 360, 2
|
crankingTimingAngle = scalar, F32, 436, "deg", 1, 0.0, -360, 360, 2
|
||||||
ignitionMode = bits, U32, 440, [0:1], "One coil", "Individual Coils", "Wasted", "Two distributors"
|
ignitionMode = bits, U32, 440, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors"
|
||||||
ignitionOffset = scalar, F32, 444, "RPM", 1, 0, 0, 3000.0, 0
|
ignitionOffset = scalar, F32, 444, "RPM", 1, 0, 0, 3000.0, 0
|
||||||
timingMode = bits, U32, 448 [0:0], "dynamic", "fixed"
|
timingMode = bits, U32, 448 [0:0], "dynamic", "fixed"
|
||||||
fixedModeTiming = scalar, F32, 452, "RPM", 1, 0, 0, 3000.0, 0
|
fixedModeTiming = scalar, F32, 452, "RPM", 1, 0, 0, 3000.0, 0
|
||||||
|
@ -1203,7 +1203,7 @@ page = 1
|
||||||
injectionMode = "This is where the fuel injection type is defined: "Simultaneous" means all injectors will fire together at once. "Sequential" fires the injectors on a per cylinder basis, which requires individually wired injectors. "Batched" will fire the injectors in groups. If your injectors are individually wired you will also need to enable "Two wire batch emulation". \nset injection_mode X\nSee also twoWireBatchInjection"
|
injectionMode = "This is where the fuel injection type is defined: "Simultaneous" means all injectors will fire together at once. "Sequential" fires the injectors on a per cylinder basis, which requires individually wired injectors. "Batched" will fire the injectors in groups. If your injectors are individually wired you will also need to enable "Two wire batch emulation". \nset injection_mode X\nSee also twoWireBatchInjection"
|
||||||
extraInjectionOffset = "this is about deciding when the injector starts it's squirt\nSee also injectionPhase map\ntodo: do we need even need this since we have the map anyway?"
|
extraInjectionOffset = "this is about deciding when the injector starts it's squirt\nSee also injectionPhase map\ntodo: do we need even need this since we have the map anyway?"
|
||||||
crankingTimingAngle = "Ignition advance angle used during engine cranking, 5-10 degrees will work as a base setting for most engines.\nset cranking_timing_angle X"
|
crankingTimingAngle = "Ignition advance angle used during engine cranking, 5-10 degrees will work as a base setting for most engines.\nset cranking_timing_angle X"
|
||||||
ignitionMode = ""One Coil" is for use on distributed ignition system. "Individual Coils" is to be used when you have one coil per cylinder (COP or similar). "Wasted" means one coil is driving two spark plugs in two cylinders, with one of the sparks not doing anything since it's happening on the exhaust cycle\nset ignition_mode X"
|
ignitionMode = ""Single Coil" is for use on distributed ignition system. "Individual Coils" is to be used when you have one coil per cylinder (COP or similar). "Wasted Spark" means one coil is driving two spark plugs in two cylinders, with one of the sparks not doing anything since it's happening on the exhaust cycle\nset ignition_mode X"
|
||||||
ignitionOffset = "this value could be used to offset the whole ignition timing table by a constant"
|
ignitionOffset = "this value could be used to offset the whole ignition timing table by a constant"
|
||||||
timingMode = "Dynamic uses the timing map to decide the ignition timing, Static timing fixes the timing to the value set below (only use for checking static timing)."
|
timingMode = "Dynamic uses the timing map to decide the ignition timing, Static timing fixes the timing to the value set below (only use for checking static timing)."
|
||||||
fixedModeTiming = "This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing\nThis mode is useful when adjusting distributor location."
|
fixedModeTiming = "This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing\nThis mode is useful when adjusting distributor location."
|
||||||
|
@ -1285,7 +1285,7 @@ page = 1
|
||||||
verboseTriggerSynchDetails = "enable trigger_details"
|
verboseTriggerSynchDetails = "enable trigger_details"
|
||||||
twoWireBatchInjection = "This is needed if your coils are individually wired and you wish to use batch injection.\nenable two_wire_batch_injection"
|
twoWireBatchInjection = "This is needed if your coils are individually wired and you wish to use batch injection.\nenable two_wire_batch_injection"
|
||||||
useOnlyRisingEdgeForTrigger = "VR sensors are only precise on rising front\nenable trigger_only_front"
|
useOnlyRisingEdgeForTrigger = "VR sensors are only precise on rising front\nenable trigger_only_front"
|
||||||
twoWireBatchIgnition = "This is needed if your coils are individually wired (COP) and you wish to use batch ignition (wasted spark)."
|
twoWireBatchIgnition = "This is needed if your coils are individually wired (COP) and you wish to use batch ignition (Wasted Spark)."
|
||||||
useSeparateAdvanceForCranking = "This activates a separate advance table for cranking conditions, this allows cranking advance to be RPM dependant."
|
useSeparateAdvanceForCranking = "This activates a separate advance table for cranking conditions, this allows cranking advance to be RPM dependant."
|
||||||
useAdvanceCorrectionsForCranking = "This enables the various ignition corrections during cranking (IAT, CLT, FSIO and PID idle)."
|
useAdvanceCorrectionsForCranking = "This enables the various ignition corrections during cranking (IAT, CLT, FSIO and PID idle)."
|
||||||
useTPSAdvanceTable = "This flag allows to use TPS for ignition lookup while in Speed Density Fuel Mode"
|
useTPSAdvanceTable = "This flag allows to use TPS for ignition lookup while in Speed Density Fuel Mode"
|
||||||
|
@ -1491,8 +1491,8 @@ page = 1
|
||||||
internalMcuTemperature = scalar,S08, 11, "deg C", 1, 0
|
internalMcuTemperature = scalar,S08, 11, "deg C", 1, 0
|
||||||
coolant = scalar, S16, 12, "deg C",{1/100}, 0.0
|
coolant = scalar, S16, 12, "deg C",{1/100}, 0.0
|
||||||
intake = scalar, S16, 14, "deg C",{1/100}, 0.0
|
intake = scalar, S16, 14, "deg C",{1/100}, 0.0
|
||||||
; todo: aux1
|
auxt1 = scalar, S16, 16, "deg C",{1/100}, 0.0
|
||||||
; todo: aux2
|
auxt2 = scalar, S16, 18, "deg C",{1/100}, 0.0
|
||||||
|
|
||||||
|
|
||||||
; throttle, pedal
|
; throttle, pedal
|
||||||
|
@ -2227,6 +2227,8 @@ gaugeCategory = Sensors - Extra 1
|
||||||
internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0
|
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
|
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
|
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
|
gaugeCategory = Ignition
|
||||||
ignadvGauge = ignitionAdvance, "Ignition timing", "degrees", -100, 100, -999, -999, 999, 999, 1, 1
|
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]
|
[MegaTune]
|
||||||
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
||||||
signature = "rusEFI 2020.07.26.mre_f4.667710833"
|
signature = "rusEFI 2020.07.28.mre_f4.302538475"
|
||||||
|
|
||||||
[TunerStudio]
|
[TunerStudio]
|
||||||
queryCommand = "S"
|
queryCommand = "S"
|
||||||
versionInfo = "V" ; firmwave version for title bar.
|
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.302538475" ; signature is expected to be 7 or more characters.
|
||||||
|
|
||||||
[Constants]
|
[Constants]
|
||||||
; new packet serial format with CRC
|
; new packet serial format with CRC
|
||||||
|
@ -76,7 +76,7 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
; see PAGE_0_SIZE in C source code
|
; see PAGE_0_SIZE in C source code
|
||||||
; CONFIG_DEFINITION_START
|
; 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 13:12:17 UTC 2020
|
||||||
|
|
||||||
pageSize = 20000
|
pageSize = 20000
|
||||||
page = 1
|
page = 1
|
||||||
|
@ -166,12 +166,12 @@ page = 1
|
||||||
cylinderBore = scalar, F32, 408, "mm", 1, 0, 0, 20000.0, 2
|
cylinderBore = scalar, F32, 408, "mm", 1, 0, 0, 20000.0, 2
|
||||||
sensorSnifferRpmThreshold = scalar, S32, 412, "RPM", 1, 0, 0,30000, 0
|
sensorSnifferRpmThreshold = scalar, S32, 412, "RPM", 1, 0, 0,30000, 0
|
||||||
rpmHardLimit = scalar, S32, 416, "rpm", 1, 0, 0, 20000.0, 2
|
rpmHardLimit = scalar, S32, 416, "rpm", 1, 0, 0, 20000.0, 2
|
||||||
fuelAlgorithm = bits, U32, 420, [0:2], "MAF", "Alpha-N/TPS", "INVALID", "SPEED DENSITY", "MAF Air Charge", "Alpha-N", "INVALID", "INVALID"
|
fuelAlgorithm = bits, U32, 420, [0:2], "MAF", "Alpha-N/TPS", "INVALID", "Speed Density", "MAF Air Charge", "Alpha-N", "INVALID", "INVALID"
|
||||||
crankingInjectionMode = bits, U32, 424, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point"
|
crankingInjectionMode = bits, U32, 424, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point"
|
||||||
injectionMode = bits, U32, 428, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point"
|
injectionMode = bits, U32, 428, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point"
|
||||||
extraInjectionOffset = scalar, F32, 432, "deg", 1, 0.0, -720, 720, 2
|
extraInjectionOffset = scalar, F32, 432, "deg", 1, 0.0, -720, 720, 2
|
||||||
crankingTimingAngle = scalar, F32, 436, "deg", 1, 0.0, -360, 360, 2
|
crankingTimingAngle = scalar, F32, 436, "deg", 1, 0.0, -360, 360, 2
|
||||||
ignitionMode = bits, U32, 440, [0:1], "One coil", "Individual Coils", "Wasted", "Two distributors"
|
ignitionMode = bits, U32, 440, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors"
|
||||||
ignitionOffset = scalar, F32, 444, "RPM", 1, 0, 0, 3000.0, 0
|
ignitionOffset = scalar, F32, 444, "RPM", 1, 0, 0, 3000.0, 0
|
||||||
timingMode = bits, U32, 448 [0:0], "dynamic", "fixed"
|
timingMode = bits, U32, 448 [0:0], "dynamic", "fixed"
|
||||||
fixedModeTiming = scalar, F32, 452, "RPM", 1, 0, 0, 3000.0, 0
|
fixedModeTiming = scalar, F32, 452, "RPM", 1, 0, 0, 3000.0, 0
|
||||||
|
@ -1203,7 +1203,7 @@ page = 1
|
||||||
injectionMode = "This is where the fuel injection type is defined: "Simultaneous" means all injectors will fire together at once. "Sequential" fires the injectors on a per cylinder basis, which requires individually wired injectors. "Batched" will fire the injectors in groups. If your injectors are individually wired you will also need to enable "Two wire batch emulation". \nset injection_mode X\nSee also twoWireBatchInjection"
|
injectionMode = "This is where the fuel injection type is defined: "Simultaneous" means all injectors will fire together at once. "Sequential" fires the injectors on a per cylinder basis, which requires individually wired injectors. "Batched" will fire the injectors in groups. If your injectors are individually wired you will also need to enable "Two wire batch emulation". \nset injection_mode X\nSee also twoWireBatchInjection"
|
||||||
extraInjectionOffset = "this is about deciding when the injector starts it's squirt\nSee also injectionPhase map\ntodo: do we need even need this since we have the map anyway?"
|
extraInjectionOffset = "this is about deciding when the injector starts it's squirt\nSee also injectionPhase map\ntodo: do we need even need this since we have the map anyway?"
|
||||||
crankingTimingAngle = "Ignition advance angle used during engine cranking, 5-10 degrees will work as a base setting for most engines.\nset cranking_timing_angle X"
|
crankingTimingAngle = "Ignition advance angle used during engine cranking, 5-10 degrees will work as a base setting for most engines.\nset cranking_timing_angle X"
|
||||||
ignitionMode = ""One Coil" is for use on distributed ignition system. "Individual Coils" is to be used when you have one coil per cylinder (COP or similar). "Wasted" means one coil is driving two spark plugs in two cylinders, with one of the sparks not doing anything since it's happening on the exhaust cycle\nset ignition_mode X"
|
ignitionMode = ""Single Coil" is for use on distributed ignition system. "Individual Coils" is to be used when you have one coil per cylinder (COP or similar). "Wasted Spark" means one coil is driving two spark plugs in two cylinders, with one of the sparks not doing anything since it's happening on the exhaust cycle\nset ignition_mode X"
|
||||||
ignitionOffset = "this value could be used to offset the whole ignition timing table by a constant"
|
ignitionOffset = "this value could be used to offset the whole ignition timing table by a constant"
|
||||||
timingMode = "Dynamic uses the timing map to decide the ignition timing, Static timing fixes the timing to the value set below (only use for checking static timing)."
|
timingMode = "Dynamic uses the timing map to decide the ignition timing, Static timing fixes the timing to the value set below (only use for checking static timing)."
|
||||||
fixedModeTiming = "This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing\nThis mode is useful when adjusting distributor location."
|
fixedModeTiming = "This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing\nThis mode is useful when adjusting distributor location."
|
||||||
|
@ -1285,7 +1285,7 @@ page = 1
|
||||||
verboseTriggerSynchDetails = "enable trigger_details"
|
verboseTriggerSynchDetails = "enable trigger_details"
|
||||||
twoWireBatchInjection = "This is needed if your coils are individually wired and you wish to use batch injection.\nenable two_wire_batch_injection"
|
twoWireBatchInjection = "This is needed if your coils are individually wired and you wish to use batch injection.\nenable two_wire_batch_injection"
|
||||||
useOnlyRisingEdgeForTrigger = "VR sensors are only precise on rising front\nenable trigger_only_front"
|
useOnlyRisingEdgeForTrigger = "VR sensors are only precise on rising front\nenable trigger_only_front"
|
||||||
twoWireBatchIgnition = "This is needed if your coils are individually wired (COP) and you wish to use batch ignition (wasted spark)."
|
twoWireBatchIgnition = "This is needed if your coils are individually wired (COP) and you wish to use batch ignition (Wasted Spark)."
|
||||||
useSeparateAdvanceForCranking = "This activates a separate advance table for cranking conditions, this allows cranking advance to be RPM dependant."
|
useSeparateAdvanceForCranking = "This activates a separate advance table for cranking conditions, this allows cranking advance to be RPM dependant."
|
||||||
useAdvanceCorrectionsForCranking = "This enables the various ignition corrections during cranking (IAT, CLT, FSIO and PID idle)."
|
useAdvanceCorrectionsForCranking = "This enables the various ignition corrections during cranking (IAT, CLT, FSIO and PID idle)."
|
||||||
useTPSAdvanceTable = "This flag allows to use TPS for ignition lookup while in Speed Density Fuel Mode"
|
useTPSAdvanceTable = "This flag allows to use TPS for ignition lookup while in Speed Density Fuel Mode"
|
||||||
|
@ -1491,8 +1491,8 @@ page = 1
|
||||||
internalMcuTemperature = scalar,S08, 11, "deg C", 1, 0
|
internalMcuTemperature = scalar,S08, 11, "deg C", 1, 0
|
||||||
coolant = scalar, S16, 12, "deg C",{1/100}, 0.0
|
coolant = scalar, S16, 12, "deg C",{1/100}, 0.0
|
||||||
intake = scalar, S16, 14, "deg C",{1/100}, 0.0
|
intake = scalar, S16, 14, "deg C",{1/100}, 0.0
|
||||||
; todo: aux1
|
auxt1 = scalar, S16, 16, "deg C",{1/100}, 0.0
|
||||||
; todo: aux2
|
auxt2 = scalar, S16, 18, "deg C",{1/100}, 0.0
|
||||||
|
|
||||||
|
|
||||||
; throttle, pedal
|
; throttle, pedal
|
||||||
|
@ -2227,6 +2227,8 @@ gaugeCategory = Sensors - Extra 1
|
||||||
internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0
|
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
|
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
|
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
|
gaugeCategory = Ignition
|
||||||
ignadvGauge = ignitionAdvance, "Ignition timing", "degrees", -100, 100, -999, -999, 999, 999, 1, 1
|
ignadvGauge = ignitionAdvance, "Ignition timing", "degrees", -100, 100, -999, -999, 999, 999, 1, 1
|
||||||
|
|
|
@ -33,12 +33,12 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
[MegaTune]
|
[MegaTune]
|
||||||
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
||||||
signature = "rusEFI 2020.07.26.mre_f7.667710833"
|
signature = "rusEFI 2020.07.28.mre_f7.302538475"
|
||||||
|
|
||||||
[TunerStudio]
|
[TunerStudio]
|
||||||
queryCommand = "S"
|
queryCommand = "S"
|
||||||
versionInfo = "V" ; firmwave version for title bar.
|
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.302538475" ; signature is expected to be 7 or more characters.
|
||||||
|
|
||||||
[Constants]
|
[Constants]
|
||||||
; new packet serial format with CRC
|
; new packet serial format with CRC
|
||||||
|
@ -76,7 +76,7 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
; see PAGE_0_SIZE in C source code
|
; see PAGE_0_SIZE in C source code
|
||||||
; CONFIG_DEFINITION_START
|
; 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 13:12:16 UTC 2020
|
||||||
|
|
||||||
pageSize = 20000
|
pageSize = 20000
|
||||||
page = 1
|
page = 1
|
||||||
|
@ -166,12 +166,12 @@ page = 1
|
||||||
cylinderBore = scalar, F32, 408, "mm", 1, 0, 0, 20000.0, 2
|
cylinderBore = scalar, F32, 408, "mm", 1, 0, 0, 20000.0, 2
|
||||||
sensorSnifferRpmThreshold = scalar, S32, 412, "RPM", 1, 0, 0,30000, 0
|
sensorSnifferRpmThreshold = scalar, S32, 412, "RPM", 1, 0, 0,30000, 0
|
||||||
rpmHardLimit = scalar, S32, 416, "rpm", 1, 0, 0, 20000.0, 2
|
rpmHardLimit = scalar, S32, 416, "rpm", 1, 0, 0, 20000.0, 2
|
||||||
fuelAlgorithm = bits, U32, 420, [0:2], "MAF", "Alpha-N/TPS", "INVALID", "SPEED DENSITY", "MAF Air Charge", "Alpha-N", "INVALID", "INVALID"
|
fuelAlgorithm = bits, U32, 420, [0:2], "MAF", "Alpha-N/TPS", "INVALID", "Speed Density", "MAF Air Charge", "Alpha-N", "INVALID", "INVALID"
|
||||||
crankingInjectionMode = bits, U32, 424, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point"
|
crankingInjectionMode = bits, U32, 424, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point"
|
||||||
injectionMode = bits, U32, 428, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point"
|
injectionMode = bits, U32, 428, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point"
|
||||||
extraInjectionOffset = scalar, F32, 432, "deg", 1, 0.0, -720, 720, 2
|
extraInjectionOffset = scalar, F32, 432, "deg", 1, 0.0, -720, 720, 2
|
||||||
crankingTimingAngle = scalar, F32, 436, "deg", 1, 0.0, -360, 360, 2
|
crankingTimingAngle = scalar, F32, 436, "deg", 1, 0.0, -360, 360, 2
|
||||||
ignitionMode = bits, U32, 440, [0:1], "One coil", "Individual Coils", "Wasted", "Two distributors"
|
ignitionMode = bits, U32, 440, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors"
|
||||||
ignitionOffset = scalar, F32, 444, "RPM", 1, 0, 0, 3000.0, 0
|
ignitionOffset = scalar, F32, 444, "RPM", 1, 0, 0, 3000.0, 0
|
||||||
timingMode = bits, U32, 448 [0:0], "dynamic", "fixed"
|
timingMode = bits, U32, 448 [0:0], "dynamic", "fixed"
|
||||||
fixedModeTiming = scalar, F32, 452, "RPM", 1, 0, 0, 3000.0, 0
|
fixedModeTiming = scalar, F32, 452, "RPM", 1, 0, 0, 3000.0, 0
|
||||||
|
@ -1203,7 +1203,7 @@ page = 1
|
||||||
injectionMode = "This is where the fuel injection type is defined: "Simultaneous" means all injectors will fire together at once. "Sequential" fires the injectors on a per cylinder basis, which requires individually wired injectors. "Batched" will fire the injectors in groups. If your injectors are individually wired you will also need to enable "Two wire batch emulation". \nset injection_mode X\nSee also twoWireBatchInjection"
|
injectionMode = "This is where the fuel injection type is defined: "Simultaneous" means all injectors will fire together at once. "Sequential" fires the injectors on a per cylinder basis, which requires individually wired injectors. "Batched" will fire the injectors in groups. If your injectors are individually wired you will also need to enable "Two wire batch emulation". \nset injection_mode X\nSee also twoWireBatchInjection"
|
||||||
extraInjectionOffset = "this is about deciding when the injector starts it's squirt\nSee also injectionPhase map\ntodo: do we need even need this since we have the map anyway?"
|
extraInjectionOffset = "this is about deciding when the injector starts it's squirt\nSee also injectionPhase map\ntodo: do we need even need this since we have the map anyway?"
|
||||||
crankingTimingAngle = "Ignition advance angle used during engine cranking, 5-10 degrees will work as a base setting for most engines.\nset cranking_timing_angle X"
|
crankingTimingAngle = "Ignition advance angle used during engine cranking, 5-10 degrees will work as a base setting for most engines.\nset cranking_timing_angle X"
|
||||||
ignitionMode = ""One Coil" is for use on distributed ignition system. "Individual Coils" is to be used when you have one coil per cylinder (COP or similar). "Wasted" means one coil is driving two spark plugs in two cylinders, with one of the sparks not doing anything since it's happening on the exhaust cycle\nset ignition_mode X"
|
ignitionMode = ""Single Coil" is for use on distributed ignition system. "Individual Coils" is to be used when you have one coil per cylinder (COP or similar). "Wasted Spark" means one coil is driving two spark plugs in two cylinders, with one of the sparks not doing anything since it's happening on the exhaust cycle\nset ignition_mode X"
|
||||||
ignitionOffset = "this value could be used to offset the whole ignition timing table by a constant"
|
ignitionOffset = "this value could be used to offset the whole ignition timing table by a constant"
|
||||||
timingMode = "Dynamic uses the timing map to decide the ignition timing, Static timing fixes the timing to the value set below (only use for checking static timing)."
|
timingMode = "Dynamic uses the timing map to decide the ignition timing, Static timing fixes the timing to the value set below (only use for checking static timing)."
|
||||||
fixedModeTiming = "This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing\nThis mode is useful when adjusting distributor location."
|
fixedModeTiming = "This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing\nThis mode is useful when adjusting distributor location."
|
||||||
|
@ -1285,7 +1285,7 @@ page = 1
|
||||||
verboseTriggerSynchDetails = "enable trigger_details"
|
verboseTriggerSynchDetails = "enable trigger_details"
|
||||||
twoWireBatchInjection = "This is needed if your coils are individually wired and you wish to use batch injection.\nenable two_wire_batch_injection"
|
twoWireBatchInjection = "This is needed if your coils are individually wired and you wish to use batch injection.\nenable two_wire_batch_injection"
|
||||||
useOnlyRisingEdgeForTrigger = "VR sensors are only precise on rising front\nenable trigger_only_front"
|
useOnlyRisingEdgeForTrigger = "VR sensors are only precise on rising front\nenable trigger_only_front"
|
||||||
twoWireBatchIgnition = "This is needed if your coils are individually wired (COP) and you wish to use batch ignition (wasted spark)."
|
twoWireBatchIgnition = "This is needed if your coils are individually wired (COP) and you wish to use batch ignition (Wasted Spark)."
|
||||||
useSeparateAdvanceForCranking = "This activates a separate advance table for cranking conditions, this allows cranking advance to be RPM dependant."
|
useSeparateAdvanceForCranking = "This activates a separate advance table for cranking conditions, this allows cranking advance to be RPM dependant."
|
||||||
useAdvanceCorrectionsForCranking = "This enables the various ignition corrections during cranking (IAT, CLT, FSIO and PID idle)."
|
useAdvanceCorrectionsForCranking = "This enables the various ignition corrections during cranking (IAT, CLT, FSIO and PID idle)."
|
||||||
useTPSAdvanceTable = "This flag allows to use TPS for ignition lookup while in Speed Density Fuel Mode"
|
useTPSAdvanceTable = "This flag allows to use TPS for ignition lookup while in Speed Density Fuel Mode"
|
||||||
|
@ -1491,8 +1491,8 @@ page = 1
|
||||||
internalMcuTemperature = scalar,S08, 11, "deg C", 1, 0
|
internalMcuTemperature = scalar,S08, 11, "deg C", 1, 0
|
||||||
coolant = scalar, S16, 12, "deg C",{1/100}, 0.0
|
coolant = scalar, S16, 12, "deg C",{1/100}, 0.0
|
||||||
intake = scalar, S16, 14, "deg C",{1/100}, 0.0
|
intake = scalar, S16, 14, "deg C",{1/100}, 0.0
|
||||||
; todo: aux1
|
auxt1 = scalar, S16, 16, "deg C",{1/100}, 0.0
|
||||||
; todo: aux2
|
auxt2 = scalar, S16, 18, "deg C",{1/100}, 0.0
|
||||||
|
|
||||||
|
|
||||||
; throttle, pedal
|
; throttle, pedal
|
||||||
|
@ -2227,6 +2227,8 @@ gaugeCategory = Sensors - Extra 1
|
||||||
internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0
|
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
|
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
|
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
|
gaugeCategory = Ignition
|
||||||
ignadvGauge = ignitionAdvance, "Ignition timing", "degrees", -100, 100, -999, -999, 999, 999, 1, 1
|
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]
|
[MegaTune]
|
||||||
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
||||||
signature = "rusEFI 2020.07.26.prometheus_405.2603514747"
|
signature = "rusEFI 2020.07.28.prometheus_405.2934591713"
|
||||||
|
|
||||||
[TunerStudio]
|
[TunerStudio]
|
||||||
queryCommand = "S"
|
queryCommand = "S"
|
||||||
versionInfo = "V" ; firmwave version for title bar.
|
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.2934591713" ; signature is expected to be 7 or more characters.
|
||||||
|
|
||||||
[Constants]
|
[Constants]
|
||||||
; new packet serial format with CRC
|
; new packet serial format with CRC
|
||||||
|
@ -76,7 +76,7 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
; see PAGE_0_SIZE in C source code
|
; see PAGE_0_SIZE in C source code
|
||||||
; CONFIG_DEFINITION_START
|
; 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 13:12:21 UTC 2020
|
||||||
|
|
||||||
pageSize = 20000
|
pageSize = 20000
|
||||||
page = 1
|
page = 1
|
||||||
|
@ -166,12 +166,12 @@ page = 1
|
||||||
cylinderBore = scalar, F32, 408, "mm", 1, 0, 0, 20000.0, 2
|
cylinderBore = scalar, F32, 408, "mm", 1, 0, 0, 20000.0, 2
|
||||||
sensorSnifferRpmThreshold = scalar, S32, 412, "RPM", 1, 0, 0,30000, 0
|
sensorSnifferRpmThreshold = scalar, S32, 412, "RPM", 1, 0, 0,30000, 0
|
||||||
rpmHardLimit = scalar, S32, 416, "rpm", 1, 0, 0, 20000.0, 2
|
rpmHardLimit = scalar, S32, 416, "rpm", 1, 0, 0, 20000.0, 2
|
||||||
fuelAlgorithm = bits, U32, 420, [0:2], "MAF", "Alpha-N/TPS", "INVALID", "SPEED DENSITY", "MAF Air Charge", "Alpha-N", "INVALID", "INVALID"
|
fuelAlgorithm = bits, U32, 420, [0:2], "MAF", "Alpha-N/TPS", "INVALID", "Speed Density", "MAF Air Charge", "Alpha-N", "INVALID", "INVALID"
|
||||||
crankingInjectionMode = bits, U32, 424, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point"
|
crankingInjectionMode = bits, U32, 424, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point"
|
||||||
injectionMode = bits, U32, 428, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point"
|
injectionMode = bits, U32, 428, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point"
|
||||||
extraInjectionOffset = scalar, F32, 432, "deg", 1, 0.0, -720, 720, 2
|
extraInjectionOffset = scalar, F32, 432, "deg", 1, 0.0, -720, 720, 2
|
||||||
crankingTimingAngle = scalar, F32, 436, "deg", 1, 0.0, -360, 360, 2
|
crankingTimingAngle = scalar, F32, 436, "deg", 1, 0.0, -360, 360, 2
|
||||||
ignitionMode = bits, U32, 440, [0:1], "One coil", "Individual Coils", "Wasted", "Two distributors"
|
ignitionMode = bits, U32, 440, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors"
|
||||||
ignitionOffset = scalar, F32, 444, "RPM", 1, 0, 0, 3000.0, 0
|
ignitionOffset = scalar, F32, 444, "RPM", 1, 0, 0, 3000.0, 0
|
||||||
timingMode = bits, U32, 448 [0:0], "dynamic", "fixed"
|
timingMode = bits, U32, 448 [0:0], "dynamic", "fixed"
|
||||||
fixedModeTiming = scalar, F32, 452, "RPM", 1, 0, 0, 3000.0, 0
|
fixedModeTiming = scalar, F32, 452, "RPM", 1, 0, 0, 3000.0, 0
|
||||||
|
@ -1203,7 +1203,7 @@ page = 1
|
||||||
injectionMode = "This is where the fuel injection type is defined: "Simultaneous" means all injectors will fire together at once. "Sequential" fires the injectors on a per cylinder basis, which requires individually wired injectors. "Batched" will fire the injectors in groups. If your injectors are individually wired you will also need to enable "Two wire batch emulation". \nset injection_mode X\nSee also twoWireBatchInjection"
|
injectionMode = "This is where the fuel injection type is defined: "Simultaneous" means all injectors will fire together at once. "Sequential" fires the injectors on a per cylinder basis, which requires individually wired injectors. "Batched" will fire the injectors in groups. If your injectors are individually wired you will also need to enable "Two wire batch emulation". \nset injection_mode X\nSee also twoWireBatchInjection"
|
||||||
extraInjectionOffset = "this is about deciding when the injector starts it's squirt\nSee also injectionPhase map\ntodo: do we need even need this since we have the map anyway?"
|
extraInjectionOffset = "this is about deciding when the injector starts it's squirt\nSee also injectionPhase map\ntodo: do we need even need this since we have the map anyway?"
|
||||||
crankingTimingAngle = "Ignition advance angle used during engine cranking, 5-10 degrees will work as a base setting for most engines.\nset cranking_timing_angle X"
|
crankingTimingAngle = "Ignition advance angle used during engine cranking, 5-10 degrees will work as a base setting for most engines.\nset cranking_timing_angle X"
|
||||||
ignitionMode = ""One Coil" is for use on distributed ignition system. "Individual Coils" is to be used when you have one coil per cylinder (COP or similar). "Wasted" means one coil is driving two spark plugs in two cylinders, with one of the sparks not doing anything since it's happening on the exhaust cycle\nset ignition_mode X"
|
ignitionMode = ""Single Coil" is for use on distributed ignition system. "Individual Coils" is to be used when you have one coil per cylinder (COP or similar). "Wasted Spark" means one coil is driving two spark plugs in two cylinders, with one of the sparks not doing anything since it's happening on the exhaust cycle\nset ignition_mode X"
|
||||||
ignitionOffset = "this value could be used to offset the whole ignition timing table by a constant"
|
ignitionOffset = "this value could be used to offset the whole ignition timing table by a constant"
|
||||||
timingMode = "Dynamic uses the timing map to decide the ignition timing, Static timing fixes the timing to the value set below (only use for checking static timing)."
|
timingMode = "Dynamic uses the timing map to decide the ignition timing, Static timing fixes the timing to the value set below (only use for checking static timing)."
|
||||||
fixedModeTiming = "This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing\nThis mode is useful when adjusting distributor location."
|
fixedModeTiming = "This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing\nThis mode is useful when adjusting distributor location."
|
||||||
|
@ -1285,7 +1285,7 @@ page = 1
|
||||||
verboseTriggerSynchDetails = "enable trigger_details"
|
verboseTriggerSynchDetails = "enable trigger_details"
|
||||||
twoWireBatchInjection = "This is needed if your coils are individually wired and you wish to use batch injection.\nenable two_wire_batch_injection"
|
twoWireBatchInjection = "This is needed if your coils are individually wired and you wish to use batch injection.\nenable two_wire_batch_injection"
|
||||||
useOnlyRisingEdgeForTrigger = "VR sensors are only precise on rising front\nenable trigger_only_front"
|
useOnlyRisingEdgeForTrigger = "VR sensors are only precise on rising front\nenable trigger_only_front"
|
||||||
twoWireBatchIgnition = "This is needed if your coils are individually wired (COP) and you wish to use batch ignition (wasted spark)."
|
twoWireBatchIgnition = "This is needed if your coils are individually wired (COP) and you wish to use batch ignition (Wasted Spark)."
|
||||||
useSeparateAdvanceForCranking = "This activates a separate advance table for cranking conditions, this allows cranking advance to be RPM dependant."
|
useSeparateAdvanceForCranking = "This activates a separate advance table for cranking conditions, this allows cranking advance to be RPM dependant."
|
||||||
useAdvanceCorrectionsForCranking = "This enables the various ignition corrections during cranking (IAT, CLT, FSIO and PID idle)."
|
useAdvanceCorrectionsForCranking = "This enables the various ignition corrections during cranking (IAT, CLT, FSIO and PID idle)."
|
||||||
useTPSAdvanceTable = "This flag allows to use TPS for ignition lookup while in Speed Density Fuel Mode"
|
useTPSAdvanceTable = "This flag allows to use TPS for ignition lookup while in Speed Density Fuel Mode"
|
||||||
|
@ -1491,8 +1491,8 @@ page = 1
|
||||||
internalMcuTemperature = scalar,S08, 11, "deg C", 1, 0
|
internalMcuTemperature = scalar,S08, 11, "deg C", 1, 0
|
||||||
coolant = scalar, S16, 12, "deg C",{1/100}, 0.0
|
coolant = scalar, S16, 12, "deg C",{1/100}, 0.0
|
||||||
intake = scalar, S16, 14, "deg C",{1/100}, 0.0
|
intake = scalar, S16, 14, "deg C",{1/100}, 0.0
|
||||||
; todo: aux1
|
auxt1 = scalar, S16, 16, "deg C",{1/100}, 0.0
|
||||||
; todo: aux2
|
auxt2 = scalar, S16, 18, "deg C",{1/100}, 0.0
|
||||||
|
|
||||||
|
|
||||||
; throttle, pedal
|
; throttle, pedal
|
||||||
|
@ -2227,6 +2227,8 @@ gaugeCategory = Sensors - Extra 1
|
||||||
internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0
|
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
|
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
|
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
|
gaugeCategory = Ignition
|
||||||
ignadvGauge = ignitionAdvance, "Ignition timing", "degrees", -100, 100, -999, -999, 999, 999, 1, 1
|
ignadvGauge = ignitionAdvance, "Ignition timing", "degrees", -100, 100, -999, -999, 999, 999, 1, 1
|
||||||
|
|
|
@ -33,12 +33,12 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
[MegaTune]
|
[MegaTune]
|
||||||
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
||||||
signature = "rusEFI 2020.07.26.prometheus_469.2603514747"
|
signature = "rusEFI 2020.07.28.prometheus_469.2934591713"
|
||||||
|
|
||||||
[TunerStudio]
|
[TunerStudio]
|
||||||
queryCommand = "S"
|
queryCommand = "S"
|
||||||
versionInfo = "V" ; firmwave version for title bar.
|
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.2934591713" ; signature is expected to be 7 or more characters.
|
||||||
|
|
||||||
[Constants]
|
[Constants]
|
||||||
; new packet serial format with CRC
|
; new packet serial format with CRC
|
||||||
|
@ -76,7 +76,7 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
; see PAGE_0_SIZE in C source code
|
; see PAGE_0_SIZE in C source code
|
||||||
; CONFIG_DEFINITION_START
|
; 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 13:12:20 UTC 2020
|
||||||
|
|
||||||
pageSize = 20000
|
pageSize = 20000
|
||||||
page = 1
|
page = 1
|
||||||
|
@ -166,12 +166,12 @@ page = 1
|
||||||
cylinderBore = scalar, F32, 408, "mm", 1, 0, 0, 20000.0, 2
|
cylinderBore = scalar, F32, 408, "mm", 1, 0, 0, 20000.0, 2
|
||||||
sensorSnifferRpmThreshold = scalar, S32, 412, "RPM", 1, 0, 0,30000, 0
|
sensorSnifferRpmThreshold = scalar, S32, 412, "RPM", 1, 0, 0,30000, 0
|
||||||
rpmHardLimit = scalar, S32, 416, "rpm", 1, 0, 0, 20000.0, 2
|
rpmHardLimit = scalar, S32, 416, "rpm", 1, 0, 0, 20000.0, 2
|
||||||
fuelAlgorithm = bits, U32, 420, [0:2], "MAF", "Alpha-N/TPS", "INVALID", "SPEED DENSITY", "MAF Air Charge", "Alpha-N", "INVALID", "INVALID"
|
fuelAlgorithm = bits, U32, 420, [0:2], "MAF", "Alpha-N/TPS", "INVALID", "Speed Density", "MAF Air Charge", "Alpha-N", "INVALID", "INVALID"
|
||||||
crankingInjectionMode = bits, U32, 424, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point"
|
crankingInjectionMode = bits, U32, 424, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point"
|
||||||
injectionMode = bits, U32, 428, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point"
|
injectionMode = bits, U32, 428, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point"
|
||||||
extraInjectionOffset = scalar, F32, 432, "deg", 1, 0.0, -720, 720, 2
|
extraInjectionOffset = scalar, F32, 432, "deg", 1, 0.0, -720, 720, 2
|
||||||
crankingTimingAngle = scalar, F32, 436, "deg", 1, 0.0, -360, 360, 2
|
crankingTimingAngle = scalar, F32, 436, "deg", 1, 0.0, -360, 360, 2
|
||||||
ignitionMode = bits, U32, 440, [0:1], "One coil", "Individual Coils", "Wasted", "Two distributors"
|
ignitionMode = bits, U32, 440, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors"
|
||||||
ignitionOffset = scalar, F32, 444, "RPM", 1, 0, 0, 3000.0, 0
|
ignitionOffset = scalar, F32, 444, "RPM", 1, 0, 0, 3000.0, 0
|
||||||
timingMode = bits, U32, 448 [0:0], "dynamic", "fixed"
|
timingMode = bits, U32, 448 [0:0], "dynamic", "fixed"
|
||||||
fixedModeTiming = scalar, F32, 452, "RPM", 1, 0, 0, 3000.0, 0
|
fixedModeTiming = scalar, F32, 452, "RPM", 1, 0, 0, 3000.0, 0
|
||||||
|
@ -1203,7 +1203,7 @@ page = 1
|
||||||
injectionMode = "This is where the fuel injection type is defined: "Simultaneous" means all injectors will fire together at once. "Sequential" fires the injectors on a per cylinder basis, which requires individually wired injectors. "Batched" will fire the injectors in groups. If your injectors are individually wired you will also need to enable "Two wire batch emulation". \nset injection_mode X\nSee also twoWireBatchInjection"
|
injectionMode = "This is where the fuel injection type is defined: "Simultaneous" means all injectors will fire together at once. "Sequential" fires the injectors on a per cylinder basis, which requires individually wired injectors. "Batched" will fire the injectors in groups. If your injectors are individually wired you will also need to enable "Two wire batch emulation". \nset injection_mode X\nSee also twoWireBatchInjection"
|
||||||
extraInjectionOffset = "this is about deciding when the injector starts it's squirt\nSee also injectionPhase map\ntodo: do we need even need this since we have the map anyway?"
|
extraInjectionOffset = "this is about deciding when the injector starts it's squirt\nSee also injectionPhase map\ntodo: do we need even need this since we have the map anyway?"
|
||||||
crankingTimingAngle = "Ignition advance angle used during engine cranking, 5-10 degrees will work as a base setting for most engines.\nset cranking_timing_angle X"
|
crankingTimingAngle = "Ignition advance angle used during engine cranking, 5-10 degrees will work as a base setting for most engines.\nset cranking_timing_angle X"
|
||||||
ignitionMode = ""One Coil" is for use on distributed ignition system. "Individual Coils" is to be used when you have one coil per cylinder (COP or similar). "Wasted" means one coil is driving two spark plugs in two cylinders, with one of the sparks not doing anything since it's happening on the exhaust cycle\nset ignition_mode X"
|
ignitionMode = ""Single Coil" is for use on distributed ignition system. "Individual Coils" is to be used when you have one coil per cylinder (COP or similar). "Wasted Spark" means one coil is driving two spark plugs in two cylinders, with one of the sparks not doing anything since it's happening on the exhaust cycle\nset ignition_mode X"
|
||||||
ignitionOffset = "this value could be used to offset the whole ignition timing table by a constant"
|
ignitionOffset = "this value could be used to offset the whole ignition timing table by a constant"
|
||||||
timingMode = "Dynamic uses the timing map to decide the ignition timing, Static timing fixes the timing to the value set below (only use for checking static timing)."
|
timingMode = "Dynamic uses the timing map to decide the ignition timing, Static timing fixes the timing to the value set below (only use for checking static timing)."
|
||||||
fixedModeTiming = "This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing\nThis mode is useful when adjusting distributor location."
|
fixedModeTiming = "This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing\nThis mode is useful when adjusting distributor location."
|
||||||
|
@ -1285,7 +1285,7 @@ page = 1
|
||||||
verboseTriggerSynchDetails = "enable trigger_details"
|
verboseTriggerSynchDetails = "enable trigger_details"
|
||||||
twoWireBatchInjection = "This is needed if your coils are individually wired and you wish to use batch injection.\nenable two_wire_batch_injection"
|
twoWireBatchInjection = "This is needed if your coils are individually wired and you wish to use batch injection.\nenable two_wire_batch_injection"
|
||||||
useOnlyRisingEdgeForTrigger = "VR sensors are only precise on rising front\nenable trigger_only_front"
|
useOnlyRisingEdgeForTrigger = "VR sensors are only precise on rising front\nenable trigger_only_front"
|
||||||
twoWireBatchIgnition = "This is needed if your coils are individually wired (COP) and you wish to use batch ignition (wasted spark)."
|
twoWireBatchIgnition = "This is needed if your coils are individually wired (COP) and you wish to use batch ignition (Wasted Spark)."
|
||||||
useSeparateAdvanceForCranking = "This activates a separate advance table for cranking conditions, this allows cranking advance to be RPM dependant."
|
useSeparateAdvanceForCranking = "This activates a separate advance table for cranking conditions, this allows cranking advance to be RPM dependant."
|
||||||
useAdvanceCorrectionsForCranking = "This enables the various ignition corrections during cranking (IAT, CLT, FSIO and PID idle)."
|
useAdvanceCorrectionsForCranking = "This enables the various ignition corrections during cranking (IAT, CLT, FSIO and PID idle)."
|
||||||
useTPSAdvanceTable = "This flag allows to use TPS for ignition lookup while in Speed Density Fuel Mode"
|
useTPSAdvanceTable = "This flag allows to use TPS for ignition lookup while in Speed Density Fuel Mode"
|
||||||
|
@ -1491,8 +1491,8 @@ page = 1
|
||||||
internalMcuTemperature = scalar,S08, 11, "deg C", 1, 0
|
internalMcuTemperature = scalar,S08, 11, "deg C", 1, 0
|
||||||
coolant = scalar, S16, 12, "deg C",{1/100}, 0.0
|
coolant = scalar, S16, 12, "deg C",{1/100}, 0.0
|
||||||
intake = scalar, S16, 14, "deg C",{1/100}, 0.0
|
intake = scalar, S16, 14, "deg C",{1/100}, 0.0
|
||||||
; todo: aux1
|
auxt1 = scalar, S16, 16, "deg C",{1/100}, 0.0
|
||||||
; todo: aux2
|
auxt2 = scalar, S16, 18, "deg C",{1/100}, 0.0
|
||||||
|
|
||||||
|
|
||||||
; throttle, pedal
|
; throttle, pedal
|
||||||
|
@ -2227,6 +2227,8 @@ gaugeCategory = Sensors - Extra 1
|
||||||
internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0
|
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
|
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
|
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
|
gaugeCategory = Ignition
|
||||||
ignadvGauge = ignitionAdvance, "Ignition timing", "degrees", -100, 100, -999, -999, 999, 999, 1, 1
|
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]
|
[MegaTune]
|
||||||
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
||||||
signature = "rusEFI 2020.07.26.proteus_f4.3819164208"
|
signature = "rusEFI 2020.07.28.proteus_f4.3597138346"
|
||||||
|
|
||||||
[TunerStudio]
|
[TunerStudio]
|
||||||
queryCommand = "S"
|
queryCommand = "S"
|
||||||
versionInfo = "V" ; firmwave version for title bar.
|
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.3597138346" ; signature is expected to be 7 or more characters.
|
||||||
|
|
||||||
[Constants]
|
[Constants]
|
||||||
; new packet serial format with CRC
|
; new packet serial format with CRC
|
||||||
|
@ -76,7 +76,7 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
; see PAGE_0_SIZE in C source code
|
; see PAGE_0_SIZE in C source code
|
||||||
; CONFIG_DEFINITION_START
|
; 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 13:12:23 UTC 2020
|
||||||
|
|
||||||
pageSize = 20000
|
pageSize = 20000
|
||||||
page = 1
|
page = 1
|
||||||
|
@ -166,12 +166,12 @@ page = 1
|
||||||
cylinderBore = scalar, F32, 408, "mm", 1, 0, 0, 20000.0, 2
|
cylinderBore = scalar, F32, 408, "mm", 1, 0, 0, 20000.0, 2
|
||||||
sensorSnifferRpmThreshold = scalar, S32, 412, "RPM", 1, 0, 0,30000, 0
|
sensorSnifferRpmThreshold = scalar, S32, 412, "RPM", 1, 0, 0,30000, 0
|
||||||
rpmHardLimit = scalar, S32, 416, "rpm", 1, 0, 0, 20000.0, 2
|
rpmHardLimit = scalar, S32, 416, "rpm", 1, 0, 0, 20000.0, 2
|
||||||
fuelAlgorithm = bits, U32, 420, [0:2], "MAF", "Alpha-N/TPS", "INVALID", "SPEED DENSITY", "MAF Air Charge", "Alpha-N", "INVALID", "INVALID"
|
fuelAlgorithm = bits, U32, 420, [0:2], "MAF", "Alpha-N/TPS", "INVALID", "Speed Density", "MAF Air Charge", "Alpha-N", "INVALID", "INVALID"
|
||||||
crankingInjectionMode = bits, U32, 424, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point"
|
crankingInjectionMode = bits, U32, 424, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point"
|
||||||
injectionMode = bits, U32, 428, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point"
|
injectionMode = bits, U32, 428, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point"
|
||||||
extraInjectionOffset = scalar, F32, 432, "deg", 1, 0.0, -720, 720, 2
|
extraInjectionOffset = scalar, F32, 432, "deg", 1, 0.0, -720, 720, 2
|
||||||
crankingTimingAngle = scalar, F32, 436, "deg", 1, 0.0, -360, 360, 2
|
crankingTimingAngle = scalar, F32, 436, "deg", 1, 0.0, -360, 360, 2
|
||||||
ignitionMode = bits, U32, 440, [0:1], "One coil", "Individual Coils", "Wasted", "Two distributors"
|
ignitionMode = bits, U32, 440, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors"
|
||||||
ignitionOffset = scalar, F32, 444, "RPM", 1, 0, 0, 3000.0, 0
|
ignitionOffset = scalar, F32, 444, "RPM", 1, 0, 0, 3000.0, 0
|
||||||
timingMode = bits, U32, 448 [0:0], "dynamic", "fixed"
|
timingMode = bits, U32, 448 [0:0], "dynamic", "fixed"
|
||||||
fixedModeTiming = scalar, F32, 452, "RPM", 1, 0, 0, 3000.0, 0
|
fixedModeTiming = scalar, F32, 452, "RPM", 1, 0, 0, 3000.0, 0
|
||||||
|
@ -1203,7 +1203,7 @@ page = 1
|
||||||
injectionMode = "This is where the fuel injection type is defined: "Simultaneous" means all injectors will fire together at once. "Sequential" fires the injectors on a per cylinder basis, which requires individually wired injectors. "Batched" will fire the injectors in groups. If your injectors are individually wired you will also need to enable "Two wire batch emulation". \nset injection_mode X\nSee also twoWireBatchInjection"
|
injectionMode = "This is where the fuel injection type is defined: "Simultaneous" means all injectors will fire together at once. "Sequential" fires the injectors on a per cylinder basis, which requires individually wired injectors. "Batched" will fire the injectors in groups. If your injectors are individually wired you will also need to enable "Two wire batch emulation". \nset injection_mode X\nSee also twoWireBatchInjection"
|
||||||
extraInjectionOffset = "this is about deciding when the injector starts it's squirt\nSee also injectionPhase map\ntodo: do we need even need this since we have the map anyway?"
|
extraInjectionOffset = "this is about deciding when the injector starts it's squirt\nSee also injectionPhase map\ntodo: do we need even need this since we have the map anyway?"
|
||||||
crankingTimingAngle = "Ignition advance angle used during engine cranking, 5-10 degrees will work as a base setting for most engines.\nset cranking_timing_angle X"
|
crankingTimingAngle = "Ignition advance angle used during engine cranking, 5-10 degrees will work as a base setting for most engines.\nset cranking_timing_angle X"
|
||||||
ignitionMode = ""One Coil" is for use on distributed ignition system. "Individual Coils" is to be used when you have one coil per cylinder (COP or similar). "Wasted" means one coil is driving two spark plugs in two cylinders, with one of the sparks not doing anything since it's happening on the exhaust cycle\nset ignition_mode X"
|
ignitionMode = ""Single Coil" is for use on distributed ignition system. "Individual Coils" is to be used when you have one coil per cylinder (COP or similar). "Wasted Spark" means one coil is driving two spark plugs in two cylinders, with one of the sparks not doing anything since it's happening on the exhaust cycle\nset ignition_mode X"
|
||||||
ignitionOffset = "this value could be used to offset the whole ignition timing table by a constant"
|
ignitionOffset = "this value could be used to offset the whole ignition timing table by a constant"
|
||||||
timingMode = "Dynamic uses the timing map to decide the ignition timing, Static timing fixes the timing to the value set below (only use for checking static timing)."
|
timingMode = "Dynamic uses the timing map to decide the ignition timing, Static timing fixes the timing to the value set below (only use for checking static timing)."
|
||||||
fixedModeTiming = "This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing\nThis mode is useful when adjusting distributor location."
|
fixedModeTiming = "This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing\nThis mode is useful when adjusting distributor location."
|
||||||
|
@ -1285,7 +1285,7 @@ page = 1
|
||||||
verboseTriggerSynchDetails = "enable trigger_details"
|
verboseTriggerSynchDetails = "enable trigger_details"
|
||||||
twoWireBatchInjection = "This is needed if your coils are individually wired and you wish to use batch injection.\nenable two_wire_batch_injection"
|
twoWireBatchInjection = "This is needed if your coils are individually wired and you wish to use batch injection.\nenable two_wire_batch_injection"
|
||||||
useOnlyRisingEdgeForTrigger = "VR sensors are only precise on rising front\nenable trigger_only_front"
|
useOnlyRisingEdgeForTrigger = "VR sensors are only precise on rising front\nenable trigger_only_front"
|
||||||
twoWireBatchIgnition = "This is needed if your coils are individually wired (COP) and you wish to use batch ignition (wasted spark)."
|
twoWireBatchIgnition = "This is needed if your coils are individually wired (COP) and you wish to use batch ignition (Wasted Spark)."
|
||||||
useSeparateAdvanceForCranking = "This activates a separate advance table for cranking conditions, this allows cranking advance to be RPM dependant."
|
useSeparateAdvanceForCranking = "This activates a separate advance table for cranking conditions, this allows cranking advance to be RPM dependant."
|
||||||
useAdvanceCorrectionsForCranking = "This enables the various ignition corrections during cranking (IAT, CLT, FSIO and PID idle)."
|
useAdvanceCorrectionsForCranking = "This enables the various ignition corrections during cranking (IAT, CLT, FSIO and PID idle)."
|
||||||
useTPSAdvanceTable = "This flag allows to use TPS for ignition lookup while in Speed Density Fuel Mode"
|
useTPSAdvanceTable = "This flag allows to use TPS for ignition lookup while in Speed Density Fuel Mode"
|
||||||
|
@ -1491,8 +1491,8 @@ page = 1
|
||||||
internalMcuTemperature = scalar,S08, 11, "deg C", 1, 0
|
internalMcuTemperature = scalar,S08, 11, "deg C", 1, 0
|
||||||
coolant = scalar, S16, 12, "deg C",{1/100}, 0.0
|
coolant = scalar, S16, 12, "deg C",{1/100}, 0.0
|
||||||
intake = scalar, S16, 14, "deg C",{1/100}, 0.0
|
intake = scalar, S16, 14, "deg C",{1/100}, 0.0
|
||||||
; todo: aux1
|
auxt1 = scalar, S16, 16, "deg C",{1/100}, 0.0
|
||||||
; todo: aux2
|
auxt2 = scalar, S16, 18, "deg C",{1/100}, 0.0
|
||||||
|
|
||||||
|
|
||||||
; throttle, pedal
|
; throttle, pedal
|
||||||
|
@ -2227,6 +2227,8 @@ gaugeCategory = Sensors - Extra 1
|
||||||
internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0
|
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
|
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
|
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
|
gaugeCategory = Ignition
|
||||||
ignadvGauge = ignitionAdvance, "Ignition timing", "degrees", -100, 100, -999, -999, 999, 999, 1, 1
|
ignadvGauge = ignitionAdvance, "Ignition timing", "degrees", -100, 100, -999, -999, 999, 999, 1, 1
|
||||||
|
|
|
@ -33,12 +33,12 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
[MegaTune]
|
[MegaTune]
|
||||||
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
||||||
signature = "rusEFI 2020.07.26.proteus_f7.3819164208"
|
signature = "rusEFI 2020.07.28.proteus_f7.3597138346"
|
||||||
|
|
||||||
[TunerStudio]
|
[TunerStudio]
|
||||||
queryCommand = "S"
|
queryCommand = "S"
|
||||||
versionInfo = "V" ; firmwave version for title bar.
|
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.3597138346" ; signature is expected to be 7 or more characters.
|
||||||
|
|
||||||
[Constants]
|
[Constants]
|
||||||
; new packet serial format with CRC
|
; new packet serial format with CRC
|
||||||
|
@ -76,7 +76,7 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
; see PAGE_0_SIZE in C source code
|
; see PAGE_0_SIZE in C source code
|
||||||
; CONFIG_DEFINITION_START
|
; 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 13:12:22 UTC 2020
|
||||||
|
|
||||||
pageSize = 20000
|
pageSize = 20000
|
||||||
page = 1
|
page = 1
|
||||||
|
@ -166,12 +166,12 @@ page = 1
|
||||||
cylinderBore = scalar, F32, 408, "mm", 1, 0, 0, 20000.0, 2
|
cylinderBore = scalar, F32, 408, "mm", 1, 0, 0, 20000.0, 2
|
||||||
sensorSnifferRpmThreshold = scalar, S32, 412, "RPM", 1, 0, 0,30000, 0
|
sensorSnifferRpmThreshold = scalar, S32, 412, "RPM", 1, 0, 0,30000, 0
|
||||||
rpmHardLimit = scalar, S32, 416, "rpm", 1, 0, 0, 20000.0, 2
|
rpmHardLimit = scalar, S32, 416, "rpm", 1, 0, 0, 20000.0, 2
|
||||||
fuelAlgorithm = bits, U32, 420, [0:2], "MAF", "Alpha-N/TPS", "INVALID", "SPEED DENSITY", "MAF Air Charge", "Alpha-N", "INVALID", "INVALID"
|
fuelAlgorithm = bits, U32, 420, [0:2], "MAF", "Alpha-N/TPS", "INVALID", "Speed Density", "MAF Air Charge", "Alpha-N", "INVALID", "INVALID"
|
||||||
crankingInjectionMode = bits, U32, 424, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point"
|
crankingInjectionMode = bits, U32, 424, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point"
|
||||||
injectionMode = bits, U32, 428, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point"
|
injectionMode = bits, U32, 428, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point"
|
||||||
extraInjectionOffset = scalar, F32, 432, "deg", 1, 0.0, -720, 720, 2
|
extraInjectionOffset = scalar, F32, 432, "deg", 1, 0.0, -720, 720, 2
|
||||||
crankingTimingAngle = scalar, F32, 436, "deg", 1, 0.0, -360, 360, 2
|
crankingTimingAngle = scalar, F32, 436, "deg", 1, 0.0, -360, 360, 2
|
||||||
ignitionMode = bits, U32, 440, [0:1], "One coil", "Individual Coils", "Wasted", "Two distributors"
|
ignitionMode = bits, U32, 440, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors"
|
||||||
ignitionOffset = scalar, F32, 444, "RPM", 1, 0, 0, 3000.0, 0
|
ignitionOffset = scalar, F32, 444, "RPM", 1, 0, 0, 3000.0, 0
|
||||||
timingMode = bits, U32, 448 [0:0], "dynamic", "fixed"
|
timingMode = bits, U32, 448 [0:0], "dynamic", "fixed"
|
||||||
fixedModeTiming = scalar, F32, 452, "RPM", 1, 0, 0, 3000.0, 0
|
fixedModeTiming = scalar, F32, 452, "RPM", 1, 0, 0, 3000.0, 0
|
||||||
|
@ -1203,7 +1203,7 @@ page = 1
|
||||||
injectionMode = "This is where the fuel injection type is defined: "Simultaneous" means all injectors will fire together at once. "Sequential" fires the injectors on a per cylinder basis, which requires individually wired injectors. "Batched" will fire the injectors in groups. If your injectors are individually wired you will also need to enable "Two wire batch emulation". \nset injection_mode X\nSee also twoWireBatchInjection"
|
injectionMode = "This is where the fuel injection type is defined: "Simultaneous" means all injectors will fire together at once. "Sequential" fires the injectors on a per cylinder basis, which requires individually wired injectors. "Batched" will fire the injectors in groups. If your injectors are individually wired you will also need to enable "Two wire batch emulation". \nset injection_mode X\nSee also twoWireBatchInjection"
|
||||||
extraInjectionOffset = "this is about deciding when the injector starts it's squirt\nSee also injectionPhase map\ntodo: do we need even need this since we have the map anyway?"
|
extraInjectionOffset = "this is about deciding when the injector starts it's squirt\nSee also injectionPhase map\ntodo: do we need even need this since we have the map anyway?"
|
||||||
crankingTimingAngle = "Ignition advance angle used during engine cranking, 5-10 degrees will work as a base setting for most engines.\nset cranking_timing_angle X"
|
crankingTimingAngle = "Ignition advance angle used during engine cranking, 5-10 degrees will work as a base setting for most engines.\nset cranking_timing_angle X"
|
||||||
ignitionMode = ""One Coil" is for use on distributed ignition system. "Individual Coils" is to be used when you have one coil per cylinder (COP or similar). "Wasted" means one coil is driving two spark plugs in two cylinders, with one of the sparks not doing anything since it's happening on the exhaust cycle\nset ignition_mode X"
|
ignitionMode = ""Single Coil" is for use on distributed ignition system. "Individual Coils" is to be used when you have one coil per cylinder (COP or similar). "Wasted Spark" means one coil is driving two spark plugs in two cylinders, with one of the sparks not doing anything since it's happening on the exhaust cycle\nset ignition_mode X"
|
||||||
ignitionOffset = "this value could be used to offset the whole ignition timing table by a constant"
|
ignitionOffset = "this value could be used to offset the whole ignition timing table by a constant"
|
||||||
timingMode = "Dynamic uses the timing map to decide the ignition timing, Static timing fixes the timing to the value set below (only use for checking static timing)."
|
timingMode = "Dynamic uses the timing map to decide the ignition timing, Static timing fixes the timing to the value set below (only use for checking static timing)."
|
||||||
fixedModeTiming = "This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing\nThis mode is useful when adjusting distributor location."
|
fixedModeTiming = "This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing\nThis mode is useful when adjusting distributor location."
|
||||||
|
@ -1285,7 +1285,7 @@ page = 1
|
||||||
verboseTriggerSynchDetails = "enable trigger_details"
|
verboseTriggerSynchDetails = "enable trigger_details"
|
||||||
twoWireBatchInjection = "This is needed if your coils are individually wired and you wish to use batch injection.\nenable two_wire_batch_injection"
|
twoWireBatchInjection = "This is needed if your coils are individually wired and you wish to use batch injection.\nenable two_wire_batch_injection"
|
||||||
useOnlyRisingEdgeForTrigger = "VR sensors are only precise on rising front\nenable trigger_only_front"
|
useOnlyRisingEdgeForTrigger = "VR sensors are only precise on rising front\nenable trigger_only_front"
|
||||||
twoWireBatchIgnition = "This is needed if your coils are individually wired (COP) and you wish to use batch ignition (wasted spark)."
|
twoWireBatchIgnition = "This is needed if your coils are individually wired (COP) and you wish to use batch ignition (Wasted Spark)."
|
||||||
useSeparateAdvanceForCranking = "This activates a separate advance table for cranking conditions, this allows cranking advance to be RPM dependant."
|
useSeparateAdvanceForCranking = "This activates a separate advance table for cranking conditions, this allows cranking advance to be RPM dependant."
|
||||||
useAdvanceCorrectionsForCranking = "This enables the various ignition corrections during cranking (IAT, CLT, FSIO and PID idle)."
|
useAdvanceCorrectionsForCranking = "This enables the various ignition corrections during cranking (IAT, CLT, FSIO and PID idle)."
|
||||||
useTPSAdvanceTable = "This flag allows to use TPS for ignition lookup while in Speed Density Fuel Mode"
|
useTPSAdvanceTable = "This flag allows to use TPS for ignition lookup while in Speed Density Fuel Mode"
|
||||||
|
@ -1491,8 +1491,8 @@ page = 1
|
||||||
internalMcuTemperature = scalar,S08, 11, "deg C", 1, 0
|
internalMcuTemperature = scalar,S08, 11, "deg C", 1, 0
|
||||||
coolant = scalar, S16, 12, "deg C",{1/100}, 0.0
|
coolant = scalar, S16, 12, "deg C",{1/100}, 0.0
|
||||||
intake = scalar, S16, 14, "deg C",{1/100}, 0.0
|
intake = scalar, S16, 14, "deg C",{1/100}, 0.0
|
||||||
; todo: aux1
|
auxt1 = scalar, S16, 16, "deg C",{1/100}, 0.0
|
||||||
; todo: aux2
|
auxt2 = scalar, S16, 18, "deg C",{1/100}, 0.0
|
||||||
|
|
||||||
|
|
||||||
; throttle, pedal
|
; throttle, pedal
|
||||||
|
@ -2227,6 +2227,8 @@ gaugeCategory = Sensors - Extra 1
|
||||||
internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0
|
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
|
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
|
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
|
gaugeCategory = Ignition
|
||||||
ignadvGauge = ignitionAdvance, "Ignition timing", "degrees", -100, 100, -999, -999, 999, 999, 1, 1
|
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
|
internalMcuTemperature = scalar,S08, 11, "deg C", 1, 0
|
||||||
coolant = scalar, S16, 12, "deg C",{1/@@PACK_MULT_TEMPERATURE@@}, 0.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
|
intake = scalar, S16, 14, "deg C",{1/@@PACK_MULT_TEMPERATURE@@}, 0.0
|
||||||
; todo: aux1
|
auxt1 = scalar, S16, 16, "deg C",{1/@@PACK_MULT_TEMPERATURE@@}, 0.0
|
||||||
; todo: aux2
|
auxt2 = scalar, S16, 18, "deg C",{1/@@PACK_MULT_TEMPERATURE@@}, 0.0
|
||||||
|
|
||||||
|
|
||||||
; throttle, pedal
|
; 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
|
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
|
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
|
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
|
gaugeCategory = Ignition
|
||||||
ignadvGauge = ignitionAdvance, "Ignition timing", "degrees", -100, 100, -999, -999, 999, 999, 1, 1
|
ignadvGauge = ignitionAdvance, "Ignition timing", "degrees", -100, 100, -999, -999, 999, 999, 1, 1
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package com.rusefi.autodetect;
|
package com.rusefi.autodetect;
|
||||||
|
|
||||||
import com.rusefi.FileLog;
|
import com.devexperts.logging.Logging;
|
||||||
import com.rusefi.NamedThreadFactory;
|
import com.rusefi.NamedThreadFactory;
|
||||||
import com.rusefi.io.IoStream;
|
import com.rusefi.io.IoStream;
|
||||||
import com.rusefi.io.LinkManager;
|
import com.rusefi.io.LinkManager;
|
||||||
|
@ -19,19 +19,23 @@ import java.util.function.Function;
|
||||||
* Andrey Belomutskiy, (c) 2013-2020
|
* Andrey Belomutskiy, (c) 2013-2020
|
||||||
*/
|
*/
|
||||||
public class PortDetector {
|
public class PortDetector {
|
||||||
|
private final static Logging log = Logging.getLogging(PortDetector.class);
|
||||||
|
|
||||||
private static final NamedThreadFactory AUTO_DETECT_PORT = new NamedThreadFactory("AutoDetectPort");
|
private static final NamedThreadFactory AUTO_DETECT_PORT = new NamedThreadFactory("AutoDetectPort");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Connect to all serial ports and find out which one respond first
|
* Connect to all serial ports and find out which one respond first
|
||||||
* @param callback
|
* @param callback
|
||||||
|
* @return port name on which rusEFI was detected or null if none
|
||||||
*/
|
*/
|
||||||
|
@Nullable
|
||||||
public static String autoDetectSerial(Function<IoStream, Void> callback) {
|
public static String autoDetectSerial(Function<IoStream, Void> callback) {
|
||||||
String[] serialPorts = getPortNames();
|
String[] serialPorts = getPortNames();
|
||||||
if (serialPorts.length == 0) {
|
if (serialPorts.length == 0) {
|
||||||
System.err.println("No serial ports detected");
|
log.error("No serial ports detected");
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
FileLog.MAIN.logLine("Trying " + Arrays.toString(serialPorts));
|
log.info("Trying " + Arrays.toString(serialPorts));
|
||||||
List<Thread> serialFinder = new ArrayList<>();
|
List<Thread> serialFinder = new ArrayList<>();
|
||||||
CountDownLatch portFound = new CountDownLatch(1);
|
CountDownLatch portFound = new CountDownLatch(1);
|
||||||
AtomicReference<String> result = new AtomicReference<>();
|
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
|
* @author Andrey Belomutskiy
|
||||||
* 3/1/2017
|
* 3/1/2017
|
||||||
*/
|
*/
|
||||||
public interface ConnectionStateListener {
|
public interface ConnectionStateListener extends ConnectionFailedListener {
|
||||||
ConnectionStateListener VOID = new AbstractConnectionStateListener();
|
ConnectionStateListener VOID = new AbstractConnectionStateListener();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This method is invoked once we have connection & configuration from controller
|
* This method is invoked once we have connection & configuration from controller
|
||||||
*/
|
*/
|
||||||
void onConnectionEstablished();
|
void onConnectionEstablished();
|
||||||
|
|
||||||
void onConnectionFailed();
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -196,7 +196,7 @@ public class LinkManager implements Closeable {
|
||||||
return connector;
|
return connector;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void start(String port, ConnectionStateListener stateListener) {
|
public void start(String port, ConnectionFailedListener stateListener) {
|
||||||
Objects.requireNonNull(port, "port");
|
Objects.requireNonNull(port, "port");
|
||||||
log.info("LinkManager: Starting " + port);
|
log.info("LinkManager: Starting " + port);
|
||||||
if (isLogViewerMode(port)) {
|
if (isLogViewerMode(port)) {
|
||||||
|
|
|
@ -29,7 +29,7 @@ public class BinaryProtocolProxy {
|
||||||
*/
|
*/
|
||||||
public static final int USER_IO_TIMEOUT = 10 * Timeouts.MINUTE;
|
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 -> () -> {
|
Function<Socket, Runnable> clientSocketRunnableFactory = clientSocket -> () -> {
|
||||||
TcpIoStream clientStream = null;
|
TcpIoStream clientStream = null;
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -43,25 +43,25 @@ public class BinaryProtocolServer implements BinaryProtocolCommands {
|
||||||
|
|
||||||
public AtomicInteger unknownCommands = new AtomicInteger();
|
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 -> {
|
public static final ServerSocketFunction PLAIN_SOCKET_FACTORY = port -> {
|
||||||
try {
|
ServerSocket serverSocket = new ServerSocket(port);
|
||||||
ServerSocket serverSocket = new ServerSocket(port);
|
log.info("ServerSocket " + port + " created");
|
||||||
log.info("ServerSocket " + port + " created");
|
return serverSocket;
|
||||||
return serverSocket;
|
|
||||||
} catch (IOException e) {
|
|
||||||
throw new IllegalStateException("Error binding server socket " + port, e);
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
private static ConcurrentHashMap<String, ThreadFactory> THREAD_FACTORIES_BY_NAME = new ConcurrentHashMap<>();
|
private static ConcurrentHashMap<String, ThreadFactory> THREAD_FACTORIES_BY_NAME = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
public void start(LinkManager linkManager) {
|
public void start(LinkManager linkManager) {
|
||||||
|
try {
|
||||||
start(linkManager, DEFAULT_PROXY_PORT, Listener.empty(), new Context());
|
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);
|
log.info("BinaryProtocolServer on " + port);
|
||||||
|
|
||||||
Function<Socket, Runnable> clientSocketRunnableFactory = clientSocket -> () -> {
|
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
|
* @param serverSocketCreationCallback this callback is invoked once we open the server socket
|
||||||
* @return
|
* @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);
|
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);
|
ThreadFactory threadFactory = getThreadFactory(threadName);
|
||||||
|
|
||||||
Objects.requireNonNull(serverSocketCreationCallback, "serverSocketCreationCallback");
|
Objects.requireNonNull(serverSocketCreationCallback, "serverSocketCreationCallback");
|
||||||
|
@ -232,7 +232,7 @@ public class BinaryProtocolServer implements BinaryProtocolCommands {
|
||||||
int fromPacket = IoHelper.getCrc32(packet);
|
int fromPacket = IoHelper.getCrc32(packet);
|
||||||
if (crc != fromPacket)
|
if (crc != fromPacket)
|
||||||
throw new IllegalStateException("CRC mismatch crc=" + Integer.toString(crc, 16) + " vs packet=" + Integer.toString(fromPacket, 16) + " len=" + packet.length + " data: " + IoStream.printHexBinary(packet));
|
throw new IllegalStateException("CRC mismatch crc=" + Integer.toString(crc, 16) + " vs packet=" + Integer.toString(fromPacket, 16) + " len=" + packet.length + " data: " + IoStream.printHexBinary(packet));
|
||||||
// todo?! in.onPacketArrived();
|
in.onPacketArrived();
|
||||||
return new Packet(packet, crc);
|
return new Packet(packet, crc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
}
|
|
@ -7,10 +7,7 @@ import com.rusefi.io.serial.AbstractIoStream;
|
||||||
import com.rusefi.shared.FileUtil;
|
import com.rusefi.shared.FileUtil;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.io.BufferedInputStream;
|
import java.io.*;
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.io.OutputStream;
|
|
||||||
import java.net.Socket;
|
import java.net.Socket;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -37,10 +34,7 @@ public class TcpIoStream extends AbstractIoStream {
|
||||||
throw new NullPointerException("socket");
|
throw new NullPointerException("socket");
|
||||||
this.socket = socket;
|
this.socket = socket;
|
||||||
InputStream input = new BufferedInputStream(socket.getInputStream());
|
InputStream input = new BufferedInputStream(socket.getInputStream());
|
||||||
OutputStream output = socket.getOutputStream();
|
this.output = new BufferedOutputStream(socket.getOutputStream());
|
||||||
if (output == null)
|
|
||||||
throw new NullPointerException("output");
|
|
||||||
this.output = output;
|
|
||||||
this.input = input;
|
this.input = input;
|
||||||
this.dataBuffer = IncomingDataBuffer.createDataBuffer(loggingPrefix, this);
|
this.dataBuffer = IncomingDataBuffer.createDataBuffer(loggingPrefix, this);
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,7 +34,11 @@ public class NetworkConnector implements Closeable {
|
||||||
private final static Logging log = Logging.getLogging(NetworkConnector.class);
|
private final static Logging log = Logging.getLogging(NetworkConnector.class);
|
||||||
private boolean isClosed;
|
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()
|
LinkManager controllerConnector = new LinkManager()
|
||||||
.setCompositeLogicEnabled(false)
|
.setCompositeLogicEnabled(false)
|
||||||
.setNeedPullData(false);
|
.setNeedPullData(false);
|
||||||
|
@ -74,7 +78,7 @@ public class NetworkConnector implements Closeable {
|
||||||
proxyReconnectSemaphore.acquire();
|
proxyReconnectSemaphore.acquire();
|
||||||
|
|
||||||
try {
|
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");
|
log.error(message + " Disconnect from proxy server detected, now sleeping " + context.reconnectDelay() + " seconds");
|
||||||
sleep(context.reconnectDelay() * Timeouts.SECOND);
|
sleep(context.reconnectDelay() * Timeouts.SECOND);
|
||||||
log.debug("Releasing semaphore");
|
log.debug("Releasing semaphore");
|
||||||
|
@ -94,7 +98,7 @@ public class NetworkConnector implements Closeable {
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@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();
|
IoStream targetEcuSocket = linkManager.getConnector().getBinaryProtocol().getStream();
|
||||||
|
|
||||||
SessionDetails deviceSessionDetails = new SessionDetails(controllerInfo, authToken, oneTimeToken);
|
SessionDetails deviceSessionDetails = new SessionDetails(controllerInfo, authToken, oneTimeToken);
|
||||||
|
|
|
@ -47,7 +47,7 @@ public class TestHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@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();
|
BinaryProtocolState state = new BinaryProtocolState();
|
||||||
state.setController(ci);
|
state.setController(ci);
|
||||||
state.setCurrentOutputs(new byte[1 + Fields.TS_OUTPUT_SIZE]);
|
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 {
|
public static BinaryProtocolServer createVirtualController(int controllerPort, ConfigurationImage controllerImage, BinaryProtocolServer.Context context) throws InterruptedException {
|
||||||
CountDownLatch controllerCreated = new CountDownLatch(1);
|
CountDownLatch controllerCreated = new CountDownLatch(1);
|
||||||
BinaryProtocolServer server = createVirtualController(controllerImage, controllerPort, parameter -> controllerCreated.countDown(), context);
|
try {
|
||||||
assertLatch(controllerCreated);
|
BinaryProtocolServer server = createVirtualController(controllerImage, controllerPort, parameter -> controllerCreated.countDown(), context);
|
||||||
return server;
|
assertLatch(controllerCreated);
|
||||||
|
return server;
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new IllegalStateException(e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static SessionDetails createTestSession(String authToken, String signature) {
|
public static SessionDetails createTestSession(String authToken, String signature) {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package com.rusefi.config.generated;
|
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 Tue Jul 28 13:12:08 UTC 2020
|
||||||
|
|
||||||
// by class com.rusefi.output.FileJavaFieldsConsumer
|
// by class com.rusefi.output.FileJavaFieldsConsumer
|
||||||
import com.rusefi.config.*;
|
import com.rusefi.config.*;
|
||||||
|
@ -1057,7 +1057,7 @@ public class Fields {
|
||||||
public static final int servoOutputPins8_offset = 3147;
|
public static final int servoOutputPins8_offset = 3147;
|
||||||
public static final int showHumanReadableWarning_offset = 976;
|
public static final int showHumanReadableWarning_offset = 976;
|
||||||
public static final int showSdCardWarning_offset = 76;
|
public static final int showSdCardWarning_offset = 76;
|
||||||
public static final int SIGNATURE_HASH = 1848812543;
|
public static final int SIGNATURE_HASH = 1542883429;
|
||||||
public static final int silentTriggerError_offset = 1464;
|
public static final int silentTriggerError_offset = 1464;
|
||||||
public static final int slowAdcAlpha_offset = 2088;
|
public static final int slowAdcAlpha_offset = 2088;
|
||||||
public static final int sparkDwellRpmBins_offset = 332;
|
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_COMMAND_OK = 7;
|
||||||
public static final int TS_RESPONSE_OK = 0;
|
public static final int TS_RESPONSE_OK = 0;
|
||||||
public static final char TS_SET_LOGGER_SWITCH = 'l';
|
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.28.all.1542883429";
|
||||||
public static final char TS_SINGLE_WRITE_COMMAND = 'W';
|
public static final char TS_SINGLE_WRITE_COMMAND = 'W';
|
||||||
public static final int tunerStudioSerialSpeed_offset = 728;
|
public static final int tunerStudioSerialSpeed_offset = 728;
|
||||||
public static final int twoWireBatchIgnition_offset = 1476;
|
public static final int twoWireBatchIgnition_offset = 1476;
|
||||||
|
@ -1506,7 +1506,7 @@ public class Fields {
|
||||||
public static final Field CYLINDERBORE = Field.create("CYLINDERBORE", 408, FieldType.FLOAT);
|
public static final Field CYLINDERBORE = Field.create("CYLINDERBORE", 408, FieldType.FLOAT);
|
||||||
public static final Field SENSORSNIFFERRPMTHRESHOLD = Field.create("SENSORSNIFFERRPMTHRESHOLD", 412, FieldType.INT);
|
public static final Field SENSORSNIFFERRPMTHRESHOLD = Field.create("SENSORSNIFFERRPMTHRESHOLD", 412, FieldType.INT);
|
||||||
public static final Field RPMHARDLIMIT = Field.create("RPMHARDLIMIT", 416, FieldType.INT);
|
public static final Field RPMHARDLIMIT = Field.create("RPMHARDLIMIT", 416, FieldType.INT);
|
||||||
public static final String[] engine_load_mode_e = {"MAF", "Alpha-N/TPS", "INVALID", "SPEED DENSITY", "MAF Air Charge", "Alpha-N", "INVALID"};
|
public static final String[] engine_load_mode_e = {"MAF", "Alpha-N/TPS", "INVALID", "Speed Density", "MAF Air Charge", "Alpha-N", "INVALID"};
|
||||||
public static final Field FUELALGORITHM = Field.create("FUELALGORITHM", 420, FieldType.INT, engine_load_mode_e);
|
public static final Field FUELALGORITHM = Field.create("FUELALGORITHM", 420, FieldType.INT, engine_load_mode_e);
|
||||||
public static final Field CRANKINGINJECTIONMODE = Field.create("CRANKINGINJECTIONMODE", 424, FieldType.INT);
|
public static final Field CRANKINGINJECTIONMODE = Field.create("CRANKINGINJECTIONMODE", 424, FieldType.INT);
|
||||||
public static final Field INJECTIONMODE = Field.create("INJECTIONMODE", 428, FieldType.INT);
|
public static final Field INJECTIONMODE = Field.create("INJECTIONMODE", 428, FieldType.INT);
|
||||||
|
|
|
@ -32,6 +32,8 @@ public enum Sensor {
|
||||||
INT_TEMP(GAUGE_NAME_CPU_TEMP, SensorCategory.OPERATIONS, FieldType.INT8, 10, 1, 0, 5, "C"),
|
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"),
|
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"),
|
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
|
// throttle, pedal
|
||||||
TPS(GAUGE_NAME_TPS, SensorCategory.SENSOR_INPUTS, FieldType.INT16, 20, 1.0 / PACK_MULT_PERCENT, 0, 100, "%"), // throttle position sensor
|
TPS(GAUGE_NAME_TPS, SensorCategory.SENSOR_INPUTS, FieldType.INT16, 20, 1.0 / PACK_MULT_PERCENT, 0, 100, "%"), // throttle position sensor
|
||||||
|
|
|
@ -11,9 +11,9 @@ import java.util.concurrent.CopyOnWriteArrayList;
|
||||||
* <p/>
|
* <p/>
|
||||||
* Date: 1/6/13
|
* Date: 1/6/13
|
||||||
* Andrey Belomutskiy, (c) 2013-2020
|
* Andrey Belomutskiy, (c) 2013-2020
|
||||||
|
* @see SensorLog
|
||||||
*/
|
*/
|
||||||
public class SensorCentral implements ISensorCentral {
|
public class SensorCentral implements ISensorCentral {
|
||||||
public static final String RPM_KEY = "rpm";
|
|
||||||
private static final SensorCentral INSTANCE = new SensorCentral();
|
private static final SensorCentral INSTANCE = new SensorCentral();
|
||||||
|
|
||||||
private final SensorsHolder sensorsHolder = new SensorsHolder();
|
private final SensorsHolder sensorsHolder = new SensorsHolder();
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<roms>
|
<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 Tue Jul 28 13:12:13 UTC 2020 -->
|
||||||
|
|
||||||
<rom>
|
<rom>
|
||||||
<romid>
|
<romid>
|
||||||
|
|
|
@ -82,14 +82,12 @@ public class SensorLogger {
|
||||||
Sensor.engineMakeCodeNameCrc16,
|
Sensor.engineMakeCodeNameCrc16,
|
||||||
Sensor.tuneCrc16,
|
Sensor.tuneCrc16,
|
||||||
};
|
};
|
||||||
private final UIContext uiContext;
|
|
||||||
|
|
||||||
private List<SensorLog> sensorLogs;
|
private final List<SensorLog> sensorLogs;
|
||||||
|
|
||||||
private boolean isInitialized;
|
private boolean isInitialized;
|
||||||
|
|
||||||
public SensorLogger(UIContext uiContext) {
|
public SensorLogger(UIContext uiContext) {
|
||||||
this.uiContext = uiContext;
|
|
||||||
sensorLogs = Arrays.asList(new PlainTextSensorLog(uiContext), new BinarySensorLogRestarter());
|
sensorLogs = Arrays.asList(new PlainTextSensorLog(uiContext), new BinarySensorLogRestarter());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,6 @@ import com.rusefi.auth.AutoTokenUtil;
|
||||||
import com.rusefi.autodetect.PortDetector;
|
import com.rusefi.autodetect.PortDetector;
|
||||||
import com.rusefi.proxy.NetworkConnector;
|
import com.rusefi.proxy.NetworkConnector;
|
||||||
import com.rusefi.proxy.NetworkConnectorContext;
|
import com.rusefi.proxy.NetworkConnectorContext;
|
||||||
import com.rusefi.tools.online.ProxyClient;
|
|
||||||
import com.rusefi.ui.AuthTokenPanel;
|
import com.rusefi.ui.AuthTokenPanel;
|
||||||
|
|
||||||
public class NetworkConnectorStartup {
|
public class NetworkConnectorStartup {
|
||||||
|
@ -25,7 +24,7 @@ public class NetworkConnectorStartup {
|
||||||
|
|
||||||
NetworkConnectorContext connectorContext = new NetworkConnectorContext();
|
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());
|
log.info("Running with oneTimeToken=" + networkConnectorResult.getOneTimeToken());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,7 @@ import com.rusefi.ui.util.UiUtils;
|
||||||
|
|
||||||
import java.util.TimeZone;
|
import java.util.TimeZone;
|
||||||
|
|
||||||
|
import static com.devexperts.logging.Logging.getLogging;
|
||||||
import static com.rusefi.ui.storage.PersistentConfiguration.getConfig;
|
import static com.rusefi.ui.storage.PersistentConfiguration.getConfig;
|
||||||
|
|
||||||
public class MainFrame {
|
public class MainFrame {
|
||||||
|
@ -21,7 +22,7 @@ public class MainFrame {
|
||||||
/**
|
/**
|
||||||
* @see StartupFrame
|
* @see StartupFrame
|
||||||
*/
|
*/
|
||||||
private FrameHelper frame = new FrameHelper() {
|
private final FrameHelper frame = new FrameHelper() {
|
||||||
@Override
|
@Override
|
||||||
protected void onWindowOpened() {
|
protected void onWindowOpened() {
|
||||||
FileLog.MAIN.logLine("onWindowOpened");
|
FileLog.MAIN.logLine("onWindowOpened");
|
||||||
|
@ -42,22 +43,13 @@ public class MainFrame {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
public ConnectionStateListener listener;
|
public ConnectionFailedListener listener;
|
||||||
|
|
||||||
public MainFrame(ConsoleUI consoleUI, TabbedPanel tabbedPane) {
|
public MainFrame(ConsoleUI consoleUI, TabbedPanel tabbedPane) {
|
||||||
this.consoleUI = consoleUI;
|
this.consoleUI = consoleUI;
|
||||||
|
|
||||||
this.tabbedPane = tabbedPane;
|
this.tabbedPane = tabbedPane;
|
||||||
listener = new AbstractConnectionStateListener() {
|
listener = () -> {
|
||||||
@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());
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -87,8 +79,6 @@ public class MainFrame {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onConnectionEstablished() {
|
public void onConnectionEstablished() {
|
||||||
FileLog.MAIN.logLine("onConnectionEstablished");
|
|
||||||
// tabbedPane.romEditorPane.showContent();
|
|
||||||
tabbedPane.settingsTab.showContent();
|
tabbedPane.settingsTab.showContent();
|
||||||
tabbedPane.logsManager.showContent();
|
tabbedPane.logsManager.showContent();
|
||||||
tabbedPane.fuelTunePane.showContent();
|
tabbedPane.fuelTunePane.showContent();
|
||||||
|
|
|
@ -8,6 +8,7 @@ import com.rusefi.server.rusEFISSLContext;
|
||||||
import com.rusefi.tools.online.HttpUtil;
|
import com.rusefi.tools.online.HttpUtil;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
import java.net.MalformedURLException;
|
import java.net.MalformedURLException;
|
||||||
import java.util.concurrent.CountDownLatch;
|
import java.util.concurrent.CountDownLatch;
|
||||||
|
|
||||||
|
@ -16,13 +17,21 @@ import static com.rusefi.TestHelper.assertLatch;
|
||||||
public class BackendTestHelper {
|
public class BackendTestHelper {
|
||||||
public static void runApplicationConnectorBlocking(Backend backend, int serverPortForRemoteUsers) throws InterruptedException {
|
public static void runApplicationConnectorBlocking(Backend backend, int serverPortForRemoteUsers) throws InterruptedException {
|
||||||
CountDownLatch applicationServerCreated = new CountDownLatch(1);
|
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);
|
assertLatch(applicationServerCreated);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void runControllerConnectorBlocking(Backend backend, int serverPortForControllers) throws InterruptedException {
|
public static void runControllerConnectorBlocking(Backend backend, int serverPortForControllers) throws InterruptedException {
|
||||||
CountDownLatch controllerServerCreated = new CountDownLatch(1);
|
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);
|
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
|
// 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();
|
ControllerInfo controllerInfo = networkConnectorResult.getControllerInfo();
|
||||||
|
|
||||||
TestHelper.assertLatch("controllerRegistered", controllerRegistered);
|
TestHelper.assertLatch("controllerRegistered", controllerRegistered);
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package com.rusefi;
|
package com.rusefi;
|
||||||
|
|
||||||
import com.opensr5.Logger;
|
|
||||||
import com.rusefi.config.generated.Fields;
|
import com.rusefi.config.generated.Fields;
|
||||||
import com.rusefi.io.IoStream;
|
import com.rusefi.io.IoStream;
|
||||||
import com.rusefi.io.commands.GetOutputsCommand;
|
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
|
* https://github.com/rusefi/web_backend/blob/master/documentation/rusEFI%20remote.png
|
||||||
*/
|
*/
|
||||||
public class ServerTest {
|
public class ServerTest {
|
||||||
private final static Logger logger = Logger.CONSOLE;
|
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setup() throws MalformedURLException {
|
public void setup() throws MalformedURLException {
|
||||||
BackendTestHelper.commonServerTest();
|
BackendTestHelper.commonServerTest();
|
||||||
|
@ -126,7 +123,7 @@ covered by FullServerTest
|
||||||
TestHelper.createVirtualController(controllerPort, new ConfigurationImage(Fields.TOTAL_CONFIG_SIZE), logger);
|
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
|
// 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));
|
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 com.rusefi.io.tcp.BinaryProtocolServer;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.concurrent.CountDownLatch;
|
import java.util.concurrent.CountDownLatch;
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
@ -83,7 +84,7 @@ public class TcpCommunicationIntegrationTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testProxy() throws InterruptedException {
|
public void testProxy() throws InterruptedException, IOException {
|
||||||
ConfigurationImage serverImage = TestHelper.prepareImage(239, TestHelper.createIniField(Fields.CYLINDERSCOUNT));
|
ConfigurationImage serverImage = TestHelper.prepareImage(239, TestHelper.createIniField(Fields.CYLINDERSCOUNT));
|
||||||
int controllerPort = 6102;
|
int controllerPort = 6102;
|
||||||
|
|
||||||
|
|
|
@ -75,7 +75,7 @@ public class NetworkConnectorTest {
|
||||||
reconnectCounter.countDown();
|
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);
|
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;
|
this.serverPortForApplications = serverPortForApplications;
|
||||||
// connection from authenticator app which proxies for Tuner Studio
|
// connection from authenticator app which proxies for Tuner Studio
|
||||||
// authenticator pushed hello packet on connect
|
// authenticator pushed hello packet on connect
|
||||||
|
@ -246,7 +246,7 @@ public class Backend implements Closeable {
|
||||||
log.info("Disconnecting application " + applicationConnectionState);
|
log.info("Disconnecting application " + applicationConnectionState);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void runControllerConnector(int serverPortForControllers, Listener<?> serverSocketCreationCallback) {
|
public void runControllerConnector(int serverPortForControllers, Listener<?> serverSocketCreationCallback) throws IOException {
|
||||||
this.serverPortForControllers = serverPortForControllers;
|
this.serverPortForControllers = serverPortForControllers;
|
||||||
log.info("Starting controller connector at " + serverPortForControllers);
|
log.info("Starting controller connector at " + serverPortForControllers);
|
||||||
controllerConnector = BinaryProtocolServer.tcpServerSocket(controllerSocket -> () -> {
|
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.HttpUtil;
|
||||||
import com.rusefi.tools.online.ProxyClient;
|
import com.rusefi.tools.online.ProxyClient;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
public class BackendLauncher {
|
public class BackendLauncher {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) throws IOException {
|
||||||
/* todo
|
/* todo
|
||||||
rusEFISSLContext.setupCertificates(new File("keystore.jks"), System.getProperty("RUSEFI_KEYSTORE_PASSWORD"));
|
rusEFISSLContext.setupCertificates(new File("keystore.jks"), System.getProperty("RUSEFI_KEYSTORE_PASSWORD"));
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -79,6 +79,7 @@ public class ControllerConnectionState {
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "ControllerConnectionState{" +
|
return "ControllerConnectionState{" +
|
||||||
"userDetails=" + userDetails +
|
"userDetails=" + userDetails +
|
||||||
|
", controllerKey=" + controllerKey +
|
||||||
", isClosed=" + isClosed +
|
", isClosed=" + isClosed +
|
||||||
", twoKindSemaphore=" + twoKindSemaphore +
|
", twoKindSemaphore=" + twoKindSemaphore +
|
||||||
'}';
|
'}';
|
||||||
|
|
|
@ -1,15 +1,84 @@
|
||||||
package com.rusefi.ts_plugin;
|
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.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 javax.swing.*;
|
||||||
|
import java.awt.event.ActionEvent;
|
||||||
|
import java.awt.event.ActionListener;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see PluginEntry
|
||||||
|
*/
|
||||||
public class BroadcastTab {
|
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() {
|
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() {
|
public JComponent getContent() {
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.rusefi.ts_plugin;
|
package com.rusefi.ts_plugin;
|
||||||
|
|
||||||
import com.efiAnalytics.plugin.ecu.ControllerAccess;
|
import com.efiAnalytics.plugin.ecu.ControllerAccess;
|
||||||
|
import com.rusefi.autoupdate.AutoupdateUtil;
|
||||||
import com.rusefi.ts_plugin.util.ManifestHelper;
|
import com.rusefi.ts_plugin.util.ManifestHelper;
|
||||||
import com.rusefi.tune.xml.Constant;
|
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.
|
* {@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 {
|
public class PluginEntry implements TsPluginBody {
|
||||||
private final JPanel content = new JPanel(new BorderLayout());
|
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
|
* 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;
|
import static com.rusefi.ui.storage.PersistentConfiguration.getConfig;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* see RemoteTabSandbox
|
* remote ECU access & control
|
||||||
|
*
|
||||||
|
* @see RemoteTabSandbox
|
||||||
|
* @see PluginEntry
|
||||||
*/
|
*/
|
||||||
public class RemoteTab {
|
public class RemoteTab {
|
||||||
private static final String APPLICATION_PORT = "application_port";
|
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 JComponent content = new JPanel(new BorderLayout());
|
||||||
|
|
||||||
private final JPanel list = new JPanel(new VerticalFlowLayout());
|
private final JPanel list = new JPanel(new VerticalFlowLayout());
|
||||||
|
@ -87,7 +91,7 @@ public class RemoteTab {
|
||||||
topPanel.add(oneTimePasswordControl);
|
topPanel.add(oneTimePasswordControl);
|
||||||
|
|
||||||
topLines.add(topPanel);
|
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(topLines, BorderLayout.NORTH);
|
||||||
content.add(list, BorderLayout.CENTER);
|
content.add(list, BorderLayout.CENTER);
|
||||||
|
|
|
@ -142,8 +142,7 @@ public class UploadTab {
|
||||||
content.add(uploadView.getContent());
|
content.add(uploadView.getContent());
|
||||||
content.add(upload);
|
content.add(upload);
|
||||||
|
|
||||||
ImageIcon LOGO = AutoupdateUtil.loadIcon("/rusefi_online_color_300.png");
|
content.add(new JLabel(PluginEntry.LOGO));
|
||||||
content.add(new JLabel(LOGO));
|
|
||||||
content.add(tokenPanel.getContent());
|
content.add(tokenPanel.getContent());
|
||||||
content.add(new URLLabel(REO_URL));
|
content.add(new URLLabel(REO_URL));
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,9 @@ import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see PluginLauncherSandbox
|
* Sandbox for plugin body
|
||||||
|
*
|
||||||
|
* @see PluginLauncherSandbox for plugin auto-update launcher
|
||||||
*/
|
*/
|
||||||
public class PluginBodySandbox {
|
public class PluginBodySandbox {
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,9 @@ package com.rusefi.ts_plugin;
|
||||||
|
|
||||||
import com.rusefi.ui.util.FrameHelper;
|
import com.rusefi.ui.util.FrameHelper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see PluginBodySandbox
|
||||||
|
*/
|
||||||
public class RemoteTabSandbox {
|
public class RemoteTabSandbox {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
new FrameHelper().showFrame(new RemoteTab().getContent());
|
new FrameHelper().showFrame(new RemoteTab().getContent());
|
||||||
|
|
|
@ -2,6 +2,9 @@ package com.rusefi.ts_plugin;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sandbox for {@link TsPluginLauncher}
|
||||||
|
*/
|
||||||
public class PluginLauncherSandbox {
|
public class PluginLauncherSandbox {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
JFrame frame = new JFrame();
|
JFrame frame = new JFrame();
|
||||||
|
|
|
@ -7,7 +7,12 @@ import org.putgemin.VerticalFlowLayout;
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* This class is the more permanent part of the plug, it's responsible for refreshing and launcher PluginEntry via reflections.
|
||||||
|
* which downloads the main more volatile UI part (PluginEntry)
|
||||||
|
*
|
||||||
* by the way TS installs stuff into %user%\.efianalytics\TunerStudio\plugins folder
|
* by the way TS installs stuff into %user%\.efianalytics\TunerStudio\plugins folder
|
||||||
|
* @see PluginLauncherSandbox sandbox for this
|
||||||
|
* see PluginEntry
|
||||||
*/
|
*/
|
||||||
public class TsPluginLauncher implements ApplicationPlugin {
|
public class TsPluginLauncher implements ApplicationPlugin {
|
||||||
public static final int BUILD_VERSION = 3;
|
public static final int BUILD_VERSION = 3;
|
||||||
|
|
|
@ -20,9 +20,13 @@ import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
|
||||||
import static com.rusefi.ts_plugin.TsPluginLauncher.VERSION;
|
import static com.rusefi.ts_plugin.TsPluginLauncher.VERSION;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Download fresh copy of {@link #PLUGIN_BODY_JAR} and launch {@link #PLUGIN_ENTRY_CLASS} via reflection.
|
||||||
|
*/
|
||||||
public class Updater {
|
public class Updater {
|
||||||
|
private static final String PLUGIN_ENTRY_CLASS = "com.rusefi.ts_plugin.PluginEntry";
|
||||||
private static final String PLUGIN_BODY_JAR = "rusefi_plugin_body.jar";
|
private static final String PLUGIN_BODY_JAR = "rusefi_plugin_body.jar";
|
||||||
public static final String LOCAL_JAR_FILE_NAME = FileUtil.RUSEFI_SETTINGS_FOLDER + File.separator + PLUGIN_BODY_JAR;
|
private static final String LOCAL_JAR_FILE_NAME = FileUtil.RUSEFI_SETTINGS_FOLDER + File.separator + PLUGIN_BODY_JAR;
|
||||||
private static final String TITLE = "rusEFI plugin installer " + VERSION;
|
private static final String TITLE = "rusEFI plugin installer " + VERSION;
|
||||||
|
|
||||||
private final JPanel content = new JPanel(new VerticalFlowLayout());
|
private final JPanel content = new JPanel(new VerticalFlowLayout());
|
||||||
|
@ -187,7 +191,7 @@ public class Updater {
|
||||||
|
|
||||||
private static Class getPluginClass() throws MalformedURLException, ClassNotFoundException {
|
private static Class getPluginClass() throws MalformedURLException, ClassNotFoundException {
|
||||||
URLClassLoader jarClassLoader = AutoupdateUtil.getClassLoaderByJar(LOCAL_JAR_FILE_NAME);
|
URLClassLoader jarClassLoader = AutoupdateUtil.getClassLoaderByJar(LOCAL_JAR_FILE_NAME);
|
||||||
return Class.forName("com.rusefi.ts_plugin.PluginEntry", true, jarClassLoader);
|
return Class.forName(PLUGIN_ENTRY_CLASS, true, jarClassLoader);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void replaceWith(TsPluginBody instance) {
|
private void replaceWith(TsPluginBody instance) {
|
||||||
|
|
Loading…
Reference in New Issue