Hallo zusammen,
Willi, vielen Dank für deine ausführlichen Worte, denen ich zu 100% zustimme, dennoch wenige Worte ergänze:
Fernschreiber hat geschrieben: ↑Mi 5. Aug 2020, 03:59
Im i-Telex sind durch Tastwahl und Nrs-Wahl bzw. an/abschalten von Datum/Zeit die unterschiedlichsten Kombinationen möglich. Ein externes System wie ein Dienst muss bei Anruf damit rechnen, das die Endstelle eine KG-Abfrage schickt oder auch nicht. Ruft ein Dienst eine Rufnummer an, kann ein Datum/Zeit kommen oder nicht. Die Einzig verlässliche Abhilfe , um dieses Durcheinander zu regeln, kann nur in der Teilnehmerserverdatei liegen. Dort müsste eine Kennung im Datensatz liegen welche zu Steuerungszwecken verwendet werden kann; z.B. Anschluss ist ein Dienst, KG-Abfrage unterbinden.
Prinzipiell ein guter Ansatz, aber dann müssen die "Flags" in der Teilnehmerserver-Datei und die persönlichen Einstellungen "synchronisiert" werden. Zu Zeiten der Bundespost denkbar, heute möchte ich das nicht mehr machen.
Fernschreiber hat geschrieben: ↑Mi 5. Aug 2020, 03:59
Für mich stellt sich momentan die Frage, welche Zeitspanne ist für Datum/Zeit vorgesehen und welches Zeitfenste schliesst sich daran für die KG-Abfrage an. Diese Zeiten könnte man im Diensteserver berücksichtigen um Pausen einzulegen und passend immer wieder die Zeichsätze passend zu stellen.
Die erste Frage ist leicht zu beantworten:
Das Datum wird von der Ethernet-Karte (einstellbar) gesendet, sobald der angewählte Fernschreiber betriebsbereit ist. Und das kann zwischen 0 und 8 Sekunden dauern. Warum so lange? Wenn der angewählte Fs im Lokalbetrieb ist, dann geht erst die Schnarre los und nach X Sekunden (habe schon mal 5 Sekunden gemessen) wird erst von Lokalbetrieb auf Anrufbetrieb umgeschaltet. Um auf der sicheren Seite zu sein, ist das Timeout dafür bei der Ethernetkarte 8 Sekunden. Falls in dieser Zeit der Fernschreiber nicht anspringt (keine Netzspannung), dann kommt anstelle des Datums die "Abweisung" mit DER.
Bei Tastaturwahl wird der WerDa-Code von der Schnittstellenkarte (also TW39 oder ED1000) gesendet, sobald die Schnittstellenkarte von der Ethernetkarte das Zeichen "Verbindung steht" empfangen hat und danach 0,5 Sekunden vergangen sind.
Es wird zweimal Zi und ein WerDa gesendet. Falls von der Gegenstelle nichts als Antwort kommt (pure Bu-Umschaltungen werden ignoriert), dann wird nach 5 Sekunden erneut Zi+Zi+Werda gesendet.
Sobald selbst geschrieben wird oder tatsächlich sinnvolle Zeichen von der Gegenstelle kommen, wird die "WerDa-Automatik" abgeschaltet.
Dieser Algorithmus wurde im laufe der Zeit mehrfach geändert, kann also im Detail abweichen.
(PS: Glücklich bin ich damit selbst nicht mehr, aber nun ist es mal da und wie Willi treffend schreibt, sollte jeder "Server" damit klarkommen)
Meine Empfehlungen lauten:
Server-Dienste (also die, die angerufen werden), sollten nach der Anwahl erstmal 1,5 Sekunden "still" sein. In dieser Zeit sollte ein ggf. gesendetes "Automatik-WerDa" angekommen sein. Auf das WerDa darf auch mit dem "normalen" Begrüßungstext geantwortet werden.
Alle Dienste, die Benutzereingaben abfragen, sollten WerDa ignorieren.
Bei einer Benutzereingabe sollte der "Fragetext" gedruckt werden, dann sollten die ACK-Telegramme ausgewertet werden. Solange der ACK-Zähler nicht bestätigt, dass das letzte Zeichen des Fragetextes angekommen ist, können "entgegenkommende" Zeichen ignoriert werden.
Das gilt auch, falls der Dienst die Kennung der Gegenstelle automatisch abfragen will: WerDa senden, auf das "passende" ACK warten und dann einen Zeitgeber starten, der 5 Sekunden auf das erste "Antwortzeichen" wartet und jede Unterbrechung von mehr als 2 Sekunden bei der Antwort als "Kennungsende" interpretieren. (Bauchwerte, bei den 5 Sekunden unsere internationalen Anwender berücksichtigen!).