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 =
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 =

View File

@ -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<totstarttractsecs) totcurrentsecs+=86400;
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.
// 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;
}