From cf5f1986dcc0529cb18783bc66682fe9213f6698 Mon Sep 17 00:00:00 2001 From: Bluedragon Date: Tue, 26 Apr 2022 02:25:11 +0700 Subject: [PATCH] tidyup redrawrally --- platformio.ini | 3 +- src/main.cpp | 157 +++++++++++++++++++++++++++++++++++++------------ 2 files changed, 123 insertions(+), 37 deletions(-) diff --git a/platformio.ini b/platformio.ini index 71060f2..0fb71ab 100644 --- a/platformio.ini +++ b/platformio.ini @@ -16,7 +16,7 @@ monitor_speed = 115200 lib_deps = ottowinter/ESPAsyncWebServer-esphome@^2.1.0 esphome/AsyncTCP-esphome@^1.2.2 - SPIFFS + ;SPIFFS bblanchon/ArduinoJson@^6.19.4 khoih-prog/ESPAsync_WiFiManager@^1.12.2 rodan/ds3231@^1.0 @@ -26,6 +26,7 @@ lib_deps = Wire ;arduino-libraries/LiquidCrystal@^1.0.7 https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library.git + ;https://github.com/mathertel/LiquidCrystal_PCF8574.git [env:env1] lib_deps = diff --git a/src/main.cpp b/src/main.cpp index f4efd22..384e2b5 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -151,7 +151,8 @@ const int lcdRows = 4; #define LED_BUILTIN 22 // LED built in pada ESP32 Lolin32 Lite // set LCD address, number of columns and rows // if you don't know your display address, run an I2C scanner sketch -LiquidCrystal_I2C lcd(0x27, lcdColumns, lcdRows); // marcoschwartz. ujungnya jelek +LiquidCrystal_I2C lcd(0x27, lcdColumns, lcdRows); // marcoschwartz. ujungnya jelek ->remark + /*-----( Declare objects )-----*/ //LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin); @@ -311,7 +312,7 @@ void notFound(AsyncWebServerRequest *request) { String readFile(fs::FS &fs, const char * path){ // Serial.printf("Reading file: %s\r\n", path); - if (fs.exists(path)){ + // if (fs.exists(path)){ File file = fs.open(path, "r"); if(!file || file.isDirectory()){ Serial.println("- empty file or failed to open file"); @@ -332,7 +333,7 @@ String readFile(fs::FS &fs, const char * path){ file.close(); Serial.println(fileContent); return fileContent; - } else {return String();} + // } else {return String();} } boolean writeFile(fs::FS &fs, const char * path, const char * message){ @@ -1369,6 +1370,32 @@ void redrawcalibrationMenuForESP32() serializeJson(getCalib, getCalibJson); } + +// char digitClock(int v){ +// if (v < 10) +// return '0' + v; +// else +// return 'A' + (v-10); +// } +void digitClock(int v){ + // lcd.setCursor(x,y); + if (v < 10){ + lcd.print("0"); + lcd.print(v); + // return '0' + v; + } + else lcd.print(v); +} +void digitClock(int v, byte x, byte y){ + lcd.setCursor(x,y); + if (v < 10){ + lcd.print("0"); + lcd.print(v); + // return '0' + v; + } + else lcd.print(v); +} + void redrawrallyMenu() { // Serial.println("redrawRM"); @@ -1379,7 +1406,6 @@ void redrawrallyMenu() //Serial.print(tempcount1);Serial.print(";"); Serial.print(time1);Serial.print("; ");Serial.print(Calibration); Serial.print(";"); Serial.println(count1); updateCount(); - //distance = (float)count1/((float)Calibration); distance1 = (float)count1/((float)Calibration); // * 1); distance2 = (float)count2/((float)Calibration); float speed1=0; @@ -1410,16 +1436,16 @@ void redrawrallyMenu() //Serial.print(starttracthour); Serial.print(":"); Serial.print(starttractmin); Serial.print(":"); Serial.println(starttractsec); //Serial.println(distance2,3); - lcd.setCursor(4,0); - lcd.print(Trip[curTrip].sub); - lcd.setCursor(0,2); + // lcd.setCursor(4,0); + // lcd.print(Trip[curTrip].sub); + // lcd.setCursor(0,2); - lcd.print(Trip[curTrip].speed); - lcd.print("Km/H"); + // lcd.print(Trip[curTrip].speed); + // lcd.print("Km/H"); runningtime(6,0); - lcd.setCursor(11,2); + // lcd.setCursor(11,2); char cur_speed_str[9]; int speedtemp=(int)speed1; int speedtemp2=(int)((speed1 - (int)speed1)*10); @@ -1427,10 +1453,10 @@ void redrawrallyMenu() sprintf(cur_speed_str, "%3d.%01dKm/h", speedtemp , speedtemp2 ); // Serial.print(count1); Serial.print(";");Serial.print(Calibration); Serial.print(";");Serial.print(speed1); Serial.print(";");Serial.println(cur_speed_str); // Serial.print(distance1); Serial.print(";");Serial.print(startdistance); Serial.print(";");Serial.print(startspeed); Serial.println(";"); - lcd.print(cur_speed_str); + // lcd.print(cur_speed_str); char cur_distance1_str[8]; char cur_distance2_str[8]; - lcd.setCursor(0,1); + // lcd.setCursor(0,1); // Serial.print(";redrawRM 2;"); if (distance1<100) { sprintf(cur_distance1_str, "%02d.%03dKm", (int)distance1, (int)((distance1 - (int)distance1)*1000)); @@ -1441,10 +1467,9 @@ void redrawrallyMenu() else { sprintf(cur_distance1_str, "%03d.%01dKm", (int)distance1, (int)((distance1 - (int)distance1)*10)); } - //lcd.print(distance1,3); - lcd.print(cur_distance1_str); + // lcd.print(cur_distance1_str); - lcd.setCursor(0,3); + // lcd.setCursor(0,3); if (distance2<100) { sprintf(cur_distance2_str, "%02d.%03dKm", (int)distance2, (int)((distance2 - (int)distance2)*1000)); } @@ -1454,16 +1479,15 @@ void redrawrallyMenu() else { sprintf(cur_distance2_str, "%03d.%01dKm", (int)distance2, (int)((distance2 - (int)distance2)*10)); } - //lcd.print(distance2,3); - lcd.print(cur_distance2_str); + // lcd.print(cur_distance2_str); // Serial.print(";redrawRM 3;"); float distancetime1 = distance1 * 60 / constanta; float distancetime2 = distance2 * 60 / constanta; //Calculating all about TIME,TDiff(including passing 23:59:59) - lcd.setCursor(9,1); - int secs1, mins1, hours1; + // lcd.setCursor(9,1); + uint8_t secs1, mins1, hours1; secs1 = (distancetime1-(int)distancetime1)*60; mins1 = (int)distancetime1 % 60; @@ -1480,7 +1504,6 @@ void redrawrallyMenu() if (totcurrentsecs=0) { //positif means we are too fast, slow down please. if (tottime1 >= totcurrentsecs) { //positif means we are too fast, slow down please. // Serial.println("pos"); negatifsign = false; @@ -1499,6 +1522,15 @@ void redrawrallyMenu() char cur_time1_str[12]; if (showTIME) { + // lcd.setCursor(9,1); + // lcd.print(dircount[dircount1]); + // lcd.print(" "); + // digitClock(hours1); + // lcd.print(":"); + // digitClock(mins1); + // lcd.print(":"); + // digitClock(secs1); + sprintf(cur_time1_str, "%s %02d:%02d:%02d", dircount[dircount1], hours1, mins1, secs1); } else { @@ -1506,11 +1538,11 @@ void redrawrallyMenu() else sprintf(cur_time1_str, "%s%s%02d:%02d:%02d", dircount[dircount1], (negatifsign?"-":" "), hours1, mins1, secs1); } - lcd.print(cur_time1_str); + // lcd.print(cur_time1_str); // Serial.print(";redrawRM 5;"); // Print Second TIME - lcd.setCursor(9,3); - int secs2, mins2, hours2; + // lcd.setCursor(9,3); + uint8_t secs2, mins2, hours2; secs2 = (distancetime2-(int)distancetime2)*60; mins2 = (int)distancetime2 % 60; @@ -1534,24 +1566,61 @@ void redrawrallyMenu() hours2 = ((int)(tottime2 / 3600))%24; mins2 = (int)((tottime2 % 3600)/60); secs2 = (tottime2 % 60); - char cur_time2_str[12]; + char cur_time2_str[11]; if (showTIME) { - sprintf(cur_time2_str, "%s %02d:%02d:%02d", dircount[dircount2], hours2, mins2, secs2); + lcd.setCursor(9,3); + lcd.print(dircount[dircount2]); + lcd.print(" "); + digitClock(hours2); + lcd.print(":"); + digitClock(mins2); + lcd.print(":"); + digitClock(secs2); + + // sprintf(cur_time2_str, "%s %02d:%02d:%02d", dircount[dircount2], hours2, mins2, secs2); } else { if (hours2<10) sprintf(cur_time2_str, "%s %s%01d:%02d:%02d", dircount[dircount2], (negatifsign?"-":" "), hours2, mins2, secs2); else sprintf(cur_time2_str, "%s%s%02d:%02d:%02d", dircount[dircount2], (negatifsign?"-":" "), hours2, mins2, secs2); } - //sprintf(cur_time2_str, "%s%02d:%02d:%02d", (dirfwdcount2?"Fw":"Bw"), hours2, mins2, secs2); - //sprintf(cur_time2_str, "%s %02d:%02d:%02d", dircount[dircount2], hours2, mins2, secs2); - lcd.print(cur_time2_str); -/* //may be needed to refresh if Km more than 10000Km - lcd.setCursor(8,3); - lcd.write(1); //UP Arrow + + // lcd.setCursor(4,0); + // lcd.print(Trip[curTrip].sub); + // lcd.setCursor(0,2); + // lcd.print(Trip[curTrip].speed); + // lcd.print("Km/H"); + + // lcd.setCursor(11,2); + + // lcd.print(cur_speed_str); + + // lcd.setCursor(0,1); + + // lcd.print(cur_distance1_str); - lcd.setCursor(8,1); - lcd.write(2); //DOWN Arrow -*/ + + // lcd.setCursor(0,3); + + // lcd.print(cur_distance2_str); + + // lcd.setCursor(9,1); + // lcd.print(dircount[dircount1]); + // // lcd.print(cur_time1_str); + // digitClock(hours1,12,1); + // lcd.print(":"); + // // lcd.print(digitClock(mins1)); + // digitClock(mins1); + // lcd.print(":"); + // // lcd.print(digitClock(secs1)); + // digitClock(secs1); + // // Serial.print(digitClock(hours1));Serial.print(":");Serial.print(digitClock(mins1));Serial.print(":");Serial.println(digitClock(secs1)); + + // // lcd.setCursor(9,3); + + + // // lcd.print(cur_time2_str); + + lcd.setCursor(x,y); // Serial.println("END redrawRM"); } @@ -2121,6 +2190,22 @@ Trip[9].startSec = 58; //Serial.println(Trip[0].subTime); +// lcd.init(); +// lcd.backlight(); + +// lcd.begin(LCD_COLS, LCD_ROWS); +// lcd.setBacklight(0xff); +// Wire.setClock(400000L); // set i2c clock bit rate, if asked + +// lcd.print("i2c clock:"); +// lcd.setCursor(0,1); +// lcd.print(Wire.getClock()); +// lcd.print(" Hz"); +// delay(3000); + + + + //**************************LCD Setup******************************** @@ -3487,14 +3572,14 @@ void loop() //loop from VSS RALLY V2 if (MENU==RALLY) { if (((now1 - prevtemprally) >= tempintervalrally) && !isloadingConst) { //if ((long)(now1 - prevtemprally) >= 0) { - // testLoadTime=millis(); + testLoadTime=millis(); //rallyMenu(); if (!rallyEdit) { iscalculatingRally=true; redrawrallyMenu(); //Distance is edited? iscalculatingRally=false; } - // Serial.println(millis()-testLoadTime); + Serial.println(millis()-testLoadTime); prevtemprally=now1; //prevtemprally+=tempintervalrally; }