Guenter Koellner DL4MEA @ DB0KCP Riedweg 10 86853 Langerringen Beschreibung BCMSTAT - Version 2.10 (15.11.94) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Generell: BCMSTAT ist ein Programm, welches die Logbuchfiles einer BayCom-Mailbox auswerten kann. Es generiert daraus folgende Informationen: - Monatsstatistik (Parameter ueber den gesamten Monat gesehen) - Tagesstatistik (Parameter ueber den gesamten Tag gesehen) - Toplisten - Einzelauswertung der User und Forwardboxen - Auswertung der Digipeater (via-Feld im Logbuch, ab Version 2.4) - Zusammenfassung BCMSTAT war ursprnglich in Turbo-Pascal 5.5 geschrieben. Eine Portierung auf neuere Turbo-Pascal-Versionen war aus Faulheit nicht geplant. Inzwischen ist aber Turbo 7.0 verfgbar und der daraus resultierende Vorteil (etwa halber Code, doppelte Geschwindigkeit) so groá daá ich umgestellt habe. Voraussetzungen: BCMSTAT kann bei einer laufenden BayCom-Mailbox mit 'O BCMSTAT' gestartet werden. Es muss dazu im BayCom-Mailboxverzeichnis '\BCM' stehen. Des weiteren ist es m”glich BCMSTAT aus einem der zeitgesteuerten Batches zu starten und damit eine automatische Bearbeitung am Monatsersten anzustoáen. Allgemein, auch fuer manuelle Bedienung gilt: - Im Programmverzeichnis werden die Dateien BCMSTAT.CFG und FWD.BCM erwartet. - Die Logbuchdateien muessen in einem Subdirectory LOG stehen. Das Programm ist auf minimalen Speicherplatzbedarf geschrieben. Bei DB0KCP ist das Programm bei 180k freiem Speicher im Hintergrund gelaufen. Userdaten werden auf Platte temporaer gespeichert und sortiert, der Speicherplatzbedarf ist daher unabhaengig von der Userzahl. Die temporaere Datei wird, falls eine DOS-Variable 'TMP' definiert ist, in dem Verzeichnis gespeichert, auf das TMP zeigt. Dies ist sinnvoll beim Vorhandensein einer RAM-Disk. Parameter: /M: === Startet man das Programm mit 'BCMSTAT /M' (VORSICHT! So nicht im Hintergrund einer Box starten), dann fragt das Programm manuell nach dem auszuwertenden Monat und Jahr sowie nach einer Auswahl ob File oder Drucker. /M schlieát den unten erw„hnten Parameter /E mit ein. /E: === Dieser Parameter startet einen jederzeit-(everytime)-Lauf. Normalerweise berprft BCMSTAT ob es am Monatsersten gestartet ist und l„uft nur dann. Mit dem Parameter /E kann diese šberprfung bergangen werden und BCMSTAT an jedem Tag gestartet werden. N„heres dazu siehe unten. Config-Datei BCMSTAT.CFG: In der Config-Datei sind die einzelnen Grafiken und Toplisten selektiv aus/einschaltbar. Bei den Toplisten k”nnen bestimmte Rufzeichen ausgeblendet werden. Beispiel: ;Konfigurationsfile fr BayCom-Mailbox-Statistik DB0KCP ;Guenter K”llner, DL4MEA, Riedweg 10, 8936 Langerringen ;(C) 17.10.93 ;Gross-/Kleinschreibung egal ; ;Ein-/Ausschalten der Diagramme und Ausblenden von Rufzeichen bei Toplisten ;1. Parameter: on/ein/1 schaltet Diagramm/Topliste ein ; off/aus/0 schaltet aus ;2. und weitere Parameter (max. 80 Zeichen/Zeile): ; in der Topliste auszublendene Rufzeichen, Parameter werden durch Kommas ; getrennt (nur TOPLOGIN, TOPLOGINTIME, TOPTX, TOPRX, TOPTXF, TOPRXF, TOPCPU) ; ;Beispiel zum Ausblenden: ;toplogin on,dl4mea,dl3mhm ; monthtx on monthrx on monthtxf on monthrxf on monthfwdtx on monthfwdrx on monthcpu on monthlogin on daytx on dayrx on daytxf on dayrxf on dayfwdtx on dayfwdrx on dayrx on daycpu on daylogin on toplogin on toplogintime on toptx on toprx on toptxf on toprxf on topcpu on digiliste on,1000 semantik on ; ;Beginn der Sortiertabelle ;Sortiertabelle muss durch Sort_Start eingeleitet werden und mit Sort_End ;beendet werden ; Sort_Start a=w da=da db=db dc=dc dd=dd df=df dg=dg dh=dh dj=dj dk=dk dl=dl f=f ha=ha hg=ha hb0=hb0 hb=hb9 i=i k=w lx=lx oe7=oe7 oe9=oe9 oe=oe ok=ok ol=ol on=on pa=pa pe=pa s5=s5 w=w yu=yu yt=yu Sort_End Die Sortiertabelle erledigt das Problem, dass z.B. bei bisher bekannten Programmen HA und HG in eigene Dateien sortiert wurden. In der Sortiertabelle wird aufgrund des Rufzeichens aus dem Logbuch nach der laengsten Uebereinstimmung gesucht und die nach dem '='-Zeichen angegebene Kategorie zugeordnet. Im Beispiel von DB0KCP werden OE7 und OE9 eigens sortiert, der Rest von OE kommt in eine Kategorie 'OE'. Fr eine OE-Mailbox k”nnte ein Teil etwa folgendermassen aussehen: OE1=OE1 OE2=OE2 OE3=OE3 OE4=OE4 usw. Alle nicht angegebenen Landeskenner werden in einer Kategorie 'Diverse' zusammengefasst. Begrenzung: Momentan koennen max. 2000 Userrufzeichen/Monat verarbeitet werden. Sollte eine Mailbox mehr Rufzeichen benoetigen, so ist dies kein Problem. Eine kurze Meldung an mich genuegt. Fuer die ab Version 2.4 eingefuehrte Digi-Auswertung sind zur Zeit 400 Digis moeglich. Eine Ueberschreitung ist programmtechnisch abgefangen. Sollten also 400 Digis in der Liste auftauchen, dies bitte an mich melden, damit ich den Parameter erhoehen kann. Ausgabe: Beim Start ohne /M wird eine Ausgabedatei 'STAT.IMP' erzeugt, die mit 'IMP STAT' in die BayCom-Mailbox importiert werden kann. Dadurch ist es beim Einsatz eines geplanten Timeschedulers auf der BayCom-Box moeglich die Statistik automatisch bei jedem Monatswechsel erzeugen zu lassen. Beim Start mit /M wird eine Datei 'STATxx.IMP' erzeugt, wobei xx dem ausgewerteten Monat entspricht. Automatischer Start des Programms: Seit der Version 2.7 ist es m”glich den automatischen Start durch die BayCom-Box zu nutzen. BCMSTAT berprft beim Start ohne Kommandozeilenparameter das Tagesdatum und startet nur wenn dieses '1' ist, also nur am Monatsersten. Diese Prfung kann mit /E bergangen werden. Somit muá folgendes getan werden um BCMSTAT automatisch zu starten: * In die Datei HOUR1.BAT im Programmverzeichnis der Mailbox muá der Aufruf von BCMSTAT ohne Parameter aufgenommen werden, also einfach: BCMSTAT Anmerkung: - Die Batches der BayCom-Box starten einige Sekunden frher als die volle Stunde, darum muá ein Sicherheitsabstand aufgenommen werden. - BCMSTAT orientiert sich an der Rechnerzeit! Ggf. ist es sicherer den Aufruf an HOUR3.BAT zu koppeln. * In der Datei HOUR1.IMP muá folgendes aufgenommen werden: IMPORT STAT.IMP O DEL STAT.IMP Wenn also die Datei STAT.IMP vorhanden ist wird diese importiert und hinterher gel”scht. WICHTIG!!! Die Datei muá gel”scht oder zumindest umbenannt werden, sonst wird sie t„glich wieder importiert. Aenderungen/Wuensche/Anregungen: Solche nehme ich gerne entgegen. Ich habe lange ueberlegt, ob ich den Source herausgeben soll oder nicht. Ich tue es, um ggf. Probleme vor Ort loesbar zu machen. Aber nur unter der Bedinung, dass mir solche umgehend mitgeteilt werden. Ich m”chte versuchen das Programm so zu halten, dass alle Updates nach wie vor von mir ausgehen. Kommerz/Haftungsausschluss: Eine kommerzielle Verwertung des Programms oder von Teilen daraus auch in anderen Amateurfunkprogrammen verbiete ich hiermit ausdruecklich. Auch uebernehme ich keine Haftung fuer irgendwelche Schaeden oder Nachteile. vy 73, Guenter, DL4MEA @ DB0KCP.BAY.DEU.EU Updates Version 1.1 -> Version 2.0 Rechtzeitig zum naechsten Monatswechsel ist die neue Version 2.0 von BCMSTAT fertig geworden. Ich habe einige Anregungen einbringen k”nnen: - Sortierkategorien geaendert. Die Datei BCMSTAT.SRT ist ab sofort hinfaellig und kann geloescht werden. Stattdessen ist eine Datei BCMSTAT.CFG erforderlich, die wesentlich mehr Funktionen besitzt. - Fuer die temporaere Userdatei wird die DOS-Variable 'TMP' beruecksichtigt. (Sinnvoll bei RAM-Disk) - Die Grafiken und Toplisten k”nnen in BCMSTAT.CFG selektiv ein- oder ausgeschaltet werden. - In den Toplisten k”nnen Rufzeichen selektiv ausgeblendet werden. - Fehler behoben: - Loginzeiten eines Users wurde falsch berechnet - Zwei Grafiken waren wegen eines Tippfehlers identisch - Tagesstatistiken wurden falsch berechnet - In der Grafik 'Logins ber den Tag' werden keine Forward-Logins mehr beruecksichtigt, nur noch User-Logins. Der Titel der Grafik wurde entsprechend angepasst. Die Fruehmorgens-beim-Aufwachen-, Gleich-nach-dem-Heimkommen- und Gute-Nacht-Schatz-ich-schau-noch- kurz-in-die-Mailbox-Spitzen sind jetzt sehr schoen ersichtlich. - Beim Sortieren wird ueber einen zusaetzlichen Index vermieden, dass die Userdatei selbst umgeschaufelt wird. Dadurch wurde der Quicksort noch schneller. Aus diesem Grund ist momentan ein Begrenzung auf 2000 Rufzeichen vorhanden. Bei Bedarf kann dieser Parameter ohne Probleme erh”ht werden. Updates Version 2.0 -> Version 2.1 Beim ersten Lauf der Software auf DB0AAB wurde die Mailbox per Watchdog resettet. Grund war die zu lange Laufzeit von BCMSTAT. Aus diesem Grund habe ich verschiedene Verbesserungen eingebaut, BCMSTAT ist etwa 10fach schneller geworden. Die Auswertung der Logs 1.1. bis 26.1.93 von DB0KCP auf einem 486/33/RAM-Disk benoetigt ca. 1:30 Min. - Zusaetzlich zur temporaeren Userdatenbank auf Platte wird im Speicher in Array definiert um Rufzeichen schneller suchen zu koennen. Deshalb ist in Version 2.1 die max. Userzahl auf 2000 begrenzt. Eine Erweiterung ist jederzeit problemlos moeglich. Dadurch wurde leider auch der Speicherplatzbedarf um 2000*6=12000 Bytes groesser. - Statt bei jedem Rufzeichen 'FORWARD' oder nicht aufgrund des Rufzeichens und damit einer Liste zu ermitteln wertet BCMSTAT 2.1 das Forward-Kennzeichen im Log selbst aus. Deshalb kann keine Gewaehr fuer das richtige Funktionieren bei Logs aelter als Mitte Dezember 1992 gegeben werden, bestenfalls werden lediglich die Forward-Statistiken falsch generiert. - Nach dem Motto 'Glaube keiner Statistik die du nicht selbst gefaelscht hast' waren in den Absolutwerten die Summen der gesamt gesendeten und empfangenen Files vertauscht. Updates Version 2.1 -> Version 2.2 - Durch einen Tippfehler wurde der Pseudokenner ZZ selbst, nicht das Žquivalent 'Diverse' ausgegeben. - Die RXBytes- und TXBytes-Spalten wurden um eine Stelle verbreitert. Werte ueber 10MB sind dadurch besser lesbar. - Die Sortiertabelle wurde um einige weitere Landeskenner erweitert. Man kommt gerade bei der Dynamik auf dem Balkan kaum mehr nach! Update Version 2.2 -> Version 2.3 (09.06.93) - Durch einen Fehler in der Parameteruebergabe im vom Parser zum Auswerter (TXFiles und RXFiles vertauscht) waren die Monats- und Tagesstatistiken der gesendeten und empfangenen Files getauscht. Update Version 2.3 -> Version 2.4 (16.10.93) - Fehler beseitigt: * Beim Ausblenden von Rufzeichen aus den Toplisten koennen jetzt auch kuerzere Rufzeichen (<6 Zeichen) ohne Space zwischendrin im Config-File eingegeben werden. * Die Anzahl der Logins wurde doppelt gezaehlt (hi...) - Es gibt eine neue Auswertung des im Log erscheinenden Digipeater-Felds. Erzeugt wird eine nach uebertragenen Bytes (Summe aus TXBytes und RXBytes) sortierte Liste aller Digipeater. Diese Liste kann ueber einen Parameter 'DIGILISTE ON/OFF' in der bekannten Weise ein-/ausgeschaltet werden. Die SSID wird in der Liste beruecksichtigt, damit man z.B. 1200Baud- und 9600Baud-Einstiege unterscheiden kann. Update Version 2.4 -> Version 2.5 (17.10.93) - In der Digiauswertung sind nun drei neue Felder hinzugekommen: Anzahl der Connects, Bytes pro Connect und Bytes pro Minute. Wie schon bekannt ist der Wert Bytes/Minute nicht 100%ig interpre- tierbar, weil OMs, die nie disconnecten, die Connect-Time verlaengern, ohne Daten zu uebertragen. Die Auswertung der Bytes wurde zudem auf Nicht-Forwardverbindungen eingeschraenkt, weil sonst nur Forwardverbindungen zaehlten, die von der Remote-Mailbox aufgebaut wurden, und daher diese Datenmenge sowieso nicht richtig erfasst wurde. - Im Config-File kann durch zusaetzliche Angabe eines Werts in Byte hinter dem Parameter DIGILISTE ON/OFF,anzahl_bytes eine Begrenzung der Digiliste auf Digipeater mit einer mindest uebertragenen Datenmenge durchgefuehrt werden. Update Version 2.5 -> Version 2.6 (01.11.93) Leider ist mir im Oktober eine Version durchgerutscht, die einen Parameter 'LEAVEOUT' verlangt hat, der noch nicht erklaert war, und zudem nicht im Configfile drinstand. - Der Parameter LEAVEOUT ON|OFF,call1,call2,...,callN gibt Rufzeichen aus, die von der gesamten Auswertung ausgeschlossen werden sollen, wenn z.B. irgendein Digipeater staendig pollt oder OMs versuchen die Statistik zu manipulieren. - Der Parameter BOARDNAME ON,name laesst es zu, dass die Files unter einem anderen Namen als STATISTI in die Box eingespielt werden. Update Version 2.6 -> Version 2.7 (19.04.94) - Der Parameter LEAVEOUT wurde wieder gestrichen. Es soll keine Rufzeichen geben die man ausschliessen m”chte. - Automatischer Start des Programms im Timescheduler der BayCom-Mailbox. - Das Programm wurde mit Turbo-Pascal 7.0 mit 286-Code-Switch compiliert. Dadurch etwa halber Code und halbe Laufzeit. Update Version 2.7 -> Version 2.7a (21.04.94) - Endlich gibt Turbo Pascal mit DirectVideo=FALSE ber den DOS- Interrupt aus! Damit sieht man Meldungen des Programms auch im Remote- Betrieb. - šberprfung auf Gltigkeit des TMP-Pfads eingebaut. Update Version 2.7a -> Version 2.8 (04.07.94) - Fr die Y-Achsen-Beschriftung wurde ein Zeichen mehr benutzt, da Angaben ber 10k das Diagramm zerst”rten. Mehr geht jetzt aber nicht mehr, sonst muá ich eine Megabyte-Skalierung einfhren... - Im Zuge der Erh”hung der Fehlertoleranz wird jetzt jede Logzeile grob auf ihre semantische Richtigkeit geprft, da es bei einer Mailbox wegen defekter Logfiles zum Programmabbruch kam. Dadurch dauert BCMSTAT jetzt zwar etwa doppelt so lang, aber inzwischen wird sowieso berall der automatische Modus benutzt und dann spielts eh keine Rolle solange man den Watchdog ausl”st. šber den Parameter SEMANTIK im BCMSTAT.CFG ist diese Prfung abschaltbar. Update Version 2.8 -> Version 2.9 (02.10.94) - Ein Fehler in der automatischen Anpassung der Einheit der Y-Achse fhrte in Grenzf„llen zu Diagrammberschreitungen. Auáerdem wurde die bisherige 1-2-5-Bemaáung auf eine 1-2-3-5-7-Bemaáung umgestellt um die Aufl”sung zu verbessern. Update Version 2.9 -> Version 2.10 (15.11.94) - Die Ausblendung von Rufzeichen in den Toplisten wurde auch programmiert. Bislang war diese M”glichkeit nur im Config-File erw„hnt. Die Tages- und Monatsstatistiken werden davon nicht berhrt. - Fr die einzelnen Teile der Statistik sind die Lifetimes sowie die Anzahl der Zeilen in den Toplisten sowie den Histogrammen im Config-File definierbar. ;Lifetimes der diversen Bestandteile der Auswertung ;Parameter ON ist nur Dummy ; lthistogram ON,60 lttoplist ON,150 ltuserlist ON,150 ltsummary ON,999 ; ;Anzahl der Zeilen in einer Topliste bzw. Anzahl Zeilen in einem Histogramm ;Parameter ON ist nur Dummy ; linestoplist ON,15 lineshistogram ON,20 ; Was demnaechst kommt: - Ich wrde gerne eine Auswertung der bertragenen Bin„rdaten machen, um zu sehen, daá sich der Aufwand dafr auch lohnt. Nur gibt das Logbuch dies noch nicht an. - Bei Forward-Verbindungen w„re eine Statistik darber sinnvoll wieviel Nachrichten einem Partner angeboten wurden und wieviel tats„chlich ber- mittelt. Damit k”nnte man Forwardleichen (bestehender Forward, aber andere Boxen sind immer schneller) sehr schnell finden.