@database Monitor.guide
@width 77
@Node Main "Monitor-Commodity - Die Anleitung"

                      @{u}@{b}Terminal-Commodity@{uu}@{ub}

                     von Jens Köhler, DL6OCL @ DK0MAV

                               Version 1.02

 @{" Copyright, Autor" Link HC_Copyright}            Wer hat dies Programm verbrochen?
 @{" Wozu Monitor?   " Link HC_Zweck}            Was kann man damit anfangen?
 @{" Installation    " Link HC_Install}            Wohin mit dem Kram?
 @{" Inbetriebnahme  " Link HC_Betrieb}            Wo ist hier der Einschalter?
 @{" Konfiguration   " Link HC_Konfig}            Wie kann ich das Programm einstellen?

@endnode

@Node "HC_Copyright" "Copyright und Autor"

 Das @{b}Monitor-Commodity@{ub} wurde von Jens Köhler, DL6OCL @ DK0MAV,
 programmiert.

 Monitor ist @{i}Public Domain@{ui}!

 Unter folgender Voraussetzung darf Monitor verbreitet werden:

 Es muß @{b}kostenlos@{ub} weitergegeben werden. Folgende Dateien gehören zu
 Terminal und dürfen @{b}nicht@{ub} weggelassen oder verändert werden:

 Monitor
 Monitor.guide
 Monitor.txt
 source/Monitor.c
 source/msg_extern.h


 Der Source soll Anregung für Programmierer sein, weitere Ham-Commodities
 zu schreiben. Es ist @{b}ausdrücklich@{ub} erlaubt, Funktionen aus Monitor.c
 in eigenen Programme zu verwenden! :-)

 @{i}Autor@{ui}: Jens Köhler
        Meinstraße 41
        38448 Wolfsburg
        05363/3937

 Der Autor übernimmt keine Haftung für Schäden, die durch dieses
 Programm entstehen könnten.
 Dieses Programm wurde sorgfältig getestet. Sollten dennoch Probleme
 beim Betrieb auftreten, so scheue Dich nicht, mir einen Bug-Bericht
 zuzuschicken.

@endnode

