Anpassung Zeitmessung, Batterie Backend to Frontend
This commit is contained in:
@@ -24,52 +24,54 @@
|
||||
const char* firmwareversion = "1.0.0"; // Version der Firmware
|
||||
|
||||
|
||||
void handleStart1() {
|
||||
void handleStart1(uint64_t timestamp = 0) {
|
||||
if (!timerData.isRunning1 && timerData.isReady1) {
|
||||
timerData.isReady1 = false; // Setze auf "Nicht bereit" bis Stopp
|
||||
timerData.startTime1 = millis();
|
||||
timerData.isReady1 = false;
|
||||
timerData.startTime1 = (timestamp > 0) ? timestamp : millis();
|
||||
timerData.localStartTime1 = millis(); // Set local start time
|
||||
timerData.isRunning1 = true;
|
||||
timerData.endTime1 = 0;
|
||||
Serial.println("Bahn 1 gestartet");
|
||||
}
|
||||
}
|
||||
|
||||
void handleStop1() {
|
||||
void handleStop1(uint64_t timestamp = 0) {
|
||||
if (timerData.isRunning1) {
|
||||
timerData.endTime1 = millis();
|
||||
timerData.endTime1 = (timestamp > 0) ? timestamp : millis();
|
||||
timerData.finishedSince1 = millis(); // Set finished time
|
||||
timerData.isRunning1 = false;
|
||||
unsigned long currentTime = timerData.endTime1 - timerData.startTime1;
|
||||
|
||||
|
||||
if (timerData.bestTime1 == 0 || currentTime < timerData.bestTime1) {
|
||||
timerData.bestTime1 = currentTime;
|
||||
saveBestTimes();
|
||||
}
|
||||
timerData.finishedSince1 = millis();
|
||||
Serial.println("Bahn 1 gestoppt - Zeit: " + String(currentTime/1000.0) + "s");
|
||||
}
|
||||
}
|
||||
|
||||
void handleStart2() {
|
||||
void handleStart2(uint64_t timestamp = 0) {
|
||||
if (!timerData.isRunning2 && timerData.isReady2) {
|
||||
timerData.isReady2 = false; // Setze auf "Nicht bereit" bis Stopp
|
||||
timerData.startTime2 = millis();
|
||||
timerData.isReady2 = false;
|
||||
timerData.startTime2 = (timestamp > 0) ? timestamp : millis();
|
||||
timerData.localStartTime2 = millis(); // Set local start time
|
||||
timerData.isRunning2 = true;
|
||||
timerData.endTime2 = 0;
|
||||
Serial.println("Bahn 2 gestartet");
|
||||
}
|
||||
}
|
||||
|
||||
void handleStop2() {
|
||||
void handleStop2(uint64_t timestamp = 0) {
|
||||
if (timerData.isRunning2) {
|
||||
timerData.endTime2 = millis();
|
||||
timerData.endTime2 = (timestamp > 0) ? timestamp : millis();
|
||||
timerData.finishedSince2 = millis(); // Set finished time
|
||||
timerData.isRunning2 = false;
|
||||
unsigned long currentTime = timerData.endTime2 - timerData.startTime2;
|
||||
|
||||
|
||||
if (timerData.bestTime2 == 0 || currentTime < timerData.bestTime2) {
|
||||
timerData.bestTime2 = currentTime;
|
||||
saveBestTimes();
|
||||
}
|
||||
timerData.finishedSince2 = millis();
|
||||
Serial.println("Bahn 2 gestoppt - Zeit: " + String(currentTime/1000.0) + "s");
|
||||
}
|
||||
}
|
||||
@@ -77,13 +79,13 @@ void handleStop2() {
|
||||
void checkAutoReset() {
|
||||
unsigned long currentTime = millis();
|
||||
|
||||
if (timerData.isRunning1 && (currentTime - timerData.startTime1 > maxTimeBeforeReset)) {
|
||||
if (timerData.isRunning1 && (currentTime - timerData.localStartTime1 > maxTimeBeforeReset)) {
|
||||
timerData.isRunning1 = false;
|
||||
timerData.startTime1 = 0;
|
||||
Serial.println("Bahn 1 automatisch zurückgesetzt");
|
||||
}
|
||||
|
||||
if (timerData.isRunning2 && (currentTime - timerData.startTime2 > maxTimeBeforeReset)) {
|
||||
if (timerData.isRunning2 && (currentTime - timerData.localStartTime2 > maxTimeBeforeReset)) {
|
||||
timerData.isRunning2 = false;
|
||||
timerData.startTime2 = 0;
|
||||
Serial.println("Bahn 2 automatisch zurückgesetzt");
|
||||
@@ -91,7 +93,7 @@ void checkAutoReset() {
|
||||
|
||||
// Automatischer Reset nach 10 Sekunden "Beendet"
|
||||
if (!timerData.isRunning1 && timerData.endTime1 > 0 && timerData.finishedSince1 > 0) {
|
||||
if (currentTime - timerData.finishedSince1 > maxTimeDisplay) {
|
||||
if (millis() - timerData.finishedSince1 > maxTimeDisplay) {
|
||||
timerData.startTime1 = 0;
|
||||
timerData.endTime1 = 0;
|
||||
timerData.finishedSince1 = 0;
|
||||
@@ -226,7 +228,7 @@ String getTimerDataJSON() {
|
||||
unsigned long currentTime = millis();
|
||||
// Bahn 1
|
||||
if (timerData.isRunning1) {
|
||||
doc["time1"] = (currentTime - timerData.startTime1) / 1000.0;
|
||||
doc["time1"] = (currentTime - timerData.localStartTime1) / 1000.0;
|
||||
doc["status1"] = "running";
|
||||
} else if (timerData.endTime1 > 0) {
|
||||
doc["time1"] = (timerData.endTime1 - timerData.startTime1) / 1000.0;
|
||||
@@ -238,7 +240,7 @@ String getTimerDataJSON() {
|
||||
|
||||
// Bahn 2
|
||||
if (timerData.isRunning2) {
|
||||
doc["time2"] = (currentTime - timerData.startTime2) / 1000.0;
|
||||
doc["time2"] = (currentTime - timerData.localStartTime2) / 1000.0;
|
||||
doc["status2"] = "running";
|
||||
} else if (timerData.endTime2 > 0) {
|
||||
doc["time2"] = (timerData.endTime2 - timerData.startTime2) / 1000.0;
|
||||
|
||||
Reference in New Issue
Block a user