fix: pause snapshots while a stream is active

pull/131/head
Christian Muehlhaeuser 2025-12-18 00:19:03 +01:00
parent db0112e9c2
commit 848b7e48fd
No known key found for this signature in database
GPG Key ID: 3A371AA367F6CC1F
1 changed files with 24 additions and 17 deletions

View File

@ -505,25 +505,32 @@ void System_TaskCaptureAndSendPhoto(void *pvParameters) {
TickType_t xLastWakeTime = xTaskGetTickCount();
while (1) {
if (Connect.CheckSendingIntervalExpired()) {
Connect.SetSendingIntervalCounter(0);
/* send network information to backend */
if ((WL_CONNECTED == WiFi.status()) && (false == FirmwareUpdate.Processing)) {
SystemLog.AddEvent(LogLevel_Verbose, F("Task photo processing. Start sending info"));
esp_task_wdt_reset();
Connect.SendInfoToBackend();
}
/* send photo to backend*/
if ((WL_CONNECTED == WiFi.status()) && (false == FirmwareUpdate.Processing)) {
SystemLog.AddEvent(LogLevel_Verbose, F("Task photo processing. Start sending photo"));
esp_task_wdt_reset();
Connect.TakePictureAndSendToBackend();
}
/* Pause periodic snapshots while MJPG stream is active */
if (SystemCamera.GetStreamStatus()) {
SystemLog.AddEvent(LogLevel_Verbose, F("Photo processing task: stream active, pausing periodic snapshots"));
/* do not increase the sending interval counter while streaming */
} else {
/* update counter */
Connect.IncreaseSendingIntervalCounter();
if (Connect.CheckSendingIntervalExpired()) {
Connect.SetSendingIntervalCounter(0);
/* send network information to backend */
if ((WL_CONNECTED == WiFi.status()) && (false == FirmwareUpdate.Processing)) {
SystemLog.AddEvent(LogLevel_Verbose, F("Task photo processing. Start sending info"));
esp_task_wdt_reset();
Connect.SendInfoToBackend();
}
/* send photo to backend*/
if ((WL_CONNECTED == WiFi.status()) && (false == FirmwareUpdate.Processing)) {
SystemLog.AddEvent(LogLevel_Verbose, F("Task photo processing. Start sending photo"));
esp_task_wdt_reset();
Connect.TakePictureAndSendToBackend();
}
} else {
/* update counter */
Connect.IncreaseSendingIntervalCounter();
}
}
SystemLog.AddEvent(LogLevel_Verbose, F("Photo processing task. Stack free size: "), String(uxTaskGetStackHighWaterMark(NULL)) + "B");