Чтение ошибок

master
Bill1389 1 year ago
parent 603cde9682
commit c0d6224b76

BIN
.DS_Store vendored

Binary file not shown.

@ -10,7 +10,7 @@
EncButton<EB_TICK, pinButton> btnUp(INPUT); EncButton<EB_TICK, pinButton> btnUp(INPUT);
//#define DEBUG; //#define DEBUG;
#define LOGS; //#define LOGS;
// avr // avr
#define FIS_ENA 5 #define FIS_ENA 5
#define FIS_CLK 6 #define FIS_CLK 6
@ -29,9 +29,10 @@ VAGFISWriter fisWriter(FIS_CLK, FIS_DATA, FIS_ENA, 1);
int ADR_Engine_Speed = 10400; int ADR_Engine_Speed = 10400;
int ADR_Dashboard_Speed = 10400; int ADR_Dashboard_Speed = 10400;
uint8_t ErrorArray[10]; int ErrorArray[10];
NewSoftwareSerial obd(pinKLineRX, pinKLineTX, false); // RX, TX, inverse logic NewSoftwareSerial obd(pinKLineRX, pinKLineTX, false); // RX, TX, inverse logic
bool readErrorflag = 0;
int errorErrorCount = 1;
bool logoDash = 0; bool logoDash = 0;
const uint8_t PROGMEM quattroLogo[56]{ const uint8_t PROGMEM quattroLogo[56]{
0xff, 0xff, 0xff, 0xff, 0x3e, 0xff, 0xff, 0xff, 0xc0, 0xef, 0xec, 0x02, 0x04, 0x1e, 0x0f, 0x9b, 0x80, 0x2f, 0xe8, 0x01, 0x3e, 0xfc, 0x04, 0x01, 0xbf, 0x2f, 0xe9, 0xf9, 0x3a, 0xe5, 0xfc, 0xfc, 0x80, 0x20, 0x08, 0x09, 0x02, 0x05, 0xfc, 0x01, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; 0xff, 0xff, 0xff, 0xff, 0x3e, 0xff, 0xff, 0xff, 0xc0, 0xef, 0xec, 0x02, 0x04, 0x1e, 0x0f, 0x9b, 0x80, 0x2f, 0xe8, 0x01, 0x3e, 0xfc, 0x04, 0x01, 0xbf, 0x2f, 0xe9, 0xf9, 0x3a, 0xe5, 0xfc, 0xfc, 0x80, 0x20, 0x08, 0x09, 0x02, 0x05, 0xfc, 0x01, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
@ -621,6 +622,48 @@ bool readSensors(int group){
return true; return true;
} }
// сброс ошибок
bool clearErrors(){
char s[64];
sprintf(s, "\x03%c\x05\x03", blockCounter);
#ifdef DEBUG
Serial.println(F("TUTTUTTUTTUTTUT"));
#endif
if (!KWPSendBlock(s, 4)) return false;
int size = 0;
KWPReceiveBlock(s, 64, size);
if (s[3] == '\xFF' && s[4] == '\xFF') {
#ifdef DEBUG
Serial.println(F("No errors in ECU"));
#endif
return false;
}
if (s[2] != '\xFC') {
#ifdef DEBUG
Serial.println(F("Invalid answer from ECU"));
#endif
return false;
}
#ifdef LOGS
Serial.println(F("------readErrors------"));
#endif
int count = (size-4) / 3;
#ifdef DEBUG
Serial.print(F("count="));
Serial.println(count);
#endif
return true;
}
// конец сброса ошибок
// чтение ошибок. Пишется в массив ErrorArray - 0 элемент - количество ошибок, дальше их номера // чтение ошибок. Пишется в массив ErrorArray - 0 элемент - количество ошибок, дальше их номера
bool readErrors(){ bool readErrors(){
// uint8_t ErrorArray[10]; // uint8_t ErrorArray[10];
@ -661,7 +704,7 @@ int v = a*256+b;
ErrorArray[0] = count; ErrorArray[0] = count;
ErrorArray[idx+1] = v; ErrorArray[idx+1] = v;
#ifdef LOGS #ifdef LOGS
Serial.println(v); //Serial.println(v);
#endif #endif
} }
return true; return true;
@ -736,9 +779,15 @@ void loop()
if (btnUp.held()) if (btnUp.held())
{ {
if(currPage==10){
clearErrors();
} else {
fullDash = !fullDash; fullDash = !fullDash;
countLoop = 1; countLoop = 1;
fisWriter.reset(); fisWriter.reset();
!readErrorflag;
}
} }
if (!fullDash) if (!fullDash)
@ -748,6 +797,7 @@ void loop()
currPage++; currPage++;
if (currPage > 10) if (currPage > 10)
currPage = 1; currPage = 1;
!readErrorflag;
eeprom_update_byte(0, currPage); eeprom_update_byte(0, currPage);
} }
@ -841,21 +891,34 @@ void loop()
fisWriter.sendString(String(vehicleSpeedAVG) + "K", String(L100AVG) + "L"); fisWriter.sendString(String(vehicleSpeedAVG) + "K", String(L100AVG) + "L");
break; break;
case 9: case 9:
getDashboardSensor(2); getECUSensor(20);
fisWriter.sendString("FUEL:", String(fuelLevel)); fisWriter.sendString("RETARDS:", String(param0) + ":" + String(param1) + ":" + String(param2) + ":" + String(param3));
break; break;
// getDashboardSensor(2);
// fisWriter.sendString("FUEL:", String(fuelLevel));
// break;
case 10: case 10:
if(!readErrorflag){
if (currAddr != ADR_Engine) if (currAddr != ADR_Engine)
{ {
connect(ADR_Engine, ADR_Engine_Speed); connect(ADR_Engine, ADR_Engine_Speed);
} }
else
{
readErrors(); readErrors();
fisWriter.sendString(String(ErrorArray[0]), String(ErrorArray[1])); !readErrorflag;
// disconnect();
}
if(ErrorArray[errorErrorCount]){
} else {
errorErrorCount = 1;
} }
fisWriter.sendString(String(ErrorArray[0]), String(ErrorArray[errorErrorCount]));
Serial.println(ErrorArray[errorErrorCount]);
errorErrorCount++;
delay(1000);
break; break;
} }

Loading…
Cancel
Save