Modbus - LCD 16x2 Bricklet

Dies ist die Beschreibung des Modbus Protokolls für das LCD 16x2 Bricklet. Allgemeine Informationen über die Funktionen und technischen Spezifikationen des LCD 16x2 Bricklet sind in dessen Hardware Beschreibung zusammengefasst.

API

Eine allgemeine Beschreibung der Modbus Protokollstruktur findet sich hier.

Grundfunktionen

BrickletLCD16x2.write_line
Funktions-ID:
  • 1
Anfrage:
  • line – Typ: uint8, Wertebereich: [0 bis 1]
  • position – Typ: uint8, Wertebereich: [0 bis 15]
  • text – Typ: char[16]
Antwort:
  • keine Antwort

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.

BrickletLCD16x2.clear_display
Funktions-ID:
  • 2
Anfrage:
  • keine Nutzdaten
Antwort:
  • keine Antwort

Löscht alle Zeichen auf dem Display.

BrickletLCD16x2.backlight_on
Funktions-ID:
  • 3
Anfrage:
  • keine Nutzdaten
Antwort:
  • keine Antwort

Aktiviert die Hintergrundbeleuchtung.

BrickletLCD16x2.backlight_off
Funktions-ID:
  • 4
Anfrage:
  • keine Nutzdaten
Antwort:
  • keine Antwort

Deaktiviert die Hintergrundbeleuchtung.

BrickletLCD16x2.is_backlight_on
Funktions-ID:
  • 5
Anfrage:
  • keine Nutzdaten
Antwort:
  • backlight – Typ: bool

Gibt true zurück wenn die Hintergrundbeleuchtung aktiv ist, sonst false.

Fortgeschrittene Funktionen

BrickletLCD16x2.set_config
Funktions-ID:
  • 6
Anfrage:
  • cursor – Typ: bool, Standardwert: false
  • blinking – Typ: bool, Standardwert: false
Antwort:
  • keine Antwort

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.

BrickletLCD16x2.get_config
Funktions-ID:
  • 7
Anfrage:
  • keine Nutzdaten
Antwort:
  • cursor – Typ: bool, Standardwert: false
  • blinking – Typ: bool, Standardwert: false

Gibt die Konfiguration zurück, wie von set_config gesetzt.

BrickletLCD16x2.is_button_pressed
Funktions-ID:
  • 8
Anfrage:
  • button – Typ: uint8, Wertebereich: [0 bis 2]
Antwort:
  • pressed – Typ: bool

Gibt true zurück wenn die Taste gedrückt ist.

Wenn auf Tastendrücken und -loslassen reagiert werden soll, wird empfohlen die CALLBACK_BUTTON_PRESSED und CALLBACK_BUTTON_RELEASED Callbacks zu nutzen.

BrickletLCD16x2.set_custom_character
Funktions-ID:
  • 11
Anfrage:
  • index – Typ: uint8, Wertebereich: [0 bis 7]
  • character – Typ: uint8[8], Wertebereich: [0 bis 31]
Antwort:
  • keine Antwort

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).

BrickletLCD16x2.get_custom_character
Funktions-ID:
  • 12
Anfrage:
  • index – Typ: uint8, Wertebereich: [0 bis 7]
Antwort:
  • character – Typ: uint8[8], Wertebereich: [0 bis 31]

Gibt den benutzerdefinierten Buchstaben für den gegebenen Index zurück, wie von get_custom_character gesetzt.

Neu in Version 2.0.1 (Plugin).

BrickletLCD16x2.get_identity
Funktions-ID:
  • 255
Anfrage:
  • keine Nutzdaten
Antwort:
  • uid – Typ: char[8]
  • connected_uid – Typ: char[8]
  • position – Typ: char, Wertebereich: ['a' bis 'h', 'z']
  • hardware_version – Typ: uint8[3]
    • 0: major – Typ: uint8, Wertebereich: [0 bis 255]
    • 1: minor – Typ: uint8, Wertebereich: [0 bis 255]
    • 2: revision – Typ: uint8, Wertebereich: [0 bis 255]
  • firmware_version – Typ: uint8[3]
    • 0: major – Typ: uint8, Wertebereich: [0 bis 255]
    • 1: minor – Typ: uint8, Wertebereich: [0 bis 255]
    • 2: revision – Typ: uint8, Wertebereich: [0 bis 255]
  • device_identifier – Typ: uint16, Wertebereich: [0 bis 216 - 1]

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

BrickletLCD16x2.CALLBACK_BUTTON_PRESSED
Funktions-ID:
  • 9
Antwort:
  • button – Typ: uint8, Wertebereich: [0 bis 2]

Dieser Callback wird ausgelöst, wenn eine Taste gedrückt wird. Der Rückgabewert ist die Nummer der Taste.

BrickletLCD16x2.CALLBACK_BUTTON_RELEASED
Funktions-ID:
  • 10
Antwort:
  • button – Typ: uint8, Wertebereich: [0 bis 2]

Dieser Callback wird ausgelöst, wenn eine Taste losgelassen wird. Der Rückgabewert ist die Nummer der Taste.