auto-sync

This commit is contained in:
rusEfi 2016-11-23 17:01:59 -05:00
parent e8c708eabc
commit 704a5113bc
3 changed files with 7 additions and 6 deletions

View File

@ -22,7 +22,8 @@ int getVtSizeEstimate(void);
void assertVtList(void);
void setWarningCode(obd_code_e code, efitimesec_t now);
void addWarningCode(obd_code_e code);
/**
* Something is wrong, but we can live with it: some minor sensor is disconnected
* or something like that

View File

@ -71,9 +71,7 @@ bool isWarningNow(efitimesec_t now, bool forIndicator) {
return absI(now - engine->engineState.timeOfPreviousWarning) < period;
}
void setWarningCode(obd_code_e code, efitimesec_t now) {
engine->engineState.timeOfPreviousWarning = now;
void addWarningCode(obd_code_e code) {
engine->engineState.warningCounter++;
engine->engineState.lastErrorCode = code;
}
@ -92,10 +90,12 @@ bool warning(obd_code_e code, const char *fmt, ...) {
printf("warning %s\r\n", fmt);
#endif
addWarningCode(code);
efitimesec_t now = getTimeNowSeconds();
if (isWarningNow(now, false) || !warningEnabled)
return true; // we just had another warning, let's not spam
setWarningCode(code, now);
engine->engineState.timeOfPreviousWarning = now;
resetLogging(&logger); // todo: is 'reset' really needed here?
appendMsgPrefix(&logger);

View File

@ -259,7 +259,7 @@ void chDbgStackOverflowPanic(Thread *otp) {
void firmwareError(obd_code_e code, const char *errorMsg, ...) {
if (hasFirmwareErrorFlag)
return;
setWarningCode(code, getTimeNowSeconds());
addWarningCode(code);
ON_FATAL_ERROR()
;
hasFirmwareErrorFlag = true;