From 60acbe65d1bb3039967345d9331f21d7300b391e Mon Sep 17 00:00:00 2001 From: Bluedragon Date: Wed, 27 Apr 2022 02:31:27 +0700 Subject: [PATCH] v3.101 --- src/index.h | 2 +- src/main.cpp | 193 ++++++++++++++++++++++++++------------------------- 2 files changed, 101 insertions(+), 94 deletions(-) diff --git a/src/index.h b/src/index.h index 658bf88..836f3bf 100644 --- a/src/index.h +++ b/src/index.h @@ -42,7 +42,7 @@ const char HTML_startrally1[] PROGMEM = R"rawliteral( } } ping++; - document.getElementById("counter").innerHTML = data.counter; + document.getElementById("counter").innerHTML = data.counter+";"+data.counter2; document.getElementById("currenttime").innerHTML = data.Time; document.getElementById("currenttrack").innerHTML = data.Trip; document.getElementById("tripspeed").innerHTML = data.TSpeed; diff --git a/src/main.cpp b/src/main.cpp index 825d81d..20e7790 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1384,7 +1384,16 @@ void redrawcalibrationMenu() lcd.print(cur_distance_str); // } } -String gcurTime; +// Declaration for calculationRally Variable + char gcur_speed_str[6]; + char gcur_distance1_str[7]; + char gcur_distance2_str[7]; + char gcur_time1_str[12]; + char gcur_time2_str[12]; + String gcurTime; + char gcurTripStartTime[9]; // sTime + char gVSSCountDiff; + void redrawcalibrationMenuForESP32() { DynamicJsonDocument getCalib(512); @@ -1447,13 +1456,7 @@ void redrawcalibrationMenuForESP32() // else lcd.print(v); // } - char cur_speed_str[6]; - char cur_distance1_str[7]; - char cur_distance2_str[7]; - char cur_time1_str[12]; - char cur_time2_str[12]; - // String gcurTime; // dah di declare di atas void redrawrallyMenu() { @@ -1509,7 +1512,7 @@ void redrawrallyMenu() int speedtemp=(int)speed1; int speedtemp2=(int)((speed1 - (int)speed1)*10); - sprintf(cur_speed_str, "%3d.%01d", speedtemp , speedtemp2 ); + sprintf(gcur_speed_str, "%3d.%01d", 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); @@ -1518,25 +1521,25 @@ void redrawrallyMenu() // lcd.setCursor(0,1); if (distance1<100) { - sprintf(cur_distance1_str, "%02d.%03d", (int)distance1, (int)((distance1 - (int)distance1)*1000)); + sprintf(gcur_distance1_str, "%02d.%03d", (int)distance1, (int)((distance1 - (int)distance1)*1000)); } else if (distance1<1000) { - sprintf(cur_distance1_str, "%02d.%02d", (int)distance1, (int)((distance1 - (int)distance1)*100)); + sprintf(gcur_distance1_str, "%02d.%02d", (int)distance1, (int)((distance1 - (int)distance1)*100)); } else { - sprintf(cur_distance1_str, "%03d.%01d", (int)distance1, (int)((distance1 - (int)distance1)*10)); + sprintf(gcur_distance1_str, "%03d.%01d", (int)distance1, (int)((distance1 - (int)distance1)*10)); } // lcd.print(cur_distance1_str); // lcd.setCursor(0,3); if (distance2<100) { - sprintf(cur_distance2_str, "%02d.%03d", (int)distance2, (int)((distance2 - (int)distance2)*1000)); + sprintf(gcur_distance2_str, "%02d.%03d", (int)distance2, (int)((distance2 - (int)distance2)*1000)); } else if (distance2<1000) { - sprintf(cur_distance2_str, "%02d.%02d", (int)distance2, (int)((distance2 - (int)distance2)*100)); + sprintf(gcur_distance2_str, "%02d.%02d", (int)distance2, (int)((distance2 - (int)distance2)*100)); } else { - sprintf(cur_distance2_str, "%03d.%01d", (int)distance2, (int)((distance2 - (int)distance2)*10)); + sprintf(gcur_distance2_str, "%03d.%01d", (int)distance2, (int)((distance2 - (int)distance2)*10)); } // lcd.print(cur_distance2_str); // Serial.print(";redrawRM 3;"); @@ -1582,13 +1585,13 @@ void redrawrallyMenu() // char cur_time1_str[12]; if (showTIME) { // sprintf(cur_time1_str, "%s %02d:%02d:%02d", dircount[dircount1], hours1, mins1, secs1); - sprintf(cur_time1_str, " %02d:%02d:%02d", hours1, mins1, secs1); + sprintf(gcur_time1_str, " %02d:%02d:%02d", hours1, mins1, secs1); } else { // if (hours1 < 10) sprintf(cur_time1_str, "%s %s%01d:%02d:%02d", dircount[dircount1], (negatifsign1?"-":" "), hours1, mins1, secs1); - if (hours1 < 10) sprintf(cur_time1_str, " %s%01d:%02d:%02d", (negatifsign1?"-":" "), hours1, mins1, secs1); + if (hours1 < 10) sprintf(gcur_time1_str, " %s%01d:%02d:%02d", (negatifsign1?"-":" "), hours1, mins1, secs1); // else sprintf(cur_time1_str, "%s%s%02d:%02d:%02d", dircount[dircount1], (negatifsign1?"-":" "), hours1, mins1, secs1); - else sprintf(cur_time1_str, "%s%02d:%02d:%02d", (negatifsign1?"-":" "), hours1, mins1, secs1); + else sprintf(gcur_time1_str, "%s%02d:%02d:%02d", (negatifsign1?"-":" "), hours1, mins1, secs1); } // lcd.setCursor(9,1); @@ -1622,11 +1625,11 @@ void redrawrallyMenu() secs2 = (tottime2 % 60); // char cur_time2_str[12]; if (showTIME) { - sprintf(cur_time2_str, " %02d:%02d:%02d", hours2, mins2, secs2); + sprintf(gcur_time2_str, " %02d:%02d:%02d", hours2, mins2, secs2); } else { - if (hours2<10) sprintf(cur_time2_str, " %s%01d:%02d:%02d", (negatifsign2?"-":" "), hours2, mins2, secs2); - else sprintf(cur_time2_str, "%s%02d:%02d:%02d", (negatifsign2?"-":" "), hours2, mins2, secs2); + if (hours2<10) sprintf(gcur_time2_str, " %s%01d:%02d:%02d", (negatifsign2?"-":" "), hours2, mins2, secs2); + else sprintf(gcur_time2_str, "%s%02d:%02d:%02d", (negatifsign2?"-":" "), hours2, mins2, secs2); } lcd.setCursor(4,0); @@ -1636,27 +1639,27 @@ void redrawrallyMenu() lcd.print("Km/H"); lcd.setCursor(11,2); - lcd.print(cur_speed_str); + lcd.print(gcur_speed_str); lcd.print("Km/H"); lcd.setCursor(0,1); - lcd.print(cur_distance1_str); + lcd.print(gcur_distance1_str); lcd.print("Km"); lcd.setCursor(9,1); lcd.print(dircount[dircount1]); - lcd.print(cur_time1_str); + lcd.print(gcur_time1_str); lcd.setCursor(0,3); - lcd.print(cur_distance2_str); + lcd.print(gcur_distance2_str); lcd.print("Km"); lcd.setCursor(9,3); lcd.print(dircount[dircount2]); - lcd.print(cur_time2_str); + lcd.print(gcur_time2_str); // Serial.print("x=");Serial.print(x);Serial.print("y=");Serial.print(y);Serial.println(""); @@ -1719,40 +1722,40 @@ void calculationRally_BACKUP() //calculation only ESP32 getRally["Time"]=gcurTime; // lcd.setCursor(11,2); // char cur_speed_str[6]; - sprintf(cur_speed_str, "%3d.%01d", (int)speed1, (int)((speed1 - (int)speed1)*10)); + sprintf(gcur_speed_str, "%3d.%01d", (int)speed1, (int)((speed1 - (int)speed1)*10)); // lcd.print(cur_speed_str); - getRally["curSpeed"]=cur_speed_str; ///// + getRally["curSpeed"]=gcur_speed_str; ///// // char cur_distance1_plain[7]; // char cur_distance2_plain[7]; // lcd.setCursor(0,1); if (distance1<100) { - sprintf(cur_distance1_str, "%02d.%03d", (int)distance1, (int)((distance1 - (int)distance1)*1000)); + sprintf(gcur_distance1_str, "%02d.%03d", (int)distance1, (int)((distance1 - (int)distance1)*1000)); } else if (distance1<1000) { - sprintf(cur_distance1_str, "%02d.%02d", (int)distance1, (int)((distance1 - (int)distance1)*100)); + sprintf(gcur_distance1_str, "%02d.%02d", (int)distance1, (int)((distance1 - (int)distance1)*100)); } else { - sprintf(cur_distance1_str, "%03d.%01d", (int)distance1, (int)((distance1 - (int)distance1)*10)); + sprintf(gcur_distance1_str, "%03d.%01d", (int)distance1, (int)((distance1 - (int)distance1)*10)); } // lcd.print(cur_distance1_str); - getRally["curDist1"]=String(cur_distance1_str); + getRally["curDist1"]=String(gcur_distance1_str); // lcd.setCursor(0,3); if (distance2<100) { - sprintf(cur_distance2_str, "%02d.%03d", (int)distance2, (int)((distance2 - (int)distance2)*1000)); + sprintf(gcur_distance2_str, "%02d.%03d", (int)distance2, (int)((distance2 - (int)distance2)*1000)); } else if (distance2<1000) { - sprintf(cur_distance2_str, "%02d.%02d", (int)distance2, (int)((distance2 - (int)distance2)*100)); + sprintf(gcur_distance2_str, "%02d.%02d", (int)distance2, (int)((distance2 - (int)distance2)*100)); } else { - sprintf(cur_distance2_str, "%03d.%01d", (int)distance2, (int)((distance2 - (int)distance2)*10)); + sprintf(gcur_distance2_str, "%03d.%01d", (int)distance2, (int)((distance2 - (int)distance2)*10)); } // lcd.print(cur_distance2_str); - getRally["curDist2"]=cur_distance2_str; + getRally["curDist2"]=gcur_distance2_str; float distancetime1 = distance1 * 60 / constanta; float distancetime2 = distance2 * 60 / constanta; @@ -1794,14 +1797,14 @@ void calculationRally_BACKUP() //calculation only ESP32 // char cur_time1_plain[10]; if (showTIME) { - sprintf(cur_time1_str, " %02d:%02d:%02d", hours1, mins1, secs1); + sprintf(gcur_time1_str, " %02d:%02d:%02d", hours1, mins1, secs1); } else { - if (hours1<10) sprintf(cur_time1_str, " %s%01d:%02d:%02d", (negatifsign?"-":" "), hours1, mins1, secs1); - else sprintf(cur_time1_str, "%s%02d:%02d:%02d", (negatifsign?"-":" "), hours1, mins1, secs1); + if (hours1<10) sprintf(gcur_time1_str, " %s%01d:%02d:%02d", (negatifsign?"-":" "), hours1, mins1, secs1); + else sprintf(gcur_time1_str, "%s%02d:%02d:%02d", (negatifsign?"-":" "), hours1, mins1, secs1); } // lcd.print(cur_time1_str); - getRally["time1"]=cur_time1_str; + getRally["time1"]=gcur_time1_str; getRally["dir1"]=dircount[dircount1]; // Print Second TIME @@ -1836,15 +1839,15 @@ void calculationRally_BACKUP() //calculation only ESP32 // char cur_time2_plain[9]; if (showTIME) { - sprintf(cur_time2_str, " %02d:%02d:%02d", hours2, mins2, secs2); + sprintf(gcur_time2_str, " %02d:%02d:%02d", hours2, mins2, secs2); } else { - if (hours2<10) sprintf(cur_time2_str, " %s%01d:%02d:%02d", (negatifsign?"-":" "), hours2, mins2, secs2); - else sprintf(cur_time2_str, "%s%02d:%02d:%02d", (negatifsign?"-":" "), hours2, mins2, secs2); + if (hours2<10) sprintf(gcur_time2_str, " %s%01d:%02d:%02d", (negatifsign?"-":" "), hours2, mins2, secs2); + else sprintf(gcur_time2_str, "%s%02d:%02d:%02d", (negatifsign?"-":" "), hours2, mins2, secs2); } // lcd.print(cur_time2_str); - getRally["time2"]=cur_time2_str; + getRally["time2"]=gcur_time2_str; getRally["dir2"]=dircount[dircount2]; // lcd.setCursor(x,y); @@ -1889,26 +1892,26 @@ void calculationRally() //calculation only ESP32 gcurTime = runningtimeforESP32(6,0); - sprintf(cur_speed_str, "%3d.%01d", (int)speed1, (int)((speed1 - (int)speed1)*10)); + sprintf(gcur_speed_str, "%3d.%01d", (int)speed1, (int)((speed1 - (int)speed1)*10)); if (distance1<100) { - sprintf(cur_distance1_str, "%02d.%03d", (int)distance1, (int)((distance1 - (int)distance1)*1000)); + sprintf(gcur_distance1_str, "%02d.%03d", (int)distance1, (int)((distance1 - (int)distance1)*1000)); } else if (distance1<1000) { - sprintf(cur_distance1_str, "%02d.%02d", (int)distance1, (int)((distance1 - (int)distance1)*100)); + sprintf(gcur_distance1_str, "%02d.%02d", (int)distance1, (int)((distance1 - (int)distance1)*100)); } else { - sprintf(cur_distance1_str, "%03d.%01d", (int)distance1, (int)((distance1 - (int)distance1)*10)); + sprintf(gcur_distance1_str, "%03d.%01d", (int)distance1, (int)((distance1 - (int)distance1)*10)); } if (distance2<100) { - sprintf(cur_distance2_str, "%02d.%03d", (int)distance2, (int)((distance2 - (int)distance2)*1000)); + sprintf(gcur_distance2_str, "%02d.%03d", (int)distance2, (int)((distance2 - (int)distance2)*1000)); } else if (distance2<1000) { - sprintf(cur_distance2_str, "%02d.%02d", (int)distance2, (int)((distance2 - (int)distance2)*100)); + sprintf(gcur_distance2_str, "%02d.%02d", (int)distance2, (int)((distance2 - (int)distance2)*100)); } else { - sprintf(cur_distance2_str, "%03d.%01d", (int)distance2, (int)((distance2 - (int)distance2)*10)); + sprintf(gcur_distance2_str, "%03d.%01d", (int)distance2, (int)((distance2 - (int)distance2)*10)); } float distancetime1 = distance1 * 60 / constanta; @@ -1947,11 +1950,11 @@ void calculationRally() //calculation only ESP32 secs1 = (tottime1 % 60); if (showTIME) { - sprintf(cur_time1_str, " %02d:%02d:%02d", hours1, mins1, secs1); + sprintf(gcur_time1_str, " %02d:%02d:%02d", hours1, mins1, secs1); } else { - if (hours1<10) sprintf(cur_time1_str, " %s%01d:%02d:%02d", (negatifsign?"-":" "), hours1, mins1, secs1); - else sprintf(cur_time1_str, "%s%02d:%02d:%02d", (negatifsign?"-":" "), hours1, mins1, secs1); + if (hours1<10) sprintf(gcur_time1_str, " %s%01d:%02d:%02d", (negatifsign?"-":" "), hours1, mins1, secs1); + else sprintf(gcur_time1_str, "%s%02d:%02d:%02d", (negatifsign?"-":" "), hours1, mins1, secs1); } // Print Second TIME @@ -1980,11 +1983,11 @@ void calculationRally() //calculation only ESP32 secs2 = (tottime2 % 60); if (showTIME) { - sprintf(cur_time2_str, " %02d:%02d:%02d", hours2, mins2, secs2); + sprintf(gcur_time2_str, " %02d:%02d:%02d", hours2, mins2, secs2); } else { - if (hours2<10) sprintf(cur_time2_str, " %s%01d:%02d:%02d", (negatifsign?"-":" "), hours2, mins2, secs2); - else sprintf(cur_time2_str, "%s%02d:%02d:%02d", (negatifsign?"-":" "), hours2, mins2, secs2); + if (hours2<10) sprintf(gcur_time2_str, " %s%01d:%02d:%02d", (negatifsign?"-":" "), hours2, mins2, secs2); + else sprintf(gcur_time2_str, "%s%02d:%02d:%02d", (negatifsign?"-":" "), hours2, mins2, secs2); } // Serial.println("ENDCRal"); } ///// calculation only for esp32 @@ -1992,35 +1995,38 @@ void calculationRally() //calculation only ESP32 void fillRallyJsonWithData() { DynamicJsonDocument getRally(1024); deserializeJson(getRally, getRallyJson); - getRally["Trip"]=String(Trip[curTrip].sub); ///// - getRally["TSpeed"]=String(Trip[curTrip].speed); ///// - char sTime[9]; //global can move to the sprintf to change change constanta - sprintf(sTime, "%02u:%02u:%02u", Trip[curTrip].startHour, Trip[curTrip].startMin, Trip[curTrip].startSec); - getRally["TsTime"]=sTime; ///// - getRally["TTime"]=String(Trip[curTrip].subTime); ///// - getRally["TDist"]=String(Trip[curTrip].distance); ///// + getRally["Trip"]=String(Trip[curTrip].sub); + getRally["TSpeed"]=String(Trip[curTrip].speed); + sprintf(gcurTripStartTime, "%02u:%02u:%02u", Trip[curTrip].startHour, Trip[curTrip].startMin, Trip[curTrip].startSec); + getRally["TsTime"]=gcurTripStartTime; + getRally["TTime"]=String(Trip[curTrip].subTime); + getRally["TDist"]=String(Trip[curTrip].distance); getRally["Time"]=gcurTime; - getRally["curSpeed"]=cur_speed_str; ///// - getRally["curDist1"]=String(cur_distance1_str); - getRally["curDist2"]=cur_distance2_str; - getRally["time1"]=cur_time1_str; + getRally["curSpeed"]=gcur_speed_str; + getRally["curDist1"]=String(gcur_distance1_str); + getRally["curDist2"]=gcur_distance2_str; + getRally["time1"]=gcur_time1_str; getRally["dir1"]=dircount[dircount1]; - getRally["time2"]=cur_time2_str; + getRally["time2"]=gcur_time2_str; getRally["dir2"]=dircount[dircount2]; - getRally["counter"]=VSSCount; + getRally["counter2"]=VSSCount; + getRally["counter"]=String(gVSSCountDiff); if (showTIME) getRally["TDiff"]="Time"; //add 1 space else getRally["TDiff"]="TDiff"; getRallyJson=""; serializeJson(getRally, getRallyJson); } -void fillRallyLCDScreen(){ +void fillRallyLCDScreen() { + lcd.setCursor(0,0); + lcd.print(gVSSCountDiff); lcd.setCursor(6,0); lcd.print(gcurTime); if (showTIME) lcd.print(" Time "); //add 1 space else lcd.print(" TDiff"); + lcd.setCursor(4,0); lcd.print(Trip[curTrip].sub); lcd.setCursor(0,2); @@ -2028,27 +2034,24 @@ void fillRallyLCDScreen(){ lcd.print("Km/H"); lcd.setCursor(11,2); - lcd.print(cur_speed_str); + lcd.print(gcur_speed_str); lcd.print("Km/H"); lcd.setCursor(0,1); - - lcd.print(cur_distance1_str); + lcd.print(gcur_distance1_str); lcd.print("Km"); lcd.setCursor(9,1); lcd.print(dircount[dircount1]); - lcd.print(cur_time1_str); + lcd.print(gcur_time1_str); - lcd.setCursor(0,3); - - lcd.print(cur_distance2_str); + lcd.print(gcur_distance2_str); lcd.print("Km"); lcd.setCursor(9,3); lcd.print(dircount[dircount2]); - lcd.print(cur_time2_str); + lcd.print(gcur_time2_str); // Serial.print("x=");Serial.print(x);Serial.print("y=");Serial.print(y);Serial.println(""); @@ -3838,9 +3841,8 @@ void loop() //loop from VSS RALLY V2 //prevtemprally+=tempintervalrally; } } - if ((MENU==RALLY || globalClientCalib) && ((now1 - prevCalculatingRallyMillis)>=calculatingRallyMillis)){ - calculationRally(); - } + + if (MENU==SETTIME) { //if ((long)(now1 - prevtempint) >=0 ){ if ((now1 - prevtempint) >=tempinterval ){ @@ -3900,18 +3902,18 @@ void loop() //loop from VSS RALLY V2 else if (VSSCountDiff < 70) intervalsavemillis = 60000; else intervalsavemillis = 4000000; if (VSSCountDiff > 0) savedCount = false; - if (MENU!=CALIBRATION && MENU!=MAIN && MENU!=CONSTANTA) { - lcd.setCursor(0,0); - if (VSSCountDiff==0) lcd.print("0"); - else if (VSSCountDiff <= 10) lcd.print("1"); - else if (VSSCountDiff <= 50) lcd.print("2"); - else if (VSSCountDiff <= 150) lcd.print("3"); - else if (VSSCountDiff <= 250) lcd.print("4"); - else if (VSSCountDiff <= 400) lcd.print("5"); - else if (VSSCountDiff <= 600) lcd.print("6"); - else if (VSSCountDiff <= 900) lcd.print("7"); - else if (VSSCountDiff <= 1200) lcd.print("8"); - else if (VSSCountDiff > 1200) lcd.print("9"); + if ((MENU!=CALIBRATION && MENU!=MAIN && MENU!=CONSTANTA) || globalClientRally) { + // lcd.setCursor(0,0); /// + if (VSSCountDiff==0) gVSSCountDiff='0';//lcd.print("0"); + else if (VSSCountDiff <= 10) gVSSCountDiff='1';//lcd.print("1"); + else if (VSSCountDiff <= 50) gVSSCountDiff='2';//lcd.print("2"); + else if (VSSCountDiff <= 150) gVSSCountDiff='3';//lcd.print("3"); + else if (VSSCountDiff <= 250) gVSSCountDiff='4';//lcd.print("4"); + else if (VSSCountDiff <= 400) gVSSCountDiff='5';//lcd.print("5"); + else if (VSSCountDiff <= 600) gVSSCountDiff='6';//lcd.print("6"); + else if (VSSCountDiff <= 900) gVSSCountDiff='7';//lcd.print("7"); + else if (VSSCountDiff <= 1200) gVSSCountDiff='8';//lcd.print("8"); + else if (VSSCountDiff > 1200) gVSSCountDiff='9';//lcd.print("9"); //lcd.print(VSSCountDiff); //lcd.print(" "); @@ -3944,6 +3946,11 @@ void loop() //loop from VSS RALLY V2 //startsavemillis += 3000; startsavemillis = millis(); } + + if ((MENU==RALLY || globalClientRally) && ((now1 - prevCalculatingRallyMillis)>=calculatingRallyMillis)){ + calculationRally(); + prevCalculatingRallyMillis=now1; + } if ((millis()-broadcastwebsocket) > 333 && !isloadingConst && globalClientRally) { broadcastwebsocket = millis();