tidyup redrawrally

This commit is contained in:
Bluedragon 2022-04-26 02:25:11 +07:00
parent 1e404def49
commit cf5f1986dc
2 changed files with 123 additions and 37 deletions

View File

@ -16,7 +16,7 @@ monitor_speed = 115200
lib_deps = lib_deps =
ottowinter/ESPAsyncWebServer-esphome@^2.1.0 ottowinter/ESPAsyncWebServer-esphome@^2.1.0
esphome/AsyncTCP-esphome@^1.2.2 esphome/AsyncTCP-esphome@^1.2.2
SPIFFS ;SPIFFS
bblanchon/ArduinoJson@^6.19.4 bblanchon/ArduinoJson@^6.19.4
khoih-prog/ESPAsync_WiFiManager@^1.12.2 khoih-prog/ESPAsync_WiFiManager@^1.12.2
rodan/ds3231@^1.0 rodan/ds3231@^1.0
@ -26,6 +26,7 @@ lib_deps =
Wire Wire
;arduino-libraries/LiquidCrystal@^1.0.7 ;arduino-libraries/LiquidCrystal@^1.0.7
https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library.git https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library.git
;https://github.com/mathertel/LiquidCrystal_PCF8574.git
[env:env1] [env:env1]
lib_deps = lib_deps =

View File

