From b8bca64807ff67236b4cda565b65f002f4470810 Mon Sep 17 00:00:00 2001 From: rusefi Date: Mon, 29 Jan 2018 19:41:39 -0500 Subject: [PATCH] CAN debug field #26 --- README.md | 1 + firmware/console/status_loop.cpp | 7 +++++- .../controllers/algo/auto_generated_enums.cpp | 4 ++-- firmware/controllers/algo/rusefi_enums.h | 2 +- firmware/controllers/algo/rusefi_generated.h | 2 +- firmware/hw_layer/can_hw.cpp | 22 +++++++++---------- firmware/hw_layer/can_hw.h | 3 +++ firmware/integration/rusefi_config.txt | 2 +- firmware/rusefi.cpp | 2 +- firmware/svnversion.h | 4 ++-- .../models/src/com/rusefi/config/Fields.java | 8 +++---- simulator/simulator/efifeatures.h | 1 + 12 files changed, 33 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index f32d98400e..3390001ae7 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,7 @@ current binaries are always available at http://rusefi.com/build_server/ | Release date | Revision | Details | | ------------ | --------- | ------- | +| 01/29/2018 | r15514 | improvement #215: CJ125 wideband contoller | | 01/23/2018 | r15442 | improvement #463: ChibiOS 17 / 4 | | 01/07/2018 | r14952 | usability & minor bugfix #532 idle defaults are broken | | 12/17/2017 | r14892 | bugfix #513: console: erase on older chips does not work | diff --git a/firmware/console/status_loop.cpp b/firmware/console/status_loop.cpp index cbbaf37790..8eba5363a6 100644 --- a/firmware/console/status_loop.cpp +++ b/firmware/console/status_loop.cpp @@ -57,8 +57,8 @@ #include "engine.h" #include "lcd_controller.h" #include "settings.h" +#include "can_hw.h" -extern fuel_Map3D_t veMap; extern afr_Map3D_t afrMap; extern bool main_loop_started; @@ -808,6 +808,11 @@ void updateTunerStudioState(TunerStudioOutputChannels *tsOutputChannels DECLARE_ cjPostState(tsOutputChannels); break; #endif /* EFI_CJ125 */ +#if EFI_CAN_SUPPORT || defined(__DOXYGEN__) + case DBG_CAN: + postCanState(tsOutputChannels); + break; +#endif /* EFI_CAN_SUPPORT */ case DBG_ADC: tsOutputChannels->debugFloatField1 = (engineConfiguration->vbattAdcChannel != EFI_ADC_NONE) ? getVoltageDivided("vbatt", engineConfiguration->vbattAdcChannel) : 0.0f; tsOutputChannels->debugFloatField2 = (engineConfiguration->tpsAdcChannel != EFI_ADC_NONE) ? getVoltageDivided("tps", engineConfiguration->tpsAdcChannel) : 0.0f; diff --git a/firmware/controllers/algo/auto_generated_enums.cpp b/firmware/controllers/algo/auto_generated_enums.cpp index 8b24417c3a..3a1f30d6b2 100644 --- a/firmware/controllers/algo/auto_generated_enums.cpp +++ b/firmware/controllers/algo/auto_generated_enums.cpp @@ -709,8 +709,8 @@ const char *getDebug_mode_e(debug_mode_e value){ switch(value) { case DBG_CJ125: return "DBG_CJ125"; -case DBG_26: - return "DBG_26"; +case DBG_CAN: + return "DBG_CAN"; case DBG_27: return "DBG_27"; case DBG_28: diff --git a/firmware/controllers/algo/rusefi_enums.h b/firmware/controllers/algo/rusefi_enums.h index a82c33a1e8..af52a8c431 100644 --- a/firmware/controllers/algo/rusefi_enums.h +++ b/firmware/controllers/algo/rusefi_enums.h @@ -755,7 +755,7 @@ typedef enum { DBG_FSIO_EXPRESSION = 23, DBG_STATUS = 24, DBG_CJ125 = 25, - DBG_26 = 26, + DBG_CAN = 26, DBG_27 = 27, DBG_28 = 28, DBG_29 = 29, diff --git a/firmware/controllers/algo/rusefi_generated.h b/firmware/controllers/algo/rusefi_generated.h index 3297b67527..0b2c021fee 100644 --- a/firmware/controllers/algo/rusefi_generated.h +++ b/firmware/controllers/algo/rusefi_generated.h @@ -54,7 +54,7 @@ #define MAP_ACCEL_TAPER 8 #define BARO_CORR_SIZE 4 #define MAF_DECODING_COUNT 256 -#define debug_mode_e_enum "Alternator_PID", "TPS accel enrich", "Warmup PID", "IDLE", "EL accl enrich", "Trigger Counters", "FSIO_ADC", "AUX_PID_1", "VVT PID", "Cranking", "Timing", "Closed-loop fuel corr PID", "VSS", "SD card", "sr5", "Knock", "Trigger Sync", "Electronic Throttle", "Executor", "Bench Test", "Aux Valves", "ADC", "INSTANT_RPM", "FSIO_EXPRESSION", "Status", "CJ125", "mode26", "mode27", "mode28", "mode29" +#define debug_mode_e_enum "Alternator_PID", "TPS accel enrich", "Warmup PID", "IDLE", "EL accl enrich", "Trigger Counters", "FSIO_ADC", "AUX_PID_1", "VVT PID", "Cranking", "Timing", "Closed-loop fuel corr PID", "VSS", "SD card", "sr5", "Knock", "Trigger Sync", "Electronic Throttle", "Executor", "Bench Test", "Aux Valves", "ADC", "INSTANT_RPM", "FSIO_EXPRESSION", "Status", "CJ125", "CAN", "mode27", "mode28", "mode29" #define vvt_mode_e_enum "First half", "Second half", "2GZ", "Miata NB2", "mode4", "mode5", "mode6", "mode7" #define mass_storage_e_enum "Auto", "Always", "Never" #define brain_input_pin_e_enum "INVALID", "PA1", "PA2", "PA3", "INVALID", "PA5", "PA6", "PA7", "PA8", "PA9", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PA15", "INVALID", "INVALID", "INVALID", "PB3", "PB4", "PB5", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PC6", "PC7", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PE5", "PE6", "INVALID", "INVALID", "PE9", "INVALID", "PE11", "INVALID", "INVALID", "INVALID", "INVALID", "NONE", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" diff --git a/firmware/hw_layer/can_hw.cpp b/firmware/hw_layer/can_hw.cpp index ba3d57a511..b7d1c9c3cd 100644 --- a/firmware/hw_layer/can_hw.cpp +++ b/firmware/hw_layer/can_hw.cpp @@ -16,14 +16,16 @@ #if EFI_PROD_CODE || defined(__DOXYGEN__) + +#endif /* EFI_PROD_CODE */ + +#if EFI_CAN_SUPPORT || defined(__DOXYGEN__) + #include "pin_repository.h" #include "mpu_util.h" #include "engine_state.h" #include "engine_configuration.h" #include "vehicle_speed.h" -#endif /* EFI_PROD_CODE */ - -#if EFI_CAN_SUPPORT || defined(__DOXYGEN__) EXTERN_ENGINE ; @@ -114,8 +116,6 @@ void sendCanMessage() { sendCanMessage2(8); } -#if EFI_PROD_CODE || defined(__DOXYGEN__) - static void canDashboardBMW(void) { //BMW Dashboard commonTxInit(CAN_BMW_E46_SPEED); @@ -278,7 +278,11 @@ void setCanType(int type) { canInfo(); } -#endif /* EFI_PROD_CODE */ +void postCanState(TunerStudioOutputChannels *tsOutputChannels) { + tsOutputChannels->debugIntField1 = isCanEnabled ? canReadCounter : -1; + tsOutputChannels->debugIntField2 = isCanEnabled ? canWriteOk : -1; + tsOutputChannels->debugIntField3 = isCanEnabled ? canWriteNotOk : -1; +} void enableFrankensoCan(DECLARE_ENGINE_PARAMETER_SIGNATURE) { boardConfiguration->canTxPin = GPIOB_6; @@ -305,12 +309,9 @@ void initCan(void) { firmwareError(CUSTOM_OBD_70, "invalid CAN RX %s", hwPortname(boardConfiguration->canRxPin)); } - -#if EFI_PROD_CODE || defined(__DOXYGEN__) addConsoleAction("caninfo", canInfo); if (!isCanEnabled) return; -#endif /* EFI_PROD_CODE */ #if STM32_CAN_USE_CAN2 || defined(__DOXYGEN__) // CAN1 is required for CAN2 @@ -320,13 +321,10 @@ void initCan(void) { canStart(&CAND1, &canConfig); #endif /* STM32_CAN_USE_CAN2 */ -#if EFI_PROD_CODE || defined(__DOXYGEN__) - chThdCreateStatic(canTreadStack, sizeof(canTreadStack), NORMALPRIO, (tfunc_t) canThread, NULL); startCanPins(); -#endif /* EFI_PROD_CODE */ } #endif /* EFI_CAN_SUPPORT */ diff --git a/firmware/hw_layer/can_hw.h b/firmware/hw_layer/can_hw.h index 5d5a9999f4..9981646bc1 100644 --- a/firmware/hw_layer/can_hw.h +++ b/firmware/hw_layer/can_hw.h @@ -8,6 +8,8 @@ #ifndef CAN_HW_H_ #define CAN_HW_H_ +#include "tunerstudio_configuration.h" + // CAN Bus ID for broadcast /** * e46 data is from http://forums.bimmerforums.com/forum/showthread.php?1887229 @@ -35,5 +37,6 @@ void sendCanMessage(); void setCanType(int type); void setTxBit(int offset, int index); void enableFrankensoCan(DECLARE_ENGINE_PARAMETER_SIGNATURE); +void postCanState(TunerStudioOutputChannels *tsOutputChannels); #endif /* CAN_HW_H_ */ diff --git a/firmware/integration/rusefi_config.txt b/firmware/integration/rusefi_config.txt index b347edc642..f5e05f21b2 100644 --- a/firmware/integration/rusefi_config.txt +++ b/firmware/integration/rusefi_config.txt @@ -147,7 +147,7 @@ float baseFuel;+Fuel squirt duration while cranking\nA number of curves adjust t int16_t rpm;+Cranking mode threshold. Special cranking logic controls fuel and spark while RPM is below this threshold\nset cranking_rpm X;"RPM", 1, 0, 0, 3000, 0 end_struct -#define debug_mode_e_enum "Alternator_PID", "TPS accel enrich", "Warmup PID", "IDLE", "EL accl enrich", "Trigger Counters", "FSIO_ADC", "AUX_PID_1", "VVT PID", "Cranking", "Timing", "Closed-loop fuel corr PID", "VSS", "SD card", "sr5", "Knock", "Trigger Sync", "Electronic Throttle", "Executor", "Bench Test", "Aux Valves", "ADC", "INSTANT_RPM", "FSIO_EXPRESSION", "Status", "CJ125", "mode26", "mode27", "mode28", "mode29" +#define debug_mode_e_enum "Alternator_PID", "TPS accel enrich", "Warmup PID", "IDLE", "EL accl enrich", "Trigger Counters", "FSIO_ADC", "AUX_PID_1", "VVT PID", "Cranking", "Timing", "Closed-loop fuel corr PID", "VSS", "SD card", "sr5", "Knock", "Trigger Sync", "Electronic Throttle", "Executor", "Bench Test", "Aux Valves", "ADC", "INSTANT_RPM", "FSIO_EXPRESSION", "Status", "CJ125", "CAN", "mode27", "mode28", "mode29" custom debug_mode_e 4 bits, U32, @OFFSET@, [0:4], @@debug_mode_e_enum@@ #define vvt_mode_e_enum "First half", "Second half", "2GZ", "Miata NB2", "mode4", "mode5", "mode6", "mode7" diff --git a/firmware/rusefi.cpp b/firmware/rusefi.cpp index 88d01d3a30..3ebf45d47f 100644 --- a/firmware/rusefi.cpp +++ b/firmware/rusefi.cpp @@ -275,5 +275,5 @@ int getRusEfiVersion(void) { if (initBootloader() != 0) return 123; #endif /* EFI_BOOTLOADER_INCLUDE_CODE */ - return 20180127; + return 20180129; } diff --git a/firmware/svnversion.h b/firmware/svnversion.h index 25c92e8a74..b630e80105 100644 --- a/firmware/svnversion.h +++ b/firmware/svnversion.h @@ -1,5 +1,5 @@ // This file was generated by Version2Header -// Wed Jan 24 14:21:24 EST 2018 +// Mon Jan 29 19:31:59 EST 2018 #ifndef VCS_VERSION -#define VCS_VERSION "15455" +#define VCS_VERSION "15514" #endif diff --git a/java_console/models/src/com/rusefi/config/Fields.java b/java_console/models/src/com/rusefi/config/Fields.java index 899af024c6..cf4fe92ab5 100644 --- a/java_console/models/src/com/rusefi/config/Fields.java +++ b/java_console/models/src/com/rusefi/config/Fields.java @@ -1,6 +1,6 @@ package com.rusefi.config; -// this file was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Sun Jan 28 21:16:58 EET 2018 +// this file was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Mon Jan 29 19:16:26 EST 2018 public class Fields { public static final int LE_COMMAND_LENGTH = 200; public static final int BLOCKING_FACTOR = 400; @@ -399,7 +399,7 @@ public class Fields { public static final int isCJ125Enabled_offset = 984; public static final int vvtCamSensorUseRise_offset = 984; public static final int measureMapOnlyInOneCylinder_offset = 984; - public static final int unused_board_984_19_offset = 984; + public static final int stepperForceParkingEveryRestart_offset = 984; public static final int unused_board_984_20_offset = 984; public static final int unused_board_984_21_offset = 984; public static final int unused_board_984_22_offset = 984; @@ -1393,7 +1393,7 @@ public class Fields { public static final Field ISCJ125ENABLED = Field.create("ISCJ125ENABLED", 984, FieldType.BIT, 16); public static final Field VVTCAMSENSORUSERISE = Field.create("VVTCAMSENSORUSERISE", 984, FieldType.BIT, 17); public static final Field MEASUREMAPONLYINONECYLINDER = Field.create("MEASUREMAPONLYINONECYLINDER", 984, FieldType.BIT, 18); - public static final Field UNUSED_BOARD_984_19 = Field.create("UNUSED_BOARD_984_19", 984, FieldType.BIT, 19); + public static final Field STEPPERFORCEPARKINGEVERYRESTART = Field.create("STEPPERFORCEPARKINGEVERYRESTART", 984, FieldType.BIT, 19); public static final Field UNUSED_BOARD_984_20 = Field.create("UNUSED_BOARD_984_20", 984, FieldType.BIT, 20); public static final Field UNUSED_BOARD_984_21 = Field.create("UNUSED_BOARD_984_21", 984, FieldType.BIT, 21); public static final Field UNUSED_BOARD_984_22 = Field.create("UNUSED_BOARD_984_22", 984, FieldType.BIT, 22); @@ -1694,7 +1694,7 @@ public class Fields { public static final Field TPSDECELENLEANMENTTHRESHOLD = Field.create("TPSDECELENLEANMENTTHRESHOLD", 2208, FieldType.FLOAT); public static final Field TPSDECELENLEANMENTMULTIPLIER = Field.create("TPSDECELENLEANMENTMULTIPLIER", 2212, FieldType.FLOAT); public static final Field SLOWADCALPHA = Field.create("SLOWADCALPHA", 2216, FieldType.FLOAT); - public static final String[] debug_mode_e = {"Alternator_PID", "TPS accel enrich", "Warmup PID", "IDLE", "EL accl enrich", "Trigger Counters", "FSIO_ADC", "AUX_PID_1", "VVT PID", "Cranking", "Timing", "Closed-loop fuel corr PID", "VSS", "SD card", "sr5", "Knock", "Trigger Sync", "Electronic Throttle", "Executor", "Bench Test", "Aux Valves", "ADC", "INSTANT_RPM", "FSIO_EXPRESSION", "Status", "CJ125", "mode26", "mode27", "mode28", "mode29"}; + public static final String[] debug_mode_e = {"Alternator_PID", "TPS accel enrich", "Warmup PID", "IDLE", "EL accl enrich", "Trigger Counters", "FSIO_ADC", "AUX_PID_1", "VVT PID", "Cranking", "Timing", "Closed-loop fuel corr PID", "VSS", "SD card", "sr5", "Knock", "Trigger Sync", "Electronic Throttle", "Executor", "Bench Test", "Aux Valves", "ADC", "INSTANT_RPM", "FSIO_EXPRESSION", "Status", "CJ125", "CAN", "mode27", "mode28", "mode29"}; public static final Field DEBUGMODE = Field.create("DEBUGMODE", 2220, FieldType.INT, debug_mode_e); public static final Field AUXVALVES1 = Field.create("AUXVALVES1", 2224, FieldType.INT, brain_pin_e); public static final Field AUXVALVES2 = Field.create("AUXVALVES2", 2228, FieldType.INT, brain_pin_e); diff --git a/simulator/simulator/efifeatures.h b/simulator/simulator/efifeatures.h index a63074bd79..4ee53edcd0 100644 --- a/simulator/simulator/efifeatures.h +++ b/simulator/simulator/efifeatures.h @@ -60,6 +60,7 @@ #define EFI_MAIN_RELAY_CONTROL FALSE #define EFI_HIP_9011 FALSE #define EFI_CJ125 FALSE +#define EFI_CAN_SUPPORT FALSE #define EFI_ELECTRONIC_THROTTLE_BODY FALSE #define EFI_AUX_PID FALSE #define EFI_HAS_RESET FALSE