mirror of
https://github.com/bcomsugi/VSS_Rally_V3.git
synced 2026-04-01 18:14:56 +07:00
add settime and fix load const
This commit is contained in:
parent
702223dc58
commit
d65d980642
@ -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>
|
||||||
|
|||||||
48
src/index.h
48
src/index.h
@ -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>
|
||||||
|
|||||||
370
src/main.cpp
370
src/main.cpp
@ -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++){
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user