add edit odo

This commit is contained in:
Bluedragon 2022-04-27 04:10:58 +07:00
parent 60acbe65d1
commit c769bd3184
3 changed files with 637 additions and 590 deletions

View File

@ -41,7 +41,7 @@
} }
} }
ping++; ping++;
document.getElementById("counter").innerHTML = data.counter; document.getElementById("counter").innerHTML = data.counter+";"+data.counter2;
document.getElementById("currenttime").innerHTML = data.Time; document.getElementById("currenttime").innerHTML = data.Time;
document.getElementById("currenttrack").innerHTML = data.Trip; document.getElementById("currenttrack").innerHTML = data.Trip;
document.getElementById("tripspeed").innerHTML = data.TSpeed; document.getElementById("tripspeed").innerHTML = data.TSpeed;
@ -55,6 +55,8 @@
document.getElementById("odo2").innerHTML = data.curDist2; document.getElementById("odo2").innerHTML = data.curDist2;
document.getElementById("time1").innerHTML = data.time1; document.getElementById("time1").innerHTML = data.time1;
document.getElementById("time2").innerHTML = data.time2; document.getElementById("time2").innerHTML = data.time2;
document.getElementById("tdiff1").innerHTML = data.TDiff;
document.getElementById("tdiff2").innerHTML = data.TDiff;
// } // }
}; };
@ -72,11 +74,17 @@
} }
} }
} }
function onlyNumberKey(evt,e) {
// Only ASCII character in that range allowed
var ASCIICode = (evt.which) ? evt.which : evt.keyCode
if (ASCIICode > 31 && (ASCIICode < 48 || ASCIICode > 57) && ASCIICode !=46)
return false;
return true;
}
</script> </script>
</head><body> </head><body>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
<div class=" bg-success text-white"> <div class=" bg-success text-white">
<div class="row"> <div class="row">
<div class="col-2 mt-1"><h6><span id="counter">12345</span></h6></div> <div class="col-2 mt-1"><h6><span id="counter">12345</span></h6></div>
<div id="mainTime" class="col mt-1 bg-danger"><h2 class="text-center">Time: <span id="currenttime">00:00:00</span></h2></div> <div id="mainTime" class="col mt-1 bg-danger"><h2 class="text-center">Time: <span id="currenttime">00:00:00</span></h2></div>
@ -84,7 +92,7 @@
<div class="col-2"><button ondblclick="location.href='/menu';" class="btn btn-secondary fw-bold btn-sm mt-2 mb-2">To Menu</button></div> <div class="col-2"><button ondblclick="location.href='/menu';" class="btn btn-secondary fw-bold btn-sm mt-2 mb-2">To Menu</button></div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-1"> <div class="col-2">
<div class="dropdown"> <div class="dropdown">
<button class="btn btn-primary dropdown-toggle" type="button" id="dropdownMenuButton1" data-bs-toggle="dropdown" aria-expanded="false"> <button class="btn btn-primary dropdown-toggle" type="button" id="dropdownMenuButton1" data-bs-toggle="dropdown" aria-expanded="false">
TRIP <span id="currenttrack">A</span> TRIP <span id="currenttrack">A</span>
@ -109,26 +117,28 @@
</ul> </ul>
</div> </div>
</div> </div>
<div class="col mt-1 text-center"><h5>S:<span id="tripdist">123.45</span>Km | V:<span id="tripspeed">123.4</span>Km/h | T: <span id="triptime">123</span>Min</h5></div> <div class="col mt-1 text-center"><h5>S: <span id="tripdist">123.45</span>Km | V: <span id="tripspeed">123.4</span>Km/h | T: <span id="triptime">123</span>Min</h5></div>
<!-- <!--
<div class="col-3 mt-1 text-center"><h5>Speed: <span id="tripspeed">123.4</span>Km/h</h5></div> <div class="col-3 mt-1 text-center"><h5>S: <span id="tripdist">123.45</span>Km</h5></div>
<div class="col-2 mt-1 text-center"><h5>Time: <span id="triptime">123</span>Min</h5></div> <div class="col-2 mt-1 text-center"><h5>V: <span id="tripspeed">123.4</span>Km/h</h5></div>
<div class="col-2 mt-1 text-center"><h5>T: <span id="triptime">123</span>Min</h5></div>
--> -->
<div class="col-3 mt-1 text-center"><h5>sTime: <span id="tripstime">12:34:50</span></h5></div> <div class="col-3 mt-1 text-center"><h5>ST: <span id="tripstime">12:34:50</span></h5></div>
<hr> <hr>
</div> </div>
<!--//ODO1--> <!--//ODO1-->
<div class="row"> <div class="row">
<div class="col-2"><h4>OD 1-></h4></div> <div class="col-2"><h4>OD 1-></h4></div>
<div class="col-3 text-end"><h3><span id="odo1">123.4567</span> km</h3></div> <div class="col-3 text-end"><h3><span id="odo1">123.4567</span> km</h3></div>
<div class="col-4"><h3><span id="dir1">DIRECT</span></h3></div> <div class="col-3"><h3><span id="dir1">DIRECT</span></h3></div>
<div class="col-1"><h3><span id="tdiff1">TDiff</span>:</h3></div>
<div class="col-3 text-end"><h3><span id="time1">00:00:00</span></h3></div> <div class="col-3 text-end"><h3><span id="time1">00:00:00</span></h3></div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-5 "><h4> <div class="col-5"><h4>
<button ondblclick="resetodo1()" type="button" class="btn btn-primary btn-sm mb-2">Reset ODO1</button> <button ondblclick="resetOdo(1)" type="button" class="btn btn-primary btn-sm mb-2">Reset ODO1</button>
<button ondblclick="copytoodo2()" type="button" class="btn btn-primary btn-sm mb-2">&#8595 to ODO2</button></h4> <button ondblclick="copyToOdo(2,1)" type="button" class="btn btn-primary btn-sm mb-2">&#8595 to ODO2</button>
<button ondblclick="editOdo(1)" type="button" class="btn btn-primary btn-sm mb-2">Edit</button></h4>
</div> </div>
<div class="col-4"><h4> <div class="col-4"><h4>
<button ondblclick="dirFW1()" type="button" class="btn btn-primary btn-sm mb-2">FW</button> <button ondblclick="dirFW1()" type="button" class="btn btn-primary btn-sm mb-2">FW</button>
@ -141,17 +151,21 @@
</div></h4> </div></h4>
</div> </div>
</div> </div>
<!--
<hr> <hr>
<!--//ODO2--> -->
<!--//ODO2-->
<div class="row"> <div class="row">
<div class="col-5 "><h3>OD 2-><span id="odo2">123.456</span> km</h3></div> <div class="col-5 "><h3>OD 2-><span id="odo2">123.456</span> km</h3></div>
<div class="col-4 "><h3><span id="dir2">DIRECT</span></h3></div> <div class="col-3 "><h3><span id="dir2">DIRECT</span></h3></div>
<div class="col-1"><h3><span id="tdiff2">TDiff</span>:</h3></div>
<div class="col-3 text-end"><h3><span id="time2">00:00:00</span></h3></div> <div class="col-3 text-end"><h3><span id="time2">00:00:00</span></h3></div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-5"><h5> <div class="col-5"><h5>
<button ondblclick="resetodo2()" type="button" class="btn btn-primary btn-sm mb-1">Reset ODO2</button> <button ondblclick="resetOdo(2)" type="button" class="btn btn-primary btn-sm mb-1">Reset ODO2</button>
<button ondblclick="copytoodo1()" type="button" class="btn btn-primary btn-sm mb-1 arrow-up down-arrow">&#8593 to ODO1</button></h5> <button ondblclick="copyToOdo(1,2)" type="button" class="btn btn-primary btn-sm mb-1 arrow-up down-arrow">&#8593 to ODO1</button>
<button ondblclick="editOdo(2)" type="button" class="btn btn-primary btn-sm mb-2">Edit</button></h4>
</div> </div>
<div class="col-4"><h5> <div class="col-4"><h5>
<button ondblclick="dirFW2()" class="btn btn-primary btn-sm mb-1" type="button">FW</button> <button ondblclick="dirFW2()" class="btn btn-primary btn-sm mb-1" type="button">FW</button>
@ -164,15 +178,19 @@
</div> </div>
</div> </div>
</div> </div>
<button ondblclick="location.href='/menu';" class="btn btn-secondary fw-bold btn-sm mt-2 mb-2">Back to Menu</button>
</div>
<!-- Modal --> </div>
<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog"> <div class="modal-dialog">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Modal title</h5> <div class="modal-title" id="editodo">
<h5 class="modal-title" id="exampleModalLabel">Edit Odo:</h5>
<input type="number" step="any" maxlength="6" required oninput="javascript: if (this.value.length > this.maxLength) this.value = this.value.slice(0, this.maxLength);"
id="%dist%" name="%dist%" class="form-control dist" onkeypress="return onlyNumberKey(event,this)">
</div>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
@ -184,15 +202,33 @@
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<script> <script>
function resetodo1(){ function editOdo(odoNo){
document.getElementById("btnyesreset").setAttribute( "onClick", "resetODO1()" ); document.getElementById("editodo").hidden=false;
document.getElementById("btnyesreset").setAttribute("onClick", "editODO("+odoNo+")");
document.getElementById("p1").innerHTML = "1"; document.getElementById("p1").innerHTML = "1";
elements = document.getElementsByClassName("odonum"); elements = document.getElementsByClassName("odonum");
for (var i = 0; i < elements.length; i++) { for (var i = 0; i < elements.length; i++) {
elements[i].innerHTML = "1"; elements[i].innerHTML = odoNo;
}
elements = document.getElementsByClassName("func");
for (var i = 0; i < elements.length; i++) {
elements[i].innerHTML = "EDIT";
}
var myModal = new bootstrap.Modal(document.getElementById("exampleModal"), {});
myModal.show();
}
function editODO(odoNo){console.log(odoNo);}
function resetOdo(odoNo){
document.getElementById("editodo").hidden=true;
document.getElementById("btnyesreset").setAttribute( "onClick", "resetODO("+odoNo+")" );
document.getElementById("p1").innerHTML = "1";
elements = document.getElementsByClassName("odonum");
for (var i = 0; i < elements.length; i++) {
elements[i].innerHTML = odoNo;
} }
elements = document.getElementsByClassName("func"); elements = document.getElementsByClassName("func");
for (var i = 0; i < elements.length; i++) { for (var i = 0; i < elements.length; i++) {
@ -200,103 +236,114 @@
} }
var myModal = new bootstrap.Modal(document.getElementById("exampleModal"), {}); var myModal = new bootstrap.Modal(document.getElementById("exampleModal"), {});
myModal.show(); myModal.show();
} }
function resetodo2(){ // function resetOdo2(){
document.getElementById("btnyesreset").setAttribute( "onClick", "resetODO2()" ); // document.getElementById("editodo").hidden=true;
// document.getElementById("btnyesreset").setAttribute( "onClick", "resetODO2()" );
// document.getElementById("p1").innerHTML = "2";
// elements = document.getElementsByClassName("odonum");
// for (var i = 0; i < elements.length; i++) {
// elements[i].innerHTML = "2";
// }
// elements = document.getElementsByClassName("func");
// for (var i = 0; i < elements.length; i++) {
// elements[i].innerHTML = "RESET";
// }
// var myModal = new bootstrap.Modal(document.getElementById("exampleModal"), {});
// myModal.show();
// }
function copyToOdo(odoNo,fromOdo){
document.getElementById("editodo").hidden=true;
document.getElementById("btnyesreset").setAttribute( "onClick", "copytoODO("+odoNo+")" );
document.getElementById("p1").innerHTML = "2"; document.getElementById("p1").innerHTML = "2";
elements = document.getElementsByClassName("odonum"); elements = document.getElementsByClassName("odonum");
for (var i = 0; i < elements.length; i++) { for (var i = 0; i < elements.length; i++) {
elements[i].innerHTML = "2"; elements[i].innerHTML = odoNo;
} }
elements = document.getElementsByClassName("func"); elements = document.getElementsByClassName("func");
for (var i = 0; i < elements.length; i++) { for (var i = 0; i < elements.length; i++) {
elements[i].innerHTML = "RESET"; elements[i].innerHTML = "Copy ODO "+fromOdo+" to";
} }
var myModal = new bootstrap.Modal(document.getElementById("exampleModal"), {}); var myModal = new bootstrap.Modal(document.getElementById("exampleModal"), {});
myModal.show(); myModal.show();
} }
function copytoodo2(){ // function copyToOdo1(){
document.getElementById("btnyesreset").setAttribute( "onClick", "copytoODO2()" ); // document.getElementById("editodo").hidden=true;
document.getElementById("p1").innerHTML = "2"; // document.getElementById("btnyesreset").setAttribute( "onClick", "copytoODO1()" );
elements = document.getElementsByClassName("odonum"); // document.getElementById("p1").innerHTML = "1";
for (var i = 0; i < elements.length; i++) { // elements = document.getElementsByClassName("odonum");
elements[i].innerHTML = "2"; // for (var i = 0; i < elements.length; i++) {
} // elements[i].innerHTML = "1";
elements = document.getElementsByClassName("func"); // }
for (var i = 0; i < elements.length; i++) { // elements = document.getElementsByClassName("func");
elements[i].innerHTML = "Copy ODO 1 to"; // for (var i = 0; i < elements.length; i++) {
} // elements[i].innerHTML = "Copy ODO 2 to";
var myModal = new bootstrap.Modal(document.getElementById("exampleModal"), {}); // }
myModal.show(); // var myModal = new bootstrap.Modal(document.getElementById("exampleModal"), {});
} // myModal.show();
function copytoodo1(){ // }
document.getElementById("btnyesreset").setAttribute( "onClick", "copytoODO1()" ); </script>
document.getElementById("p1").innerHTML = "1"; <script>
elements = document.getElementsByClassName("odonum"); function resetODO(odoNo){
for (var i = 0; i < elements.length; i++) { ws.send('{"resetodo":'+odoNo+'}');
elements[i].innerHTML = "1"; console.log("resetodo->"+odoNo);
} }
elements = document.getElementsByClassName("func"); function copytoODO(odoNo){
for (var i = 0; i < elements.length; i++) { // ws.send('{"copytoodo":'+odoNo+'}');
elements[i].innerHTML = "Copy ODO 2 to"; console.log("copytoodo->"+odoNo);
} }
var myModal = new bootstrap.Modal(document.getElementById("exampleModal"), {}); // function resetODO1(){
myModal.show(); // ws.send('{"resetodo":1}');
} // console.log("resetodo->1");
</script> // }
<script> // function resetODO2(){
function resetODO1(){ // ws.send('{"resetodo":2}');
ws.send('{"resetodo":1}'); // console.log("resetodo->2");
console.log("resetodo->1"); // }
} // function copytoODO2(){
function resetODO2(){ // ws.send('{"copytoodo":2}');
ws.send('{"resetodo":2}'); // console.log("copytoodo->2");
console.log("resetodo->2"); // }
} // function copytoODO1(){
function copytoODO2(){ // ws.send('{"copytoodo":1}');
ws.send('{"copytoodo":2}'); // console.log("copytoodo->1");
console.log("copytoodo->2"); // }
} function dirFW1(){
function copytoODO1(){
ws.send('{"copytoodo":1}');
console.log("copytoodo->1");
}
function dirFW1(){
ws.send('{"dir1":0}'); ws.send('{"dir1":0}');
console.log("dir1->0"); console.log("dir1->0");
} }
function dirStop1(){ function dirStop1(){
ws.send('{"dir1":1}'); ws.send('{"dir1":1}');
console.log("dir1->1"); console.log("dir1->1");
} }
function dirBack1(){ function dirBack1(){
ws.send('{"dir1":2}'); ws.send('{"dir1":2}');
console.log("dir1->2"); console.log("dir1->2");
} }
function dirFW2(){ function dirFW2(){
ws.send('{"dir2":0}'); ws.send('{"dir2":0}');
console.log("dir2->0"); console.log("dir2->0");
} }
function dirStop2(){ function dirStop2(){
ws.send('{"dir2":1}'); ws.send('{"dir2":1}');
console.log("dir2->1"); console.log("dir2->1");
} }
function dirBack2(){ function dirBack2(){
ws.send('{"dir2":2}'); ws.send('{"dir2":2}');
console.log("dir2->2"); console.log("dir2->2");
} }
function toggleTime1(){ function toggleTime1(){
ws.send('{"toggle":1}'); ws.send('{"toggle":1}');
console.log("toggle->1"); console.log("toggle->1");
} }
function toggleTime2(){ function toggleTime2(){
ws.send('{"toggle":2}'); ws.send('{"toggle":2}');
console.log("toggle->2"); console.log("toggle->2");
} }
function changeTrip(cTrip){ function changeTrip(cTrip){
// alert("Change to TRIP "+cTrip); // alert("Change to TRIP "+cTrip);
ws.send('{"ctotrip":"'+cTrip+'"}'); ws.send('{"ctotrip":"'+cTrip+'"}');
console.log("ctotrip->"+cTrip); console.log("ctotrip->"+cTrip);
} }
</script> </script>
</body></html> </body></html>

