mirror of
https://github.com/MrUnknownDE/OpenIris-ESPIDF.git
synced 2026-05-05 13:36:04 +02:00
Fix stream_state update logic and add the event queue acquisition function
This commit is contained in:
@@ -63,9 +63,9 @@ void StateManager::HandleUpdateState()
|
|||||||
ledStreamState = LEDStates_e::LedStateStreaming;
|
ledStreamState = LEDStates_e::LedStateStreaming;
|
||||||
xQueueSend(this->ledStateQueue, &ledStreamState, 10);
|
xQueueSend(this->ledStateQueue, &ledStreamState, 10);
|
||||||
}
|
}
|
||||||
if (this->stream_state == StreamState_e::Stream_ON)
|
else if (this->stream_state == StreamState_e::Stream_OFF)
|
||||||
{
|
{
|
||||||
ledStreamState = LEDStates_e::LedStateStreaming;
|
ledStreamState = LEDStates_e::LedStateStoppedStreaming;
|
||||||
xQueueSend(this->ledStateQueue, &ledStreamState, 10);
|
xQueueSend(this->ledStateQueue, &ledStreamState, 10);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -87,6 +87,11 @@ CameraState_e StateManager::GetCameraState()
|
|||||||
return this->camera_state;
|
return this->camera_state;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QueueHandle_t StateManager::GetEventQueue() const
|
||||||
|
{
|
||||||
|
return this->eventQueue;
|
||||||
|
}
|
||||||
|
|
||||||
void HandleStateManagerTask(void *pvParameters)
|
void HandleStateManagerTask(void *pvParameters)
|
||||||
{
|
{
|
||||||
auto *stateManager = static_cast<StateManager *>(pvParameters);
|
auto *stateManager = static_cast<StateManager *>(pvParameters);
|
||||||
|
|||||||
@@ -76,6 +76,7 @@ public:
|
|||||||
void HandleUpdateState();
|
void HandleUpdateState();
|
||||||
WiFiState_e GetWifiState();
|
WiFiState_e GetWifiState();
|
||||||
CameraState_e GetCameraState();
|
CameraState_e GetCameraState();
|
||||||
|
QueueHandle_t GetEventQueue() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QueueHandle_t eventQueue;
|
QueueHandle_t eventQueue;
|
||||||
@@ -87,6 +88,15 @@ private:
|
|||||||
StreamState_e stream_state;
|
StreamState_e stream_state;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Lightweight helper to publish stream state changes to the shared event queue.
|
||||||
|
static inline bool SendStreamEvent(QueueHandle_t queue, StreamState_e state)
|
||||||
|
{
|
||||||
|
if (!queue)
|
||||||
|
return false;
|
||||||
|
SystemEvent evt{EventSource::STREAM, state};
|
||||||
|
return xQueueSend(queue, &evt, 0) == pdTRUE;
|
||||||
|
}
|
||||||
|
|
||||||
void HandleStateManagerTask(void *pvParameters);
|
void HandleStateManagerTask(void *pvParameters);
|
||||||
|
|
||||||
#endif // STATEMANAGER_HPP
|
#endif // STATEMANAGER_HPP
|
||||||
|
|||||||
Reference in New Issue
Block a user