This commit is contained in:
Bluedragon 2022-04-27 01:50:48 +07:00
parent 60fa3d9a3f
commit cdfac6ba65
3 changed files with 420 additions and 194 deletions

View File

@ -14,19 +14,7 @@ board = lolin32_lite
framework = arduino framework = arduino
monitor_speed = 115200 monitor_speed = 115200
lib_deps = lib_deps =
ottowinter/ESPAsyncWebServer-esphome@^2.1.0
esphome/AsyncTCP-esphome@^1.2.2
SPIFFS
bblanchon/ArduinoJson@^6.19.4
khoih-prog/ESPAsync_WiFiManager@^1.12.2
rodan/ds3231@^1.0 rodan/ds3231@^1.0
;fmalpartida/LiquidCrystal@^1.5.0
https://github.com/cyberp/AT24Cx.git
https://github.com/JChristensen/JC_Button.git https://github.com/JChristensen/JC_Button.git
;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 https://github.com/cyberp/AT24Cx.git
;LiquidCrystal_PCF8574

View File

@ -56,6 +56,8 @@ const char HTML_startrally1[] PROGMEM = R"rawliteral(
document.getElementById("odo2").innerHTML = data.curDist2; document.getElementById("odo2").innerHTML = data.curDist2;
document.getElementById("time1").innerHTML = data.time1; document.getElementById("time1").innerHTML = data.time1;
document.getElementById("time2").innerHTML = data.time2; document.getElementById("time2").innerHTML = data.time2;
document.getElementById("tdiff1").innerHTML = data.TDiff;
document.getElementById("tdiff2").innerHTML = data.TDiff;
// } // }
}; };
@ -123,7 +125,8 @@ const char HTML_startrally1[] PROGMEM = R"rawliteral(
<div class="row"> <div class="row">
<div class="col-2"><h4>OD 1-></h4></div> <div class="col-2"><h4>OD 1-></h4></div>
<div class="col-3 text-end"><h3><span id="odo1">123.4567</span> km</h3></div> <div class="col-3 text-end"><h3><span id="odo1">123.4567</span> km</h3></div>
<div class="col-4"><h3><span id="dir1">DIRECT</span></h3></div> <div class="col-3"><h3><span id="dir1">DIRECT</span></h3></div>
<div class="col-1"><h3><span id="tdiff1">TDiff</span>:</h3></div>
<div class="col-3 text-end"><h3><span id="time1">00:00:00</span></h3></div> <div class="col-3 text-end"><h3><span id="time1">00:00:00</span></h3></div>
</div> </div>
<div class="row"> <div class="row">
@ -148,7 +151,8 @@ const char HTML_startrally1[] PROGMEM = R"rawliteral(
<!--//ODO2--> <!--//ODO2-->
<div class="row"> <div class="row">
<div class="col-5 "><h3>OD 2-><span id="odo2">123.456</span> km</h3></div> <div class="col-5 "><h3>OD 2-><span id="odo2">123.456</span> km</h3></div>
<div class="col-4 "><h3><span id="dir2">DIRECT</span></h3></div> <div class="col-3 "><h3><span id="dir2">DIRECT</span></h3></div>
<div class="col-1"><h3><span id="tdiff2">TDiff</span>:</h3></div>
<div class="col-3 text-end"><h3><span id="time2">00:00:00</span></h3></div> <div class="col-3 text-end"><h3><span id="time2">00:00:00</span></h3></div>
</div> </div>
<div class="row"> <div class="row">

View File

