From 0a560dca1726a391541d8cc4325cb8a83174211a Mon Sep 17 00:00:00 2001 From: SpookyDervish Date: Sun, 8 Mar 2026 07:40:27 +1100 Subject: [PATCH] planning out api more --- desktop_app/api/message.py | 6 ++++++ desktop_app/api/node.py | 6 ++++-- desktop_app/ui/app.py | 3 +-- desktop_app/ui/widgets/chat_window.py | 16 ++++++++++++++++ 4 files changed, 27 insertions(+), 4 deletions(-) create mode 100644 desktop_app/api/message.py create mode 100644 desktop_app/ui/widgets/chat_window.py diff --git a/desktop_app/api/message.py b/desktop_app/api/message.py new file mode 100644 index 0000000..0db10d2 --- /dev/null +++ b/desktop_app/api/message.py @@ -0,0 +1,6 @@ +from api.node import MeshNode + +class Message: + def __init__(self, content: str, sender: MeshNode): + self.content = content + self.sender = sender \ No newline at end of file diff --git a/desktop_app/api/node.py b/desktop_app/api/node.py index 54ab054..f25dca9 100644 --- a/desktop_app/api/node.py +++ b/desktop_app/api/node.py @@ -1,12 +1,14 @@ -from enum import Enum -from bleak import BLEDevice, BleakScanner, BleakClient +from bleak import BleakScanner, BleakClient NODE_BLUETOOTH_SERVICE_UUID = "E1898FF7-5063-4441-a6eb-526073B00001" +NODE_BLUETOOTH_RX_UUID = "E1898FF7-5063-4441-a6eb-526073B00002" +NODE_BLUETOOTH_TX_UUID = "E1898FF7-5063-4441-a6eb-526073B00003" class MeshNode: def __init__(self, client: BleakClient): self.client = client + self.client.pair() async def discover(): """Find a mesh node via Bluetooth diff --git a/desktop_app/ui/app.py b/desktop_app/ui/app.py index 736fab5..3d7dff6 100644 --- a/desktop_app/ui/app.py +++ b/desktop_app/ui/app.py @@ -1,5 +1,4 @@ -from textual.app import App, ComposeResult -from textual.widgets import Header, Footer +from textual.app import App from ui.screens.pair_screen import PairScreen from api.node import MeshNode diff --git a/desktop_app/ui/widgets/chat_window.py b/desktop_app/ui/widgets/chat_window.py new file mode 100644 index 0000000..89776e3 --- /dev/null +++ b/desktop_app/ui/widgets/chat_window.py @@ -0,0 +1,16 @@ +from textual.containers import Vertical, VerticalScroll, HorizontalGroup +from textual.widgets import Input, Button, Static + + +class Message(Static): + def __init__(self, message): + super().__init__() + +class ChatWindow(Vertical): + def compose(self): + with VerticalScroll(): + pass + + with HorizontalGroup(): + yield Input(placeholder="Send a message") + yield Button("", flat=True) \ No newline at end of file