View File

@ -24,7 +24,7 @@ const char HTML_startrally1[] PROGMEM = R"rawliteral(
ping = -1; ping = -1;
}; };
ws.onmessage = function(event) { ws.onmessage = function(event) {
// console.log(event.data); console.log(event.data);
let data = JSON.parse(event.data); let data = JSON.parse(event.data);
// if (data.hasOwnProperty("ping")) { // if (data.hasOwnProperty("ping")) {
// console.log("with ping key"); // console.log("with ping key");
@ -75,11 +75,17 @@ const char HTML_startrally1[] PROGMEM = R"rawliteral(
} }
} }
} }
function onlyNumberKey(evt,e) {
// Only ASCII character in that range allowed
var ASCIICode = (evt.which) ? evt.which : evt.keyCode
if (ASCIICode > 31 && (ASCIICode < 48 || ASCIICode > 57) && ASCIICode !=46)
return false;
return true;
}
</script> </script>
</head><body> </head><body>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
<div class=" bg-success text-white"> <div class=" bg-success text-white">
<div class="row"> <div class="row">
<div class="col-2 mt-1"><h6><span id="counter">12345</span></h6></div> <div class="col-2 mt-1"><h6><span id="counter">12345</span></h6></div>
<div id="mainTime" class="col mt-1 bg-danger"><h2 class="text-center">Time: <span id="currenttime">00:00:00</span></h2></div> <div id="mainTime" class="col mt-1 bg-danger"><h2 class="text-center">Time: <span id="currenttime">00:00:00</span></h2></div>
@ -121,7 +127,7 @@ const char HTML_startrally1[] PROGMEM = R"rawliteral(
<div class="col-3 mt-1 text-center"><h5>ST: <span id="tripstime">12:34:50</span></h5></div> <div class="col-3 mt-1 text-center"><h5>ST: <span id="tripstime">12:34:50</span></h5></div>
<hr> <hr>
</div> </div>
<!--//ODO1--> <!--//ODO1-->
<div class="row"> <div class="row">
<div class="col-2"><h4>OD 1-></h4></div> <div class="col-2"><h4>OD 1-></h4></div>
<div class="col-3 text-end"><h3><span id="odo1">123.4567</span> km</h3></div> <div class="col-3 text-end"><h3><span id="odo1">123.4567</span> km</h3></div>
@ -130,9 +136,10 @@ const char HTML_startrally1[] PROGMEM = R"rawliteral(
<div class="col-3 text-end"><h3><span id="time1">00:00:00</span></h3></div> <div class="col-3 text-end"><h3><span id="time1">00:00:00</span></h3></div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-5 "><h4> <div class="col-5"><h4>
<button ondblclick="resetodo1()" type="button" class="btn btn-primary btn-sm mb-2">Reset ODO1</button> <button ondblclick="resetOdo(1)" type="button" class="btn btn-primary btn-sm mb-2">Reset ODO1</button>
<button ondblclick="copytoodo2()" type="button" class="btn btn-primary btn-sm mb-2">&#8595 to ODO2</button></h4> <button ondblclick="copyToOdo(2,1)" type="button" class="btn btn-primary btn-sm mb-2">&#8595 to ODO2</button>
<button ondblclick="editOdo(1)" type="button" class="btn btn-primary btn-sm mb-2">Edit</button></h4>
</div> </div>
<div class="col-4"><h4> <div class="col-4"><h4>
<button ondblclick="dirFW1()" type="button" class="btn btn-primary btn-sm mb-2">FW</button> <button ondblclick="dirFW1()" type="button" class="btn btn-primary btn-sm mb-2">FW</button>
@ -148,7 +155,7 @@ const char HTML_startrally1[] PROGMEM = R"rawliteral(
<!-- <!--
<hr> <hr>
--> -->
<!--//ODO2--> <!--//ODO2-->
<div class="row"> <div class="row">
<div class="col-5 "><h3>OD 2-><span id="odo2">123.456</span> km</h3></div> <div class="col-5 "><h3>OD 2-><span id="odo2">123.456</span> km</h3></div>
<div class="col-3 "><h3><span id="dir2">DIRECT</span></h3></div> <div class="col-3 "><h3><span id="dir2">DIRECT</span></h3></div>
@ -157,8 +164,9 @@ const char HTML_startrally1[] PROGMEM = R"rawliteral(
</div> </div>
<div class="row"> <div class="row">
<div class="col-5"><h5> <div class="col-5"><h5>
<button ondblclick="resetodo2()" type="button" class="btn btn-primary btn-sm mb-1">Reset ODO2</button> <button ondblclick="resetOdo(2)" type="button" class="btn btn-primary btn-sm mb-1">Reset ODO2</button>
<button ondblclick="copytoodo1()" type="button" class="btn btn-primary btn-sm mb-1 arrow-up down-arrow">&#8593 to ODO1</button></h5> <button ondblclick="copyToOdo(1,2)" type="button" class="btn btn-primary btn-sm mb-1 arrow-up down-arrow">&#8593 to ODO1</button>
<button ondblclick="editOdo(2)" type="button" class="btn btn-primary btn-sm mb-2">Edit</button></h4>
</div> </div>
<div class="col-4"><h5> <div class="col-4"><h5>
<button ondblclick="dirFW2()" class="btn btn-primary btn-sm mb-1" type="button">FW</button> <button ondblclick="dirFW2()" class="btn btn-primary btn-sm mb-1" type="button">FW</button>
@ -172,14 +180,18 @@ const char HTML_startrally1[] PROGMEM = R"rawliteral(
</div> </div>
</div> </div>
</div> </div>
<!-- Modal --> <!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true"> <div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog"> <div class="modal-dialog">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Modal title</h5> <div class="modal-title" id="editodo">
<h5 class="modal-title" id="exampleModalLabel">Edit Odo:</h5>
<input type="number" step="any" maxlength="6" required oninput="javascript: if (this.value.length > this.maxLength) this.value = this.value.slice(0, this.maxLength);"
id="%dist%" name="%dist%" class="form-control dist" onkeypress="return onlyNumberKey(event,this)">
</div>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
@ -191,15 +203,33 @@ const char HTML_startrally1[] PROGMEM = R"rawliteral(
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<script> <script>
function resetodo1(){ function editOdo(odoNo){
document.getElementById("btnyesreset").setAttribute( "onClick", "resetODO1()" ); document.getElementById("editodo").hidden=false;
document.getElementById("btnyesreset").setAttribute("onClick", "editODO("+odoNo+")");
document.getElementById("p1").innerHTML = "1"; document.getElementById("p1").innerHTML = "1";
elements = document.getElementsByClassName("odonum"); elements = document.getElementsByClassName("odonum");
for (var i = 0; i < elements.length; i++) { for (var i = 0; i < elements.length; i++) {
elements[i].innerHTML = "1"; elements[i].innerHTML = odoNo;
}
elements = document.getElementsByClassName("func");
for (var i = 0; i < elements.length; i++) {
elements[i].innerHTML = "EDIT";
}
var myModal = new bootstrap.Modal(document.getElementById("exampleModal"), {});
myModal.show();
}
function editODO(odoNo){console.log(odoNo);}
function resetOdo(odoNo){
document.getElementById("editodo").hidden=true;
document.getElementById("btnyesreset").setAttribute( "onClick", "resetODO("+odoNo+")" );
document.getElementById("p1").innerHTML = "1";
elements = document.getElementsByClassName("odonum");
for (var i = 0; i < elements.length; i++) {
elements[i].innerHTML = odoNo;
} }
elements = document.getElementsByClassName("func"); elements = document.getElementsByClassName("func");
for (var i = 0; i < elements.length; i++) { for (var i = 0; i < elements.length; i++) {
@ -207,106 +237,74 @@ const char HTML_startrally1[] PROGMEM = R"rawliteral(
} }
var myModal = new bootstrap.Modal(document.getElementById("exampleModal"), {}); var myModal = new bootstrap.Modal(document.getElementById("exampleModal"), {});
myModal.show(); myModal.show();
} }
function resetodo2(){
document.getElementById("btnyesreset").setAttribute( "onClick", "resetODO2()" ); function copyToOdo(odoNo,fromOdo){
document.getElementById("editodo").hidden=true;
document.getElementById("btnyesreset").setAttribute( "onClick", "copytoODO("+odoNo+")" );
document.getElementById("p1").innerHTML = "2"; document.getElementById("p1").innerHTML = "2";
elements = document.getElementsByClassName("odonum"); elements = document.getElementsByClassName("odonum");
for (var i = 0; i < elements.length; i++) { for (var i = 0; i < elements.length; i++) {
elements[i].innerHTML = "2"; elements[i].innerHTML = odoNo;
} }
elements = document.getElementsByClassName("func"); elements = document.getElementsByClassName("func");
for (var i = 0; i < elements.length; i++) { for (var i = 0; i < elements.length; i++) {
elements[i].innerHTML = "RESET"; elements[i].innerHTML = "Copy ODO "+fromOdo+" to";
} }
var myModal = new bootstrap.Modal(document.getElementById("exampleModal"), {}); var myModal = new bootstrap.Modal(document.getElementById("exampleModal"), {});
myModal.show(); myModal.show();
} }
function copytoodo2(){
document.getElementById("btnyesreset").setAttribute( "onClick", "copytoODO2()" ); </script>
document.getElementById("p1").innerHTML = "2"; <script>
elements = document.getElementsByClassName("odonum"); function resetODO(odoNo){
for (var i = 0; i < elements.length; i++) { ws.send('{"resetodo":'+odoNo+'}');
elements[i].innerHTML = "2"; console.log("resetodo->"+odoNo);
} }
elements = document.getElementsByClassName("func"); function copytoODO(odoNo){
for (var i = 0; i < elements.length; i++) { ws.send('{"copytoodo":'+odoNo+'}');
elements[i].innerHTML = "Copy ODO 1 to"; console.log("copytoodo->"+odoNo);
} }
var myModal = new bootstrap.Modal(document.getElementById("exampleModal"), {});
myModal.show(); function dirFW1(){
}
function copytoodo1(){
document.getElementById("btnyesreset").setAttribute( "onClick", "copytoODO1()" );
document.getElementById("p1").innerHTML = "1";
elements = document.getElementsByClassName("odonum");
for (var i = 0; i < elements.length; i++) {
elements[i].innerHTML = "1";
}
elements = document.getElementsByClassName("func");
for (var i = 0; i < elements.length; i++) {
elements[i].innerHTML = "Copy ODO 2 to";
}
var myModal = new bootstrap.Modal(document.getElementById("exampleModal"), {});
myModal.show();
}
</script>
<script>
function resetODO1(){
ws.send('{"resetodo":1}');
console.log("resetodo->1");
}
function resetODO2(){
ws.send('{"resetodo":2}');
console.log("resetodo->2");
}
function copytoODO2(){
ws.send('{"copytoodo":2}');
console.log("copytoodo->2");
}
function copytoODO1(){
ws.send('{"copytoodo":1}');
console.log("copytoodo->1");
}
function dirFW1(){
ws.send('{"dir1":0}'); ws.send('{"dir1":0}');
console.log("dir1->0"); console.log("dir1->0");
} }
function dirStop1(){ function dirStop1(){
ws.send('{"dir1":1}'); ws.send('{"dir1":1}');
console.log("dir1->1"); console.log("dir1->1");
} }
function dirBack1(){ function dirBack1(){
ws.send('{"dir1":2}'); ws.send('{"dir1":2}');
console.log("dir1->2"); console.log("dir1->2");
} }
function dirFW2(){ function dirFW2(){
ws.send('{"dir2":0}'); ws.send('{"dir2":0}');
console.log("dir2->0"); console.log("dir2->0");
} }
function dirStop2(){ function dirStop2(){
ws.send('{"dir2":1}'); ws.send('{"dir2":1}');
console.log("dir2->1"); console.log("dir2->1");
} }
function dirBack2(){ function dirBack2(){
ws.send('{"dir2":2}'); ws.send('{"dir2":2}');
console.log("dir2->2"); console.log("dir2->2");
} }
function toggleTime1(){ function toggleTime1(){
ws.send('{"toggle":1}'); ws.send('{"toggle":1}');
console.log("toggle->1"); console.log("toggle->1");
} }
function toggleTime2(){ function toggleTime2(){
ws.send('{"toggle":2}'); ws.send('{"toggle":2}');
console.log("toggle->2"); console.log("toggle->2");
} }
function changeTrip(cTrip){ function changeTrip(cTrip){
// alert("Change to TRIP "+cTrip); // alert("Change to TRIP "+cTrip);
ws.send('{"ctotrip":"'+cTrip+'"}'); ws.send('{"ctotrip":"'+cTrip+'"}');
console.log("ctotrip->"+cTrip); console.log("ctotrip->"+cTrip);
} }
</script> </script>
</body></html> </body></html>
)rawliteral"; )rawliteral";
//HTML_CALIBRATION //HTML_CALIBRATION

