PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : TCP Schnittstelle FMS Crusader



MasterOfDesaster
04.04.2008, 07:13
Hallo Zusammen,

nutzt jemand von euch die TCP-Schnittstelle des FMS Crusaders für eigene Applikationen ?

Ich möchte gerne einen eigene Client Applikation für den FMS-Crusader erstellen. Die Verbindung zum Crusader funktioniert auch schon, die Initialtelegramme kann ich empfangen nur momentan Übermittle ich kein Passwort.
Wenn ich die Dokumentation richtig verstanden habe, ignoriert der Server bei einem falschen Passwort den Client. (nach Übermittlung der Initialtelegramme!)

Nun meine Fragen:
Wie übermittle ich dem Server das Passwort ?
- Einfach nach erfolgreicher Verbindung übertragen ?
- Gibt es ein spezielles Format ?
- Hat jemand von euch schon mal so etwas gemacht und hat Erfahrung mit der TCP-Schnittstelle zum Crusader ?

Danke für euere Unterstützung !

haehnle
04.04.2008, 07:50
Hi,

durchsuch mal das Forum. Die Frage hatten wir schonmal.
Ansonsten EMail an mich.... aber erst suchen ;-)

Gruß,
Jochen

MasterOfDesaster
04.04.2008, 09:21
Alles klar, dann starte ich mal die Suche..... ;-)

MasterOfDesaster
04.04.2008, 09:33
Ich habe was gefunden und werde es mal ausprobieren:


Hi,

da muss nach dem PASS:ps noch ein Newline bzw. carriage return line feed
rein, dann sollte es klappen. Musst mal probieren, irgendwer aus dem
Forum hat sich daran schon probiert und hats auch hinbekommen!

Gruß,
Jochen


@ Jochen:

Das geht (denke ich) an deine Adresse:


Hallo Leute!

Ich hab ein kleines Problem mit der Netzwerkschnittstelle. Ich hab mir ja diverse Programme gebaut, die vom Crusader Daten über die TCP/IP Schnittstelle entgegennehmen und dann weiterverarbeiten. Dieses Programme hab ich jetzt so erweitert, dass ich mich damit auch auf FMS32 und POC32 verbinden kann. Und das Programm erkennt automatisch, welcher Dekoder auf der anderen Seite arbeitet.

Mit dem Crusader hab ich jetzt das Problem, dass dessen Schnittstelle gelinde gesagt bescheiden ist. ;-) Das größte Problem ist momentan die Passwortabfrage. Ich kann nämlich nicht erkennen, ob ich mich zu einem Crusader MIT Passwortschutz oder zu einem OHNE verbinde. Es kommt auch keine Abfrage nach dem Passwort, sondern es wird erwartet, dass das Passwort nach dem Verbinden "blind" gesendet wird. Blöderweise reagiert der Crusader aber auf Falscheingaben damit, dass die Verbindung beendet wird. Und das auch bei alten Versionen, die gar kein Passwort erwarten.

Ich würde also gerne eine Verbesserung des Crusaders anstoßen, die eigentlich nur für die interessant ist, die AddOns programmieren. Genau diese Leute sollen sich auch mal zu Wort melden hier und Ihren Senf dazu geben.

Die Verbesserungen im Detail :

- Beim Verbinden eines Clients sollte der Crusader an den Client automatisch einen Willkommenstext schicken, aus dem hervorgeht DASS es ein FMSCrusader ist und in welcher Version er vorliegt. Meinetwegen reicht es den String "# FMSCrusader V4.50" zu senden. Der String sollte von Version zu Version identisch sein, damit man den weiterverarbeiten kann um z.B. die Versionsnummer rauszulesen.

- Ob der Crusader zum Anmelden ein Passwort verlangt oder nicht sollte ebenfalls mit einem kurzem Befehl vom Server signalisiert werden. Meinetwegen durch senden des Strings "# Passwort :".
Dann weiß der Client nämlich DASS er ein Passwort senden soll. Beim Senden eines falschen Passworts darf der Crusader sich auch nicht beenden. Entweder es wird eine Fehlermeldung zurückgegeben, oder es passiert einfach gar nix.

- Beim Senden eines Befehls VOM Client ZUM Server darf dieser die Verbindung nicht einfach beenden. Sollte es sich um eine Fehleingabe handeln, kann diese ja einfach ignoriert werden.

Das sind meiner Meinung nach mal die Mindestanforderungen an die Schnittstelle, damit diese von externen AddOns ordentlich genutzt werden kann. Gerne würde ich es sehen, wenn es darüber hinaus noch weitere Verbesserungen im Datenprotokoll geben würde. Ich würde mir ähnliche Systeme wie bei FTP oder POP3 wünschen.

