You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
1.8 KiB
Plaintext

alright time to do this correctly because this is brutal
7/18
DM -> RLC -> RM -> Sys -> TM -> TC
this basic struct will guide us
Work backwards to start from what the TC wants and work to how to deliver
TC
- wants to know what the overall reactor status are and the associated device status on selection
- its OK if this is a bit out of date, but probably want a synchronized view between clients
- could be a performance hit but f it
TM
Needs to:
- provide up to date information about the reactors connected and know which reactor is selected and provide updates for it
Relies on
- Needs a central struct, 2 methods for data
- call on request to query for ir
- keep its own copy and empty its buffer on request
- this is probably the best route
So TM really needs an intermediate struct a sort of device buffer
- I like the thing we had before with the channels and embedding but it needs to be fleshed out
All of this resides on the server which we can use to our advantage
Lets flesh out the TM a bit more
TM sys struct
this struct will attach itself to a channel and buffer updates for that channel
has to have a few methods
- GetBuffer() returns any new entries and empties the buffer
- ListenTo(reactorID) starts listening to a reactor and returns any devices on that branch so the client can refresh its list
- Refresh() forces the client to get all reactors and devices if listening to any branch
NewSysMonitor() has to return struct and current client status to load fortui client
this client will be given to a TUI at creation
TUI can then call associated commands to get updates for the client
TM sys struct just relies on underlying sys implementation which seems to be working south of the RM so i am just going to work on this TM sys struct for now