no way to compare when less than two revisions
Differences
This shows you the differences between two versions of the page.
Last revision | |||
— | hfg-treppe [2013/05/30 22:30] – created martin | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ==== WTF? ==== | ||
+ | Die HFG-Treppe (siehe auch: https:// | ||
+ | Praktischerweise gibt es aber vom Hersteller auch eine Dokumentation zu dem Protokoll, was der Rechner über Seriell mit dem Modem spricht, welche dann die Kommandos zum " | ||
+ | |||
+ | Außerdem gibt es auch eine Python-Library, | ||
+ | |||
+ | ==== Nützliches ==== | ||
+ | === Steuerrechner === | ||
+ | * User ist Administrator (?) (bzw. das letzte was im Anmeldedialog steht). | ||
+ | * Passwort: foo5bar (steht auch mit Bleistift auf der Tastatur) | ||
+ | |||
+ | === Lawo Iluminator-Software === | ||
+ | * User: Administrator | ||
+ | * Passwort: admin | ||
+ | * Gibt auch noch eine Hand voll weiterer User mit unbekanntem Passwort | ||
+ | |||
+ | === Topographie === | ||
+ | * Ein Steuerrechner an der Treppe | ||
+ | * 3 Slaves | ||
+ | * 1 (0x01) oben | ||
+ | * 11 Zeilen | ||
+ | * 2 (0x02) mitte | ||
+ | * 11 Zeilen | ||
+ | * 3 (0x03) unten | ||
+ | * **10 Zeilen (!)** | ||
+ | * Jedes Panel hat 7 x 112 Pixel | ||
+ | * Am PC ist noch eine Anzeige 4 definiert, welche aber als Dummy agiert und nicht aktiv angesteuert wird. | ||
+ | |||
+ | ==== Definitionen ==== | ||
+ | === Ersetzungen === | ||
+ | * Austauschzeichen 0x7D XOR 0x20 | ||
+ | * Rahmenzeichen wird nicht ersetzt | ||
+ | * 0x7D -> 0x7D 0x5D | ||
+ | * 0x7E -> 0x7D 0x5E | ||
+ | |||
+ | === Rahmenzeichen === | ||
+ | * Rahmen beginnt und endet mit 7E | ||
+ | * wird nie ersetzt | ||
+ | |||
+ | === Längenbyte === | ||
+ | * Länge des kompletten Telegrams von Steuerbyte (inkl.) bis Prüfsumme (exkl.) | ||
+ | |||
+ | === Steuerbyte === | ||
+ | * 0x43 Datentelegramm | ||
+ | |||
+ | === Slaveadresse === | ||
+ | * 0x01 bis 0xFE | ||
+ | * 0xFF alle Anzeigen (Broadcast, keine Antworten!) | ||
+ | * 0x00 nicht verwenden | ||
+ | |||
+ | === Informationsbyte === | ||
+ | * Anzahl der Datensätze im Datenfeld | ||
+ | * 0x00 bis 0x3F | ||
+ | * maximal 63 Datensätze mit insgesamt max. 251 Bytes) | ||
+ | * vgl. Kapitel 3 | ||
+ | |||
+ | === Funktionsgruppe === | ||
+ | * 0xB9 | ||
+ | * Datensätze mit Text-, Zeichensatz- oder Graphikinformationen | ||
+ | * vgl. Kapitel 3.2 | ||
+ | * 0x04 | ||
+ | * Datensätze mit Wechselverkehrszeichen mit Textreferenznummern | ||
+ | * vgl. Kapitel 3.7 | ||
+ | |||
+ | === Datensatzlänge === | ||
+ | * von Interne Adresse (inkl.) bis Ende des Datensatzes | ||
+ | |||
+ | === Datensatzkennung (alles Funktionsgruppe 0xB9) === | ||
+ | * 0x32 Zeichensatzauswahl (vgl. Kapitel 3.2) | ||
+ | * 0x30 Textausgabe (vgl. Kapitel 3.3.1) | ||
+ | * 0x31 Graphikausgabe (vgl. Kapitel 3.4) | ||
+ | * 0x40 Steuerung Ausgabeport (vgl. Kapitel 3.5) | ||
+ | * 0x50 Uhrzeit- und Datumsübertragung (vgl. Kapitel 3.6) | ||
+ | |||
+ | == 0x30 Textausgabe == | ||
+ | * 11 Datensatzlänge (17 Bytes) | ||
+ | * 01 Interne Adresse | ||
+ | * 30 Datensatzkennung (Textausgabe) | ||
+ | * XX Textsteuerbyte | ||
+ | |||
+ | ^ | ||
+ | ^ Dez ^ Hex ^ 7654 3210 ^ 7-4 ^ ^ | ||
+ | | 16 | 0x10 | 0001 0000 | 1 | 0x0 Löschen vor Beschreiben, | ||
+ | | 17 | 0x11 | 0001 0001 | 1 | 0x1 Nicht löschen vor Beschreiben, | ||
+ | | 18 | 0x12 | 0001 0010 | 1 | 0x2 Nicht löschen vor Beschreiben, | ||
+ | | 19 | 0x13 | 0001 0011 | 1 | 0x3 Löschen vor Beschreiben, | ||
+ | | 20 | 0x14 | 0001 0100 | 1 | 0x4 Gelb vor Beschreiben, | ||
+ | | 21 | 0x15 | 0001 0101 | 1 | 0x5 Schachbrett vor Beschreiben, | ||
+ | |||
+ | * YY YY Horizontale Feldposition (y), 0x0000 bis 0xFFFF | ||
+ | * XX XX Vertikale Feldposition (x), 0x0000 bis 0xFFFF | ||
+ | * BB BB Feldbreite (b), 0x0000 bis 0xFFFF | ||
+ | * HH Feldhöhe (h), 0x00 bis 0xFF | ||
+ | * AA Feldattribut | ||
+ | * 0x00 Links und oben bündig | ||
+ | * 0x10 Links und oben bündig, aber blinkend | ||
+ | * 0x20 Lauftext | ||
+ | * LL Textlänge (max. 127 Zeichen), 0x00 bis 0xFF | ||
+ | * BB Buchstabe | ||
+ | * BB Buchstabe | ||
+ | * [...] | ||
+ | |||
+ | == 0x32 Zeichensatzauswahl == | ||
+ | * 0x03 Datensatzlänge (3) | ||
+ | * 0x01 Interne Adresse | ||
+ | * 0x32 Datensatzkennung (Zeichensatzauswahl) | ||
+ | * 0xZZ Zeichensatznummer + Spacing + Transparenz | ||
+ | * Bitpositionen: | ||
+ | * Bit 7: Transparenz | ||
+ | * 1 Textzeichen sind transparent, | ||
+ | * 0 Nicht transparent, | ||
+ | * Bit 65: Spacing | ||
+ | * Abstand zwischen zwei Zeichen + 1 | ||
+ | * 00 (0x0) eine Leerspalte zwischen zwei Zeichen | ||
+ | * 01 (0x1) zwei Leerspralten zwischen zwei Zeichen | ||
+ | * 10 (0x2) drei Leerspralten zwischen zwei Zeichen | ||
+ | * 11 (0x3) vier Leerspralten zwischen zwei Zeichen | ||
+ | * Bit 43210: Nummer des Zeichensatzes in der Anzeige | ||
+ | * 00000 (0x00) bis 11111 (0x1F) | ||
+ | * Liste der Zeichensätze muss bei LLE angefordert werden | ||
+ | |||
+ | == 0x50 Uhrzeit- und Datumsübertragung == | ||
+ | * 0x09 Datensatzlänge | ||
+ | * 0x01 Interne Adresse | ||
+ | * 0x50 Datensatzkennung | ||
+ | * 0xYYYY Jahr, 0000 bis 65536, 0x00 bis 0xFFFF, 2 Bytes! | ||
+ | * 0xMM Monat, 1 bis 12, 0x01 bis 0x0C | ||
+ | * 0xDD Tag, 1 bis 31, 0x01 bis 0x1F | ||
+ | * 0xHH Stunden, 0 bis 23, 0x00 bis 0x17 | ||
+ | * 0xMM Minuten, 0 bis 59, 0x00 bis 0x3B | ||
+ | * 0xSS Sekunden, 0 bis 59, 0x00 bis 0x3B | ||
+ | |||
+ | === Prüfsumme === | ||
+ | * Addition aller Bytes im Telegram ab dem Steuerbyte (inkl.) bis ausschließlich der Prüfsumme selbst, moduloa 0x100 | ||
+ | * 7E 68 0F 0F 68 43 FF 00 01 B9 09 01 50 DC 07 06 0A 05 1C 15 7F 16 7E | ||
+ | * (43+FF+00+01+B9+09+01+50+DC+07+06+0A+05+1C+15) mod 100 | ||
+ | |||
+ | ==== Datenblöcke === | ||
+ | === Block 1 === | ||
+ | 7E 68 0F 0F 68 43 FF 00 01 B9 09 01 50 DC 07 06 0A 05 1C 15 7F 16 7E | ||
+ | * 7E Rahmenzeichen | ||
+ | * 68 Startzeichen | ||
+ | * 0F Längenbyte (15 Bytes) | ||
+ | * 0F Längenbyte Wiederholung | ||
+ | * 68 Startzeichen | ||
+ | * 43 Steuerbyte | ||
+ | * FF Slaveadresse (Alle) | ||
+ | * 00 OSI3-Byte (fix) | ||
+ | * 01 Informationsbyte Anzahl der Datensätze im Datenfeld (1 Datensatz) | ||
+ | * B9 Funktionsgruppe (Text/ | ||
+ | * 09 Datensatzlänge (9 Byte) | ||
+ | * 01 Interne Adresse | ||
+ | * 50 Datensatzkennung (Uhrzeit- und Datumsübertragung) | ||
+ | * DC 07 Jahr | ||
+ | * 06 Monat | ||
+ | * 0A Tag | ||
+ | * 05 Stunden | ||
+ | * 1C Minuten | ||
+ | * 15 Sekunden | ||
+ | * 7F Prüfsumme | ||
+ | * 16 Stopzeichen | ||
+ | * 7E Rahmenzeichen | ||
+ | |||
+ | === Block 2 === | ||
+ | 7E 68 A6 A6 68 43 01 00 0A B9 03 01 32 87 11 01 30 13 00 00 00 00 1C 00 | ||
+ | 07 00 05 6F 62 65 6E 31 11 01 30 12 00 00 07 00 1E 00 07 00 05 6F 62 65 | ||
+ | 6E 32 11 01 30 12 00 00 0E 00 1D 00 07 00 05 6F 62 65 6E 33 11 01 30 12 | ||
+ | 00 00 15 00 1E 00 07 00 05 6F 62 65 6E 34 11 01 30 12 00 00 1C 00 1E 00 | ||
+ | 07 00 05 6F 62 65 6E 35 11 01 30 12 00 00 23 00 1E 00 07 00 05 6F 62 65 | ||
+ | 6E 36 11 01 30 12 00 00 2A 00 1E 00 07 00 05 6F 62 65 6E 37 11 01 30 12 | ||
+ | 00 00 31 00 1E 00 07 00 05 6F 62 65 6E 38 0C 01 30 11 00 00 00 00 00 00 | ||
+ | 00 00 00 88 16 7E | ||
+ | |||
+ | * 7E Rahmenzeichen | ||
+ | * 68 Startzeichen | ||
+ | * A6 Längenbyte | ||
+ | * A6 Längenbyte Wiederholung | ||
+ | * 68 Startzeichen | ||
+ | * 43 Steuerbyte | ||
+ | * 01 Slaveadresse (Anzeige 1) | ||
+ | * 00 OSI-Byte (fix) | ||
+ | * 0A Informationsbyte Anzahl der Datensätze im Datenfeld (10 Datensätze) | ||
+ | * B9 Funktionsgruppe (Text/ | ||
+ | * (Datensatz 1) | ||
+ | * 03 Datensatzlänge (3 Byte) | ||
+ | * 01 Interne Adresse | ||
+ | * 32 Datensatzkennung (Zeichensatzauswahl) | ||
+ | * 87 Zeichensatznummer + Spacing + Transparenz | ||
+ | * (Datensatz 2) | ||
+ | * 11 Datensatzlänge | ||
+ | * 01 Interne Adresse | ||
+ | * 30 Datensatzkennung (Textausgabe) | ||
+ | * 13 Textsteuerbyte (Löschen vor Beschreiben, | ||
+ | * 00 00 Horizontale Feldposition (y = 0) | ||
+ | * 00 00 Vertikale Feldposition (x = 0) | ||
+ | * 1C 00 Feldbreite (b = 7168) | ||
+ | * 07 Feldhöhe (h = 7) | ||
+ | * 00 Feldattribut (links und oben bündig) | ||
+ | * 05 Textlänge (5 Zeichen) | ||
+ | * 6F o | ||
+ | * 62 b | ||
+ | * 65 e | ||
+ | * 6E n | ||
+ | * 31 1 | ||
+ | * (Datensatz 3) | ||
+ | * 11 Datensatzlänge | ||
+ | * 01 Interne Adresse | ||
+ | * 30 Datensatzkennung (Textausgabe) | ||
+ | * 12 Textsteuerbyte (Nicht löschen vor Beschreiben, | ||
+ | * 00 00 Horizontale Feldposition (y = 0) | ||
+ | * 07 00 Vertikale Feldposition (x = 1792) | ||
+ | * 1E 00 Feldbreite (b = 7680) | ||
+ | * 07 Feldhöhe (h = 7) | ||
+ | * 00 Feldattribut (links und oben bündig) | ||
+ | * 05 Textlänge (5 Zeichen) | ||
+ | * 6F o | ||
+ | * 62 b | ||
+ | * 65 e | ||
+ | * 6E n | ||
+ | * 32 2 | ||
+ | * (Datensatz 4) | ||
+ | * 11 Datensatzlänge | ||
+ | * 01 Interne Adresse | ||
+ | * 30 Datensatzkennung (Textausgabe) | ||
+ | * 12 Textsteuerbyte (Nicht löschen vor Beschreiben, | ||
+ | * 00 00 Horizontale Feldposition (y = 0) | ||
+ | * 0E 00 Vertikale Feldposition (x = 3584) | ||
+ | * 1D 00 Feldbreite (b = 7424) | ||
+ | * 07 Feldhöhe (h = 7) | ||
+ | * 00 Feldattribut (links und oben bündig) | ||
+ | * 05 Textlänge (5 Zeichen) | ||
+ | * 6F o | ||
+ | * 62 b | ||
+ | * 65 e | ||
+ | * 6E n | ||
+ | * 33 3 | ||
+ | * (Datensatz 5) | ||
+ | * 11 Datensatzlänge | ||
+ | * 01 Interne Adresse | ||
+ | * 30 Datensatzkennung (Textausgabe) | ||
+ | * 12 Textsteuerbyte (Nicht löschen vor Beschreiben, | ||
+ | * 00 00 Horizontale Feldposition (y = 0) | ||
+ | * 15 00 Vertikale Feldposition (x = 5376) | ||
+ | * 1E 00 Feldbreite (b = 7680) | ||
+ | * 07 Feldhöhe (h = 7) | ||
+ | * 00 Feldattribut (links und oben bündig) | ||
+ | * 05 Textlänge (5 Zeichen) | ||
+ | * 6F o | ||
+ | * 62 b | ||
+ | * 65 e | ||
+ | * 6E n | ||
+ | * 34 4 | ||
+ | * (Datensatz 6) | ||
+ | * 11 Datensatzlänge | ||
+ | * 01 Interne Adresse | ||
+ | * 30 Datensatzkennung (Textausgabe) | ||
+ | * 12 Textsteuerbyte (Nicht löschen vor Beschreiben, | ||
+ | * 00 00 Horizontale Feldposition (y = 0) | ||
+ | * 1C 00 Vertikale Feldposition (x = 7168) | ||
+ | * 1E 00 Feldbreite (b = 7680) | ||
+ | * 07 Feldhöhe (h = 7) | ||
+ | * 00 Feldattribut (links und oben bündig) | ||
+ | * 05 Textlänge (5 Zeichen) | ||
+ | * 6F o | ||
+ | * 62 b | ||
+ | * 65 e | ||
+ | * 6E n | ||
+ | * 35 5 | ||
+ | * (Datensatz 7) | ||
+ | * 11 Datensatzlänge | ||
+ | * 01 Interne Adresse | ||
+ | * 30 Datensatzkennung (Textausgabe) | ||
+ | * 12 Textsteuerbyte (Nicht löschen vor Beschreiben, | ||
+ | * 00 00 Horizontale Feldposition (y = 0) | ||
+ | * 23 00 Vertikale Feldposition (x = 8960) | ||
+ | * 1E 00 Feldbreite (b = 7680) | ||
+ | * 07 Feldhöhe (h = 7) | ||
+ | * 00 Feldattribut (links und oben bündig) | ||
+ | * 05 Textlänge (5 Zeichen) | ||
+ | * 6F o | ||
+ | * 62 b | ||
+ | * 65 e | ||
+ | * 6E n | ||
+ | * 36 6 | ||
+ | * (Datensatz 8) | ||
+ | * 11 Datensatzlänge | ||
+ | * 01 Interne Adresse | ||
+ | * 30 Datensatzkennung (Textausgabe) | ||
+ | * 12 Textsteuerbyte (Nicht löschen vor Beschreiben, | ||
+ | * 00 00 Horizontale Feldposition (y = 0) | ||
+ | * 2A 00 Vertikale Feldposition (x = 10752) | ||
+ | * 1E 00 Feldbreite (b = 7680) | ||
+ | * 07 Feldhöhe (h = 7) | ||
+ | * 00 Feldattribut (links und oben bündig) | ||
+ | * 05 Textlänge (5 Zeichen) | ||
+ | * 6F o | ||
+ | * 62 b | ||
+ | * 65 e | ||
+ | * 6E n | ||
+ | * 37 7 | ||
+ | * (Datensatz 9) | ||
+ | * 11 Datensatzlänge | ||
+ | * 01 Interne Adresse | ||
+ | * 30 Datensatzkennung (Textausgabe) | ||
+ | * 12 Textsteuerbyte (Nicht löschen vor Beschreiben, | ||
+ | * 00 00 Horizontale Feldposition (y = 0) | ||
+ | * 31 00 Vertikale Feldposition (x = 12544) | ||
+ | * 1E 00 Feldbreite (b = 7680) | ||
+ | * 07 Feldhöhe (h = 7) | ||
+ | * 00 Feldattribut (links und oben bündig) | ||
+ | * 05 Textlänge (5 Zeichen) | ||
+ | * 6F o | ||
+ | * 62 b | ||
+ | * 65 e | ||
+ | * 6E n | ||
+ | * 38 8 | ||
+ | * (Datensatz 10) | ||
+ | * 0C Datensatzlänge | ||
+ | * 01 Interne Adresse | ||
+ | * 30 Datensatzkennung (Textausgabe) | ||
+ | * 11 Textsteuerbyte (Nicht löschen vor Beschreiben, | ||
+ | * 00 00 Horizontale Feldposition (y = 0) | ||
+ | * 00 00 Vertikale Feldposition (x = 0) | ||
+ | * 00 00 Feldbreite (b = 0) | ||
+ | * 00 Feldhöhe (h = 0) | ||
+ | * 00 Feldattribut (links und oben bündig) | ||
+ | * 05 Textlänge (0 Zeichen) | ||
+ | * 88 Prüfsumme | ||
+ | * 16 Stopzeichen | ||
+ | * 7E Rahmenzeichen |