Eine richtig gute (meine Meinung) Kommunikation zwischen Client (C) und Server (S) könnte dann so aussehen :

S: 100 - Willkommen auf dem FMSCrusader-Server
S: 101 - V4.50
S: 200 - Bitte geben Sie das Passwort ein
C: 210 - *pasword*
S: 221 - Passwort falsch, bitte wiederholen
C: 210 - *password*
S: 220 - Passwort richtig.
.
.
.
C: 900 - Ping!! Server noch da?
S: 910 - Pong!! Klar bin ich noch da.
.
.
S: 500 - Daten einer ZVEI Auswertung (Wie bisher auch)
S: 510 - Daten einer FMS Auswertung (Wie bisher auch)
S: 520 - Daten einer POC Auswertung (Wie bisher auch)
S: 530 - Daten einer Nachrichtenübermittlung
.
.
C: Blablauiduddbdndn
S: 800 - Befehl unbekannt
C: 820 - Quit
S: 830 - Auf Wiedersehen

Hat den Vorteil, dass die Befehle als 3stellige Nummer übertragen werden und Client und Server eigentlich nur die Nummer auswerten brauchen um GANZ genau zu wissen, welcher Befehl das ist. Die Texte hinter dem Befehl sind eigentlich nur für die Optik. Weiter würden beliebig viele neue Befehle einfach durch hinzufügen einer neuen Nummer erstellt werden können.

Wenn sowas halt bei einer der nächsten Versionen umgesetzt werden könnte wär das wie Weihnachten. ;-) Ansonsten geb ich mich auch mit den 3 angesprochenen Mindestpunkten zufrieden. ;-)

Bis dahin!

Gruß Joachim


Ist in dieser Richtung was vorgesehen ?

MasterOfDesaster
07.04.2008, 07:35
Hallo Zusammen, das Paswortproblem ist gelöst !
Nach erfolgreicher Verbindung "PASS:pw" hinterherschicken und der Server akzeptiert mich als Client.

Soweit so gut.

Allerdings habe ich jetzt ein anders Problem:
1. Bei längerer Inaktivität sendet der Server ein "PING"-Telegramm. Was kann ich damit anfangen. Als Heartbeat ist es ja denkbar ungeeignet da es erst nach ca. 15 min. kommt.
Wann sendet es der Server ?

2. Wenn ich länger mit dem Server verbunden bin( t > 1h) reisst auf einmal die Verbindung ab, d.h. die Anzeige im Server "Anzahl der verbunden Clients" wir um 1 verringert.
Hat das auch was mit längerer Inaktivität zu tun. Muß der Client ab und zu dem Server ein Telegramm schicken so nach dem Motto "Hurra wir leben noch" und wenn er das nicht bekommt trennt er die Verbindung ?

Im Forum habe ich dazu nichts gefunden.

Vielleicht kann mir noch jemand einen Tipp geben im Umgang mit der TCP-Schnittstelle des Crusaders ?

haehnle
07.04.2008, 19:07
Hi,

warum sollte es als heartbeat ungeeignet sein??
Kommt das wirklich nur alle 15 Minuten?? Dachte dat kommt öfters!

Gruß,
Jochen

MasterOfDesaster
07.04.2008, 22:16
Hallo,

also eine Regel habe ich für den PING noch nicht feststellen können. Ich werden die Telegrame mal emehrere Stunden aufzeichnen. Vielleicht finde ich dann was.

Braucht der Server auch ein "Alive"-Signal vom Client ??

haehnle
08.04.2008, 19:05
Hi,

nein. Die eine Richtung reicht aus!

Gruß,
Jochen

MasterOfDesaster
09.04.2008, 12:53
Also zur Info:

Der Ping kommt alle 15 min:

18:00 --> 18:15 --> 18:30 -> usw.

haehnle
09.04.2008, 18:33
Also bisher hatte ich mit dem 15 minütigen PING aber keinerlei Probleme...
Wenn du welche hast, kann ich das auch auf kürzer einbauen, kein Problem.
Schreibst mir ma, was für nen hearbeat du benötigst!

Gruß,
Jochen

MasterOfDesaster
14.04.2008, 12:27
Jetzt weiß ich ja das der PING zu der Viertelstunde kommt.
Ich denke damit kann ich leben.

haehnle
14.04.2008, 19:06
Ok. Klingt gut für mich!

Gruß,
Jochen