@ -151,7 +151,8 @@ const int lcdRows = 4;
#define LED_BUILTIN 22 // LED built in pada ESP32 Lolin32 Lite #define LED_BUILTIN 22 // LED built in pada ESP32 Lolin32 Lite
// set LCD address, number of columns and rows // set LCD address, number of columns and rows
// if you don't know your display address, run an I2C scanner sketch // 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 )-----*/ /*-----( Declare objects )-----*/
//LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin); //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){ String readFile(fs::FS &fs, const char * path){
// Serial.printf("Reading file: %s\r\n", path); // Serial.printf("Reading file: %s\r\n", path);
if (fs.exists(path)){ // if (fs.exists(path)){
File file = fs.open(path, "r"); File file = fs.open(path, "r");
if(!file || file.isDirectory()){ if(!file || file.isDirectory()){
Serial.println("- empty file or failed to open file"); Serial.println("- empty file or failed to open file");
@ -332,7 +333,7 @@ String readFile(fs::FS &fs, const char * path){
file.close(); file.close();
Serial.println(fileContent); Serial.println(fileContent);
return fileContent; return fileContent;
} else {return String();} // } else {return String();}
} }
boolean writeFile(fs::FS &fs, const char * path, const char * message){ boolean writeFile(fs::FS &fs, const char * path, const char * message){
@ -1369,6 +1370,32 @@ void redrawcalibrationMenuForESP32()
serializeJson(getCalib, getCalibJson); 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() void redrawrallyMenu()
{ {
// Serial.println("redrawRM"); // 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); //Serial.print(tempcount1);Serial.print(";"); Serial.print(time1);Serial.print("; ");Serial.print(Calibration); Serial.print(";"); Serial.println(count1);
updateCount(); updateCount();
//distance = (float)count1/((float)Calibration);
distance1 = (float)count1/((float)Calibration); // * 1); distance1 = (float)count1/((float)Calibration); // * 1);
distance2 = (float)count2/((float)Calibration); distance2 = (float)count2/((float)Calibration);
float speed1=0; float speed1=0;
@ -1410,16 +1436,16 @@ void redrawrallyMenu()
//Serial.print(starttracthour); Serial.print(":"); Serial.print(starttractmin); Serial.print(":"); Serial.println(starttractsec); //Serial.print(starttracthour); Serial.print(":"); Serial.print(starttractmin); Serial.print(":"); Serial.println(starttractsec);
//Serial.println(distance2,3); //Serial.println(distance2,3);
lcd.setCursor(4,0); // lcd.setCursor(4,0);
lcd.print(Trip[curTrip].sub); // lcd.print(Trip[curTrip].sub);
lcd.setCursor(0,2); // lcd.setCursor(0,2);
lcd.print(Trip[curTrip].speed); // lcd.print(Trip[curTrip].speed);
lcd.print("Km/H"); // lcd.print("Km/H");
runningtime(6,0); runningtime(6,0);
lcd.setCursor(11,2); // lcd.setCursor(11,2);
char cur_speed_str[9]; char cur_speed_str[9];
int speedtemp=(int)speed1; int speedtemp=(int)speed1;
int speedtemp2=(int)((speed1 - (int)speed1)*10); int speedtemp2=(int)((speed1 - (int)speed1)*10);
@ -1427,10 +1453,10 @@ void redrawrallyMenu()
sprintf(cur_speed_str, "%3d.%01dKm/h", speedtemp , speedtemp2 ); 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(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(";"); // 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_distance1_str[8];
char cur_distance2_str[8]; char cur_distance2_str[8];
lcd.setCursor(0,1); // lcd.setCursor(0,1);
// Serial.print(";redrawRM 2;"); // Serial.print(";redrawRM 2;");
if (distance1<100) { if (distance1<100) {
sprintf(cur_distance1_str, "%02d.%03dKm", (int)distance1, (int)((distance1 - (int)distance1)*1000)); sprintf(cur_distance1_str, "%02d.%03dKm", (int)distance1, (int)((distance1 - (int)distance1)*1000));
@ -1441,10 +1467,9 @@ void redrawrallyMenu()
else { else {
sprintf(cur_distance1_str, "%03d.%01dKm", (int)distance1, (int)((distance1 - (int)distance1)*10)); 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) { if (distance2<100) {
sprintf(cur_distance2_str, "%02d.%03dKm", (int)distance2, (int)((distance2 - (int)distance2)*1000)); sprintf(cur_distance2_str, "%02d.%03dKm", (int)distance2, (int)((distance2 - (int)distance2)*1000));
} }
@ -1454,16 +1479,15 @@ void redrawrallyMenu()
else { else {
sprintf(cur_distance2_str, "%03d.%01dKm", (int)distance2, (int)((distance2 - (int)distance2)*10)); 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;"); // Serial.print(";redrawRM 3;");
float distancetime1 = distance1 * 60 / constanta; float distancetime1 = distance1 * 60 / constanta;
float distancetime2 = distance2 * 60 / constanta; float distancetime2 = distance2 * 60 / constanta;
//Calculating all about TIME,TDiff(including passing 23:59:59) //Calculating all about TIME,TDiff(including passing 23:59:59)
lcd.setCursor(9,1); // lcd.setCursor(9,1);
int secs1, mins1, hours1; uint8_t secs1, mins1, hours1;
secs1 = (distancetime1-(int)distancetime1)*60; secs1 = (distancetime1-(int)distancetime1)*60;
mins1 = (int)distancetime1 % 60; mins1 = (int)distancetime1 % 60;
@ -1480,7 +1504,6 @@ void redrawrallyMenu()
if (totcurrentsecs<totstarttractsecs) totcurrentsecs+=86400; if (totcurrentsecs<totstarttractsecs) totcurrentsecs+=86400;
if (!showTIME) { if (!showTIME) {
//if ((long)(tottime1 - totcurrentsecs)>=0) { //positif means we are too fast, slow down please.
if (tottime1 >= totcurrentsecs) { //positif means we are too fast, slow down please. if (tottime1 >= totcurrentsecs) { //positif means we are too fast, slow down please.
// Serial.println("pos"); // Serial.println("pos");
negatifsign = false; negatifsign = false;
@ -1499,6 +1522,15 @@ void redrawrallyMenu()
char cur_time1_str[12]; char cur_time1_str[12];
if (showTIME) { 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); sprintf(cur_time1_str, "%s %02d:%02d:%02d", dircount[dircount1], hours1, mins1, secs1);
} }
else { else {
@ -1506,11 +1538,11 @@ void redrawrallyMenu()
else sprintf(cur_time1_str, "%s%s%02d:%02d:%02d", dircount[dircount1], (negatifsign?"-":" "), hours1, mins1, secs1); 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;"); // Serial.print(";redrawRM 5;");
// Print Second TIME // Print Second TIME
lcd.setCursor(9,3); // lcd.setCursor(9,3);
int secs2, mins2, hours2; uint8_t secs2, mins2, hours2;
secs2 = (distancetime2-(int)distancetime2)*60; secs2 = (distancetime2-(int)distancetime2)*60;
mins2 = (int)distancetime2 % 60; mins2 = (int)distancetime2 % 60;
@ -1534,24 +1566,61 @@ void redrawrallyMenu()
hours2 = ((int)(tottime2 / 3600))%24; hours2 = ((int)(tottime2 / 3600))%24;
mins2 = (int)((tottime2 % 3600)/60); mins2 = (int)((tottime2 % 3600)/60);
secs2 = (tottime2 % 60); secs2 = (tottime2 % 60);
char cur_time2_str[12]; char cur_time2_str[11];
if (showTIME) { 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 { else {
if (hours2<10) sprintf(cur_time2_str, "%s %s%01d:%02d:%02d", dircount[dircount2], (negatifsign?"-":" "), hours2, mins2, secs2); 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); 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.setCursor(4,0);
lcd.print(cur_time2_str); // lcd.print(Trip[curTrip].sub);
/* //may be needed to refresh if Km more than 10000Km // lcd.setCursor(0,2);
lcd.setCursor(8,3); // lcd.print(Trip[curTrip].speed);
lcd.write(1); //UP Arrow // 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); lcd.setCursor(x,y);
// Serial.println("END redrawRM"); // Serial.println("END redrawRM");
} }
@ -2121,6 +2190,22 @@ Trip[9].startSec = 58;
//Serial.println(Trip[0].subTime); //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******************************** //**************************LCD Setup********************************
@ -3487,14 +3572,14 @@ void loop() //loop from VSS RALLY V2
if (MENU==RALLY) { if (MENU==RALLY) {
if (((now1 - prevtemprally) >= tempintervalrally) && !isloadingConst) { if (((now1 - prevtemprally) >= tempintervalrally) && !isloadingConst) {
//if ((long)(now1 - prevtemprally) >= 0) { //if ((long)(now1 - prevtemprally) >= 0) {
// testLoadTime=millis(); testLoadTime=millis();
//rallyMenu(); //rallyMenu();
if (!rallyEdit) { if (!rallyEdit) {
iscalculatingRally=true; iscalculatingRally=true;
redrawrallyMenu(); //Distance is edited? redrawrallyMenu(); //Distance is edited?
iscalculatingRally=false; iscalculatingRally=false;
} }
// Serial.println(millis()-testLoadTime); Serial.println(millis()-testLoadTime);
prevtemprally=now1; prevtemprally=now1;
//prevtemprally+=tempintervalrally; //prevtemprally+=tempintervalrally;
} }