View File

@ -1385,7 +1385,7 @@ void redrawcalibrationMenu()
// } // }
} }
// Declaration for calculationRally Variable // Declaration for calculationRally Variable
char gcur_speed_str[6]; char gcur_speed_str[7];
char gcur_distance1_str[7]; char gcur_distance1_str[7];
char gcur_distance2_str[7]; char gcur_distance2_str[7];
char gcur_time1_str[12]; char gcur_time1_str[12];
@ -3832,7 +3832,7 @@ void loop() //loop from VSS RALLY V2
iscalculatingRally=true; iscalculatingRally=true;
// redrawrallyMenu(); //Distance is edited? // redrawrallyMenu(); //Distance is edited?
// calculationRally(); // calculationRally();
Serial.println(millis()-testLoadTime); // Serial.println(millis()-testLoadTime);
fillRallyLCDScreen(); fillRallyLCDScreen();
iscalculatingRally=false; iscalculatingRally=false;
} }
@ -3913,7 +3913,8 @@ void loop() //loop from VSS RALLY V2
else if (VSSCountDiff <= 600) gVSSCountDiff='6';//lcd.print("6"); else if (VSSCountDiff <= 600) gVSSCountDiff='6';//lcd.print("6");
else if (VSSCountDiff <= 900) gVSSCountDiff='7';//lcd.print("7"); else if (VSSCountDiff <= 900) gVSSCountDiff='7';//lcd.print("7");
else if (VSSCountDiff <= 1200) gVSSCountDiff='8';//lcd.print("8"); else if (VSSCountDiff <= 1200) gVSSCountDiff='8';//lcd.print("8");
else if (VSSCountDiff > 1200) gVSSCountDiff='9';//lcd.print("9"); else if (VSSCountDiff <= 1500) gVSSCountDiff='9';//lcd.print("9");
else if (VSSCountDiff > 1500) gVSSCountDiff='>';//lcd.print("9");
//lcd.print(VSSCountDiff); //lcd.print(VSSCountDiff);
//lcd.print(" "); //lcd.print(" ");
@ -3952,16 +3953,17 @@ void loop() //loop from VSS RALLY V2
prevCalculatingRallyMillis=now1; prevCalculatingRallyMillis=now1;
} }
if ((millis()-broadcastwebsocket) > 333 && !isloadingConst && globalClientRally) { if ((millis()-broadcastwebsocket) > 330 && !isloadingConst && globalClientRally) {
broadcastwebsocket = millis(); broadcastwebsocket = micros();
iscalculatingRally=true; iscalculatingRally=true;
// calculationRally(); // calculationRally();
Serial.print("calculationRallyTime=");Serial.println(millis()-broadcastwebsocket);
fillRallyJsonWithData(); fillRallyJsonWithData();
// Serial.print("calculationRallyTime=");Serial.println(micros()-broadcastwebsocket);
iscalculatingRally=false; iscalculatingRally=false;
// Serial.println(getRallyJson); // Serial.println(getRallyJson);
ws.textAll(getRallyJson); ws.textAll(getRallyJson);
Serial.print("calculationRallyToTTime=");Serial.println(millis()-broadcastwebsocket); // Serial.print("calculationRallyToTTime=");Serial.println(micros()-broadcastwebsocket);
broadcastwebsocket = millis();
} }
if ((millis()-broadcastwebsocketcalib) > 499 && !isloadingConst && globalClientCalib) { if ((millis()-broadcastwebsocketcalib) > 499 && !isloadingConst && globalClientCalib) {