feat: implement raw frame dispatch and handling in DaliDomainService
Signed-off-by: Tony <tonylu@tony-cloud.com>
This commit is contained in:
@@ -13,6 +13,7 @@
|
||||
|
||||
#include "esp_err.h"
|
||||
#include "freertos/FreeRTOS.h"
|
||||
#include "freertos/queue.h"
|
||||
#include "freertos/semphr.h"
|
||||
#include "freertos/task.h"
|
||||
|
||||
@@ -220,9 +221,13 @@ class DaliDomainService {
|
||||
esp_err_t startSerialRxTask(DaliChannel& channel);
|
||||
static void SerialRxTaskEntry(void* arg);
|
||||
void serialRxTaskLoop(DaliChannel* channel);
|
||||
esp_err_t startRawFrameDispatchTask();
|
||||
static void RawFrameDispatchTaskEntry(void* arg);
|
||||
void rawFrameDispatchTaskLoop();
|
||||
esp_err_t startRawFrameTask();
|
||||
static void RawFrameTaskEntry(void* arg);
|
||||
void rawFrameTaskLoop();
|
||||
void queueRawFrame(const DaliChannel& channel, const uint8_t* data, size_t len);
|
||||
void notifyRawFrameSinks(const DaliRawFrame& frame);
|
||||
void markBusActivity(uint8_t gateway_id) const;
|
||||
|
||||
@@ -234,6 +239,8 @@ class DaliDomainService {
|
||||
mutable SemaphoreHandle_t host_activity_lock_{nullptr};
|
||||
mutable std::map<uint8_t, TickType_t> last_host_activity_ticks_;
|
||||
mutable std::map<uint8_t, RecentHostCommandFrame> recent_host_command_frames_;
|
||||
QueueHandle_t raw_frame_dispatch_queue_{nullptr};
|
||||
TaskHandle_t raw_frame_dispatch_task_handle_{nullptr};
|
||||
TaskHandle_t raw_frame_task_handle_{nullptr};
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user