@Node "HC_Zweck" "Sinn und Zweck von Monitor"

                     @{u}Was macht Monitor eigentlich?@{uu}

 Monitor entstand, nachdem ich die HamCx-Schnittstelle von AHP4 auf
 den Monitorkanal ausgeweitet. Anfangs nur dazu gedacht, um dies
 neue Feature zu testen, entwickelte sich Monitor dazu weiter,
 7+- und Binärframes zu erkennen und die Ausgabe im AHP-Monitorfenster
 dementsprechend zu verkürzen.

 Die Erkennung von AutoBin-Frames und 7Plus-Frames funktioniert recht
 zuverlässig, dennoch kann es schonmal passieren, daß Frames mit
 vielen IBM-Umlauten ebenfalls als 7Plus-Frames erkannt werden. Tja,
 dagegen ist halt kein Kraut gewachsen. :-(

 Doch dann war mir auch das zu langweilig, und ich programmierte
 noch einen Autospion mit entsprechender GUI hinzu.
 Entsprechend dazu wurde der antiquierte Spion aus dem AHP-Hauptprogramm
 entfernt.

 Folgende Features weist der Monitor-Autospion auf:

 - legt automatisch Verzeichnisse in ahp4:HamCx/SpyStore an
 - schreibt automatisch 7Plus und BoxBin mit
 - 2Wege-Spionage durch Frame-Kopplung möglich(später mehr dazu)
 - Ausgabe in Fenster für jedes Frame möglich
 - Mitschreiben in eine Datei möglich
 - separate Liste für jeden TNC

@endnode

@Node "HC_Install" "Installation von Monitor"

                                  @{u}Installation@{uu}

 Alle Dateien, die zu Monitor gehören, müssen lediglich in das
 @{i}HamCx-Verzeichnis von AHP4@{ui} kopiert werden. Dann kann Monitor
 von AHP aus im Commodity-Fenster eingebunden werden. Wie dies funktioniert,
 ist in der @{b}Anleitung von AHP@{ub} zu erfahren.

 Im Verzeichnis ahp4:pRexx befindet sich das Skript StartHamCx.ahp
 Wird dieses Skript aus dem StartupSkript aufgerufen, so wird
 beim Hochfahren von AHP Monitor automatisch aktiviert, und man muß dies
 nicht manuell nach jedem AHP-Neustart durchführen.

@endnode

@Node "HC_Betrieb" "Inbetriebnahme und Verwendung"

                      @{u}Inbetriebnahme@{uu}

 Hierzu ist eigentlich nicht viel zu sagen. Die genaue Beschreibung
 des Inbetriebnahmevorgangs ist in der @{b}AHP-Anleitung@{ub} zu finden, deshalb
 hier nur eine knapp geschilderte Vorgehensweise:

 - Commodity-Fenster öffnen.
 - Monitor-Commodity hinzuladen.
 - Task-Priorität auf 0 hochsetzen, da der Monitor sonst zu langsam arbeitet
 - Monitor-Commodity starten mit "Starten"-Knopf
 - Commodity-Fenster mit Sichern schließen.

 Monitor auf Kanal0 aktivieren (oder über das @{"Konfigurationsfenster" Link HC_Konfig})

 Dazu muß auf dem Monitorkanal folgendes eingegeben werden:

 @{i}:startcx Monitor@{ui}
 eingeben.

 Möchte man das Fenster wieder schließen, so geht dies mit
 @{i}:stopcx Monitor@{ui}

@endnode

@Node "HC_Konfig" "Konfiguration von Monitor"

                         @{u}Konfiguration des Terminals@{uu}

 Monitor besitzt ein @{i}Konfigurationsfenster@{ui}, mit dem sich der
 AutoSpion umfangreich konfigurieren läßt

 Das Fenster läßt sich öffnen mit
 @{i}:configcx Terminal@{ui}

 Dann sollte dieses Fenster erscheinen:

  ___________________________________________ 
 | _________________________________________ |
 || __                          ________    ||
 |||__| @{"HamCx aktiv" Link HCM_Active}      @{"TNC"  Link HCM_TNC} |_Nr._0__|   ||
 || __________________________              ||
 |||CON:0/40/640/100/Spion_%s_| @{"Con-Fenster" Link HCM_ConName}||
 ||_________________________________________||
 | _________________________________________ |
 ||              @{"Info-Frames" Link HCM_ListView}               ||
 || _______________________________________ ||
 |||                                     | |||
 |||          Listeninhalt               | |||
 |||                                     | |||
 |||                                     |%|||
 |||_____________________________________|%|||
 || __                 __                   ||
 |||__| @{"Spionieren" Link HCM_Spy}   |__| @{"Fenster" Link HCM_ConWindow}          ||
 || __                 __                   ||
 |||__| @{"Koppeln" Link HCM_Koppeln}      |__| @{"Mitschreiben" Link HCM_ToFile}     ||
 ||                                         ||
 || @{" keine Dateiaktion         " Link HCM_Info1}  @{" 0      " Link HCM_RxBytes}  ||
 || @{"                           " Link HCM_Info2}  @{" 0      " Link HCM_BuffBytes}  ||
 ||_________________________________________||
 |___________________________________________|


 Bei Schließen des Fensters werden die getroffenen Einstellungen automatisch
 in die Datei @{b}Monitor.prefs@{ub} abgespeichert.

@endnode

@Node "HCM_Active" "Hilfe zu aktiv-Schalter"

          @{u}Aktiv-Schalter@{uu}

 Hiermit läßt sich das HamCx ohne Verwendung der AHP-Befehle :startcx und
 :stopcx auf dem Monitorkanal beenden oder aktivieren.
 Ist der Haken hier nicht gesetzt, so bekommt Monitor auch keine Frames
 vom AHP zugesandt. So einfach ist das. :-)

 Ist das HamCx hingegen aktiviert, so werden
 a) 7Plus- und AutoBin-Frames verkürzt im Monitorfenster von AHP4 dar-
    gestellt. Dies geschieht in der Form "7+ <len>" und "Bin <len>"
 b) Info-Frame-Einträge in der @{"Liste" Link HCM_ListView} hinzugefügt
    Bei Info-Frames, die das eigene Rufzeichen enthalten, wird Spionieren
    als Grundeinstellung ausgeschaltet.