@ -16,11 +16,11 @@
#include <AsyncJson.h> #include <AsyncJson.h>
#include <SPIFFS.h> #include <SPIFFS.h>
// #else #else
// #include <ESP8266WiFi.h> #include <ESP8266WiFi.h>
// #include <ESPAsyncTCP.h> #include <ESPAsyncTCP.h>
// #include <Hash.h> #include <Hash.h>
// #include <FS.h> #include <FS.h>
#endif #endif
#include <ESPAsyncWebServer.h> #include <ESPAsyncWebServer.h>
// #include <ESPmDNS.h> // #include <ESPmDNS.h>
@ -93,11 +93,11 @@ bool gGotRequestConstHTML[REQUESTCOUNT];
#define max(a,b) (((a) > (b)) ? (a) : (b)) #define max(a,b) (((a) > (b)) ? (a) : (b))
#endif #endif
// #include <Wire.h> #include <Wire.h>
#include <ds3231.h> #include <ds3231.h>
#include <LiquidCrystal_I2C.h> #include <LiquidCrystal_I2C.h>
// #include <LiquidCrystal_PCF8574.h> // #include <LiquidCrystal_PCF8574.h>
#include <AT24CX.h> #include <AT24CX.h> //don't forget to change the AT24CX.h -> #define AT24CX_ID 0x57 and comment the B1010000. and also comment Wire.begin on AT24CX.cpp
//#define BUFF_MAX 128 //#define BUFF_MAX 128
@ -153,14 +153,14 @@ 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(0x28, lcdColumns, lcdRows); // marcoschwartz. ujungnya jelek ->remark // LiquidCrystal_I2C lcd(0x28, lcdColumns, lcdRows); // marcoschwartz. ujungnya jelek ->remark
LiquidCrystal_I2C lcd2(I2C_ADDR, lcdColumns, lcdRows); // marcoschwartz. ujungnya jelek ->remark LiquidCrystal_I2C lcd(I2C_ADDR, lcdColumns, lcdRows); // marcoschwartz. ujungnya jelek ->remark
// LiquidCrystal_PCF8574 lcd(0.27); // LiquidCrystal_PCF8574 lcd(0.27);
/*-----( 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);
// LiquidCrystal_I2C lcd(I2C_ADDR); // LiquidCrystal_I2C lcd(I2C_ADDR);
AT24CX mem; AT24CX mem; //don't forget to change the AT24CX.h -> #define AT24CX_ID 0x57 and comment the B1010000. and also comment Wire.begin on AT24CX.cpp
boolean cursorON=true; boolean cursorON=true;
boolean blinkON=true; boolean blinkON=true;
//************************************ END LCD DISPLAY ******************************************* //************************************ END LCD DISPLAY *******************************************
@ -171,6 +171,7 @@ unsigned int recv_size = 0;
unsigned long prevsettime, intervalsettime = 250; unsigned long prevsettime, intervalsettime = 250;
unsigned long prevtempint, tempinterval=60000; unsigned long prevtempint, tempinterval=60000;
unsigned long prevtemprally, tempintervalrally=333; unsigned long prevtemprally, tempintervalrally=333;
unsigned long prevCalculatingRallyMillis, calculatingRallyMillis=333;
unsigned long prevcalibrationtime, calibrationtimeinterval = 200; unsigned long prevcalibrationtime, calibrationtimeinterval = 200;
unsigned long updatecounttime=0; unsigned long updatecounttime=0;
float temperature; float temperature;
@ -309,6 +310,8 @@ byte prevTrip=0;
// //
// //
void notFound(AsyncWebServerRequest *request) { void notFound(AsyncWebServerRequest *request) {
request->send(404); request->send(404);
} }
@ -1138,7 +1141,51 @@ String runningtimeforESP32(byte x1,byte y1)
// Serial.print("runningtimeforesp:");Serial.println(runningTIME); // Serial.print("runningtimeforesp:");Serial.println(runningTIME);
return runningTIME; return runningTIME;
} }
String runningtimeforESP32test1(byte x1,byte y1)
{
// String runningTIME;
char runningTIME[9]="00:00:00";
// lcd.setCursor(x1,y1); //Go to second line of the LCD Screen
if(t.hour<10)
{
// lcd.print("0");
runningTIME[0]='0';
runningTIME[1]=t.hour;
} else {
// lcd.print(t.hour);
// lcd.print(":");
runningTIME[0]=t.hour/10;
runningTIME[1]=t.hour%10;
}
runningTIME[2]=':';
if(t.min<10)
{
// lcd.print("0");
// runningTIME+="0";
runningTIME[3]='0';
runningTIME[4]=t.min;
} else {
// lcd.print(t.min);
// lcd.print(":");
runningTIME[3]=t.min/10;
runningTIME[4]=t.min%10;
}
runningTIME[5]=':';
if(t.sec<10)
{
runningTIME[6]='0';
runningTIME[7]=t.sec;
} else {
// lcd.print(t.sec);
runningTIME[6]=t.sec/10;
runningTIME[7]=t.sec%10;
}
runningTIME[8]='\0';
// Serial.print("t.hour:");Serial.println(t.hour);
// Serial.print("runningtimeforesp:");Serial.println(runningTIME);
Serial.print("runningtimeforesp:");Serial.println(runningTIME);
return String(runningTIME);
}
void settimeMenu() void settimeMenu()
{ {
lcd.setCursor(0,0); lcd.setCursor(0,0);
@ -1158,8 +1205,8 @@ void calibrationMenu()
{ {
MENU = CALIBRATION; MENU = CALIBRATION;
lcd.clear(); lcd.clear();
lcd.setCursor(0,0); // lcd.setCursor(0,0);
lcd.print("Calibration Back"); // lcd.print("Calibration Back");
lcd.setCursor(0,1); lcd.setCursor(0,1);
lcd.print("Set Distance(Km): "); lcd.print("Set Distance(Km): ");
lcd.print(calibrationDistance); lcd.print(calibrationDistance);
@ -1337,7 +1384,7 @@ void redrawcalibrationMenu()
lcd.print(cur_distance_str); lcd.print(cur_distance_str);
// } // }
} }
String gcurTime;
void redrawcalibrationMenuForESP32() void redrawcalibrationMenuForESP32()
{ {
DynamicJsonDocument getCalib(512); DynamicJsonDocument getCalib(512);
@ -1353,8 +1400,9 @@ void redrawcalibrationMenuForESP32()
getCalib["counter"]=VSSCount; ///// getCalib["counter"]=VSSCount; /////
getCalib["curTrip"]=String(Trip[curTrip].sub); ///// getCalib["curTrip"]=String(Trip[curTrip].sub); /////
getCalib["curTripSpeed"]=String(Trip[curTrip].speed); ///// getCalib["curTripSpeed"]=String(Trip[curTrip].speed); /////
String curTime = runningtimeforESP32(6,0); // String curTime = runningtimeforESP32(6,0);
getCalib["curTime"]=curTime; gcurTime = runningtimeforESP32(6,0);
getCalib["curTime"]=gcurTime;
getCalib["caldist"]=calibrationDistance; getCalib["caldist"]=calibrationDistance;
getCalib["calman"]= Calibration; getCalib["calman"]= Calibration;
@ -1374,30 +1422,38 @@ void redrawcalibrationMenuForESP32()
} }
// char digitClock(int v){ // // char digitClock(int v){
// if (v < 10) // // if (v < 10)
// return '0' + v; // // return '0' + v;
// else // // else
// return 'A' + (v-10); // // 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){ // void digitClock(int v, byte x, byte y){
// lcd.setCursor(x,y); // lcd.setCursor(x,y);
if (v < 10){ // if (v < 10){
lcd.print("0"); // lcd.print("0");
lcd.print(v); // lcd.print(v);
// return '0' + v; // // return '0' + v;
} // }
else lcd.print(v); // else lcd.print(v);
} // }
void digitClock(int v, byte x, byte y){
lcd.setCursor(x,y); char cur_speed_str[6];
if (v < 10){ char cur_distance1_str[7];
lcd.print("0"); char cur_distance2_str[7];
lcd.print(v); char cur_time1_str[12];
// return '0' + v; char cur_time2_str[12];
}
else lcd.print(v); // String gcurTime; // dah di declare di atas
}
void redrawrallyMenu() void redrawrallyMenu()
{ {
@ -1449,48 +1505,47 @@ void redrawrallyMenu()
runningtime(6,0); runningtime(6,0);
// lcd.setCursor(11,2); // lcd.setCursor(11,2);
char cur_speed_str[9]; // char cur_speed_str[6];
int speedtemp=(int)speed1; int speedtemp=(int)speed1;
int speedtemp2=(int)((speed1 - (int)speed1)*10); int speedtemp2=(int)((speed1 - (int)speed1)*10);
sprintf(cur_speed_str, "%3d.%01dKm/h", speedtemp , speedtemp2 ); sprintf(cur_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(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[7];
char cur_distance2_str[8]; // char cur_distance2_str[7];
// lcd.setCursor(0,1); // lcd.setCursor(0,1);
// 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.%03d", (int)distance1, (int)((distance1 - (int)distance1)*1000));
} }
else if (distance1<1000) { else if (distance1<1000) {
sprintf(cur_distance1_str, "%02d.%02dKm", (int)distance1, (int)((distance1 - (int)distance1)*100)); sprintf(cur_distance1_str, "%02d.%02d", (int)distance1, (int)((distance1 - (int)distance1)*100));
} }
else { else {
sprintf(cur_distance1_str, "%03d.%01dKm", (int)distance1, (int)((distance1 - (int)distance1)*10)); sprintf(cur_distance1_str, "%03d.%01d", (int)distance1, (int)((distance1 - (int)distance1)*10));
} }
// 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.%03d", (int)distance2, (int)((distance2 - (int)distance2)*1000));
} }
else if (distance2<1000) { else if (distance2<1000) {
sprintf(cur_distance2_str, "%02d.%02dKm", (int)distance2, (int)((distance2 - (int)distance2)*100)); sprintf(cur_distance2_str, "%02d.%02d", (int)distance2, (int)((distance2 - (int)distance2)*100));
} }
else { else {
sprintf(cur_distance2_str, "%03d.%01dKm", (int)distance2, (int)((distance2 - (int)distance2)*10)); sprintf(cur_distance2_str, "%03d.%01d", (int)distance2, (int)((distance2 - (int)distance2)*10));
} }
// 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);
uint8_t secs1, mins1, hours1; int secs1, mins1, hours1;
secs1 = (distancetime1-(int)distancetime1)*60; secs1 = (distancetime1-(int)distancetime1)*60;
mins1 = (int)distancetime1 % 60; mins1 = (int)distancetime1 % 60;
@ -1499,7 +1554,8 @@ void redrawrallyMenu()
unsigned long totsecs1 = secs1 + (mins1*60) + ((long)hours1*3600); unsigned long totsecs1 = secs1 + (mins1*60) + ((long)hours1*3600);
unsigned long totstarttractsecs = starttractsec + (starttractmin*60) + ((long)starttracthour*3600); unsigned long totstarttractsecs = starttractsec + (starttractmin*60) + ((long)starttracthour*3600);
unsigned long tottime1 = totsecs1 + totstarttractsecs; unsigned long tottime1 = totsecs1 + totstarttractsecs;
boolean negatifsign = false; boolean negatifsign1 = false;
boolean negatifsign2 = false;
// Serial.print(";redrawRM 4;"); // Serial.print(";redrawRM 4;");
//Serial.print((long)starttracthour*3600); Serial.print(";"); Serial.print(starttractmin*60); Serial.println(";"); //Serial.print((long)starttracthour*3600); Serial.print(";"); Serial.print(starttractmin*60); Serial.println(";");
//Serial.print(totsecs1); Serial.print(";"); Serial.print(totstarttractsecs); Serial.print(";"); //Serial.print(totsecs1); Serial.print(";"); Serial.print(totstarttractsecs); Serial.print(";");
@ -1509,59 +1565,54 @@ void redrawrallyMenu()
if (!showTIME) { if (!showTIME) {
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; negatifsign1 = false;
tottime1 = tottime1 - totcurrentsecs; tottime1 = tottime1 - totcurrentsecs;
} }
else { //negatif means we need to hurry, its late else { //negatif means we need to hurry, its late
// Serial.println("neg"); // Serial.println("neg");
negatifsign = true; negatifsign1 = true;
tottime1 = totcurrentsecs - tottime1; tottime1 = totcurrentsecs - tottime1;
} }
} }
//Serial.print(negatifsign);Serial.print(";"); Serial.println(tottime1); //Serial.print(negatifsign1);Serial.print(";"); Serial.println(tottime1);
hours1 = ((int)(tottime1 / 3600))%24; hours1 = ((int)(tottime1 / 3600))%24;
mins1 = (int)((tottime1 % 3600)/60); mins1 = (int)((tottime1 % 3600)/60);
secs1 = (tottime1 % 60); secs1 = (tottime1 % 60);
char cur_time1_str[12]; // char cur_time1_str[12];
if (showTIME) { if (showTIME) {
// lcd.setCursor(9,1); // sprintf(cur_time1_str, "%s %02d:%02d:%02d", dircount[dircount1], hours1, mins1, secs1);
// lcd.print(dircount[dircount1]); sprintf(cur_time1_str, " %02d:%02d:%02d", hours1, mins1, secs1);
// 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 { else {
if (hours1 < 10) sprintf(cur_time1_str, "%s %s%01d:%02d:%02d", dircount[dircount1], (negatifsign?"-":" "), hours1, mins1, secs1); // if (hours1 < 10) sprintf(cur_time1_str, "%s %s%01d:%02d:%02d", dircount[dircount1], (negatifsign1?"-":" "), hours1, mins1, secs1);
else sprintf(cur_time1_str, "%s%s%02d:%02d:%02d", dircount[dircount1], (negatifsign?"-":" "), hours1, mins1, secs1); if (hours1 < 10) sprintf(cur_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);
} }
// lcd.setCursor(9,1);
// lcd.print(cur_time1_str); // lcd.print(cur_time1_str);
// Serial.println(cur_time1_str);
// Serial.print((hours1));Serial.print(":");Serial.print((mins1));Serial.print(":");Serial.println((secs1));
// Serial.print(";redrawRM 5;"); // Serial.print(";redrawRM 5;");
// Print Second TIME // Print Second TIME
// lcd.setCursor(9,3); // lcd.setCursor(9,3);
uint8_t secs2, mins2, hours2; int secs2, mins2, hours2;
secs2 = (distancetime2-(int)distancetime2)*60; secs2 = (distancetime2-(int)distancetime2)*60;
mins2 = (int)distancetime2 % 60; mins2 = (int)distancetime2 % 60;
hours2 = (int)distancetime2 / 60; hours2 = (int)distancetime2 / 60;
unsigned long totsecs2 = secs2 + (mins2*60) + ((long)hours2*3600); unsigned long totsecs2 = secs2 + (mins2*60) + ((long)hours2*3600);
unsigned long tottime2 = totsecs2 + totstarttractsecs; unsigned long tottime2 = totsecs2 + totstarttractsecs;
//Serial.println(tottime2);
if (!showTIME) { if (!showTIME) {
if (tottime2 >= totcurrentsecs) { //positif means we are too fast, slow down please. if (tottime2 >= totcurrentsecs) { //positif means we are too fast, slow down please.
negatifsign = false; negatifsign2 = false;
tottime2 = tottime2 - totcurrentsecs; tottime2 = tottime2 - totcurrentsecs;
} }
else { //negatif means we need to hurry, its late else { //negatif means we need to hurry, its late
negatifsign = true; negatifsign2 = true;
tottime2 = totcurrentsecs - tottime2 ; tottime2 = totcurrentsecs - tottime2 ;
} }
} }
@ -1569,66 +1620,51 @@ 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[11]; // char cur_time2_str[12];
if (showTIME) { if (showTIME) {
lcd.setCursor(9,3); sprintf(cur_time2_str, " %02d:%02d:%02d", hours2, mins2, secs2);
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%01d:%02d:%02d", (negatifsign2?"-":" "), 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%02d:%02d:%02d", (negatifsign2?"-":" "), hours2, mins2, secs2);
} }
// 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");
// lcd.setCursor(11,2); lcd.setCursor(11,2);
lcd.print(cur_speed_str);
lcd.print("Km/H");
// lcd.print(cur_speed_str); lcd.setCursor(0,1);
// lcd.setCursor(0,1); lcd.print(cur_distance1_str);
lcd.print("Km");
// lcd.print(cur_distance1_str);
lcd.setCursor(9,1);
lcd.print(dircount[dircount1]);
lcd.print(cur_time1_str);
// 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.setCursor(0,3);
// // lcd.print(cur_time2_str); lcd.print(cur_distance2_str);
lcd.print("Km");
lcd.setCursor(9,3);
lcd.print(dircount[dircount2]);
lcd.print(cur_time2_str);
// Serial.print("x=");Serial.print(x);Serial.print("y=");Serial.print(y);Serial.println("");
lcd.setCursor(x,y); lcd.setCursor(x,y);
// Serial.println("END redrawRM"); // Serial.println("END redrawRM");
} }
void calculationRally() //calculation only ESP32 void calculationRally_BACKUP() //calculation only ESP32
{ {
DynamicJsonDocument getRally(1024); DynamicJsonDocument getRally(1024);
deserializeJson(getRally, getRallyJson); deserializeJson(getRally, getRallyJson);
@ -1669,7 +1705,7 @@ void calculationRally() //calculation only ESP32
// lcd.print("Km/H"); // lcd.print("Km/H");
getRally["Trip"]=String(Trip[curTrip].sub); ///// getRally["Trip"]=String(Trip[curTrip].sub); /////
getRally["TSpeed"]=String(Trip[curTrip].speed); ///// getRally["TSpeed"]=String(Trip[curTrip].speed); /////
char sTime[9]; 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); sprintf(sTime, "%02u:%02u:%02u", Trip[curTrip].startHour, Trip[curTrip].startMin, Trip[curTrip].startSec);
getRally["TsTime"]=sTime; ///// getRally["TsTime"]=sTime; /////
getRally["TTime"]=String(Trip[curTrip].subTime); ///// getRally["TTime"]=String(Trip[curTrip].subTime); /////
@ -1677,45 +1713,46 @@ void calculationRally() //calculation only ESP32
// Serial.print(Trip[curTrip].sub);Serial.print(Trip[curTrip].speed);Serial.print(";");Serial.println(Trip[curTrip].startHour); // Serial.print(Trip[curTrip].sub);Serial.print(Trip[curTrip].speed);Serial.print(";");Serial.println(Trip[curTrip].startHour);
String curTime = runningtimeforESP32(6,0); gcurTime = runningtimeforESP32(6,0);
getRally["Time"]=curTime; // String curTime = runningtimeforESP32(6,0);
// char curTime []= runningtimeforESP32(6,0);
getRally["Time"]=gcurTime;
// lcd.setCursor(11,2); // lcd.setCursor(11,2);
char cur_speed_str[7]; // char cur_speed_str[6];
sprintf(cur_speed_str, "%3d.%01d", (int)speed1, (int)((speed1 - (int)speed1)*10)); sprintf(cur_speed_str, "%3d.%01d", (int)speed1, (int)((speed1 - (int)speed1)*10));
// lcd.print(cur_speed_str); // lcd.print(cur_speed_str);
getRally["curSpeed"]=cur_speed_str; ///// getRally["curSpeed"]=cur_speed_str; /////
// char cur_distance1_str[8];
// char cur_distance2_str[8]; // char cur_distance1_plain[7];
char cur_distance1_plain[7]; // char cur_distance2_plain[7];
char cur_distance2_plain[7];
// lcd.setCursor(0,1); // lcd.setCursor(0,1);
if (distance1<100) { if (distance1<100) {
sprintf(cur_distance1_plain, "%02d.%03d", (int)distance1, (int)((distance1 - (int)distance1)*1000)); sprintf(cur_distance1_str, "%02d.%03d", (int)distance1, (int)((distance1 - (int)distance1)*1000));
} }
else if (distance1<1000) { else if (distance1<1000) {
sprintf(cur_distance1_plain, "%02d.%02d", (int)distance1, (int)((distance1 - (int)distance1)*100)); sprintf(cur_distance1_str, "%02d.%02d", (int)distance1, (int)((distance1 - (int)distance1)*100));
} }
else { else {
sprintf(cur_distance1_plain, "%03d.%01d", (int)distance1, (int)((distance1 - (int)distance1)*10)); sprintf(cur_distance1_str, "%03d.%01d", (int)distance1, (int)((distance1 - (int)distance1)*10));
} }
// lcd.print(cur_distance1_str); // lcd.print(cur_distance1_str);
getRally["curDist1"]=String(cur_distance1_plain); getRally["curDist1"]=String(cur_distance1_str);
// lcd.setCursor(0,3); // lcd.setCursor(0,3);
if (distance2<100) { if (distance2<100) {
sprintf(cur_distance2_plain, "%02d.%03d", (int)distance2, (int)((distance2 - (int)distance2)*1000)); sprintf(cur_distance2_str, "%02d.%03d", (int)distance2, (int)((distance2 - (int)distance2)*1000));
} }
else if (distance2<1000) { else if (distance2<1000) {
sprintf(cur_distance2_plain, "%02d.%02d", (int)distance2, (int)((distance2 - (int)distance2)*100)); sprintf(cur_distance2_str, "%02d.%02d", (int)distance2, (int)((distance2 - (int)distance2)*100));
} }
else { else {
sprintf(cur_distance2_plain, "%03d.%01d", (int)distance2, (int)((distance2 - (int)distance2)*10)); sprintf(cur_distance2_str, "%03d.%01d", (int)distance2, (int)((distance2 - (int)distance2)*10));
} }
// lcd.print(cur_distance2_str); // lcd.print(cur_distance2_str);
getRally["curDist2"]=cur_distance2_plain; getRally["curDist2"]=cur_distance2_str;
float distancetime1 = distance1 * 60 / constanta; float distancetime1 = distance1 * 60 / constanta;
float distancetime2 = distance2 * 60 / constanta; float distancetime2 = distance2 * 60 / constanta;
@ -1754,17 +1791,17 @@ void calculationRally() //calculation only ESP32
secs1 = (tottime1 % 60); secs1 = (tottime1 % 60);
// char cur_time1_str[12]; // char cur_time1_str[12];
char cur_time1_plain[10]; // char cur_time1_plain[10];
if (showTIME) { if (showTIME) {
sprintf(cur_time1_plain, "%02d:%02d:%02d", hours1, mins1, secs1); sprintf(cur_time1_str, " %02d:%02d:%02d", hours1, mins1, secs1);
} }
else { else {
if (hours1<10) sprintf(cur_time1_plain, "%s%01d:%02d:%02d", (negatifsign?"-":" "), hours1, mins1, secs1); if (hours1<10) sprintf(cur_time1_str, " %s%01d:%02d:%02d", (negatifsign?"-":" "), hours1, mins1, secs1);
else sprintf(cur_time1_plain, "%s%02d:%02d:%02d", (negatifsign?"-":" "), hours1, mins1, secs1); else sprintf(cur_time1_str, "%s%02d:%02d:%02d", (negatifsign?"-":" "), hours1, mins1, secs1);
} }
// lcd.print(cur_time1_str); // lcd.print(cur_time1_str);
getRally["time1"]=cur_time1_plain; getRally["time1"]=cur_time1_str;
getRally["dir1"]=dircount[dircount1]; getRally["dir1"]=dircount[dircount1];
// Print Second TIME // Print Second TIME
@ -1795,26 +1832,19 @@ void calculationRally() //calculation only ESP32
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[12];
char cur_time2_plain[9]; // char cur_time2_plain[9];
if (showTIME) {
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);
}
if (showTIME) { if (showTIME) {
sprintf(cur_time2_plain, "%02d:%02d:%02d", hours2, mins2, secs2); sprintf(cur_time2_str, " %02d:%02d:%02d", hours2, mins2, secs2);
} }
else { else {
if (hours2<10) sprintf(cur_time2_plain, "%s%01d:%02d:%02d", (negatifsign?"-":" "), hours2, mins2, secs2); if (hours2<10) sprintf(cur_time2_str, " %s%01d:%02d:%02d", (negatifsign?"-":" "), hours2, mins2, secs2);
else sprintf(cur_time2_plain, "%s%02d:%02d:%02d", (negatifsign?"-":" "), hours2, mins2, secs2); else sprintf(cur_time2_str, "%s%02d:%02d:%02d", (negatifsign?"-":" "), hours2, mins2, secs2);
} }
// lcd.print(cur_time2_str); // lcd.print(cur_time2_str);
getRally["time2"]=cur_time2_plain; getRally["time2"]=cur_time2_str;
getRally["dir2"]=dircount[dircount2]; getRally["dir2"]=dircount[dircount2];
// lcd.setCursor(x,y); // lcd.setCursor(x,y);
@ -1824,6 +1854,206 @@ void calculationRally() //calculation only ESP32
// Serial.println("ENDCRal"); // Serial.println("ENDCRal");
} ///// calculation only for esp32 } ///// calculation only for esp32
void calculationRally() //calculation only ESP32
{
DS3231_get(&t); //Get time
// Serial.println("startCRal");
updateCount();
distance1 = (float)count1/((float)Calibration); // * 1);
distance2 = (float)count2/((float)Calibration);
float speed1=0;
if ((distance1 - startdistance) > 0) {
speed1 = (distance1-startdistance)/(millis()-startspeed)*3600000;
}
startdistance = distance1;
startspeed = millis(); //startspeed is only one no startspeed2
if ((millis()-startsavemillis)>0) {
if (distance1 != prevdistance1) {
mem.writeFloat(832,distance1);
prevdistance1 = distance1;
}
if (distance2 != prevdistance2) {
mem.writeFloat(864,distance2);
prevdistance2 = distance2;
}
saveCount();
startsavemillis=millis()+2500;
}
// Serial.print(Trip[curTrip].sub);Serial.print(Trip[curTrip].speed);Serial.print(";");Serial.println(Trip[curTrip].startHour);
gcurTime = runningtimeforESP32(6,0);
sprintf(cur_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));
}
else if (distance1<1000) {
sprintf(cur_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));
}
if (distance2<100) {
sprintf(cur_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));
}
else {
sprintf(cur_distance2_str, "%03d.%01d", (int)distance2, (int)((distance2 - (int)distance2)*10));
}
float distancetime1 = distance1 * 60 / constanta;
float distancetime2 = distance2 * 60 / constanta;
//Calculating all about TIME,TDiff(including passing 23:59:59)
int secs1, mins1, hours1;
secs1 = (distancetime1-(int)distancetime1)*60;
mins1 = (int)distancetime1 % 60;
hours1 = (int)distancetime1 / 60;
unsigned long totcurrentsecs = t.sec + (t.min*60) + ((long)t.hour*3600);
unsigned long totsecs1 = secs1 + (mins1*60) + ((long)hours1*3600);
unsigned long totstarttractsecs = starttractsec + (starttractmin*60) + ((long)starttracthour*3600);
unsigned long tottime1 = totsecs1 + totstarttractsecs;
boolean negatifsign = false;
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;
tottime1 = tottime1 - totcurrentsecs;
}
else { //negatif means we need to hurry, its late
// Serial.println("neg");
negatifsign = true;
tottime1 = totcurrentsecs - tottime1;
}
}
//Serial.print(negatifsign);Serial.print(";"); Serial.println(tottime1);
hours1 = ((int)(tottime1 / 3600))%24;
mins1 = (int)((tottime1 % 3600)/60);
secs1 = (tottime1 % 60);
if (showTIME) {
sprintf(cur_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);
}
// Print Second TIME
int secs2, mins2, hours2;
secs2 = (distancetime2-(int)distancetime2)*60;
mins2 = (int)distancetime2 % 60;
hours2 = (int)distancetime2 / 60;
unsigned long totsecs2 = secs2 + (mins2*60) + ((long)hours2*3600);
unsigned long tottime2 = totsecs2 + totstarttractsecs;
if (!showTIME) {
if (tottime2 >= totcurrentsecs) { //positif means we are too fast, slow down please.
negatifsign = false;
tottime2 = tottime2 - totcurrentsecs;
}
else { //negatif means we need to hurry, its late
negatifsign = true;
tottime2 = totcurrentsecs - tottime2 ;
}
}
hours2 = ((int)(tottime2 / 3600))%24;
mins2 = (int)((tottime2 % 3600)/60);
secs2 = (tottime2 % 60);
if (showTIME) {
sprintf(cur_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);
}
// Serial.println("ENDCRal");
} ///// calculation only for 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["Time"]=gcurTime;
getRally["curSpeed"]=cur_speed_str; /////
getRally["curDist1"]=String(cur_distance1_str);
getRally["curDist2"]=cur_distance2_str;
getRally["time1"]=cur_time1_str;
getRally["dir1"]=dircount[dircount1];
getRally["time2"]=cur_time2_str;
getRally["dir2"]=dircount[dircount2];
getRally["counter"]=VSSCount;
if (showTIME) getRally["TDiff"]="Time"; //add 1 space
else getRally["TDiff"]="TDiff";
getRallyJson="";
serializeJson(getRally, getRallyJson);
}
void fillRallyLCDScreen(){
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);
lcd.print(Trip[curTrip].speed);
lcd.print("Km/H");
lcd.setCursor(11,2);
lcd.print(cur_speed_str);
lcd.print("Km/H");
lcd.setCursor(0,1);
lcd.print(cur_distance1_str);
lcd.print("Km");
lcd.setCursor(9,1);
lcd.print(dircount[dircount1]);
lcd.print(cur_time1_str);
lcd.setCursor(0,3);
lcd.print(cur_distance2_str);
lcd.print("Km");
lcd.setCursor(9,3);
lcd.print(dircount[dircount2]);
lcd.print(cur_time2_str);
// Serial.print("x=");Serial.print(x);Serial.print("y=");Serial.print(y);Serial.println("");
lcd.setCursor(x,y);
}
void set_cursor_pos(int new_pos) void set_cursor_pos(int new_pos)
{ {
/* /*
@ -2150,12 +2380,14 @@ void setup() {
Serial.println("Starting Rally"); Serial.println("Starting Rally");
//#endif //#endif
// pinMode(ledPin, OUTPUT); // pinMode(ledPin, OUTPUT);
uint32_t freqhx=100000; uint32_t freqhz=400000;
// Wire.begin(15, 13, freqhx); //for lolin32lite sda=15; scl=13 // Wire.begin(15, 13, freqhx); //for lolin32lite sda=15; scl=13
pinMode(simulatorPWMPin,OUTPUT); pinMode(simulatorPWMPin,OUTPUT);
pinMode(LED_BUILTIN, OUTPUT); pinMode(LED_BUILTIN, OUTPUT);
pinMode(interruptPin, INPUT); //Pull down using resistor to ground pinMode(interruptPin, INPUT); //Pull down using resistor to ground
attachInterrupt(digitalPinToInterrupt(interruptPin), blink, FALLING); attachInterrupt(digitalPinToInterrupt(interruptPin), blink, FALLING);
// attachInterrupt(digitalPinToInterrupt(interruptPin), blink, FALLING); // attachInterrupt(digitalPinToInterrupt(interruptPin), blink, FALLING);
// attachInterrupt(interruptPin, isr, FALLING); // attachInterrupt(interruptPin, isr, FALLING);
// Wire.begin(I2C_SDA, I2C_SCL); //for lolin32lite sda=15; scl=13 // Wire.begin(I2C_SDA, I2C_SCL); //for lolin32lite sda=15; scl=13
@ -2174,7 +2406,7 @@ void setup() {
btnESC.begin(); btnESC.begin();
//DS3231_init(DS3231_INTCN); //DS3231_init(DS3231_INTCN);
//memset(recv, 0, BUFF_MAX); // //memset(recv, 0, BUFF_MAX);
#ifdef DEBUG #ifdef DEBUG
Serial.println("GET time"); Serial.println("GET time");
#endif #endif
@ -2215,24 +2447,27 @@ Trip[9].startSec = 58;
Wire.begin(I2C_SDA, I2C_SCL, freqhz); //for lolin32lite sda=15; scl=13
//**************************LCD Setup******************************** //**************************LCD Setup********************************
delay(100); delay(100);
// lcd.begin (20,4); // initialize the lcd // lcd.begin (20,4); // initialize the lcd
// lcd.init(); // lcd.init();
lcd.begin(); lcd.begin();
lcd2.begin(); // lcd2.begin();
// Wire.begin(I2C_SDA, I2C_SCL); //for lolin32lite sda=15; scl=13
// Switch on the backlight // Switch on the backlight
/// lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE); /// lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
lcd.backlight(); // lcd.backlight();
lcd2.backlight(); // lcd2.backlight();
/// lcd.setBacklight(LED_ON); /// lcd.setBacklight(LED_ON);
lcd2.print("hello rally");
delay(3000); // lcd2.print("hello rally20");
//***************************END LCD Setup******************************** //***************************END LCD Setup********************************
getCalibJson.reserve(512); getCalibJson.reserve(512);
getRallyJson.reserve(512); getRallyJson.reserve(512);
#ifdef DEBUG #ifdef DEBUG
Serial.println("Setting time"); Serial.println("Setting time");
@ -2260,14 +2495,14 @@ DS3231_init(DS3231_CONTROL_INTCN);
//printmemLong(0,20); //startaddress, size //printmemLong(0,20); //startaddress, size
Serial.print("count1=");Serial.print(count1);Serial.print(";count2=");Serial.print(count2);Serial.print("countdiff=");Serial.println(count1count2diff); Serial.print("count1=");Serial.print(count1);Serial.print(";count2=");Serial.print(count2);Serial.print("countdiff=");Serial.println(count1count2diff);
//TESTING MEM AT24cx EEPROM check the address in the library #define ..... 0x57 // // TESTING MEM AT24cx EEPROM check the address in the library #define ..... 0x57
// Serial.println("Write 42 to address 12"); // Serial.println("Write 42 to address 12");
// mem.write(12, 42); // mem.write(12, 42);
// Serial.println("Read byte from address 12 ..."); // Serial.println("Read byte from address 12 ...");
// byte b = mem.read(12); // byte b = mem.read(12);
// Serial.print("... read: "); // Serial.print("... read: ");
// Serial.println(b, DEC); // Serial.println(b, DEC);
// Serial.println(); // Serial.println();
//count1Seq = 4294967290; //count1Seq = 4294967290;
/* /*
@ -3592,7 +3827,10 @@ void loop() //loop from VSS RALLY V2
//rallyMenu(); //rallyMenu();
if (!rallyEdit) { if (!rallyEdit) {
iscalculatingRally=true; iscalculatingRally=true;
redrawrallyMenu(); //Distance is edited? // redrawrallyMenu(); //Distance is edited?
// calculationRally();
Serial.println(millis()-testLoadTime);
fillRallyLCDScreen();
iscalculatingRally=false; iscalculatingRally=false;
} }
Serial.println(millis()-testLoadTime); Serial.println(millis()-testLoadTime);
@ -3600,7 +3838,9 @@ void loop() //loop from VSS RALLY V2
//prevtemprally+=tempintervalrally; //prevtemprally+=tempintervalrally;
} }
} }
if ((MENU==RALLY || globalClientCalib) && ((now1 - prevCalculatingRallyMillis)>=calculatingRallyMillis)){
calculationRally();
}
if (MENU==SETTIME) { if (MENU==SETTIME) {
//if ((long)(now1 - prevtempint) >=0 ){ //if ((long)(now1 - prevtempint) >=0 ){
if ((now1 - prevtempint) >=tempinterval ){ if ((now1 - prevtempint) >=tempinterval ){
@ -3708,26 +3948,21 @@ void loop() //loop from VSS RALLY V2
if ((millis()-broadcastwebsocket) > 333 && !isloadingConst && globalClientRally) { if ((millis()-broadcastwebsocket) > 333 && !isloadingConst && globalClientRally) {
broadcastwebsocket = millis(); broadcastwebsocket = millis();
iscalculatingRally=true; iscalculatingRally=true;
calculationRally(); // calculationRally();
Serial.print("calculationRallyTime=");Serial.println(millis()-broadcastwebsocket);
fillRallyJsonWithData();
iscalculatingRally=false; iscalculatingRally=false;
// Serial.println(getRallyJson); // Serial.println(getRallyJson);
// Serial.println(millis()-broadcastwebsocket);
ws.textAll(getRallyJson); ws.textAll(getRallyJson);
// char pingPong[] = "{\"ping\":1}"; Serial.print("calculationRallyToTTime=");Serial.println(millis()-broadcastwebsocket);
// ws.textAll(pingPong);
} }
if ((millis()-broadcastwebsocketcalib) > 499 && !isloadingConst && globalClientCalib) { if ((millis()-broadcastwebsocketcalib) > 499 && !isloadingConst && globalClientCalib) {
broadcastwebsocketcalib = millis(); broadcastwebsocketcalib = millis();
//calculationRally();
redrawcalibrationMenuForESP32(); redrawcalibrationMenuForESP32();
// Serial.println(getCalibJson); // Serial.println(getCalibJson);
wscal.textAll(getCalibJson); wscal.textAll(getCalibJson);
// Serial.print("VSSCount="); Serial.println(VSSCount);
// Serial.print(ledstate); Serial.print(";");Serial.println(simstate);
} }
if(!isloadingConst){ if(!isloadingConst){
for (int i=(REQUESTCOUNT-1); i>=0; i--){ for (int i=(REQUESTCOUNT-1); i>=0; i--){
@ -3743,7 +3978,6 @@ void loop() //loop from VSS RALLY V2
gGotRequest[i]=false; gGotRequest[i]=false;
Serial.print("REMOVE:");Serial.println(i); Serial.print("REMOVE:");Serial.println(i);
} }
} }
} }
VSSCount=millis(); //VSSCount Simulator VSSCount=millis(); //VSSCount Simulator