 |
|
 |
 |
 |
 |
 |
 |
|
Spezial Handbuch (für Profis) |
|
|
|
|
|
Die nachfolgenden Daten und Hinweise sind in erster Linie für Programmierer und Profis gedacht. Für den normalen Betrieb des Fan-O-Matics sind sie nicht notwenig !
|
|
|
Beschreibung der Kommunikation des Fancontrollers |
|
|
Es stehen drei Möglichkeiten zur Kommunikation zur Verfügung:
1. serielle Schnittstelle: Die Software tauscht Daten direkt über die serielle Schnittstelle. Dabei kann die Software „FanControl“ zur Steuerung der anderen Funktionen nicht benutzt werden.
2. Datenaustausch über FanControl: Dabei kommuniziert die Software mit dem Programm „FanControl“. Dieses gibt die Daten an das Display weiter und stellt Daten über Tastendruck und Verbindungsstatus zur Verfügung. Diese Version ist langsamer, da der Datentausch mit „FanControl“ Vorrang hat.
3. Steuerung über ActiveX Control Dieses Control kann in jede Software eingebunden werden, die die Verwendung von ActiveX Control unterstützt. |
|
|
Beschreibung der seriellen Schnittstelle |
|
|
Die Schnittstelle arbeitet fest mit 19200Baud, 8 bit, 1 Stoppbit, keine Parität.
1. Verbindung prüfen Der PC sendet folgende Daten: 0x55 0xFF 0x07 0x01 0x00 0x00 0x00 (Startbyte, Broadcast, Anzahl Bytes, Sende DeviceID, Data, Data, Data)
Innerhalb 250ms muss der Display-Controller antworten: 0x55 0x08 0x05 0xFF 0xXX (Startbyte, ID Fancontroller, Anzahl Bytes, Ist DeviceID, Softwareversion)
Die Verbindung sollte zyklisch (1-5sec) abgefragt werden, um eine Unterbrechung festzustellen.
2. Text senden PC sendet: 0x55 0x08 0x18 ZE Z1….Z19 ZE = 0x40 für erste Zeile, 0x41 für zweite Zeile Z1-Z19 = Textzeichen, immer 20 Zeichen senden Sonderzeichen müssen vor dem Senden in den zum Display passenden Code umgewandelt werden.
Nach Verarbeitung der Daten antwortet der Controller: 0x55 0x08 0x05 0x40 ZE ZE = 0 erste Zeile ZE = 1 zweite Zeile
Der Controller benötigt max. 100ms, um die Daten zu verarbeiten. Es kann immer nur eine Zeile geschickt werden. Danach muss auf Antwort oder mindestens 100ms gewartet werden.
3. Tastendruck Im Displaymodus sendet der Controller jeden Tastendruck zum PC. Der Controller sendet: 0x55 0x08 0x05 0x60 TC TC = 0x01 ENTER-Taste TC = 0x02 ESC-Taste TC = 0x04 MINUS-Taste TC = 0x08 PLUS-Taste |
|
|
Beschreibung der Kommunikation mit « FanControl » |
|
|
Hierzu werden Windows Nachrichten benutzt. Dazu ist zuerst das Handle des Fensters „FanControl“ zu bestimmen. In VC++ zum Beispiel wird das so gemacht: HWND FanControl; FanControl= ::FindWindow(NULL,"FanControl"); if(FanControl == NULL) { Fehler....., Fenster nicht gefunden }
1. Verbindung prüfen Das Programm sendet: ::SendMessage(FanControl,WM_USER+0x0100,0,0); Ist der Rückgabewert = 0, besteht keine Verbindung zum Controller. Ist er = 1 , ist der Controller verbunden. Der Wert WM_USER entspricht 0x0400.
2. Text senden: Es wird jedes Zeichen einzeln geschickt. Zeile 1 senden:
for(int i=0;i<20;i++) ::SendMessage(FanControl,WM_USER+0x0101,i,Text1.GetAt(i));
Zeile 2 senden: for(int i=0;i<20;i++) ::SendMessage(FanControl,WM_USER+0x0102,i,Text1.GetAt(i));
Auch hier ist darauf zu achten, das zwischen den Zeilen mindestens 100ms Zeit liegen. Hier erfolgt keine Antwort auf die gesendete Textzeile.
3. Tastendruck Das Programm sendet: ::SendMessage(FanControl,WM_USER+0x0103,0,0); Der Rückgabewert entspricht dem Tastencode oder Null, wenn keine Taste betätigt wurde. Hier ist ein Polling im entsprechenden Zeitintervall nötig. |
|
|
Beschreibung des ActiveX Control |
|
|
Dieses Control stellt eine einfache Schnittstelle zum Displaycontroller dar. Es stehen folgende Funktionen zur Verfügung:
StartConnection Diese Funktion baut die Verbindung zum Controller auf. Sie muß nach dem Einbinden des Controls einmal aufgerufen werden. IsConnected Diese Funktion fragt den Verbindungsstatus ab. Wird 0 zurückgegeben, ist der Controller nicht verbunden, Rückgabewert = 1 bedeutet, Verbindung ist aktiv.
SetPort Hier wird die Nummer der Com-Schnittstelle eingestellt. Voreingestellt ist Com 1. Gültig ist 1 4 .
SetText1 , SetText2 Der zuschreibende Text wird übergeben. Hierbei übernimmt das Control das Timing des Sendens.
GetKey Diese Funktion gibt den zuletzt empfangenen Tastencode zurück. Null wird zurückgegeben, wenn seit der letzten Abfrage keine Taste betätigt wurde. |
|
 |
|
 |