diff --git a/src/constanta special/contantasp.html b/src/constanta special/contantasp.html index a76f7a5..c669d3a 100644 --- a/src/constanta special/contantasp.html +++ b/src/constanta special/contantasp.html @@ -82,8 +82,10 @@ id="%time%" name="%time%" class="form-control time" onkeypress="return onlyNumberKey(event,this)" onchange="chback(this)" value="%timeval%">
-
+
+
+
@@ -138,7 +140,7 @@ }; - function setConstanta(e){ + function setMissingVal(e){ e = e || window.event; var targ1 = e.target || e.srcElement || e; if (targ1.nodeType == 3) targ1 = targ1.parentNode; // defeat Safari bug @@ -147,12 +149,27 @@ const speed = targ.getElementsByClassName("speed")[0].value; const dist = targ.getElementsByClassName("dist")[0].value; const time = targ.getElementsByClassName("time")[0].value; - if (!(dist<1000)){ - alert ("Trip "+trip+"-> [Dist] cannot exceed 1000 Km"); + if (speed==="" && time==="" && dist==="") { + alert ("Trip "+trip+"-> Cannot Empty Cells"); return; } - if (speed===""){ - alert ("Trip "+trip+"-> [Speed] is required"); + var tempval=0; + if (dist && speed==="" && time) { + tempval=(dist/(time/60)).toFixed(3); + console.log ("empty speed:" + tempval); + targ.getElementsByClassName("speed")[0].value=tempval; + } else if (dist && speed && time===""){ + tempval=Math.round((dist/speed)*60); + console.log ("empty time:" + tempval); + targ.getElementsByClassName("time")[0].value=tempval; + } else if (dist==="" && speed && time){ + tempval=(speed*time/60).toFixed(2); + console.log ("empty dist:" + tempval); + targ.getElementsByClassName("dist")[0].value=tempval; + } + + if (!(dist<1000)){ + alert ("Trip "+trip+"-> [Dist] cannot exceed 1000 Km"); return; } if (!(speed<100)){ @@ -164,13 +181,8 @@ return; } const stime = targ.getElementsByClassName("stime")[0].value; - if (stime===""){ - alert ("Trip "+trip+"-> [Start Time] is required"); - return; - } - - // var full_data='{"trip":"'+trip+'", "speed":"'+speed+'", "dist":"'+dist+'", "time":"'+time+'", "stime":"'+stime+'"}'; + var full_data='{"trip":"'+trip+'", "speed":"'+speed+'", "dist":"'+dist+'", "time":"'+time+'", "stime":"'+stime+'"}'; console.log(full_data); // sendjson(full_data); }; diff --git a/src/constanta.h b/src/constanta.h index 717d6f8..844dc5a 100644 --- a/src/constanta.h +++ b/src/constanta.h @@ -79,8 +79,10 @@ const char HTML_CONSTROW[] PROGMEM = R"rawliteral( id="%time%" name="%time%" class="form-control time" onkeypress="return onlyNumberKey(event,this)" onchange="chback(this)" value="%timeval%">
-
+
+
+
)rawliteral"; @@ -131,6 +133,55 @@ const char HTML_CONSTEND[] PROGMEM = R"rawliteral( }; + + function setMissingVal(e){ + e = e || window.event; + var targ1 = e.target || e.srcElement || e; + if (targ1.nodeType == 3) targ1 = targ1.parentNode; // defeat Safari bug + const targ = targ1.closest(".row"); + const trip = targ.getElementsByClassName("trip")[0].textContent[0]; + const speed = targ.getElementsByClassName("speed")[0].value; + const dist = targ.getElementsByClassName("dist")[0].value; + const time = targ.getElementsByClassName("time")[0].value; + if (speed==="" && time==="" && dist==="") { + alert ("Trip "+trip+"-> Cannot Empty Cells"); + return; + } + var tempval=0; + if (dist && speed==="" && time) { + tempval=(dist/(time/60)).toFixed(3); + console.log ("empty speed:" + tempval); + targ.getElementsByClassName("speed")[0].value=tempval; + } else if (dist && speed && time===""){ + tempval=Math.round((dist/speed)*60); + console.log ("empty time:" + tempval); + targ.getElementsByClassName("time")[0].value=tempval; + } else if (dist==="" && speed && time){ + tempval=(speed*time/60).toFixed(2); + console.log ("empty dist:" + tempval); + targ.getElementsByClassName("dist")[0].value=tempval; + } + + if (!(dist<1000)){ + alert ("Trip "+trip+"-> [Dist] cannot exceed 1000 Km"); + return; + } + if (!(speed<100)){ + alert ("Trip "+trip+"-> [Speed] cannot exceed 100 Km/h"); + return; + } + if (!(time<1000)){ + alert ("Trip "+trip+"-> [Time] cannot exceed 1000 minutes"); + return; + } + const stime = targ.getElementsByClassName("stime")[0].value; + + var full_data='{"trip":"'+trip+'", "speed":"'+speed+'", "dist":"'+dist+'", "time":"'+time+'", "stime":"'+stime+'"}'; + console.log(full_data); + // sendjson(full_data); + }; + + function setConstanta(e){ e = e || window.event; var targ1 = e.target || e.srcElement || e; diff --git a/src/main.cpp b/src/main.cpp index 0d86e49..9dc522e 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -899,19 +899,25 @@ void onWsEventSetTime(AsyncWebSocket * server, AsyncWebSocketClient * client, Aw if(type == WS_EVT_CONNECT){ globalClientSetTime++; gHasSetTimeClient=true; +#ifdef DEBUG Serial.println("wssettime Websocket client connection received"); Serial.print("SetTime Client=");Serial.println(globalClientSetTime); Serial.print("IPAdd client:");Serial.println(client->remoteIP()); +#endif client->text(strSetTimeJson); } else if(type == WS_EVT_DISCONNECT){ globalClientSetTime--; if (globalClientSetTime<=0) gHasSetTimeClient=false; +#ifdef DEBUG Serial.println("wssettime Client disconnected"); Serial.print("SetTime Client=");Serial.println(globalClientSetTime); Serial.print("IPAdd client:"); Serial.println(client->remoteIP()); +#endif } else if(type == WS_EVT_DATA){ +#ifdef DEBUG Serial.print("wssettime IPAdd client:"); Serial.println(client->remoteIP()); Serial.printf("[%u] get Text: %s\n", len, data); +#endif String message = String((char*)( data)); Serial.println(message); @@ -1060,10 +1066,12 @@ void memretrieveTrip(int pointer, int startaddress) if (Trip[pointer].startHour >= 24) Trip[pointer].startHour = 23; if (Trip[pointer].startMin >= 60) Trip[pointer].startMin = 59; if (Trip[pointer].startSec >= 60) Trip[pointer].startSec = 59; +#ifdef DEBUG 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(""); +#endif } void constantatodigit() @@ -1081,8 +1089,10 @@ void setSpiffSpeedInConstanta(float mConstanta, uint8_t setSpiffcurTrip){ char filename[7] = "/tripZ"; setSpiffcurTrip+=65; filename[5]=setSpiffcurTrip; +#ifdef DEBUG Serial.println(filename); Serial.println(mConstanta); +#endif String result = readFile(SPIFFS, filename); result.reserve(128); DynamicJsonDocument doc(128); @@ -1119,8 +1129,10 @@ void setSpiffStime(unsigned long mvaluesettime, uint8_t setSpiffcurTrip){ char filename[7] = "/tripZ"; setSpiffcurTrip+=65; filename[5]=setSpiffcurTrip; +#ifdef DEBUG Serial.println(filename); Serial.println(mvaluesettime); +#endif String result = readFile(SPIFFS, filename); result.reserve(128); DynamicJsonDocument doc(128); @@ -1130,7 +1142,9 @@ void setSpiffStime(unsigned long mvaluesettime, uint8_t setSpiffcurTrip){ sHour = mvaluesettime/65536; sMin = (mvaluesettime/256)-sHour*256; sprintf(msTime, "%02u:%02u", sHour, sMin); +#ifdef DEBUG Serial.print("dist:");Serial.print(doc["dist"].as());Serial.println(";"); +#endif if (doc["trip"].as()=="null") doc["trip"]=String(char(setSpiffcurTrip)); if (doc["dist"].as()=="null") doc["dist"]=""; if (doc["speed"].as()=="null") doc["speed"]=""; @@ -1139,7 +1153,9 @@ void setSpiffStime(unsigned long mvaluesettime, uint8_t setSpiffcurTrip){ result=""; serializeJson(doc,result); writeFile(SPIFFS, filename, result.c_str()); +#ifdef DEBUG Serial.print("Write sTime:");Serial.println(result); +#endif } void setMemStime(unsigned long mvaluesettime, uint8_t setmemssTimecurTrip){ int pointeradd = ((TRIPADDRESS+setmemssTimecurTrip)*32+4); @@ -1147,9 +1163,12 @@ void setMemStime(unsigned long mvaluesettime, uint8_t setmemssTimecurTrip){ Trip[setmemssTimecurTrip].startHour = (mvaluesettime/65536); //starttracthour; Trip[setmemssTimecurTrip].startMin = (mvaluesettime/256)-Trip[setmemssTimecurTrip].startHour*256; // starttractmin; Trip[setmemssTimecurTrip].startSec = mvaluesettime-((Trip[setmemssTimecurTrip].startHour*256 + Trip[curTrip].startMin)*256);//starttractsec; +#ifdef DEBUG + Serial.print("memstime: "); Serial.print(Trip[setmemssTimecurTrip].startHour);Serial.print(";"); Serial.print(Trip[setmemssTimecurTrip].startMin);Serial.print(";"); Serial.println(Trip[setmemssTimecurTrip].startSec); +#endif } unsigned long getMemStime(uint8_t getmemsTimecurTrip){ int pointeradd = ((TRIPADDRESS+getmemsTimecurTrip)*32+4); @@ -1397,7 +1416,9 @@ String runningtimeforESP32test1(byte x1,byte y1) runningTIME[8]='\0'; // Serial.print("t.hour:");Serial.println(t.hour); // Serial.print("runningtimeforesp:");Serial.println(runningTIME); +#ifdef DEBUG Serial.print("runningtimeforesp:");Serial.println(runningTIME); +#endif return String(runningTIME); } void settimeMenu() @@ -1445,7 +1466,9 @@ void calibrationMenu() //lcd.blink(); //blinkON=true; PREVMENU = MENU; +#ifdef DEBUG Serial.print(Calibrationstr);Serial.println("end"); +#endif } void constantaMenu() @@ -2187,7 +2210,9 @@ void calculationRally() //calculation only ESP32 sprintf(gcur_distance1_str, "%04.01f", distance1); } // Serial.print(distance2);Serial.print(";");Serial.println(count2); -Serial.print(gcurTime);Serial.print(";");Serial.println(t.hour); +#ifdef DEBUG + Serial.print(gcurTime);Serial.print(";");Serial.println(t.hour); +#endif if (distance2<0) { sprintf(gcur_distance2_str, "%02.02f", distance2); @@ -2283,7 +2308,9 @@ Serial.print(gcurTime);Serial.print(";");Serial.println(t.hour); if (hours2<10) sprintf(gcur_time2_str, " %s%01d:%02d:%02d", (negatifsign?"-":" "), hours2, mins2, secs2); else sprintf(gcur_time2_str, "%s%02d:%02d:%02d", (negatifsign?"-":" "), hours2, mins2, secs2); } +#ifdef DEBUG Serial.print(gcurTime);Serial.print(t.min);Serial.println(t.sec); +#endif // Serial.println("ENDCRal"); } ///// calculation only for esp32 @@ -2477,7 +2504,9 @@ void convertJsonTripToTripStruct(uint8_t iTrip, const char* strJson){ //this als char mspeed[7]; dtostrf(Trip[iTrip].speed, 6, 4, mspeed); +#ifdef DEBUG Serial.print(String(char(iTrip)));Serial.print(mspeed);Serial.print(" VS ");Serial.println(doc["speed"].as()); +#endif // if (Trip[iTrip].speed!=doc["speed"]) Serial.println("hohoho"); // if (strJson=="") @@ -2505,7 +2534,9 @@ void fillTripArray(){ //run by setup() tempTrip[5]=i+65; // Serial.println(tempTrip); tempReadFile = readFile(SPIFFS, tempTrip); +#ifdef DEBUG Serial.print(tempTrip); Serial.print(";");Serial.println(tempReadFile); +#endif convertJsonTripToTripStruct(i, tempReadFile.c_str()); } } @@ -2607,7 +2638,9 @@ void handleloadConst(AsyncWebServerRequest *request, JsonVariant &json) { request->send(200, "text/plain", tripload); // handle data and respond // request->send(tripload); // isloadingConst=false; +#ifdef DEBUG Serial.print("constLoadTime=");Serial.println(millis()-howLongInMillis); +#endif } char* unConstChar(const char* s) { @@ -2642,7 +2675,9 @@ void getTripFromSPIFF(uint8_t charcurTrip, char *pDist, char *pSpeed, char *pTi tempsTime.reserve(10); tempTrip=readFile(SPIFFS, filename); +#ifdef DEBUG Serial.print(tempTrip.length()); Serial.print(";");Serial.println(tempTrip); +#endif deserializeJson(doc, tempTrip); float speedinconstanta = getMemSpeedInConstanta(charcurTrip-65); @@ -2692,12 +2727,14 @@ void handleConstantaHTML(AsyncWebServerRequest *request) { // 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); +#ifdef DEBUG // 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(xDist);Serial.print(";"); Serial.print(xSpeed);Serial.print(";"); Serial.print(xTime);Serial.print(";"); Serial.print(xsTime);Serial.println(";"); +#endif PAGEROW.replace("%distval%", xDist); PAGEROW.replace("%speedval%", xSpeed); PAGEROW.replace("%timeval%", xTime); @@ -2710,9 +2747,11 @@ void handleConstantaHTML(AsyncWebServerRequest *request) { request->send(200, "text/html", PAGE); // request->send(SPIFFS, "/constanta.html", String(), false, procConst); // read from spiif straight away // isloadingConst=false; +#ifdef DEBUG Serial.println(millis()); Serial.print("PAGE Size:");Serial.println(pageZise); Serial.print("Actual Size:");Serial.println(PAGE.length()); +#endif } @@ -2720,7 +2759,7 @@ void handlesetConst(AsyncWebServerRequest *request, JsonVariant &json){ isloadingConst=true; // JsonObject& jsonObj = json.as(); if (not json.is()) { - Serial.println("Not JSONG object"); + Serial.println("Not JSON object"); request->send(400, "text/plain", "Not an object"); return; } @@ -2754,16 +2793,19 @@ void handlesetConst(AsyncWebServerRequest *request, JsonVariant &json){ canSave = false; } constvaluesettime = getValueSetTime(stime); +#ifdef DEBUG Serial.println(dist); +#endif if (constvaluesettime==-1){ canSave = false; } if (!(speed<100)) canSave = false; if (!(dist<1000)) canSave = false; if (!(time<1000)) canSave = false; - +#ifdef DEBUG Serial.print(constconstanta,3); Serial.print(";"); Serial.println(constCurTrip); Serial.print(constvaluesettime); Serial.print(";"); Serial.println(speed); +#endif AsyncResponseStream *response = request->beginResponseStream("application/json"); if (canSave){ // String filename = String("/trip"+trip); @@ -2840,7 +2882,9 @@ Trip[9].startSec = 58; //Serial.println(Trip[0].distance); //Serial.println(Trip[0].subTime); // uint32_t freqhz=400000; +#ifdef DEBUG Serial.println("begin wire"); +#endif Wire.begin(I2C_SDA, I2C_SCL, FREQHZ); //for lolin32lite sda=15; scl=13 //Dont move up or down //**************************LCD Setup******************************** @@ -2858,8 +2902,6 @@ Trip[9].startSec = 58; // lcd2.print("hello rally20"); - - Serial.println("Start calib"); //***************************END LCD Setup******************************** strCalibJson.reserve(512); strRallyJson.reserve(512); @@ -2986,7 +3028,7 @@ Serial.println("calibration and constanta"); #endif // wifiManager.setAPCallback(configModeCallback); // wifiManager.autoConnect(soft_ap_ssid); - Serial.println("before filltriparray"); + fillTripArray(); //WiFi.mode(WIFI_STA); @@ -3274,7 +3316,7 @@ Serial.println("calibration and constanta"); }); AsyncCallbackJsonWebHandler* loadconst = new AsyncCallbackJsonWebHandler("/rest/loadconst", [](AsyncWebServerRequest *request, JsonVariant &json) { - Serial.print("loadconst");Serial.println(millis()); + // Serial.print("loadconst");Serial.println(millis()); while(!semaphoreS){ delay(1); }