Docs: Update lessons_learned.md with new WLED direct communication strategy
This commit is contained in:
parent
a5e3298bd8
commit
edf041a09a
@ -42,3 +42,30 @@ Function _processFrame(input_frame: QVideoFrame):
|
|||||||
|
|
||||||
End Function
|
End Function
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## New Strategy: Direct WLED Communication
|
||||||
|
|
||||||
|
**Goal:** Modify the `Hyperion_Grabber_X11_QT` application to send image data directly to a WLED device, bypassing the Hyperion.ng server.
|
||||||
|
|
||||||
|
**Current Understanding:**
|
||||||
|
* The `HyperionGrabber` successfully captures and processes screen images (scaling, format conversion).
|
||||||
|
* The `HyperionClient` currently sends these processed images to a Hyperion.ng server using JSON-RPC over TCP.
|
||||||
|
|
||||||
|
**Proposed Plan:**
|
||||||
|
|
||||||
|
1. **Research WLED API for Image Data:**
|
||||||
|
* WLED supports several UDP protocols for live image data, including DDP (Distributed Display Protocol) on UDP port 4048 and WLED UDP Realtime (WARLS) on UDP port 21324.
|
||||||
|
* DDP appears to be a good fit for sending raw RGB pixel data efficiently.
|
||||||
|
|
||||||
|
2. **Develop a WLED Client (`WledClient`):**
|
||||||
|
* Create a new C++ class (`WledClient`) that uses `QUdpSocket` to send data.
|
||||||
|
* Implement the DDP packet structure for sending raw RGB pixel data.
|
||||||
|
* Add a `sendImage` method to format `QImage` data into DDP packets and send them.
|
||||||
|
* The client will be configured with the WLED device's IP address and DDP port (4048).
|
||||||
|
|
||||||
|
3. **Integrate WLED Client into HyperionGrabber:**
|
||||||
|
* Modify `HyperionGrabber` to use `WledClient` instead of `HyperionClient`.
|
||||||
|
* Update the `_processFrame` method to call `WledClient`'s `sendImage` method.
|
||||||
|
|
||||||
|
4. **Remove HyperionClient Dependency:**
|
||||||
|
* Once `WledClient` is integrated and working, remove the `HyperionClient` class and its related code.
|
||||||
Loading…
x
Reference in New Issue
Block a user