summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlonkaars <loek@pipeframe.xyz>2022-05-29 14:33:19 +0200
committerlonkaars <loek@pipeframe.xyz>2022-05-29 14:33:19 +0200
commitf466856892d94f5b42bf2369cae0fd73dd468dfa (patch)
tree4492d0f7bf0cd63953cc122a19296f074389ef89
parent3f7b378858d9f3016f437d3c9412821be0fae582 (diff)
parent38d71eb97dbd8f895ed483128b332f018a5ae1d4 (diff)
Merge branch 'master' into dev
-rw-r--r--client/readme.md58
1 files changed, 31 insertions, 27 deletions
diff --git a/client/readme.md b/client/readme.md
index 1083e4c..2a8c19f 100644
--- a/client/readme.md
+++ b/client/readme.md
@@ -23,37 +23,37 @@ this page is WIP
## interface
the client is a user-facing application that allows control and monitoring of
-the robot in various ways. it primarily works in a command-line way, with the
-user typing commands that get translated to protocol messages, and sent to the
-robot. to start the interface, the user should run `./main <com-port> [command]
-[args]`. by not specifying a command, the interactive shell is launched which
-looks like this (and it's supposed to be in dutch):
+the robot in various ways. it primarily works in a bios-like way, with the user
+having access to multiple tabs containing options or custom interface elements.
+
+to start the interface, the user should run `./main <com-port>`. the interface
+could look something like this (with colored text for element seperation):
```
verbonden, 2ms ping (0.0.2-11-g92c394b) batterij 100%
[huidige logica-modus] 0 waarschuwingen, 0 foutmeldingen
+ [info] logs direct aansturen kaart orders modus instellen sensor...
--------------------------------------------------------------------------------
-
-
-
-
-
-
-
-
-
-
-
-
-
welkom in de wall-e2 console applicatie! deze client is versie
0.0.2-11-g92c394b
-typ 'help' om alle commando's te zien in een lijst, of 'doei' om deze
-applicatie weer te sluiten.
+deze applicatie functioneert op een soortgelijke manier als een BIOS. hier is
+een lijst met besturingscommando's:
+
+<links>/<rechts>, <h>/<l> tabblad wisselen
+<omlaag>/<omhoog>, <j>/<k> optie selecteren
+<enter>, <i> optie aanpassen
+<home>, <g> terug naar boven scrollen
+<end>, <G> naar einde van pagina scrollen
+<escape> terug
+<q> console applicatie sluiten
+
+sneltoetsen:
+<N> info <o> orders
+<S> logs <M> modus instellen
+<d> direct aansturen <m> kaart
-w2>
```
the top status bar is always supposed to be visible, and is sort of inspired by
@@ -63,10 +63,13 @@ though it doesn't matter if it's very primitive.
going from top-left in reading order the status bar contains: connection
status, ping time, robot version number, robot battery info, current logic
-mode, warnings and critical exceptions. the version number is aligned to the
-terminal center, and the battery and warning counters are aligned right. when a
-connection hasn't been established between the robot and client, the fields
-containing robot info should dissapear.
+mode, warnings and critical exceptions, and lastly a tab bar. the version
+number is aligned to the terminal center, and the battery and warning counters
+are aligned right. when a connection hasn't been established between the robot
+and client, the fields containing robot info should dissapear. the tab bar
+scrolls horizontally, and tab names should in addition to a single space
+seperator, keep spaces before and after to fit square brackets indicating tab
+selection status.
## code structure
@@ -75,12 +78,13 @@ modules are executed after each other:
- serial read
- stdin read (user input)
-- optional control mode handling
+- status bar paint
+- current tab paint
## notes on ascii escape codes
- color codes
- terminal echo codes
- how to read terminal (re)size
-- cursor movement
+- cursor movement(?)