@endnode

@Node "HCM_TNC" "Hilfe zum TNC-Drehschalter"

          @{u}TNC-Drehschalter@{uu}

 Monitor verwaltet 3 Listen, da AHP bekanntlich auch bis zu drei TNC
 verwalten kann. Mit diesem Gadget kann man zwischen den einzelnen
 TNC-Listen umschalten. Dieses Gadget läßt sich auch durch die Pfeiltasten
 links/rechts steuern (analog zur AHP-Gadget-Steuerung)

@endnode

@Node "HCM_ConName" "Hilfe zum Con-Fenster-Eingabefeld"

          @{u}Con-Fenster-Eingabefeld@{uu}

 Hier läßt sich der Dateiname für das Fenster angeben, der benutzt wird,
 wenn man die Ausgabe in ein Console-Fenster umlenkt.

 Grundeinstellung ist:

 CON:0/40/640/100/Spion-Fenster : %s/SCREENAHP

 Die Zahlen legen die Koordinaten und Größe des Fensters fest.
 Das %s sollte man bei eigenen Fensternamen stehen lassen, denn hier
 setzt Monitor einen Text zur Identifizierung des Fensters ein.
 Es ist zwar nicht schlimm, wenn man %s wegläßt, allerdings haben dann alle
 Fenster den gleichen Namen.

 SCREENAHP bestimmt, daß das Fenster auf dem AHP-Screen geöffnet wird.
 Man kann hier auch einen anderen PubScreen angeben, z.B. Workbench.
 Auf Groß- und Kleinschreibung ist hier zu achten!

@endnode

@Node "HCM_ListView" "Hilfe zur Info-Frame-Liste"

          @{u}Info-Frame-Liste@{uu}

 In diesem ListView-Gadgets werden alle Info-Frames aufgelistet, die
 von Monitor bisher gehört worden sind. Erst, wenn ein Eintrag in dieser
 Liste existiert, kann die entsprechende Verbindung auch mitspioniert werden.

 Jedes Info-Frame wird durch einen Richtungs-Header eindeutig definiert.
 Diese Richtungs-Header sind in dieser Liste aufgelistet, wobei jeder Eintrag
 für alle Info-Frames steht, die mit diesem Header auf dem Monitorkanal
 bereits empfangen wurden und noch empfangen werden.

 Bei Einträgen, in denen das eigenen Rufzeichen als Quelle oder Ziel
 vorkommt, wird als Grundeinstellung das @{"Spionieren-Flag" Link HCM_Spy} gelöscht.
 Ansonsten ist dieses Flag sofort nach dem ersten Hören gesetzt. Will man
 einen solchen Eintrag nicht mitspionieren, muß man ihn ausschalten.

@endnode

@Node "HCM_Spy" "Hilfe zum Spionieren-Schalter"

          @{u}Spionieren-Schalter@{uu}

 Dieser Schalter bestimmt, ob für ein Info-Frame automatisch 7Plus und
 AutoBin mitgeschrieben wird.

 Ist dieser Schalter gesetzt, so werden auch die Gadgets @{"Fenster" Link HCM_ConWindow}, @{"Koppeln" Link HCM_Koppeln}
 und @{"Mitschreiben" Link HCM_ToFile} freigegeben.

@endnode

@Node "HCM_ConWindow" "Hilfe zum Fenster-Schalter"

          @{u}Fenster-Schalter@{uu}

 Mit diesem Fenster ist es möglich, die empfangenen Spion-Pakete in ein
 Console-Fenster umzulenken. Für jedes Info-Frame kann ein Fenster geöffnet
 werden, bis der ganze Screen damit vollgestopft ist. :-)

 Das Aussehen (Lage und Ausmaße) kann über das @{"String-Gadget Con-Fenster" Link HCM_ConName}
 eingestellt werden.

