add settime and fix load const

This commit is contained in:
Bluedragon 2022-05-01 08:14:34 +07:00
parent 702223dc58
commit d65d980642
3 changed files with 274 additions and 216 deletions

View File

@ -9,12 +9,24 @@
<link href="bootstrap.css" rel="stylesheet"> <link href="bootstrap.css" rel="stylesheet">
<script type = "text/javascript"> <script type = "text/javascript">
const ws = new WebSocket("ws://%serveripaddress%/wssettime"); const ws = new WebSocket("ws://%serveripaddress%/wssettime");
ws.onopen = function() {console.log("WebSocket Connected");}; ws.onopen = function() {
ws.onclose = function() {alert("WS Connection Closed");}; console.log("WebSocket Connected");
if(document.getElementById("mainTime").classList.contains("bg-danger")){
document.getElementById("mainTime").classList.remove("bg-danger")
}
};
ws.onclose = function() {
// alert("WS Connection Closed");
if(!document.getElementById("mainTime").classList.contains("bg-danger")){
document.getElementById("mainTime").classList.add("bg-danger")
}
};
ws.onmessage = function(event) { ws.onmessage = function(event) {
console.log(event.data); console.log(event.data);
var data = JSON.parse(event.data); var data = JSON.parse(event.data);
document.getElementById("counter").innerHTML = data.counter; if (data.NTPTime=="N/A") document.getElementById("btnNTP").disabled = true;
else document.getElementById("btnNTP").disabled = false;
document.getElementById("counter").innerHTML = data.counter+";"+data.counter2;
document.getElementById("currenttrack").innerHTML = data.curTrip; document.getElementById("currenttrack").innerHTML = data.curTrip;
document.getElementById("currenttime").innerHTML = data.curTime; document.getElementById("currenttime").innerHTML = data.curTime;
document.getElementById("speed").innerHTML = data.curTripSpeed; document.getElementById("speed").innerHTML = data.curTripSpeed;
@ -32,9 +44,9 @@
<script src="bootstrap.bundle.min.js"></script> <script src="bootstrap.bundle.min.js"></script>
<div class=" bg-secondary text-white"> <div class=" bg-secondary text-white">
<div class="row"> <div class="row">
<div class="col-2 mt-1"><h2><span id="counter">12345</span></h2></div> <div class="col-2 mt-1"><h6><span id="counter">12345</span></h6></div>
<div class="col-3 mt-1"><h2>TRACK <span id="currenttrack">A</span></h2></div> <div class="col-3 mt-1"><h2>TRIP <span id="currenttrack">A</span></h2></div>
<div class="col mt-1"><h2 class="text-center">Time: <span id="currenttime">00:00:00</span></h2></div> <div class="col mt-1 text-center" id="mainTime"><h2>Time: <span id="currenttime">00:00:00</span></h2></div>
<div class="col-3 mt-1 text-end"><h2><span id="speed">123.4</span>Km/h</h2></div> <div class="col-3 mt-1 text-end"><h2><span id="speed">123.4</span>Km/h</h2></div>
<hr> <hr>
</div> </div>
@ -45,7 +57,7 @@
<input type="time" step="any" maxlength="6" required oninput="javascript: if (this.value.length > this.maxLength) this.value = this.value.slice(0, this.maxLength);" <input type="time" step="any" maxlength="6" required oninput="javascript: if (this.value.length > this.maxLength) this.value = this.value.slice(0, this.maxLength);"
id="settime" name="settime" size="4"> id="settime" name="settime" size="4">
<button class="btn btn-primary mb-2 fw-bold" onclick="setTime(0)">SET Time</button> <button class="btn btn-primary mb-2 fw-bold" onclick="setTime(0)">SET Time</button>
<button class="btn btn-primary mb-2 fw-bold" onclick="setTime(1)">Use NTP</button> <button id="btnNTP" class="btn btn-primary mb-2 fw-bold" onclick="setTime(1)">Use NTP</button>
</h3></div> </h3></div>
</div> </div>
<button ondblclick="location.href='/menu';" class="btn btn-primary fw-bold btn-sm mt-2 mb-2 ms-3">Back to Menu</button> <button ondblclick="location.href='/menu';" class="btn btn-primary fw-bold btn-sm mt-2 mb-2 ms-3">Back to Menu</button>

View File

@ -341,14 +341,24 @@ const char HTML_CALIBRATION[] PROGMEM = R"rawliteral(
<link href="bootstrap.css" rel="stylesheet"> <link href="bootstrap.css" rel="stylesheet">
<script type = "text/javascript"> <script type = "text/javascript">
const ws = new WebSocket("ws://%serveripaddress%/wscal"); const ws = new WebSocket("ws://%serveripaddress%/wscal");
ws.onopen = function() {console.log("WebSocket Connected");}; ws.onopen = function() {
ws.onclose = function() {alert("WS Connection Closed");}; console.log("WebSocket Connected");
if(document.getElementById("mainTime").classList.contains("bg-danger")){
document.getElementById("mainTime").classList.remove("bg-danger")
}
};
ws.onclose = function() {
// alert("WS Connection Closed");
if(!document.getElementById("mainTime").classList.contains("bg-danger")){
document.getElementById("mainTime").classList.add("bg-danger")
}
};
ws.onmessage = function(event) { ws.onmessage = function(event) {
console.log(event.data); console.log(event.data);
var data = JSON.parse(event.data); var data = JSON.parse(event.data);
document.getElementById("currenttime").innerHTML = data.curTime; document.getElementById("currenttime").innerHTML = data.curTime;
document.getElementById("currenttrack").innerHTML = data.curTrip; document.getElementById("currenttrack").innerHTML = data.curTrip;
document.getElementById("counter").innerHTML = data.counter; document.getElementById("counter").innerHTML = data.counter+";"+data.counter2;
document.getElementById("speed").innerHTML = data.curTripSpeed; document.getElementById("speed").innerHTML = data.curTripSpeed;
document.getElementById("caldist").innerHTML = data.caldist; document.getElementById("caldist").innerHTML = data.caldist;
document.getElementById("calman").innerHTML = data.calman; document.getElementById("calman").innerHTML = data.calman;
@ -364,9 +374,9 @@ const char HTML_CALIBRATION[] PROGMEM = R"rawliteral(
<script src="bootstrap.bundle.min.js"></script> <script src="bootstrap.bundle.min.js"></script>
<div class=" bg-secondary text-white"> <div class=" bg-secondary text-white">
<div class="row"> <div class="row">
<div class="col-2 mt-1"><h2><span id="counter">12345</span></h2></div> <div class="col-2 mt-1"><h5><span id="counter">12345</span></h5></div>
<div class="col-3 mt-1"><h2>TRACK <span id="currenttrack">A</span></h2></div> <div class="col-3 mt-1"><h2>TRIP <span id="currenttrack">A</span></h2></div>
<div class="col mt-1"><h2 class="text-center">Time: <span id="currenttime">00:00:00</span></h2></div> <div class="col mt-1 text-center" id="mainTime"><h2>Time: <span id="currenttime">00:00:00</span></h2></div>
<div class="col-3 mt-1 text-end"><h2><span id="speed">123.4</span>Km/h</h2></div> <div class="col-3 mt-1 text-end"><h2><span id="speed">123.4</span>Km/h</h2></div>
<hr> <hr>
</div> </div>
@ -446,12 +456,24 @@ const char HTML_SETTIME[] PROGMEM = R"rawliteral(
<link href="bootstrap.css" rel="stylesheet"> <link href="bootstrap.css" rel="stylesheet">
<script type = "text/javascript"> <script type = "text/javascript">
const ws = new WebSocket("ws://%serveripaddress%/wssettime"); const ws = new WebSocket("ws://%serveripaddress%/wssettime");
ws.onopen = function() {console.log("WebSocket Connected");}; ws.onopen = function() {
ws.onclose = function() {alert("WS Connection Closed");}; console.log("WebSocket Connected");
if(document.getElementById("mainTime").classList.contains("bg-danger")){
document.getElementById("mainTime").classList.remove("bg-danger")
}
};
ws.onclose = function() {
// alert("WS Connection Closed");
if(!document.getElementById("mainTime").classList.contains("bg-danger")){
document.getElementById("mainTime").classList.add("bg-danger")
}
};
ws.onmessage = function(event) { ws.onmessage = function(event) {
console.log(event.data); console.log(event.data);
var data = JSON.parse(event.data); var data = JSON.parse(event.data);
document.getElementById("counter").innerHTML = data.counter; if (data.NTPTime=="N/A") document.getElementById("btnNTP").disabled = true;
else document.getElementById("btnNTP").disabled = false;
document.getElementById("counter").innerHTML = data.counter+";"+data.counter2;
document.getElementById("currenttrack").innerHTML = data.curTrip; document.getElementById("currenttrack").innerHTML = data.curTrip;
document.getElementById("currenttime").innerHTML = data.curTime; document.getElementById("currenttime").innerHTML = data.curTime;
document.getElementById("speed").innerHTML = data.curTripSpeed; document.getElementById("speed").innerHTML = data.curTripSpeed;
@ -469,9 +491,9 @@ const char HTML_SETTIME[] PROGMEM = R"rawliteral(
<script src="bootstrap.bundle.min.js"></script> <script src="bootstrap.bundle.min.js"></script>
<div class=" bg-secondary text-white"> <div class=" bg-secondary text-white">
<div class="row"> <div class="row">
<div class="col-2 mt-1"><h2><span id="counter">12345</span></h2></div> <div class="col-2 mt-1"><h6><span id="counter">12345</span></h6></div>
<div class="col-3 mt-1"><h2>TRACK <span id="currenttrack">A</span></h2></div> <div class="col-3 mt-1"><h2>TRIP <span id="currenttrack">A</span></h2></div>
<div class="col mt-1"><h2 class="text-center">Time: <span id="currenttime">00:00:00</span></h2></div> <div class="col mt-1 text-center" id="mainTime"><h2>Time: <span id="currenttime">00:00:00</span></h2></div>
<div class="col-3 mt-1 text-end"><h2><span id="speed">123.4</span>Km/h</h2></div> <div class="col-3 mt-1 text-end"><h2><span id="speed">123.4</span>Km/h</h2></div>
<hr> <hr>
</div> </div>
@ -482,7 +504,7 @@ const char HTML_SETTIME[] PROGMEM = R"rawliteral(
<input type="time" step="any" maxlength="6" required oninput="javascript: if (this.value.length > this.maxLength) this.value = this.value.slice(0, this.maxLength);" <input type="time" step="any" maxlength="6" required oninput="javascript: if (this.value.length > this.maxLength) this.value = this.value.slice(0, this.maxLength);"
id="settime" name="settime" size="4"> id="settime" name="settime" size="4">
<button class="btn btn-primary mb-2 fw-bold" onclick="setTime(0)">SET Time</button> <button class="btn btn-primary mb-2 fw-bold" onclick="setTime(0)">SET Time</button>
<button class="btn btn-primary mb-2 fw-bold" onclick="setTime(1)">Use NTP</button> <button id="btnNTP" class="btn btn-primary mb-2 fw-bold" onclick="setTime(1)">Use NTP</button>
</h3></div> </h3></div>
</div> </div>
<button ondblclick="location.href='/menu';" class="btn btn-primary fw-bold btn-sm mt-2 mb-2 ms-3">Back to Menu</button> <button ondblclick="location.href='/menu';" class="btn btn-primary fw-bold btn-sm mt-2 mb-2 ms-3">Back to Menu</button>

View File

@ -70,6 +70,10 @@ String strSetTimeJson="{\"counter\":0}";
int globalClientRally=0; int globalClientRally=0;
int globalClientCalib=0; int globalClientCalib=0;
int globalClientSetTime=0; int globalClientSetTime=0;
boolean gHasLcdClient=false;
boolean gHasRallyClient=false;
boolean gHasCalibClient=false;
boolean gHasSetTimeClient=false;
#define REQUESTCOUNT 3 #define REQUESTCOUNT 3
AsyncWebServerRequest *gRequest[REQUESTCOUNT]; AsyncWebServerRequest *gRequest[REQUESTCOUNT];
@ -177,7 +181,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=1000; unsigned long prevCalculatingRallyMillis, calculatingRallyMillis=500;
unsigned long prevcalibrationtime, calibrationtimeinterval = 200; unsigned long prevcalibrationtime, calibrationtimeinterval = 200;
unsigned long updatecounttime=0; unsigned long updatecounttime=0;
float temperature; float temperature;
@ -197,6 +201,7 @@ unsigned long startsavemillis;
unsigned long broadcastwebsocket; unsigned long broadcastwebsocket;
unsigned long timerWebsocketCalibration; unsigned long timerWebsocketCalibration;
unsigned long timerWebsocketSetTime; unsigned long timerWebsocketSetTime;
unsigned long timerDS3231Get;
volatile unsigned long howLongInMillis; volatile unsigned long howLongInMillis;
//#include <Button.h> //https://github.com/JChristensen/Button //from <Button.h> change to <JC_Button.h> //#include <Button.h> //https://github.com/JChristensen/Button //from <Button.h> change to <JC_Button.h>
@ -430,98 +435,101 @@ void OnWiFiEvent(WiFiEvent_t event)
} }
} }
String getPin(){ // String getPin(){ //can be delete
struct tm timeinfo; // struct tm timeinfo;
String hasil; // String hasil;
if(!getLocalTime(&timeinfo)){ // if(!getLocalTime(&timeinfo)){
Serial.println("Failed to obtain time"); // Serial.println("Failed to obtain time");
return hasil; // return hasil;
} // }
// StaticJsonBuffer<200> jsonBuffer; // // StaticJsonBuffer<200> jsonBuffer;
// JsonObject& root = JsonBuffer.createObject(); // // JsonObject& root = JsonBuffer.createObject();
DynamicJsonDocument testdoc(512); // DynamicJsonDocument testdoc(512);
//String datetime = &timeinfo; // //String datetime = &timeinfo;
char datetime[21]; // char datetime[21];
char curtime[9]; // char curtime[9];
strftime(datetime, 21, "%d %b %Y %H:%M:%S", &timeinfo); // strftime(datetime, 21, "%d %b %Y %H:%M:%S", &timeinfo);
strftime(curtime, 9, "%H:%M:%S", &timeinfo); // strftime(curtime, 9, "%H:%M:%S", &timeinfo);
//Serial.println(&timeinfo); // //Serial.println(&timeinfo);
//Serial.println(datetime); // //Serial.println(datetime);
testdoc["pin36"]=242; // testdoc["pin36"]=242;
testdoc["pin39"]=datetime; // testdoc["pin39"]=datetime;
testdoc["time"]=curtime; // testdoc["time"]=curtime;
// testdoc["datetime"]=datetime; // // testdoc["datetime"]=datetime;
testdoc["pin5"]=millis(); // testdoc["pin5"]=millis();
testdoc["curtime"]=curtime; // testdoc["curtime"]=curtime;
testdoc["speed"]=String(float(random(1,20000))/100,1); // testdoc["speed"]=String(float(random(1,20000))/100,1);
testdoc["counter"]=random(0,50000); // testdoc["counter"]=random(0,50000);
String bb[]={"A","B","C","D","E","F","G","H","I","J","K","L"}; // String bb[]={"A","B","C","D","E","F","G","H","I","J","K","L"};
testdoc["curtrack"]=bb[random(12)]; // testdoc["curtrack"]=bb[random(12)];
String dir[]={"FW","STOP","BACK"}; // String dir[]={"FW","STOP","BACK"};
testdoc["dir1"]=dir[random(3)]; // testdoc["dir1"]=dir[random(3)];
testdoc["dir2"]=dir[random(3)]; // testdoc["dir2"]=dir[random(3)];
testdoc["time1"]=curtime; // testdoc["time1"]=curtime;
testdoc["time2"]=curtime; // testdoc["time2"]=curtime;
float odo1=float(millis())/10000; // float odo1=float(millis())/10000;
float odo2=float(millis())/20000; // float odo2=float(millis())/20000;
//Serial.println(odo1,3); // //Serial.println(odo1,3);
testdoc["odo1"]=String(odo1,3); // testdoc["odo1"]=String(odo1,3);
testdoc["odo2"]=String(odo2,3); // if disabled, the web will get undefined value // testdoc["odo2"]=String(odo2,3); // if disabled, the web will get undefined value
//serializeJson(testdoc,Serial); // //serializeJson(testdoc,Serial);
serializeJson(testdoc,hasil); // serializeJson(testdoc,hasil);
//testdoc.printTo(hasil); // //testdoc.printTo(hasil);
// testdoc.clear(); // // testdoc.clear();
return hasil; // return hasil;
} // }
String getCalib(){
struct tm timeinfo; // String getCalibFunc(){ can be delete
String hasil; // struct tm timeinfo;
if(!getLocalTime(&timeinfo)){ // String hasil;
Serial.println("Failed to obtain time"); // if(!getLocalTime(&timeinfo)){
return hasil; // Serial.println("Failed to obtain time");
} // return hasil;
DynamicJsonDocument testdoc(200); // }
//String datetime = &timeinfo; // DynamicJsonDocument testdoc(200);
char datetime[21]; // //String datetime = &timeinfo;
char curtime[9]; // char datetime[21];
strftime(datetime, 21, "%d %b %Y %H:%M:%S", &timeinfo); // char curtime[9];
strftime(curtime, 9, "%H:%M:%S", &timeinfo); // strftime(datetime, 21, "%d %b %Y %H:%M:%S", &timeinfo);
//Serial.println(&timeinfo); // strftime(curtime, 9, "%H:%M:%S", &timeinfo);
//Serial.println(datetime); // //Serial.println(&timeinfo);
// testdoc["datetime"]=datetime; // //Serial.println(datetime);
testdoc["curtime"]=curtime; // // testdoc["datetime"]=datetime;
testdoc["speed"]=String(float(random(1,20000))/100,1); // testdoc["curtime"]=curtime;
testdoc["counter"]=random(0,50000); // testdoc["speed"]=String(float(random(1,20000))/100,1);
String bb[]={"A","B","C","D","E","F","G","H","I","J","K","L"}; // testdoc["counter"]=random(0,50000);
testdoc["curtrack"]=bb[random(12)]; // String bb[]={"A","B","C","D","E","F","G","H","I","J","K","L"};
float calkm=float(millis())/100000; // testdoc["curtrack"]=bb[random(12)];
float calmeter=float(millis())/100; // float calkm=float(millis())/100000;
testdoc["caldist"]=random(9); // float calmeter=float(millis())/100;
testdoc["calman"]=random(100000, 150000); // testdoc["caldist"]=random(9);
testdoc["calkm"]=String(calkm,3); // testdoc["calman"]=random(100000, 150000);
testdoc["calmeter"]=String(calmeter,3); // testdoc["calkm"]=String(calkm,3);
//Serial.println(odo1,3); // testdoc["calmeter"]=String(calmeter,3);
testdoc["calval"]=String(calmeter*1000); // if disabled, the web will get undefined value // //Serial.println(odo1,3);
//serializeJson(testdoc,Serial); // testdoc["calval"]=String(calmeter*1000); // if disabled, the web will get undefined value
serializeJson(testdoc,hasil); // //serializeJson(testdoc,Serial);
//testdoc.printTo(hasil); // serializeJson(testdoc,hasil);
// testdoc.clear(); // //testdoc.printTo(hasil);
return hasil; // // testdoc.clear();
} // return hasil;
// }
void printLocalTime(){ void printLocalTime(){
struct tm timeinfo; struct tm timeinfo;
if (WiFi.status() == WL_CONNECTED){
if(!getLocalTime(&timeinfo)){ if(!getLocalTime(&timeinfo)){
Serial.println("Failed to obtain time"); Serial.println("Failed to obtain NTP time");
return; return;
} }
t.hour=timeinfo.tm_hour; } else return;
t.min=timeinfo.tm_min; // t.hour=timeinfo.tm_hour;
t.sec=timeinfo.tm_sec; // t.min=timeinfo.tm_min;
t.mday=timeinfo.tm_mday; // t.sec=timeinfo.tm_sec;
t.mon=timeinfo.tm_mon; // t.mday=timeinfo.tm_mday;
t.year=timeinfo.tm_year; // t.mon=timeinfo.tm_mon;
DS3231_set(t); // t.year=timeinfo.tm_year;
// DS3231_set(t);
Serial.println(&timeinfo, "%A, %B %d %Y %H:%M:%S"); Serial.println(&timeinfo, "%A, %B %d %Y %H:%M:%S");
Serial.print("Day of week: "); Serial.print("Day of week: ");
Serial.println(&timeinfo, "%A"); Serial.println(&timeinfo, "%A");
@ -665,7 +673,7 @@ unsigned long getValueSetTime(const char* st){
unsigned long getMemStime(uint8_t getmemsTimecurTrip); unsigned long getMemStime(uint8_t getmemsTimecurTrip);
String getsTime(uint8_t getsTimecurtrip){ String getShortsTime(uint8_t getsTimecurtrip){
unsigned long sTimeinconstanta; unsigned long sTimeinconstanta;
int sTimeHour; int sTimeHour;
int sTimeMin; int sTimeMin;
@ -682,7 +690,7 @@ String getsTime(uint8_t getsTimecurtrip){
char sTime[6]; char sTime[6];
// if (sTimeHour<10){ // if (sTimeHour<10){
sprintf(sTime, "%02d:%02d", sTimeHour, sTimeMin); sprintf(sTime, "%02d:%02d", sTimeHour, sTimeMin);
// Serial.print(getsTimecurtrip);Serial.print("getsTime:");Serial.print(sTimeHour);Serial.print(":");Serial.print(sTimeMin);Serial.print(";");Serial.println(sTime); // Serial.print(getsTimecurtrip);Serial.print("getShortsTime:");Serial.print(sTimeHour);Serial.print(":");Serial.print(sTimeMin);Serial.print(";");Serial.println(sTime);
// } // }
return sTime; return sTime;
} }
@ -691,12 +699,14 @@ void onWsEvent(AsyncWebSocket * server, AsyncWebSocketClient * client, AwsEventT
if(type == WS_EVT_CONNECT){ if(type == WS_EVT_CONNECT){
globalClientRally++; globalClientRally++;
gHasRallyClient=true;
Serial.println("Websocket client connection received"); Serial.println("Websocket client connection received");
Serial.print("Rally Client=");Serial.println(globalClientRally); Serial.print("Rally Client=");Serial.println(globalClientRally);
Serial.print("IPAdd client:"); Serial.println(client->remoteIP()); Serial.print("IPAdd client:"); Serial.println(client->remoteIP());
client->text(strRallyJson); client->text(strRallyJson);
} else if(type == WS_EVT_DISCONNECT){ } else if(type == WS_EVT_DISCONNECT){
globalClientRally--; globalClientRally--;
if (globalClientRally<=0) gHasRallyClient=false;
Serial.println("Client disconnected"); Serial.println("Client disconnected");
Serial.print("Rally Client=");Serial.println(globalClientRally); Serial.print("Rally Client=");Serial.println(globalClientRally);
Serial.print("IPAdd client:"); Serial.println(client->remoteIP()); Serial.print("IPAdd client:"); Serial.println(client->remoteIP());
@ -815,12 +825,14 @@ void onWsEvent(AsyncWebSocket * server, AsyncWebSocketClient * client, AwsEventT
void onWsEventCalibration(AsyncWebSocket * server, AsyncWebSocketClient * client, AwsEventType type, void * arg, uint8_t *data, size_t len){ void onWsEventCalibration(AsyncWebSocket * server, AsyncWebSocketClient * client, AwsEventType type, void * arg, uint8_t *data, size_t len){
if(type == WS_EVT_CONNECT){ if(type == WS_EVT_CONNECT){
globalClientCalib++; globalClientCalib++;
gHasCalibClient=true;
Serial.println("wscal Websocket client connection received"); Serial.println("wscal Websocket client connection received");
Serial.print("Calib Client=");Serial.println(globalClientCalib); Serial.print("Calib Client=");Serial.println(globalClientCalib);
Serial.print("IPAdd client:"); Serial.println(client->remoteIP()); Serial.print("IPAdd client:"); Serial.println(client->remoteIP());
client->text(strCalibJson); client->text(strCalibJson);
} else if(type == WS_EVT_DISCONNECT){ } else if(type == WS_EVT_DISCONNECT){
globalClientCalib--; globalClientCalib--;
if (globalClientCalib<=0) gHasCalibClient=false;
Serial.println("wscal Client disconnected"); Serial.println("wscal Client disconnected");
Serial.print("Calib Client=");Serial.println(globalClientCalib); Serial.print("Calib Client=");Serial.println(globalClientCalib);
Serial.print("IPAdd client:"); Serial.println(client->remoteIP()); Serial.print("IPAdd client:"); Serial.println(client->remoteIP());
@ -885,12 +897,14 @@ void onWsEventCalibration(AsyncWebSocket * server, AsyncWebSocketClient * client
void onWsEventSetTime(AsyncWebSocket * server, AsyncWebSocketClient * client, AwsEventType type, void * arg, uint8_t *data, size_t len){ void onWsEventSetTime(AsyncWebSocket * server, AsyncWebSocketClient * client, AwsEventType type, void * arg, uint8_t *data, size_t len){
if(type == WS_EVT_CONNECT){ if(type == WS_EVT_CONNECT){
globalClientSetTime++; globalClientSetTime++;
gHasSetTimeClient=true;
Serial.println("wssettime Websocket client connection received"); Serial.println("wssettime Websocket client connection received");
Serial.print("SetTime Client=");Serial.println(globalClientSetTime); Serial.print("SetTime Client=");Serial.println(globalClientSetTime);
Serial.print("IPAdd client:");Serial.println(client->remoteIP()); Serial.print("IPAdd client:");Serial.println(client->remoteIP());
client->text(strSetTimeJson); client->text(strSetTimeJson);
} else if(type == WS_EVT_DISCONNECT){ } else if(type == WS_EVT_DISCONNECT){
globalClientSetTime--; globalClientSetTime--;
if (globalClientSetTime<=0) gHasSetTimeClient=false;
Serial.println("wssettime Client disconnected"); Serial.println("wssettime Client disconnected");
Serial.print("SetTime Client=");Serial.println(globalClientSetTime); Serial.print("SetTime Client=");Serial.println(globalClientSetTime);
Serial.print("IPAdd client:"); Serial.println(client->remoteIP()); Serial.print("IPAdd client:"); Serial.println(client->remoteIP());
@ -924,7 +938,8 @@ void onWsEventSetTime(AsyncWebSocket * server, AsyncWebSocketClient * client, Aw
int yMinVal=(uint8_t)(y.toInt()); int yMinVal=(uint8_t)(y.toInt());
Serial.print("x=");Serial.println(xHourVal); Serial.print("x=");Serial.println(xHourVal);
Serial.print("y=");Serial.println(yMinVal); Serial.print("y=");Serial.println(yMinVal);
DS3231_get(&mts); //// DS3231_get(&mts);
mts = t;
mts.sec=0; mts.sec=0;
mts.min=yMinVal; mts.min=yMinVal;
mts.hour=xHourVal; mts.hour=xHourVal;
@ -932,10 +947,11 @@ void onWsEventSetTime(AsyncWebSocket * server, AsyncWebSocketClient * client, Aw
Serial.println("Manual Time Saved"); Serial.println("Manual Time Saved");
// } else if(setTime=="NTP") { //save NTP Time to DS3231 // } else if(setTime=="NTP") { //save NTP Time to DS3231
} else if(strcmp(setTime, "NTP") == 0) { //save NTP Time to DS3231 } else if(strcmp(setTime, "NTP") == 0) { //save NTP Time to DS3231
if (WiFi.status() == WL_CONNECTED){
if(!getLocalTime(&mtm)){ if(!getLocalTime(&mtm)){
Serial.println("Failed to obtain NTP time"); Serial.println("<SetTime>Failed to obtain NTP time");
// return; // return;
} } else {
mts.hour = mtm.tm_hour; mts.hour = mtm.tm_hour;
mts.min = mtm.tm_min; mts.min = mtm.tm_min;
mts.sec = mtm.tm_sec; mts.sec = mtm.tm_sec;
@ -946,6 +962,9 @@ void onWsEventSetTime(AsyncWebSocket * server, AsyncWebSocketClient * client, Aw
Serial.println("NTP Saved"); Serial.println("NTP Saved");
} }
} }
// else Serial.println("<SetTime>No WiFi");
}
}
} }
} }
// void configModeCallback (WiFiManager *myWiFiManager) { // void configModeCallback (WiFiManager *myWiFiManager) {
@ -1039,6 +1058,10 @@ void memretrieveTrip(int pointer, int startaddress)
if (Trip[pointer].startHour >= 24) Trip[pointer].startHour = 23; if (Trip[pointer].startHour >= 24) Trip[pointer].startHour = 23;
if (Trip[pointer].startMin >= 60) Trip[pointer].startMin = 59; if (Trip[pointer].startMin >= 60) Trip[pointer].startMin = 59;
if (Trip[pointer].startSec >= 60) Trip[pointer].startSec = 59; if (Trip[pointer].startSec >= 60) Trip[pointer].startSec = 59;
Serial.print(Trip[pointer].speed);Serial.print(";");
Serial.print(Trip[pointer].startHour);Serial.print(":");
Serial.print(Trip[pointer].startMin);Serial.print(":");
Serial.print(Trip[pointer].startSec);Serial.println("");
} }
void constantatodigit() void constantatodigit()
@ -1169,7 +1192,7 @@ void lcdprint2digit(byte val)
if (val<10) lcd.print("0"); if (val<10) lcd.print("0");
lcd.print(val); lcd.print(val);
} }
void setTheTime(char *cmd) void setTheTime(char *cmd) //// Not Used, Maybe Can delete
{ {
// ssmmhhWDDMMYYYY set time // ssmmhhWDDMMYYYY set time
@ -1440,7 +1463,7 @@ void constantaMenu()
//lcd.print( //lcd.print(
lcd.setCursor(0,3); lcd.setCursor(0,3);
lcd.print("Start Time:"); lcd.print("Start Time:");
//DS3231_get(&t); //Get time
lcd.setCursor(12,3); //Go to second line of the LCD Screen lcd.setCursor(12,3); //Go to second line of the LCD Screen
if(starttracthour<10) if(starttracthour<10)
{ {
@ -1595,7 +1618,8 @@ void redrawcalibrationMenuForESP32()
Calibrationtime = VSSCount; Calibrationtime = VSSCount;
// lcd.setCursor(xtemp,2); // lcd.setCursor(xtemp,2);
// lcd.print(cur_distance_str); // lcd.print(cur_distance_str);
getCalib["counter"]=VSSCount; ///// getCalib["counter2"]=VSSCount; /////
getCalib["counter"]=String(gVSSCountDiff);
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);
@ -1624,21 +1648,26 @@ void fillSetTimeJsonForESP32()
DynamicJsonDocument docSetTime(512); DynamicJsonDocument docSetTime(512);
deserializeJson(docSetTime, strSetTimeJson); deserializeJson(docSetTime, strSetTimeJson);
docSetTime["counter"]=VSSCount; ///// docSetTime["counter2"]=VSSCount; /////
docSetTime["counter"]=String(gVSSCountDiff);
docSetTime["curTrip"]=String(Trip[curTrip].sub); ///// docSetTime["curTrip"]=String(Trip[curTrip].sub); /////
docSetTime["curTripSpeed"]=String(Trip[curTrip].speed); ///// docSetTime["curTripSpeed"]=String(Trip[curTrip].speed); /////
DS3231_get(&t); // DS3231_get(&t);
struct tm NTPTimeInfo; struct tm NTPTimeInfo;
String NTPTime;
if (WiFi.status() == WL_CONNECTED){
if(!getLocalTime(&NTPTimeInfo)){ if(!getLocalTime(&NTPTimeInfo)){
Serial.println("Failed to obtain NTP time"); Serial.println("<fillSetTime>Failed to obtain NTP time");
// return; // return;
} }
gcurTime = runningtimeforESP32(6,0);
String NTPTime;
NTPTime = runningtimeforESP32(&NTPTimeInfo); NTPTime = runningtimeforESP32(&NTPTimeInfo);
docSetTime["curTime"]=gcurTime;
docSetTime["NTPTime"]=NTPTime; docSetTime["NTPTime"]=NTPTime;
} else {
// Serial.println("<fillSetTime>No WiFi");
docSetTime["NTPTime"]="N/A";
}
gcurTime = runningtimeforESP32(6,0);
docSetTime["curTime"]=gcurTime;
strSetTimeJson = ""; strSetTimeJson = "";
serializeJson(docSetTime, strSetTimeJson); serializeJson(docSetTime, strSetTimeJson);
@ -1674,7 +1703,7 @@ void fillSetTimeJsonForESP32()
void redrawrallyMenu() void redrawrallyMenu()
{ {
// Serial.println("redrawRM"); // Serial.println("redrawRM");
DS3231_get(&t); //Get time // DS3231_get(&t); //Get time
//runningtime(6,0); //runningtime(6,0);
//float distance, distance1, distance2; //float distance, distance1, distance2;
@ -1884,7 +1913,7 @@ void calculationRally_BACKUP() //calculation only ESP32
{ {
DynamicJsonDocument getRally(1024); DynamicJsonDocument getRally(1024);
deserializeJson(getRally, strRallyJson); deserializeJson(getRally, strRallyJson);
DS3231_get(&t); //Get time // DS3231_get(&t); //Get time
// Serial.println("startCRal"); // Serial.println("startCRal");
updateCount(); updateCount();
@ -2073,7 +2102,7 @@ void calculationRally_BACKUP() //calculation only ESP32
void calculationRally() //calculation only ESP32 void calculationRally() //calculation only ESP32
{ {
DS3231_get(&t); //Get time // DS3231_get(&t); //Get time
// Serial.println("startCRal"); // Serial.println("startCRal");
updateCount(); updateCount();
@ -2390,14 +2419,30 @@ void IRAM_ATTR isr() { //esp32 only
ledstate=!ledstate; ledstate=!ledstate;
} }
void convertJsonTripToTripStruct(uint8_t iTrip, const char* strJson){ void convertJsonTripToTripStruct(uint8_t iTrip, const char* strJson){ //this also will check if loaded dist and time equal to the value from spiff and memload
// Serial.print(iTrip); Serial.print(";");Serial.println(strJson); // Serial.print(iTrip); Serial.print(";");Serial.println(strJson);
DynamicJsonDocument doc(256); DynamicJsonDocument doc(256);
deserializeJson(doc, strJson); deserializeJson(doc, strJson);
char mspeed[7];
dtostrf(Trip[iTrip].speed, 6, 4, mspeed);
Serial.print(String(char(iTrip)));Serial.print(mspeed);Serial.print(" VS ");Serial.println(doc["speed"].as<String>());
// if (Trip[iTrip].speed!=doc["speed"])
if (strcmp(mspeed, doc["speed"].as<const char*>()) != 0)
{
Serial.print(String(char(iTrip)));Serial.println(" speed is different");
// Serial.print(String(char(iTrip)));Serial.print(Trip[iTrip].speed);Serial.print(" VS ");Serial.println(doc["speed"].as<String>());
// Trip[iTrip].speed = doc["speed"];
}
// if (Trip[iTrip].subTime!=doc["stime"])
// {
// Serial.print(String(iTrip));Serial.print(Trip[iTrip].subTime);Serial.print(" VS ");Serial.println(doc["time"].as<String>());
// Trip[iTrip].subTime = doc["time"];
// }
Trip[iTrip].distance = doc["dist"]; Trip[iTrip].distance = doc["dist"];
Trip[iTrip].subTime = doc["time"]; Trip[iTrip].subTime = doc["time"];
} }
void fillTripArray(){ void fillTripArray(){ //run by setup()
char tempTrip[7]="/tripZ"; char tempTrip[7]="/tripZ";
// Serial.println(tempTrip); // Serial.println(tempTrip);
String tempReadFile; String tempReadFile;
@ -2473,7 +2518,7 @@ void handleloadConst(AsyncWebServerRequest *request, JsonVariant &json) {
deserializeJson(doc, tempTrip); deserializeJson(doc, tempTrip);
speedinconstanta = getMemSpeedInConstanta(i-65); speedinconstanta = getMemSpeedInConstanta(i-65);
// sTimeinconstanta = getMemStime(i-65); // sTimeinconstanta = getMemStime(i-65);
tempsTime = getsTime(i-65); tempsTime = getShortsTime(i-65);
tempSpeed=String(speedinconstanta,5); tempSpeed=String(speedinconstanta,5);
tempSpeed.remove(6); tempSpeed.remove(6);
// Serial.print(tempSpeed);Serial.println(speedinconstanta,3); // Serial.print(tempSpeed);Serial.println(speedinconstanta,3);
@ -2528,11 +2573,8 @@ char* unConstChar(const char* s) {
} }
} }
char *temp2char; void getTripFromSPIFF(uint8_t charcurTrip, char *pDist, char *pSpeed, char *pTime, char *psTime){ //read from the source ie:from mem and from SPIFF. not read fromStruct Trip.
// char *charVal; // void getTripFromSPIFF(uint8_t charcurTrip, char *&pDist, char **pSpeed, char **pTime, char **psTime){
char gsTime[10];
char gSpeed[10];
void getTripFromSPIFF(uint8_t charcurTrip, char *&pDist, char **pSpeed, char **pTime, char **psTime){
// Serial.print((uint32_t) psTime);Serial.print(";");Serial.print((uint32_t) *psTime);Serial.print(";");Serial.println((uint32_t) **psTime); // Serial.print((uint32_t) psTime);Serial.print(";");Serial.print((uint32_t) *psTime);Serial.print(";");Serial.println((uint32_t) **psTime);
DynamicJsonDocument doc(200); DynamicJsonDocument doc(200);
char filename[7] = "/tripZ"; char filename[7] = "/tripZ";
@ -2543,52 +2585,25 @@ void getTripFromSPIFF(uint8_t charcurTrip, char *&pDist, char **pSpeed, char **
tempSpeed.reserve(10); tempSpeed.reserve(10);
String tempsTime; String tempsTime;
tempsTime.reserve(10); tempsTime.reserve(10);
// for(uint8_t i=65; i<TRIPSIZE+65; i++){
tempTrip=readFile(SPIFFS, filename); tempTrip=readFile(SPIFFS, filename);
// Serial.print(tempTrip.length()); Serial.print(";");Serial.println(tempTrip); // Serial.print(tempTrip.length()); Serial.print(";");Serial.println(tempTrip);
deserializeJson(doc, tempTrip); deserializeJson(doc, tempTrip);
// speedinconstanta = getMemSpeedInConstanta(i-65);
// sTimeinconstanta = getMemStime(i-65);
// *pDist = doc["dist"];
// String xTemp1;
// xTemp.reserve(10);
// xTemp1=doc["dist"].as<String>();
// *pDist = (char*)xTemp1.c_str();
// char charVal[10];
float speedinconstanta = getMemSpeedInConstanta(charcurTrip-65); float speedinconstanta = getMemSpeedInConstanta(charcurTrip-65);
tempsTime = getsTime(charcurTrip-65); tempsTime = getShortsTime(charcurTrip-65);
tempsTime.toCharArray(psTime, 10); // cannot use strcpy
// Serial.print(speedinconstanta);Serial.print(";"); // Serial.print(speedinconstanta);Serial.print(";");
// Serial.print(tempsTime);Serial.println(";"); // Serial.print(tempsTime);Serial.println(";");
pDist = unConstChar( doc["dist"].as<const char*>()); // pDist = unConstChar( doc["dist"].as<const char*>());
// *pDist = "hi"; strcpy(pDist, doc["dist"]);
// *pSpeed = (char*)doc["speed"].as<const char*>(); //take from the eeprom data
*pTime = (char*)doc["time"].as<const char*>();
// *psTime = (char*)doc["stime"].as<const char*>();
// *pSpeed =(char*) (String(speedinconstanta,4).c_str()); //not working
// char hsTime[10];
char charVal[10];
tempsTime.toCharArray(gsTime, 10);
dtostrf(speedinconstanta,1,4,gSpeed);
// Serial.println(gsTime);
// const char *tempchar=tempsTime.c_str();
// temp2char=(char*)tempchar;
// Serial.println(tempchar);
// Serial.println((char*)tempchar);
// Serial.println(temp2char);
// Serial.println((uint32_t) &temp2char);
// Serial.println((uint32_t) temp2char);
// *psTime = &(char*)tempchar;
// *psTime = temp2char;
// strncpy(charVal, tempsTime.c_str(), 6);
*psTime = gsTime;
// *psTime = charVal;
*pSpeed = gSpeed;
// Serial.println((uint32_t) gsTime);
// Serial.println((uint32_t) *psTime);
// dtostrf(speedinconstanta,1,4,charVal);
// *pSpeed = charVal;
// Serial.println(charVal);
// pTime = (char*)doc["time"].as<const char*>();
strcpy(pTime, doc["time"]);
dtostrf(speedinconstanta,6,4,pSpeed);
// dtostrf(speedinconstanta,1,4,gSpeed);
// Serial.println(gsTime);
} }
void handleConstantaHTML(AsyncWebServerRequest *request) { void handleConstantaHTML(AsyncWebServerRequest *request) {
//PAGE.replace("%serveripaddress%", WiFi.localIP().toString()); //PAGE.replace("%serveripaddress%", WiFi.localIP().toString());
@ -2606,10 +2621,10 @@ void handleConstantaHTML(AsyncWebServerRequest *request) {
PAGEROW.reserve(pageZiseConstRow); PAGEROW.reserve(pageZiseConstRow);
PAGE = FPSTR(HTML_CONSTHEADER); PAGE = FPSTR(HTML_CONSTHEADER);
char *xDist; char xDist[8];
char *xSpeed; char xSpeed[8];
char *xTime; char xTime[8];
char *xsTime; char xsTime[8];
for (uint8_t i=65; i<(TRIPSIZE+65); i++){ for (uint8_t i=65; i<(TRIPSIZE+65); i++){
PAGEROW = FPSTR(HTML_CONSTROW); PAGEROW = FPSTR(HTML_CONSTROW);
PAGEROW.replace("%A%", String(char(i))); PAGEROW.replace("%A%", String(char(i)));
@ -2620,7 +2635,8 @@ void handleConstantaHTML(AsyncWebServerRequest *request) {
// Serial.println(PAGEROW); // Serial.println(PAGEROW);
// Fill with data // Fill with data
// Serial.print((uint32_t) xsTime);Serial.print(";");Serial.print((uint32_t) *xsTime);Serial.print(";");Serial.println((uint32_t) &xsTime); // Serial.print((uint32_t) xsTime);Serial.print(";");Serial.print((uint32_t) *xsTime);Serial.print(";");Serial.println((uint32_t) &xsTime);
getTripFromSPIFF(i, xDist, &xSpeed, &xTime, &xsTime); // getTripFromSPIFF(i, xDist, &xSpeed, &xTime, &xsTime);
getTripFromSPIFF(i, xDist, xSpeed, xTime, xsTime);
// Serial.print((uint32_t) xsTime);Serial.print(";");Serial.print((uint32_t) *xsTime);Serial.print(";");Serial.println((uint32_t) &xsTime); // Serial.print((uint32_t) xsTime);Serial.print(";");Serial.print((uint32_t) *xsTime);Serial.print(";");Serial.println((uint32_t) &xsTime);
Serial.print(String(char(i)));Serial.print(";"); Serial.print(String(char(i)));Serial.print(";");
Serial.print(xDist);Serial.print(";"); Serial.print(xDist);Serial.print(";");
@ -2667,7 +2683,6 @@ void handlesetConst(AsyncWebServerRequest *request, JsonVariant &json){
} else { } else {
canSave = false; canSave = false;
} }
// const char* speed = data["speed"].as<const char*>(); // const char* speed = data["speed"].as<const char*>();
float speed = data["speed"].as<float>(); float speed = data["speed"].as<float>();
float dist = data["dist"].as<float>(); float dist = data["dist"].as<float>();
@ -2796,7 +2811,7 @@ Trip[9].startSec = 58;
#ifdef DEBUG #ifdef DEBUG
Serial.println("Setting time"); Serial.println("Setting time");
#endif #endif
DS3231_init(DS3231_CONTROL_INTCN); DS3231_init(DS3231_CONTROL_INTCN); //0X4 address
DS3231_get(&t); //Get time DS3231_get(&t); //Get time
blinkON=false; blinkON=false;
@ -2804,10 +2819,11 @@ Trip[9].startSec = 58;
min60=t.min; min60=t.min;
hour24=t.hour; hour24=t.hour;
delay(100); // delay for reading mem.read
//mainMenu(); //mainMenu();
printUPchar(); printUPchar();
printDOWNchar(); printDOWNchar();
delay(100); // delay for reading mem.read
count1 = memretrieveLong(count1Address, RRcountSIZE, count1Seq); //(int startaddress, byte RRsize, unsigned long seq) count1 = memretrieveLong(count1Address, RRcountSIZE, count1Seq); //(int startaddress, byte RRsize, unsigned long seq)
Serial.println(count1Seq); Serial.println(count1Seq);
int countaddresspointer = count1count2diffAddress*32; int countaddresspointer = count1count2diffAddress*32;
@ -2938,7 +2954,7 @@ Serial.println("calibration and constanta");
} }
Serial.print("try to connect to ssid:");Serial.print(ssid);Serial.print("; with pwd:");Serial.println(password); Serial.print("try to connect to ssid:");Serial.print(ssid);Serial.print("; with pwd:");Serial.println(password);
WiFi.begin(ssid, password); WiFi.begin(ssid, password);
if (WiFi.waitForConnectResult() != WL_CONNECTED) { if (WiFi.waitForConnectResult(15000) != WL_CONNECTED) {
Serial.println("WiFi Failed!"); Serial.println("WiFi Failed!");
//return; //return;
} }
@ -4155,11 +4171,13 @@ void loop() //loop from VSS RALLY V2
break; break;
} }
} }
gHasLcdClient=false;
if (MENU==RALLY) { if (MENU==RALLY) {
gHasLcdClient=true; //to start the get DS3231 time
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;
@ -4169,7 +4187,7 @@ void loop() //loop from VSS RALLY V2
fillRallyLCDScreen(); fillRallyLCDScreen();
iscalculatingRally=false; iscalculatingRally=false;
} }
Serial.println(millis()-testLoadTime); // Serial.println(millis()-testLoadTime);
prevtemprally=now1; prevtemprally=now1;
//prevtemprally+=tempintervalrally; //prevtemprally+=tempintervalrally;
} }
@ -4177,6 +4195,7 @@ void loop() //loop from VSS RALLY V2
if (MENU==SETTIME) { if (MENU==SETTIME) {
gHasLcdClient=true;
//if ((long)(now1 - prevtempint) >=0 ){ //if ((long)(now1 - prevtempint) >=0 ){
if ((now1 - prevtempint) >=tempinterval ){ if ((now1 - prevtempint) >=tempinterval ){
temperature = DS3231_get_treg(); //Get temperature temperature = DS3231_get_treg(); //Get temperature
@ -4193,7 +4212,7 @@ void loop() //loop from VSS RALLY V2
} }
//if ((long)(now1- prevsettime) >=0 ){ //show SET TIME MENU //if ((long)(now1- prevsettime) >=0 ){ //show SET TIME MENU
if ((now1 - prevsettime) >=intervalsettime ){ //show SET TIME MENU if ((now1 - prevsettime) >=intervalsettime ){ //show SET TIME MENU
DS3231_get(&t); //Get time // DS3231_get(&t); //Get time
if (prevsec!=t.sec) { //will update the LCD every sec(as long as the t.sec is different) eventhough intervalseetime is 250ms if (prevsec!=t.sec) { //will update the LCD every sec(as long as the t.sec is different) eventhough intervalseetime is 250ms
settimeMenu(); settimeMenu();
prevsettime = now1; prevsettime = now1;
@ -4235,7 +4254,7 @@ void loop() //loop from VSS RALLY V2
else if (VSSCountDiff < 70) intervalsavemillis = 60000; else if (VSSCountDiff < 70) intervalsavemillis = 60000;
else intervalsavemillis = 4000000; else intervalsavemillis = 4000000;
if (VSSCountDiff > 0) savedCount = false; if (VSSCountDiff > 0) savedCount = false;
if ((MENU!=CALIBRATION && MENU!=MAIN && MENU!=CONSTANTA) || globalClientRally) { if ((MENU!=CALIBRATION && MENU!=MAIN && MENU!=CONSTANTA) || gHasRallyClient) {
// lcd.setCursor(0,0); /// // lcd.setCursor(0,0); ///
if (VSSCountDiff==0) gVSSCountDiff='0';//lcd.print("0"); if (VSSCountDiff==0) gVSSCountDiff='0';//lcd.print("0");
else if (VSSCountDiff <= 10) gVSSCountDiff='1';//lcd.print("1"); else if (VSSCountDiff <= 10) gVSSCountDiff='1';//lcd.print("1");
@ -4266,7 +4285,7 @@ void loop() //loop from VSS RALLY V2
lcd.setCursor(x,y); lcd.setCursor(x,y);
} }
*/ */
if ((millis()-updatecounttime)>=250) { if ((millis()-updatecounttime)>=50) {
// if ((millis()-updatecounttime)>=250) { // if ((millis()-updatecounttime)>=250) {
updateCount(); updateCount();
updatecounttime = millis(); updatecounttime = millis();
@ -4281,20 +4300,20 @@ void loop() //loop from VSS RALLY V2
startsavemillis = millis(); startsavemillis = millis();
} }
if ((MENU==RALLY || globalClientRally) && ((now1 - prevCalculatingRallyMillis)>=calculatingRallyMillis)){ if ((MENU==RALLY || gHasRallyClient) && ((now1 - prevCalculatingRallyMillis)>=calculatingRallyMillis)){
if(semaphoreS){ if(semaphoreS){
prevCalculatingRallyMillis=millis(); prevCalculatingRallyMillis=millis();
Serial.println("St calculationRally()"); // Serial.println("St calculationRally()");
semaphoreS=false; semaphoreS=false;
calculationRally(); calculationRally();
Serial.print("end calculationRally() in:");Serial.println(millis()-prevCalculatingRallyMillis); // Serial.print("end calculationRally() in:");Serial.println(millis()-prevCalculatingRallyMillis);
prevCalculatingRallyMillis=now1; prevCalculatingRallyMillis=now1;
semaphoreS=true; semaphoreS=true;
} }
} }
if ((millis()-broadcastwebsocket) > 330 && !isloadingConst && globalClientRally) { if ((millis()-broadcastwebsocket) > 330 && !isloadingConst && gHasRallyClient) {
broadcastwebsocket = micros(); broadcastwebsocket = micros();
iscalculatingRally=true; iscalculatingRally=true;
// calculationRally(); // calculationRally();
@ -4307,20 +4326,25 @@ void loop() //loop from VSS RALLY V2
broadcastwebsocket = millis(); broadcastwebsocket = millis();
} }
if ((millis()-timerWebsocketCalibration) > 499 && !isloadingConst && globalClientCalib) { if ((millis()-timerWebsocketCalibration) > 499 && !isloadingConst && gHasCalibClient) {
timerWebsocketCalibration = millis(); timerWebsocketCalibration = millis();
// if (globalClientCalib) { // if (gHasCalibClient) {
redrawcalibrationMenuForESP32(); redrawcalibrationMenuForESP32();
wscal.textAll(strCalibJson); wscal.textAll(strCalibJson);
// } // }
} }
if ((millis()-timerWebsocketSetTime) > 1000 && globalClientSetTime) { if ((millis()-timerWebsocketSetTime) > 450 && gHasSetTimeClient) {
timerWebsocketSetTime = millis(); timerWebsocketSetTime = millis();
fillSetTimeJsonForESP32(); fillSetTimeJsonForESP32();
wssettime.textAll(strSetTimeJson); wssettime.textAll(strSetTimeJson);
} }
if ((millis()-timerDS3231Get) > 500 && (gHasCalibClient || gHasRallyClient || gHasSetTimeClient || gHasLcdClient)) {
timerDS3231Get = millis();
DS3231_get(&t);
// Serial.println("<DS3231_get>");
}
if(!isloadingConst){ if(!isloadingConst){
for (int i=(REQUESTCOUNT-1); i>=0; i--){ for (int i=(REQUESTCOUNT-1); i>=0; i--){
// for (int i=0; i<REQUESTCOUNT; i++){ // for (int i=0; i<REQUESTCOUNT; i++){