From 7f33c78305dc61642a223df575d3782d4e9038ca Mon Sep 17 00:00:00 2001 From: Stanley Huang Date: Tue, 18 Jun 2013 18:00:31 +0800 Subject: update OBD tester --- samples/obdtest/obdtest.ino | 50 +++++++++++++++++++-------------------------- 1 file changed, 21 insertions(+), 29 deletions(-) (limited to 'samples') diff --git a/samples/obdtest/obdtest.ino b/samples/obdtest/obdtest.ino index a2b88b0..772ef40 100644 --- a/samples/obdtest/obdtest.ino +++ b/samples/obdtest/obdtest.ino @@ -39,7 +39,8 @@ uint16_t pid = 0x0111; bool hasMPU6050 = false; //create object to control an LCD. -//LCD_OLED lcd; +//LCD_SSD1306 lcd; +//LCD_ZTOLED lcd; LCD_PCD8544 lcd; //LCD_1602 lcd; //LCD_ILI9325D lcd; @@ -303,6 +304,25 @@ void testMPU6050() lcd.print(buf); } +void ShowECUCap() +{ + char buffer[24]; + byte pidlist[] = {PID_RPM, PID_SPEED, PID_THROTTLE, PID_ENGINE_LOAD, PID_ABS_ENGINE_LOAD, PID_MAF_FLOW, PID_INTAKE_MAP, PID_FUEL_LEVEL, PID_FUEL_PRESSURE, PID_COOLANT_TEMP, PID_INTAKE_TEMP, PID_AMBIENT_TEMP, PID_TIMING_ADVANCE, PID_BAROMETRIC}; + const char* namelist[] = {"RPM", "SPEED", "THROTTLE", "ENG.LOAD1", "ENG.LOAD2", "MAF", "MAP", "FUEL LV.", "FUEL PRE.", "COOLANT", "INTAKE","AMBIENT", "IGNITION", "BARO"}; + byte i = 0; + lcd.clear(); + lcd.setFont(FONT_SIZE_SMALL); + for (; i < sizeof(pidlist) / sizeof(pidlist[0]) / 2; i++) { + lcd.setCursor(0, i); + sprintf(buffer, "%s:%c", namelist[i], obd.IsValidPID(pidlist[i]) ? 'Y' : 'N'); + lcd.print(buffer); + } + for (byte row = 0; i < sizeof(pidlist) / sizeof(pidlist[0]); i++, row++) { + lcd.setCursor(64, row); + sprintf(buffer, "%s:%c", namelist[i], obd.IsValidPID(pidlist[i]) ? 'Y' : 'N'); + lcd.print(buffer); + } +} void setup() { @@ -344,34 +364,6 @@ void setup() delay(500); } while(!obd.Init()); - char buffer[16]; - lcd.clear(); - sprintf(buffer, "RPM:%c", obd.IsValidPID(PID_RPM) ? 'Y' : 'N'); - lcd.print(buffer); - lcd.setCursor(7, 0); - sprintf(buffer, "SPD:%c", obd.IsValidPID(PID_SPEED) ? 'Y' : 'N'); - lcd.print(buffer); - - lcd.setCursor(0, 1); - sprintf(buffer, "THR:%c", obd.IsValidPID(PID_THROTTLE) ? 'Y' : 'N'); - lcd.print(buffer); - lcd.setCursor(7, 1); - sprintf(buffer, "LOD:%c", obd.IsValidPID(PID_ENGINE_LOAD) ? 'Y' : 'N'); - lcd.print(buffer); - - lcd.setCursor(0, 2); - sprintf(buffer, "MAF:%c", obd.IsValidPID(PID_MAF_FLOW) ? 'Y' : 'N'); - lcd.print(buffer); - lcd.setCursor(7, 2); - sprintf(buffer, "MAP:%c", obd.IsValidPID(PID_INTAKE_MAP) ? 'Y' : 'N'); - lcd.print(buffer); - - lcd.setCursor(0, 3); - sprintf(buffer, "FUE:%c", obd.IsValidPID(PID_FUEL_LEVEL) ? 'Y' : 'N'); - lcd.print(buffer); - lcd.setCursor(7, 3); - sprintf(buffer, "PRE:%c", obd.IsValidPID(PID_FUEL_PRESSURE) ? 'Y' : 'N'); - lcd.print(buffer); delay(3000); lcd.clear(); //query(); -- cgit v1.2.3