@endnode

@Node "HCM_Koppeln" "Hilfe zum Koppeln-Schalter"

          @{u}Koppeln-Schalter@{uu}

 Dies ist eine der wesentlichen Neuerungen des Monitor-HamCx. Hiermit ist
 es möglich, ein QSO auf einem Digi in beiden Richtungen mitzuspionieren.

 Nach Setzen des Hakens wird man aufgefordert, ein Info-Frame auszuwählen,
 das an das momentan noch selektierte Info-Frame angekoppelt werden soll.
 Die Auswahl erfolgt einfach durch Anklicken des entsprechenden Eintrags
 in der Liste. Vorher kann, wenn man denn will, auch der TNC umgeschaltet
 werden, es sind auch TNC-übergreifende Koppelungen möglich.

 Nach der Selektion kommt nun noch eine Sicherheitsabfrage, denn
 möglicherweise werden bestehende Dateioperationen durch das Ankoppeln
 beendet.

 Nach der Beschreibung des reinen Koppelverfahrens nun das ganze etwas
 genauer:

 Nach dem Koppeln unterscheidet AHP zwischen den zwei gekoppelten Frames:
 Das Primärframe ist das Info-Frame, bei dem Koppeln durch dieses Gadget
 aktiviert wurde.
 Das Sekundärframe ist das Info-Frame, das nach Anwählen von Koppeln selek-
 tiert wurde.

 Beim Sekundärframe sind die Schalter @{"Fenster" Link HCM_ConWindow} und @{"Mitschreiben" Link HCM_ToFile} nicht
 mehr anwählbar, diese Eigenschaften lassen sich nur noch beim Primärframe
 aktivieren.

 Das Koppeln läßt sich sehr einfach wieder durch das Entfernen des Hakens
 bei diesem Gadget erreichen. Koppeln wird dann sowohl für das Primär-, als
 auch für das Sekundärframe ausgeschaltet.

@endnode

@Node "HCM_ToFile" "Hilfe zum Mitschreiben-Schalter"

          @{u}Mitschreiben-Schalter@{uu}

 Hiermit kann man eine Verbindung in eine Datei mitschreiben. Wenn man
 den Haken hier setzt, öffnet sich ein File-Requester, wo man den
 entsprechenden Dateinamen anwählen kann.
 Durch Löschen des Hakens kann das Mitschreiben beendet werden.

 Zu beachten ist hierbei, daß während des Mitschreibens Auto7+ und Autobin
 abgeschaltet sind.


@endnode

@Node "HCM_Info1" "Hilfe zum Info1-Feld"

          @{u}Info1-Feld@{uu}

 Hier wird die Art der momentan laufenden Dateioperation angezeigt.

@endnode

@Node "HCM_Info2" "Hilfe zum Info2-Feld"

          @{u}Info2-Feld@{uu}

 Hier wird der Dateiname der jeweiligen Datei (ohne Pfad) angezeigt, in
 die mitgeschrieben wird.

@endnode

@Node "HCM_RxBytes" "Hilfe zum Empfangszähler-Feld"

          @{u}Empfangszähler-Feld@{uu}

 Hier wird die Anzahl der Bytes angezeigt, die bisher in eine Datei
 mitgeschrieben wurde.

@endnode

@Node "HCM_BuffBytes" "Hilfe zum Pufferzähler-Feld"

          @{u}Pufferzähler-Feld@{uu}

 Bei Dateioperationen verwendet AHP einen Dateipuffer, damit nicht
 bei jedem empfangenen Paket in die Datei geschrieben werden muß.
 Erst, wenn der Puffer voll ist, werden die Datei in die Datei ge-
 schrieben. Die Puffergröße beträgt 10000 Byte.

 In diesem Feld wird der momentane "Füllstand" des Dateipuffers angezeigt.

@endnode
