Dies ist die Beschreibung der Shell API Bindings für das LCD 16x2 Bricklet. Allgemeine Informationen über die Funktionen und technischen Spezifikationen des LCD 16x2 Bricklet sind in dessen Hardware Beschreibung zusammengefasst.
Eine Installationanleitung für die Shell API Bindings ist Teil deren allgemeine Beschreibung.
Der folgende Beispielcode ist Public Domain (CC0 1.0).
Download (example-hello-world.sh)
1 2 3 4 5 6 7 8 9 10 | #!/bin/sh
# Connects to localhost:4223 by default, use --host and --port to change this
uid=XYZ # Change XYZ to the UID of your LCD 16x2 Bricklet
# Turn backlight on
tinkerforge call lcd-16x2-bricklet $uid backlight-on
# Write "Hello World"
tinkerforge call lcd-16x2-bricklet $uid write-line 0 0 "Hello World"
|
Download (example-button-callback.sh)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #!/bin/sh
# Connects to localhost:4223 by default, use --host and --port to change this
uid=XYZ # Change XYZ to the UID of your LCD 16x2 Bricklet
# Handle incoming button pressed callbacks
tinkerforge dispatch lcd-16x2-bricklet $uid button-pressed &
# Handle incoming button released callbacks
tinkerforge dispatch lcd-16x2-bricklet $uid button-released &
echo "Press key to exit"; read dummy
kill -- -$$ # Stop callback dispatch in background
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #!/bin/sh
# Connects to localhost:4223 by default, use --host and --port to change this
uid=XYZ # Change XYZ to the UID of your LCD 16x2 Bricklet
# Turn backlight on
tinkerforge call lcd-16x2-bricklet $uid backlight-on
# Write a string using sed to map to the LCD charset
# Note: This assumes that the shell supports UTF-8
tinkerforge call lcd-16x2-bricklet $uid write-line 0 0\
"`echo 'Stromstärke: 5µA' | sed 'y/\o134~¥→←°αÄäßεµςρ√¹¤¢ⱠñÖöϴ∞ΩÜüΣπ÷■/\o244\o55\o134\o176\o177\o337\o340\o341\o341\o342\o343\o344\o345\o346\o350\o351\o353\o354\o355\o356\o357\o357\o362\o363\o364\o365\o365\o366\o367\o375\o377/'`"
# Write a string directly including characters from the LCD charset
tinkerforge call lcd-16x2-bricklet $uid write-line 1 0\
"`printf 'Drehzahl: 1000s\xe9'`"
|
Mögliche Exit Codes für alle tinkerforge
Befehle sind:
argparse
Modul fehltAllgemeine Optionen des call
und des dispatch
Befehls sind
hier zu finden. Im Folgenden wird die spezifische
Befehlsstruktur dargestellt.
call
lcd-16x2-bricklet
[<option>..] <uid> <function> [<argument>..]¶Parameter: |
|
---|
Der call
Befehl wird verwendet um eine Funktion des LCD 16x2 Bricklet aufzurufen. Der
Befehl kennt mehrere Optionen:
--help
zeigt Hilfe für den spezifischen call
Befehl an und endet dann--list-functions
zeigt eine Liste der bekannten Funktionen des LCD 16x2 Bricklet an
und endet danndispatch
lcd-16x2-bricklet
[<option>..] <uid> <callback>¶Parameter: |
|
---|
Der dispatch
Befehl wird verwendet um eingehende Callbacks des LCD 16x2 Bricklet
abzufertigen. Der Befehl kennt mehrere Optionen:
--help
zeigt Hilfe für den spezifischen dispatch
Befehl an und endet
dann--list-callbacks
zeigt eine Liste der bekannten Callbacks des LCD 16x2 Bricklet an
und endet dannlcd-16x2-bricklet
<uid> <function>
[<option>..] [<argument>..]¶Parameter: |
|
---|
Abhängig von der Art der aufzurufenden <function>
kennt diese verschiedene
Optionen. Alle Funktionen kennen die folgenden Optionen:
--help
zeigt Hilfe für die spezifische <function>
an und endet dannGetter-Funktionen kennen zusätzlich die folgenden Optionen:
--execute <command>
Shell-Befehl der für jede eingehende Antwort
ausgeführt wird (siehe den Abschnitt über Ausgabeformatierung für Details)Setter-Funktionen kennen zusätzlich die folgenden Optionen:
--expect-response
fragt Antwort an und wartet auf dieseMit der --expect-response
Option für Setter-Funktionen können Timeouts und
andere Fehlerfälle auch für Aufrufe von Setter-Funktionen detektiert werden.
Das Gerät sendet dann eine Antwort extra für diesen Zweck. Wenn diese Option
für eine Setter-Funktion nicht angegeben ist, dann wird keine Antwort vom
Gerät gesendet und Fehler werden stillschweigend ignoriert, da sie nicht
detektiert werden können.
lcd-16x2-bricklet
<uid> <callback>
[<option>..]¶Parameter: |
|
---|
Der abzufertigende <callback>
kennt mehrere Optionen:
--help
zeigt Hilfe für den spezifische <callback>
an und endet dann--execute <command>
Shell-Befehlszeile der für jede eingehende Antwort
ausgeführt wird (siehe den Abschnitt über Ausgabeformatierung für Details)lcd-16x2-bricklet
<uid> write-line
<line> <position> <text>¶Parameter: |
|
---|---|
Ausgabe: |
|
Schreibt einen Text in die angegebene Zeile mit einer vorgegebenen Position. Der Text kann maximal 16 Zeichen lang sein.
Beispiel: (0, 5, "Hallo") schreibt Hallo in die Mitte der ersten Zeile des Display.
Das Display nutzt einen speziellen Zeichensatz der alle ASCII Zeichen beinhaltet außer Backslash und Tilde. Der Zeichensatz des LCD beinhaltet weiterhin einige Nicht-ASCII Zeichen, siehe die Zeichensatzspezifikation für Details. Das gezeigte Unicode Beispiel verdeutlicht die Verwendung von Nicht-ASCII Zeichen und wie die Wandlung von Unicode in den LCD Zeichensatz möglich ist.
lcd-16x2-bricklet
<uid> clear-display
¶Ausgabe: |
|
---|
Löscht alle Zeichen auf dem Display.
lcd-16x2-bricklet
<uid> backlight-on
¶Ausgabe: |
|
---|
Aktiviert die Hintergrundbeleuchtung.
lcd-16x2-bricklet
<uid> backlight-off
¶Ausgabe: |
|
---|
Deaktiviert die Hintergrundbeleuchtung.
lcd-16x2-bricklet
<uid> is-backlight-on
¶Ausgabe: |
|
---|
Gibt true zurück wenn die Hintergrundbeleuchtung aktiv ist, sonst false.
lcd-16x2-bricklet
<uid> set-config
<cursor> <blinking>¶Parameter: |
|
---|---|
Ausgabe: |
|
Konfiguriert ob der Cursor (angezeigt als "_") sichtbar ist und ob er
blinkt (angezeigt als blinkender Block). Die Cursor Position ist ein
Zeichen hinter dem zuletzt mit write-line
geschriebenen Text.
lcd-16x2-bricklet
<uid> get-config
¶Ausgabe: |
|
---|
Gibt die Konfiguration zurück, wie von set-config
gesetzt.
Parameter: |
|
---|---|
Ausgabe: |
|
Gibt true zurück wenn die Taste gedrückt ist.
Wenn auf Tastendrücken und -loslassen reagiert werden soll, wird empfohlen die
button-pressed
und button-released
Callbacks zu nutzen.
lcd-16x2-bricklet
<uid> set-custom-character
<index> <character>¶Parameter: |
|
---|---|
Ausgabe: |
|
Das LCD 16x2 Bricklet kann bis zu 8 benutzerdefinierte Buchstaben speichern. Die Buchstaben bestehen aus 5x8 Pixel und sie können über den Index 0-7 adressiert werden. Um die Pixel zu beschreiben, werden die ersten 5 Bit von 8 Bytes verwenden. Zum Beispiel, um den Buchstaben "H" zu erzeugen, sollte das folgende Array gesendet werden:
character[0] = 0b00010001
(Dezimalwert 17)character[1] = 0b00010001
(Dezimalwert 17)character[2] = 0b00010001
(Dezimalwert 17)character[3] = 0b00011111
(Dezimalwert 31)character[4] = 0b00010001
(Dezimalwert 17)character[5] = 0b00010001
(Dezimalwert 17)character[6] = 0b00010001
(Dezimalwert 17)character[7] = 0b00000000
(Dezimalwert 0)Die Buchstaben können später mit write-line
mit den chars mit
den Byterepräsentationen 8 ("\x08" oder "\u0008") bis 15 ("\x0F" oder
"\u000F") geschrieben werden.
Es ist möglich die benutzerdefinierten Buchstaben im Brick Viewer ab Version 2.0.1 einzustellen.
Benutzerdefinierte Buchstaben werden vom LCD im RAM gespeichert, daher müssen sie nach jedem Start des LCD 16x2 Bricklets gesetzt werden.
Neu in Version 2.0.1 (Plugin).
lcd-16x2-bricklet
<uid> get-custom-character
<index>¶Parameter: |
|
---|---|
Ausgabe: |
|
Gibt den benutzerdefinierten Buchstaben für den gegebenen
Index zurück, wie von get-custom-character
gesetzt.
Neu in Version 2.0.1 (Plugin).
lcd-16x2-bricklet
<uid> get-identity
¶Ausgabe: |
|
---|
Gibt die UID, die UID zu der das Bricklet verbunden ist, die Position, die Hard- und Firmware Version sowie den Device Identifier zurück.
Die Position ist 'a', 'b', 'c', 'd', 'e', 'f', 'g' oder 'h' (Bricklet Anschluss). Ein Bricklet hinter einem Isolator Bricklet ist immer an Position 'z'.
Eine Liste der Device Identifier Werte ist hier zu finden.
Callbacks können registriert werden um zeitkritische oder wiederkehrende Daten vom Gerät zu erhalten:
tinkerforge dispatch lcd-16x2-bricklet <uid> example
Die verfügbaren Callbacks werden weiter unten beschrieben.
Bemerkung
Callbacks für wiederkehrende Ereignisse zu verwenden ist immer zu bevorzugen gegenüber der Verwendung von Abfragen. Es wird weniger USB-Bandbreite benutzt und die Latenz ist erheblich geringer, da es keine Paketumlaufzeit gibt.
Ausgabe: |
|
---|
Dieser Callback wird ausgelöst, wenn eine Taste gedrückt wird. Der Parameter ist die Nummer der Taste.
Ausgabe: |
|
---|
Dieser Callback wird ausgelöst, wenn eine Taste losgelassen wird. Der Parameter ist die Nummer der Taste.