figuring a way of having a clean internal interface for the data and other stuff I reckon. I forgot

This commit is contained in:
2026-03-09 18:03:36 +00:00
parent ac76d482d0
commit ef8f4603d6
11 changed files with 196 additions and 126 deletions
+15 -13
View File
@@ -130,30 +130,32 @@ func NewCDashDisplay() (*CDashDisplay, error) {
func (d *CDashDisplay) SendCommand() {
}
func (d *CDashDisplay) CreateWindow(win UIWindow) (int16, error) {
bytes, err := helper.StructToBytes(win)
func (d *CDashDisplay) CreateWindow(win *DesktopUIWindow) (*DesktopUIWindow, error) {
bytes, err := helper.StructToBytes(win.UIWindow)
if err != nil {
return -1, err
return nil, err
}
// Send the command
var wID packets.NewWindowID
err = d.WT.SendCommand(newWindowCMDID, bytes, &wID)
if err != nil {
return -1, err
return nil, err
}
win.UIData.IDX = wID.ID
pLogger.Info(fmt.Sprintf("Recived ID message: %v", wID))
d.State.Layout.AddWindow(wID.ID, win)
d.State.Layout.AddWindow(win)
return wID.ID, nil
return win, nil
}
func (d *CDashDisplay) UpdateWindow(wID int16, win *UIWindow) error {
func (d *CDashDisplay) UpdateWindow(win *DesktopUIWindow) error {
data := UIWindowUpdatePacket{
WinID: wID,
Window: *win,
WinID: win.UIData.IDX,
Window: win.UIWindow,
}
bytes, err := helper.StructToBytes(data)
@@ -172,7 +174,7 @@ func (d *CDashDisplay) UpdateWindow(wID int16, win *UIWindow) error {
// I send the pointer here
// -> it should be the same pointer then right?
pLogger.Debug(fmt.Sprintf("PreUpdate ID: %p", win))
d.State.Layout.Windows[wID] = win
d.State.Layout.Windows[win.UIData.IDX] = win
pLogger.Debug(fmt.Sprintf("PostUpdate ID: %p", win))
// Yeah, same address as suspected
// I can't think about it right now. I'll think about that tomorrow
@@ -245,7 +247,7 @@ func (d *CDashDisplay) MoveWindow(wID int16, delta *helper.Vector) error {
Dims: newDimensions,
}
err := d.updateWindowDimensions(window, packet)
err := d.updateWindowDimensions(&window.UIWindow, packet)
if err != nil {
return err
}
@@ -283,7 +285,7 @@ func (d *CDashDisplay) ResizeWindow(wID int16, delta *helper.Vector) error {
Dims: newDimensions,
}
err := d.updateWindowDimensions(window, packet)
err := d.updateWindowDimensions(&window.UIWindow, packet)
if err != nil {
return err
}
@@ -325,7 +327,7 @@ func (d *CDashDisplay) LoadLayout(layoutName string) error {
}
for _, w := range layout.Windows {
_, err = d.CreateWindow(*w)
_, err = d.CreateWindow(w)
if err != nil {
// NOTE: Add a way to handle multiple errors ?
return err
+5 -5
View File
@@ -3,18 +3,18 @@ package cdashdisplay
import "fmt"
type LayoutTree struct {
Windows map[int16]*UIWindow `yaml:"Windows"`
Windows map[int16]*DesktopUIWindow `yaml:"Windows"`
}
func NewLayoutTree() *LayoutTree {
return &LayoutTree{
Windows: make(map[int16]*UIWindow),
Windows: make(map[int16]*DesktopUIWindow),
}
}
func (l *LayoutTree) AddWindow(idx int16, w UIWindow) {
pLogger.Debug(fmt.Sprintf("adding window '%d' - %v", idx, w))
l.Windows[idx] = &w
func (l *LayoutTree) AddWindow(w *DesktopUIWindow) {
pLogger.Debug(fmt.Sprintf("adding window '%d' - %v", w.UIData.IDX))
l.Windows[w.UIData.IDX] = w
pLogger.Debug(fmt.Sprintf("new map - %v", l.Windows))
}
+14
View File
@@ -45,7 +45,21 @@ type UIWindow struct {
Title FString32 `yaml:"Title"`
}
type DesktopUIWindow struct {
UIWindow
UIData DesktopUIData
}
type DesktopUIData struct {
IDX int16 `yaml:"WID"`
TelemetryField string `yaml:"TelemetryField"`
}
type UIWindowUpdatePacket struct {
WinID int16
Window UIWindow
}
// func getUIWindowDTO(w *DesktopWindowData) *UIWindow {
//
// }