From 7534459e7387684eba1e6d3bb654da2918f5cb6b Mon Sep 17 00:00:00 2001 From: simon Date: Sun, 8 Feb 2026 19:11:49 +0100 Subject: [PATCH] First api draft for ui communication --- goTool/api/frontend.go | 44 +++++++++++++++++++++++++++++++++++---- goTool/api/uart.go | 7 ++++--- goTool/frontend/server.go | 4 ++-- 3 files changed, 46 insertions(+), 9 deletions(-) diff --git a/goTool/api/frontend.go b/goTool/api/frontend.go index dbdff01..c47a76a 100644 --- a/goTool/api/frontend.go +++ b/goTool/api/frontend.go @@ -4,8 +4,44 @@ const ( TopicFrontendCmd = "front:cmd" ) -type FrontendCmd struct { - Action string `json:"action"` - ID byte `json:"id"` - Data []byte `json:"data"` +const ( + CmdUpdateValue = "update_value" + CmdInitState = "init_state" + CmdConnect = "connect" + CmdDisconnect = "disconnect" + CmdRX = "uart_rx" + CmdTX = "uart_tx" +) + +type WsMessage struct { + Cmd string `json:"cmd"` + Payload any `json:"payload"` +} + +type SystemState struct { + Adapters []string `json:"adapters"` + SelectedAdapter string `json:"selected_adapter"` + Baudrates string `json:"baudrates"` + SelectedBaudrate string `json:"selected_baudrate"` + UartConnected bool `json:"uart_connected"` +} + +type WsUartConnect struct { + SelectedAdapter string `json:"selected_adapter"` + Baudrates string `json:"baudrates"` +} + +type WsUartDisconnect struct { +} + +type WsUartSendMessage struct { + Data []byte `json:"data"` +} + +type WsUartRX struct { + Data []byte `json:"data"` +} + +type WsUartTX struct { + Data []byte `json:"data"` } diff --git a/goTool/api/uart.go b/goTool/api/uart.go index e53b63c..c9176c9 100644 --- a/goTool/api/uart.go +++ b/goTool/api/uart.go @@ -2,9 +2,10 @@ package api // Topics const ( - TopicUARTRx = "uart:rx" - TopicUARTTx = "uart:tx" - TopicUARTError = "uart:error" + TopicUARTRx = "uart:rx" + TopicUARTTx = "uart:tx" + TopicUARTError = "uart:error" + TopicUartAction = "uart:action" TopicOTA = "ota" ) diff --git a/goTool/frontend/server.go b/goTool/frontend/server.go index 1572b19..1d11858 100644 --- a/goTool/frontend/server.go +++ b/goTool/frontend/server.go @@ -78,14 +78,14 @@ func (fsrv *FServer) handleWS(w http.ResponseWriter, r *http.Request) { // READER: Commands from Browser for { - var cmd api.FrontendCmd + var cmd api.WsMessage if err := conn.ReadJSON(&cmd); err != nil { log.Printf("WS Read Error: %v", err) break } fsrv.bus.Publish(api.TopicFrontendCmd, cmd) - log.Printf("Browser Action: %s auf ID 0x%02X", cmd.Action, cmd.ID) + log.Printf("Browser Action: %s auf with %v", cmd.Cmd, cmd.Payload) } }