aboutsummaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
authorHoodieJeansJordans <104365411+HoodieJeansJordans@users.noreply.github.com>2022-06-05 13:21:09 +0200
committerGitHub <noreply@github.com>2022-06-05 13:21:09 +0200
commitbc283424c699effcfa84816c609ca7f00ed5259a (patch)
treeff67ced022120ae05997c1b1f3a49db992e4fcbf /client
parent5692ca8c65f5f5617d6987b610e425a32c0d8e1d (diff)
parent38d71eb97dbd8f895ed483128b332f018a5ae1d4 (diff)
Merge branch 'lonkaars:master' into master
Diffstat (limited to 'client')
-rw-r--r--client/makefile2
-rw-r--r--client/readme.md70
2 files changed, 40 insertions, 32 deletions
diff --git a/client/makefile b/client/makefile
index 4cca15a..f79dd11 100644
--- a/client/makefile
+++ b/client/makefile
@@ -25,5 +25,5 @@ format:
clang-tidy --fix-errors $(SOURCES) $(HEADERS)
compile_commands: clean
- bear -- make
+ compiledb make
diff --git a/client/readme.md b/client/readme.md
index 990504d..8b4baee 100644
--- a/client/readme.md
+++ b/client/readme.md
@@ -10,46 +10,50 @@ this page is WIP
|-|-|-|-|-|
|view warnings / errors|
|direct control|
+|configure map|
+|input orders|
|enable/disable emergency mode|
-
-
-
-
+|enable/disable sensor calibration mode|
+|enable/disable wet floor mode|
+|read sensor values|
+|set display contents|optional
+|play music|optional
+|control leds|optional
## 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
@@ -59,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
@@ -71,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(?)