mirror of https://github.com/rusefi/rusefi-1.git
auto-sync
This commit is contained in:
parent
1323b5b51a
commit
6fd9362f6d
|
@ -73,6 +73,7 @@ int warningEnabled = TRUE;
|
||||||
//int warningEnabled = FALSE;
|
//int warningEnabled = FALSE;
|
||||||
|
|
||||||
extern board_configuration_s *boardConfiguration;
|
extern board_configuration_s *boardConfiguration;
|
||||||
|
extern bool hasFirmwareErrorFlag;
|
||||||
#define FULL_LOGGING_KEY "fl"
|
#define FULL_LOGGING_KEY "fl"
|
||||||
|
|
||||||
#if EFI_PROD_CODE || EFI_SIMULATOR
|
#if EFI_PROD_CODE || EFI_SIMULATOR
|
||||||
|
|
|
@ -29,7 +29,9 @@ int warning(obd_code_e code, const char *fmt, ...);
|
||||||
* todo: better method name?
|
* todo: better method name?
|
||||||
*/
|
*/
|
||||||
void firmwareError(const char *fmt, ...);
|
void firmwareError(const char *fmt, ...);
|
||||||
bool hasFirmwareError(void);
|
|
||||||
|
#define hasFirmwareError() hasFirmwareErrorFlag
|
||||||
|
|
||||||
char *getFirmwareError(void);
|
char *getFirmwareError(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -71,7 +71,7 @@ void turnPinHigh(io_pin_e pin) {
|
||||||
|
|
||||||
#if EFI_WAVE_CHART
|
#if EFI_WAVE_CHART
|
||||||
// explicit check here is a performance optimization to speed up no-chart mode
|
// explicit check here is a performance optimization to speed up no-chart mode
|
||||||
if (!engineConfiguration->isDigitalChartEnabled) {
|
if (engineConfiguration->isDigitalChartEnabled) {
|
||||||
// this is a performance optimization - array index is cheaper then invoking a method with 'switch'
|
// this is a performance optimization - array index is cheaper then invoking a method with 'switch'
|
||||||
const char *pinName = namedPinsArray[pin];
|
const char *pinName = namedPinsArray[pin];
|
||||||
// dbgDurr = hal_lld_get_counter_value() - dbgStart;
|
// dbgDurr = hal_lld_get_counter_value() - dbgStart;
|
||||||
|
@ -93,7 +93,7 @@ void turnPinLow(io_pin_e pin) {
|
||||||
#endif /* EFI_DEFAILED_LOGGING */
|
#endif /* EFI_DEFAILED_LOGGING */
|
||||||
|
|
||||||
#if EFI_WAVE_CHART
|
#if EFI_WAVE_CHART
|
||||||
if (!engineConfiguration->isDigitalChartEnabled) {
|
if (engineConfiguration->isDigitalChartEnabled) {
|
||||||
// this is a performance optimization - array index is cheaper then invoking a method with 'switch'
|
// this is a performance optimization - array index is cheaper then invoking a method with 'switch'
|
||||||
const char *pinName = namedPinsArray[pin];
|
const char *pinName = namedPinsArray[pin];
|
||||||
|
|
||||||
|
|
|
@ -66,7 +66,7 @@ static LEElement * radiatorFanLogic;
|
||||||
|
|
||||||
extern OutputPin outputs[IO_PIN_COUNT];
|
extern OutputPin outputs[IO_PIN_COUNT];
|
||||||
extern pin_output_mode_e *pinDefaultState[IO_PIN_COUNT];
|
extern pin_output_mode_e *pinDefaultState[IO_PIN_COUNT];
|
||||||
|
extern bool hasFirmwareErrorFlag;
|
||||||
|
|
||||||
persistent_config_container_s persistentState CCM_OPTIONAL;
|
persistent_config_container_s persistentState CCM_OPTIONAL;
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,8 @@
|
||||||
|
|
||||||
EXTERN_ENGINE;
|
EXTERN_ENGINE;
|
||||||
|
|
||||||
|
extern bool hasFirmwareErrorFlag;
|
||||||
|
|
||||||
#define LCD_WIDTH 20
|
#define LCD_WIDTH 20
|
||||||
// this value should be even
|
// this value should be even
|
||||||
#define NUMBER_OF_DIFFERENT_LINES 4
|
#define NUMBER_OF_DIFFERENT_LINES 4
|
||||||
|
|
|
@ -30,7 +30,8 @@
|
||||||
#include "event_registry.h"
|
#include "event_registry.h"
|
||||||
#include "efiGpio.h"
|
#include "efiGpio.h"
|
||||||
|
|
||||||
EXTERN_ENGINE;
|
EXTERN_ENGINE
|
||||||
|
;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* default Volumetric Efficiency
|
* default Volumetric Efficiency
|
||||||
|
@ -40,7 +41,6 @@ EXTERN_ENGINE;
|
||||||
// return interpolate(5000, 1.1, 8000, 1, rpm);
|
// return interpolate(5000, 1.1, 8000, 1, rpm);
|
||||||
// return interpolate(500, 0.5, 5000, 1.1, rpm);
|
// return interpolate(500, 0.5, 5000, 1.1, rpm);
|
||||||
//}
|
//}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return number of milliseconds in one crankshaft revolution
|
* @return number of milliseconds in one crankshaft revolution
|
||||||
*/
|
*/
|
||||||
|
@ -53,7 +53,7 @@ float getCrankshaftRevolutionTimeMs(int rpm) {
|
||||||
* TODO: should be 'crankAngleRange' range?
|
* TODO: should be 'crankAngleRange' range?
|
||||||
*/
|
*/
|
||||||
float fixAngle(float angle DECLARE_ENGINE_PARAMETER_S) {
|
float fixAngle(float angle DECLARE_ENGINE_PARAMETER_S) {
|
||||||
efiAssert(engineConfiguration->engineCycle!=0, "engine cycle", NAN);
|
efiAssert(engineConfiguration->engineCycle != 0, "engine cycle", NAN);
|
||||||
// I guess this implementation would be faster than 'angle % 720'
|
// I guess this implementation would be faster than 'angle % 720'
|
||||||
while (angle < 0)
|
while (angle < 0)
|
||||||
angle += engineConfiguration->engineCycle;
|
angle += engineConfiguration->engineCycle;
|
||||||
|
@ -101,14 +101,10 @@ void setSingleCoilDwell(engine_configuration_s *engineConfiguration) {
|
||||||
engineConfiguration->sparkDwell[7] = 0;
|
engineConfiguration->sparkDwell[7] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int isCrankingRT(engine_configuration_s *engineConfiguration, int rpm) {
|
|
||||||
return rpm > 0 && rpm < engineConfiguration->crankingSettings.crankingRpm;
|
|
||||||
}
|
|
||||||
|
|
||||||
OutputSignalList injectonSignals CCM_OPTIONAL;
|
OutputSignalList injectonSignals CCM_OPTIONAL;
|
||||||
|
|
||||||
static void registerSparkEvent(trigger_shape_s * s,
|
static void registerSparkEvent(trigger_shape_s * s, IgnitionEventList *list, io_pin_e pin, float localAdvance,
|
||||||
IgnitionEventList *list, io_pin_e pin, float localAdvance, float dwell DECLARE_ENGINE_PARAMETER_S) {
|
float dwell DECLARE_ENGINE_PARAMETER_S) {
|
||||||
|
|
||||||
IgnitionEvent *event = list->getNextActuatorEvent();
|
IgnitionEvent *event = list->getNextActuatorEvent();
|
||||||
if (event == NULL)
|
if (event == NULL)
|
||||||
|
@ -125,8 +121,8 @@ static void registerSparkEvent(trigger_shape_s * s,
|
||||||
findTriggerPosition(s, &event->dwellPosition, localAdvance - dwell PASS_ENGINE_PARAMETER);
|
findTriggerPosition(s, &event->dwellPosition, localAdvance - dwell PASS_ENGINE_PARAMETER);
|
||||||
}
|
}
|
||||||
|
|
||||||
void initializeIgnitionActions(float advance, float dwellAngle,
|
void initializeIgnitionActions(float advance, float dwellAngle, engine_configuration2_s *engineConfiguration2,
|
||||||
engine_configuration2_s *engineConfiguration2, IgnitionEventList *list DECLARE_ENGINE_PARAMETER_S) {
|
IgnitionEventList *list DECLARE_ENGINE_PARAMETER_S) {
|
||||||
|
|
||||||
efiAssertVoid(engineConfiguration->cylindersCount > 0, "cylindersCount");
|
efiAssertVoid(engineConfiguration->cylindersCount > 0, "cylindersCount");
|
||||||
|
|
||||||
|
@ -136,15 +132,17 @@ void initializeIgnitionActions(float advance, float dwellAngle,
|
||||||
case IM_ONE_COIL:
|
case IM_ONE_COIL:
|
||||||
for (int i = 0; i < engineConfiguration->cylindersCount; i++) {
|
for (int i = 0; i < engineConfiguration->cylindersCount; i++) {
|
||||||
// todo: extract method
|
// todo: extract method
|
||||||
float localAdvance = advance + (float) engineConfiguration->engineCycle * i / engineConfiguration->cylindersCount;
|
float localAdvance = advance
|
||||||
|
+ (float) engineConfiguration->engineCycle * i / engineConfiguration->cylindersCount;
|
||||||
|
|
||||||
registerSparkEvent(&engineConfiguration2->triggerShape, list, SPARKOUT_1_OUTPUT,
|
registerSparkEvent(&engineConfiguration2->triggerShape, list, SPARKOUT_1_OUTPUT, localAdvance,
|
||||||
localAdvance, dwellAngle PASS_ENGINE_PARAMETER);
|
dwellAngle PASS_ENGINE_PARAMETER);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case IM_WASTED_SPARK:
|
case IM_WASTED_SPARK:
|
||||||
for (int i = 0; i < engineConfiguration->cylindersCount; i++) {
|
for (int i = 0; i < engineConfiguration->cylindersCount; i++) {
|
||||||
float localAdvance = advance + (float) engineConfiguration->engineCycle * i / engineConfiguration->cylindersCount;
|
float localAdvance = advance
|
||||||
|
+ (float) engineConfiguration->engineCycle * i / engineConfiguration->cylindersCount;
|
||||||
|
|
||||||
int wastedIndex = i % (engineConfiguration->cylindersCount / 2);
|
int wastedIndex = i % (engineConfiguration->cylindersCount / 2);
|
||||||
|
|
||||||
|
@ -159,7 +157,8 @@ void initializeIgnitionActions(float advance, float dwellAngle,
|
||||||
break;
|
break;
|
||||||
case IM_INDIVIDUAL_COILS:
|
case IM_INDIVIDUAL_COILS:
|
||||||
for (int i = 0; i < engineConfiguration->cylindersCount; i++) {
|
for (int i = 0; i < engineConfiguration->cylindersCount; i++) {
|
||||||
float localAdvance = advance + (float) engineConfiguration->engineCycle * i / engineConfiguration->cylindersCount;
|
float localAdvance = advance
|
||||||
|
+ (float) engineConfiguration->engineCycle * i / engineConfiguration->cylindersCount;
|
||||||
|
|
||||||
io_pin_e pin = (io_pin_e) ((int) SPARKOUT_1_OUTPUT + getCylinderId(engineConfiguration->firingOrder, i) - 1);
|
io_pin_e pin = (io_pin_e) ((int) SPARKOUT_1_OUTPUT + getCylinderId(engineConfiguration->firingOrder, i) - 1);
|
||||||
registerSparkEvent(&engineConfiguration2->triggerShape, list, pin, localAdvance,
|
registerSparkEvent(&engineConfiguration2->triggerShape, list, pin, localAdvance,
|
||||||
|
@ -172,8 +171,8 @@ void initializeIgnitionActions(float advance, float dwellAngle,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void FuelSchedule::registerInjectionEvent(trigger_shape_s *s,
|
void FuelSchedule::registerInjectionEvent(trigger_shape_s *s, io_pin_e pin, float angle,
|
||||||
io_pin_e pin, float angle, bool_t isSimultanious DECLARE_ENGINE_PARAMETER_S) {
|
bool_t isSimultanious DECLARE_ENGINE_PARAMETER_S) {
|
||||||
ActuatorEventList *list = &events;
|
ActuatorEventList *list = &events;
|
||||||
|
|
||||||
if (!isSimultanious && !isPinAssigned(pin)) {
|
if (!isSimultanious && !isPinAssigned(pin)) {
|
||||||
|
@ -206,10 +205,9 @@ void FuelSchedule::clear() {
|
||||||
memset(hasEvents, 0, sizeof(hasEvents));
|
memset(hasEvents, 0, sizeof(hasEvents));
|
||||||
}
|
}
|
||||||
|
|
||||||
void FuelSchedule::addFuelEvents(trigger_shape_s *s,
|
void FuelSchedule::addFuelEvents(trigger_shape_s *s, injection_mode_e mode DECLARE_ENGINE_PARAMETER_S) {
|
||||||
injection_mode_e mode DECLARE_ENGINE_PARAMETER_S) {
|
|
||||||
ActuatorEventList *list = &events;
|
ActuatorEventList *list = &events;
|
||||||
;
|
;
|
||||||
list->resetEventList();
|
list->resetEventList();
|
||||||
|
|
||||||
float baseAngle = engineConfiguration->globalTriggerAngleOffset + engineConfiguration->injectionOffset;
|
float baseAngle = engineConfiguration->globalTriggerAngleOffset + engineConfiguration->injectionOffset;
|
||||||
|
@ -218,13 +216,15 @@ void FuelSchedule::addFuelEvents(trigger_shape_s *s,
|
||||||
case IM_SEQUENTIAL:
|
case IM_SEQUENTIAL:
|
||||||
for (int i = 0; i < engineConfiguration->cylindersCount; i++) {
|
for (int i = 0; i < engineConfiguration->cylindersCount; i++) {
|
||||||
io_pin_e pin = INJECTOR_PIN_BY_INDEX(getCylinderId(engineConfiguration->firingOrder, i) - 1);
|
io_pin_e pin = INJECTOR_PIN_BY_INDEX(getCylinderId(engineConfiguration->firingOrder, i) - 1);
|
||||||
float angle = baseAngle + (float) engineConfiguration->engineCycle * i / engineConfiguration->cylindersCount;
|
float angle = baseAngle
|
||||||
|
+ (float) engineConfiguration->engineCycle * i / engineConfiguration->cylindersCount;
|
||||||
registerInjectionEvent(s, pin, angle, false PASS_ENGINE_PARAMETER);
|
registerInjectionEvent(s, pin, angle, false PASS_ENGINE_PARAMETER);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case IM_SIMULTANEOUS:
|
case IM_SIMULTANEOUS:
|
||||||
for (int i = 0; i < engineConfiguration->cylindersCount; i++) {
|
for (int i = 0; i < engineConfiguration->cylindersCount; i++) {
|
||||||
float angle = baseAngle + (float) engineConfiguration->engineCycle * i / engineConfiguration->cylindersCount;
|
float angle = baseAngle
|
||||||
|
+ (float) engineConfiguration->engineCycle * i / engineConfiguration->cylindersCount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* We do not need injector pin here because we will control all injectors
|
* We do not need injector pin here because we will control all injectors
|
||||||
|
@ -237,7 +237,8 @@ void FuelSchedule::addFuelEvents(trigger_shape_s *s,
|
||||||
for (int i = 0; i < engineConfiguration->cylindersCount; i++) {
|
for (int i = 0; i < engineConfiguration->cylindersCount; i++) {
|
||||||
int index = i % (engineConfiguration->cylindersCount / 2);
|
int index = i % (engineConfiguration->cylindersCount / 2);
|
||||||
io_pin_e pin = INJECTOR_PIN_BY_INDEX(index);
|
io_pin_e pin = INJECTOR_PIN_BY_INDEX(index);
|
||||||
float angle = baseAngle + i * (float) engineConfiguration->engineCycle / engineConfiguration->cylindersCount;
|
float angle = baseAngle
|
||||||
|
+ i * (float) engineConfiguration->engineCycle / engineConfiguration->cylindersCount;
|
||||||
registerInjectionEvent(s, pin, angle, false PASS_ENGINE_PARAMETER);
|
registerInjectionEvent(s, pin, angle, false PASS_ENGINE_PARAMETER);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -257,12 +258,12 @@ void FuelSchedule::addFuelEvents(trigger_shape_s *s,
|
||||||
*/
|
*/
|
||||||
float getSparkDwellMsT(int rpm DECLARE_ENGINE_PARAMETER_S) {
|
float getSparkDwellMsT(int rpm DECLARE_ENGINE_PARAMETER_S) {
|
||||||
if (isCrankingR(rpm)) {
|
if (isCrankingR(rpm)) {
|
||||||
if(engineConfiguration->useConstantDwellDuringCranking) {
|
if (engineConfiguration->useConstantDwellDuringCranking) {
|
||||||
return engineConfiguration->ignitionDwellForCrankingMs;
|
return engineConfiguration->ignitionDwellForCrankingMs;
|
||||||
} else {
|
} else {
|
||||||
// technically this could be implemented via interpolate2d
|
// technically this could be implemented via interpolate2d
|
||||||
float angle = engineConfiguration->crankingChargeAngle;
|
float angle = engineConfiguration->crankingChargeAngle;
|
||||||
return getOneDegreeTimeMs(rpm) * angle;
|
return getOneDegreeTimeMs(rpm) * angle;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
efiAssert(!cisnan(rpm), "invalid rpm", NAN);
|
efiAssert(!cisnan(rpm), "invalid rpm", NAN);
|
||||||
|
@ -282,8 +283,8 @@ int getEngineCycleEventCount(engine_configuration_s const *engineConfiguration,
|
||||||
return getEngineCycleEventCount2(getOperationMode(engineConfiguration), s);
|
return getEngineCycleEventCount2(getOperationMode(engineConfiguration), s);
|
||||||
}
|
}
|
||||||
|
|
||||||
void findTriggerPosition(trigger_shape_s * s,
|
void findTriggerPosition(trigger_shape_s * s, event_trigger_position_s *position,
|
||||||
event_trigger_position_s *position, float angleOffset DECLARE_ENGINE_PARAMETER_S) {
|
float angleOffset DECLARE_ENGINE_PARAMETER_S) {
|
||||||
|
|
||||||
angleOffset = fixAngle(angleOffset + engineConfiguration->globalTriggerAngleOffset PASS_ENGINE_PARAMETER);
|
angleOffset = fixAngle(angleOffset + engineConfiguration->globalTriggerAngleOffset PASS_ENGINE_PARAMETER);
|
||||||
|
|
||||||
|
@ -359,18 +360,18 @@ int getCylinderId(firing_order_e firingOrder, int index) {
|
||||||
void prepareOutputSignals(Engine *engine) {
|
void prepareOutputSignals(Engine *engine) {
|
||||||
|
|
||||||
engine_configuration_s *engineConfiguration = engine->engineConfiguration;
|
engine_configuration_s *engineConfiguration = engine->engineConfiguration;
|
||||||
engine_configuration2_s *engineConfiguration2 = engine->engineConfiguration2;
|
engine_configuration2_s *engineConfiguration2 = engine->engineConfiguration2;
|
||||||
|
|
||||||
// todo: move this reset into decoder
|
// todo: move this reset into decoder
|
||||||
engineConfiguration2->triggerShape.calculateTriggerSynchPoint(engineConfiguration, &engineConfiguration->triggerConfig, engine);
|
engineConfiguration2->triggerShape.calculateTriggerSynchPoint(engineConfiguration,
|
||||||
|
&engineConfiguration->triggerConfig, engine);
|
||||||
|
|
||||||
trigger_shape_s * ts = &engineConfiguration2->triggerShape;
|
trigger_shape_s * ts = &engineConfiguration2->triggerShape;
|
||||||
|
|
||||||
injectonSignals.clear();
|
injectonSignals.clear();
|
||||||
engineConfiguration2->crankingInjectionEvents.addFuelEvents(ts,
|
engineConfiguration2->crankingInjectionEvents.addFuelEvents(ts,
|
||||||
engineConfiguration->crankingInjectionMode PASS_ENGINE_PARAMETER);
|
engineConfiguration->crankingInjectionMode PASS_ENGINE_PARAMETER);
|
||||||
engineConfiguration2->injectionEvents.addFuelEvents(ts,
|
engineConfiguration2->injectionEvents.addFuelEvents(ts, engineConfiguration->injectionMode PASS_ENGINE_PARAMETER);
|
||||||
engineConfiguration->injectionMode PASS_ENGINE_PARAMETER);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void setFuelRpmBin(engine_configuration_s *engineConfiguration, float l, float r) {
|
void setFuelRpmBin(engine_configuration_s *engineConfiguration, float l, float r) {
|
||||||
|
|
|
@ -53,8 +53,7 @@ inline float getOneDegreeTimeMs(int rpm) {
|
||||||
|
|
||||||
float getCrankshaftRevolutionTimeMs(int rpm);
|
float getCrankshaftRevolutionTimeMs(int rpm);
|
||||||
|
|
||||||
int isCrankingRT(engine_configuration_s *engineConfiguration, int rpm);
|
#define isCrankingR(rpm) ((rpm) > 0 && (rpm) < engineConfiguration->crankingSettings.crankingRpm)
|
||||||
#define isCrankingR(rpm) isCrankingRT(engineConfiguration, rpm)
|
|
||||||
|
|
||||||
float getEngineLoadT(Engine *engine);
|
float getEngineLoadT(Engine *engine);
|
||||||
#define getEngineLoad() getEngineLoadT(engine)
|
#define getEngineLoad() getEngineLoadT(engine)
|
||||||
|
|
|
@ -56,6 +56,7 @@
|
||||||
|
|
||||||
EXTERN_ENGINE
|
EXTERN_ENGINE
|
||||||
;
|
;
|
||||||
|
extern bool hasFirmwareErrorFlag;
|
||||||
|
|
||||||
static LocalVersionHolder localVersion;
|
static LocalVersionHolder localVersion;
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,8 @@ extern "C" {
|
||||||
}
|
}
|
||||||
#include "trigger_emulator.h"
|
#include "trigger_emulator.h"
|
||||||
|
|
||||||
|
extern bool hasFirmwareErrorFlag;
|
||||||
|
|
||||||
static THD_WORKING_AREA(eeThreadStack, UTILITY_THREAD_STACK_SIZE);
|
static THD_WORKING_AREA(eeThreadStack, UTILITY_THREAD_STACK_SIZE);
|
||||||
|
|
||||||
#define DIAG_PORT GPIOD
|
#define DIAG_PORT GPIOD
|
||||||
|
|
|
@ -31,6 +31,7 @@ EXTERN_ENGINE;
|
||||||
#define MAX_ICU_COUNT 5
|
#define MAX_ICU_COUNT 5
|
||||||
|
|
||||||
extern WaveChart waveChart;
|
extern WaveChart waveChart;
|
||||||
|
extern bool hasFirmwareErrorFlag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Difference between current 1st trigger event and previous 1st trigger event.
|
* Difference between current 1st trigger event and previous 1st trigger event.
|
||||||
|
|
|
@ -41,6 +41,7 @@
|
||||||
#include "ec2.h"
|
#include "ec2.h"
|
||||||
|
|
||||||
extern engine_configuration2_s * engineConfiguration2;
|
extern engine_configuration2_s * engineConfiguration2;
|
||||||
|
extern bool hasFirmwareErrorFlag;
|
||||||
|
|
||||||
static bool isSpiInitialized[5] = { false, false, false, false, false };
|
static bool isSpiInitialized[5] = { false, false, false, false, false };
|
||||||
|
|
||||||
|
|
|
@ -127,7 +127,7 @@ int main_loop_started = FALSE;
|
||||||
|
|
||||||
static MemoryStream firmwareErrorMessageStream;
|
static MemoryStream firmwareErrorMessageStream;
|
||||||
uint8_t errorMessageBuffer[200];
|
uint8_t errorMessageBuffer[200];
|
||||||
static bool hasFirmwareErrorFlag = FALSE;
|
bool hasFirmwareErrorFlag = false;
|
||||||
extern engine_configuration_s *engineConfiguration;
|
extern engine_configuration_s *engineConfiguration;
|
||||||
extern board_configuration_s *boardConfiguration;
|
extern board_configuration_s *boardConfiguration;
|
||||||
extern engine_configuration2_s *engineConfiguration2;
|
extern engine_configuration2_s *engineConfiguration2;
|
||||||
|
@ -231,11 +231,6 @@ void chDbgStackOverflowPanic(Thread *otp) {
|
||||||
chDbgPanic3(panicMessage, __FILE__, __LINE__);
|
chDbgPanic3(panicMessage, __FILE__, __LINE__);
|
||||||
}
|
}
|
||||||
|
|
||||||
// todo: make this a macro, noone can trust these compilers
|
|
||||||
bool hasFirmwareError(void) {
|
|
||||||
return hasFirmwareErrorFlag;
|
|
||||||
}
|
|
||||||
|
|
||||||
// todo: why is this method here and not in error_handling.c ?
|
// todo: why is this method here and not in error_handling.c ?
|
||||||
void firmwareError(const char *fmt, ...) {
|
void firmwareError(const char *fmt, ...) {
|
||||||
if (hasFirmwareErrorFlag)
|
if (hasFirmwareErrorFlag)
|
||||||
|
|
|
@ -144,9 +144,7 @@ int warning(obd_code_e code, const char *fmt, ...) {
|
||||||
printf("Warning: %s\r\n", fmt);
|
printf("Warning: %s\r\n", fmt);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool hasFirmwareError(void) {
|
bool hasFirmwareErrorFlag = false;
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
void firmwareError(const char *fmt, ...) {
|
void firmwareError(const char *fmt, ...) {
|
||||||
printf(fmt);
|
printf(fmt);
|
||||||
|
|
|
@ -103,9 +103,7 @@ bool isConsoleReady(void) {
|
||||||
return isSerialOverTcpReady;
|
return isSerialOverTcpReady;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool_t hasFirmwareError(void) {
|
bool hasFirmwareErrorFlag = false;
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
void onFatalError(const char *msg, const char * file, int line) {
|
void onFatalError(const char *msg, const char * file, int line) {
|
||||||
printf("onFatalError %s %s%d", msg, file, line);
|
printf("onFatalError %s %s%d", msg, file, line);
|
||||||
|
|
Loading…
Reference in New Issue