Home

News

Schnelleinstieg

Hintergrund

Doku

Bilder

Download

Forum

Kontakt

ApplikationsKommandos

Alle Applikationen ab v3.x implementieren einige Kommandos, die von jeder Applikationssoftware, unabhängig von deren speziellen Funktionalität, verstanden werden. Die Kommandonummer für applikationsspezifische Kommandos beginnt bei 0x00 und ist abhängig von der eingesetzten Applikationsart. Für Applikationskommandos beginnt die Kommandonummer ab 0xA0. Die einzelnen Applikationskommandos sind im Folgenden aufgeführt.

Sämtliche Kommandos sind an die CAN-ID der anzusprechenden Applikation zu richten.

InfotextSchreiben (0xA0)

InfotextSchreiben dient zum Ablegen von ASCII-Texten, die die Applikation näher beschreiben. Dieser Text kann z.B. von einer PC-Applikation ausgelesen und angezeigt werden oder ein Statusdisplay kann z.B. direkt den Verwendungszweck eines Relais ausgeben. Somit ist keine eigene Datenbasis für die einzelnen Applikationen/Komponenten notwendig. Der Infotext wird im Knoteneigenen EEPROM abgelegt und muß mittels InfotextSchreiben übergeben werden. Ein direktes Beschreiben z.B. mittels Knotenbefehl FernEEPROMSchreiben funktioniert nicht, da der Speicherplatz im EEPROM von der jeweiligen Applikation abhängt.
Die einzelnen ASCII-Zeichen werden in mehreren CAN-Telegrammen zu je 5Nutzdatenbytes (ASCII-Zeichen) übertragen. Dazu besteht ein Telegramm neben der Applikationskommandonr.(0xA0), und dem InfotextTyp, auch aus einer Sequenznummer/Offset, die die 5er Blocks fortlaufend durchnummeriert. Der InfotextTyp "kurz" beschreibt die Funktion der Applikation in max. 10 Zeichen. Der InfotextTyp "lang" reserviert 40 Zeichen für eine ausführlichere Beschreibung. Ist der abzuspeichernde Text kürzer als der zur Verfügung stehende Speicherplatz, so muß die Zeichenkette mit 0x00 '\0' abgeschlossen werden.

Byte0 Byte1 Byte2 Byte3 Byte4 Byte5 Byte6 Byte7
Komanndonr. InfotextTyp Sequenznr./
Offset
1. ASCII-Zeichen 2. ASCII-Zeichen 3. ASCII-Zeichen 4. ASCII-Zeichen 5. ASCII-Zeichen
0xA0 0x00: InfotextKurz
0x01: InfotextLang
0-1
0-7
x x x x x

Mit der Übertragung des letzten 5er-Blocks (genauer: mit dem Eintreffen des Telgrammes mit der Sequenznr/Offset 1 bzw. 7) wird der übermittelte Text ins EEPROM gespeichert. Wurden vorhergehende Telegramme aus irgendeinem Grund nicht übermittelt oder gingen "verloren", dann entstehen Inkonsistenzen im EEPROM. Das korrekte Beschreiben ist also mit dem Rücklesen (InfotextLesen) sicherzustellen.

Beispiele für abgelegte Texte:
InfotextKurz: "Temp außen"; InfotextLang: "Außentemperatur"
InfotextKurz: "Relais 01"; InfotextLang: "Schreibtischlampe"
InfotextKurz: "Roll Schlz"; InfotextLang: "Rolladen Schlafzimmer"

Beispiel:
Es soll der Kurztext "Relais 1" abgelegt werden:
---- Kurz Seq0 --R- --e- --l- --a- --i-
0xA0 0x00 0x00 0x52 0x65 0x6C 0x61 0x69

---- Kurz Seq1 --s- -- - --1- -\0- ----
0xA0 0x00 0x01 0x73 0x00 0x00 0x00 0x00

 

InfotextLesen (0xA1)

InfotextLesen liefert den hinterlegten Infotexte der Applikation zurück Der InfotextTyp und die CanId, auf der eine Antwort erwartet wird, ist anzugeben.

Byte0 Byte1 Byte2 Byte3
Komanndonr. InfotextTyp Antwort-CanId high Antwort-CanId low
0xA1 0x01: InfotextKurz
0x02: InfotextLang
   

Daraufhin sendet die Applikation ihre Antwort an die übergebene CAN-ID in folgendem Format:

Byte0 Byte1 Byte2 Byte3 Byte4 Byte5 Byte6 Byte7
Komanndonr. InfotextTyp Sequenznr./
Offset
1. ASCII-Zeichen 2. ASCII-Zeichen 3. ASCII-Zeichen 4. ASCII-Zeichen 5. ASCII-Zeichen
0xA1 0x00: InfotextKurz
0x01: InfotextLang
0-1
0-7
x x x x x

Beispiel:
Ein Knoten möchte den InfotextLang aus einer Applikation auslesen:
---- Lang IDhi IDlo
0xA1 0x01 0x00 0xF5

Antwort der angesprochenen Applikation auf der übergebenen CanId:
---- Typ- Seq- ---- ---- ---- ---- ----

0xA1 0x01 0x00 --R- --e- --l- --a- --i-
0xA1 0x01 0x01 --s- -- - --S- --c- --h-
0xA1 0x01 0x02 --r- --e- --i- --b- --t-
0xA1 0x01 0x03 --i- --s- --c- --h- --l-
0xA1 0x01 0x04 --a- --m- --p- --e- -\0-
0xA1 0x01 0x05 -\0- -\0- -\0- -\0- -\0-
0xA1 0x01 0x06 -\0- -\0- -\0- -\0- -\0-
0xA1 0x01 0x07 -\0- -\0- -\0- -\0- -\0-