Überblick über Funkuhr.exe

Ein Windows-Programm, welches im System-Tray (äh, Meldungsbereich der Taskleiste) werkelt und von irgendeinem DCF77-Funkempfänger-Modul, irgendwie am PC angeschlossen, das Zeitzeichen empfängt, dekodiert und die Uhr stellt.

Aufgrund der Ausbreitungscharakteristik des Längstwellensenders ist der Empfang und damit die Benutzung dieses Programms nur in Europa sinnvoll.

Eigenschaften

  • Richtiges Win32-Programm, schnell, keine Extra-DLLs (außer bei Anschluss parallel), „bi-modal“ auch als Windows-Systemdienst
  • So klein wie irgend möglich (auch ohne EXE-Packer)
  • Läuft ab Windows 98 und Windows 2000 (erfordert HID.DLL)
  • Unterstützung für XP-Stil (Teletubbie-Optik auch in Dialogen)
  • Hardware-Anschluss: seriell, parallel (wahlfreie Portadresse), Soundkarte, Gameport, USB, nahezu beliebige Pin-Zuordnung, automatische Polaritätserkennung,
  • Uhrzeit nur anzeigen (normaler Nutzer) und/oder Uhr stellen (Administrator)
  • Informatives Tray-Icon (bspw. mit Zeigern)
  • Tray-Sprechblasen-Unterstützung in allen Windows-Versionen
  • Umfangreiche Diagnosefunktionen (Sinuspiep, Histogramm, Kreisdarstellung...)
  • Speicherung der Konfiguration in einem einzigen Registrierdatenbankzweig
  • Keine Installation, einfach kopieren und starten
  • Freier Quelltext mit der Lizenz: Mach damit, was Du willst (legales allerdings)
  • Freie (selbstgemachte) Vektordaten der europäischen Ländergrenzen im Programm enthalten
  • deutsch+englisch, per Nur-Ressourcen-DLL lokalisierbar
  • Kontextsensitive, ausdrucksstarke (nur deutsche) Hilfe für jedes Dialogelement
  • Funktioniert auch mit kommerzieller „Expert mouse clock“, hierzu unter »Hardware« „Empfangsdaten an RxD(2)“, „Stromversorgung an DTR(4)“ einstellen.

Bekannte Fehler und Unschönheiten

  • automatisches Beenden nicht vorgesehen
  • Nur rudimentäre Kommandozeilenunterstützung
  • kein DDE
  • Keine permanente Log-Funktion (dafür gibt es www.dcf77logs.de/Software.aspx)
  • Kein „langsames Angleichen“ der Systemzeit, Zeit kann rückwärts springen

Neues und Änderungen

*080801 | Serielle Eingabedaten an RxD eingebaut (Polarität hierbei fest: Trägerabsenkung = positive Spannung, voller Träger = negative Spannung)
*080908 | Veränderungen im Funkempfangs-Thread, damit bei Verwendung von FunkUsb auftretende Kommunikationsfehler (Ursache unbekannt) nicht zum Verbrauch von 100 % Rechenleistung (= Windows unbedienbar) führt.
*0902?? | Ich weiß nicht mehr genau, Kleinkram
+110716 | Englische Ressourcen, Win64-fähige INPOUT32.DLL beigefügt
-110905 | Überlaufproblem bei Histogramm
-110906 | Wirklich „stiller“ Empfangsmodus
+110906 | Einstellbare TimeOuts (zz. nur mittels RegEdit)
*110908 | Durchlaufender Funkempfang und Uhr-Stellen mit permanentem Tray-Icon (Dauer-)Pieps beim Einstellen der Lautstärke mit Tastatur oder Maus
*110909 | Getestetes AMD64-Kompilat, Einstellungen unter HKEY_CURRENT_USER
+1209xx | Dekodierung der Wettervorhersage (Dechiffrier-DLL erforderlich), dazu erhebliche Erweiterung der Programmfunktionen (und auch EXE-Größe)
*1209xx | Fallenlassen der Windows95-Kompatibilität (u.a. kein Testsystem), nun ist „Windows 98 Zweite Ausgabe“ Mindestvoraussetzung; Getrenntes ANSI- und UNICODE-Kompilat
+121119 | Unterstützung von USB-Joysticks als „Eingabegerät“, Soundkarte mit I/Q-Demodulation sowie Vorlaufempfänger in Vorbereitung
+1212xx | Europa-Wetterkarte, daher Explosion der EXE-Dateigröße (leider)
+130406 | Unterstützung der externen Zeitmessung des neuen FunkUsb;Joystick, Vorbereitung FunkUsb:Prefetcher
-130510 | GPF bei Aktivierung der Piep-Ausgabe; GPF bei MessageBox (nur AMD64); Dialogelementpositionen bei „Hardware“; Vorlaufempfänger immer noch tot
*130510 | Bezug zu cfgmgr32.dll entfernt (unnötig, auch bei x86)
*130606 | CHM-Hilfe (RTF-Hilfe verbleibt alt)
*130730 | htmlhelp-light.lib für Direktimport von hhctrl.ocx
-1308xx | Sprachliche Korrektur beim Englischen („ago“) <rene.wieland©home.nl>
-130904 | joyReleaseCapture()-Aufruf beim Beenden des Empfangs
-140819 | Bessere Rückkehr vom Suspend-Modus durch mehrere Öffnungsversuche des Gerätehandles
+141019 | Europäische Staatsgrenzen als Vektorgrafik, funktionstüchtiges Statuszeilen-Feld 2 Schwer-wetter-Erklärung im fliegen-den Text und Statuszeilen-Feld 4
-141029 | WM_SYSCOLORCHANGE für Menü-Bitmap-Anpassung 3 Inseln zu Finnland Statuszeilen-Flaggenhöhe
+141029 | Überleben des unerwarteten Windows-Neustarts
+1412xx | diverse Umgehungen von wine-Bugs
*141229 | Überleben des Windows-Neustarts nun als Dienst
-150105 | CHM-Hilfe auch als Dienst

Open-Source

Der gesamte Quelltext ist dabei.

Zu übersetzen mit MSVC6 (Projektdatei „Funkuhr.dsp“) oder MSVC 2008 (Projektdatei „Funkuhr.vcproj“). Letztere ermöglicht das Erstellen der x64-Version. Beim Erstellen mit der kostenlosen Express-Version muss das ebenfalls kostenlose SDK installiert werden. Eventuell dazu ein DDK (WDK) für hid.lib.

Das Erstellen mit dem MSVC 2013 gelingt nicht, weil Referenzen zu transzendenten Funktionen generiert werden. Im Gegensatz zur Dokumentation kann jene Version die Gleitkommafunktionen nicht durch Inline-80x87-Befehle ersetzen, trotz /arch:IA32-Kommandozeilenschalter.

Beim Übersetzen mit Drittprogrammen (etwa Gnu-C) ist zu beachten:

  • Die Dateien Funkuhr.h, wutils.c sowie amd64.asm enthalten die meisten compilerspezifischen Anweisungen
  • Die C-Laufzeitbibliothek sollte unnötig sein:
    • Alle Arten von Laufzeitfehlerprüfungen sind abzuschalten
    • Gleitkommaoperationen sind für Inline-x87-Koprozessoranweisungen ausgelegt
Funkuhr.exe wurde unter allen möglichen Windows-Versionen sowie unter wine getestet. Nicht unter ReactOS.
haftmann#software, Mai 2016, Henrik.Haftmann@gmail.com


Eigenschaften von Funkuhr

Dieser Dialog bietet eine Unmenge an Einstellungen und Veranschaulichungen an. Im Normalfall wird man nicht allzu viel einstellen müssen.

Die Hardware-Eigenschaften tauchen beim erstmaligen Programmstart auf, um die verwendete Schnittstelle auswählen zu können, da dieses Programm (hoffentlich) alle erdenklichen Anschlussmöglichkeiten abdeckt.


Hardware-Eigenschaften

Der Anschluss der Funkuhr kann mit nahezu beliebigen PC-Schnittstellen erfolgen: die serielle Schnittstelle (auch über einen handelsüblichen USB-Seriell-Konverter), die parallele Schnittstelle, das Gameport sowie Eigenbau-Ein/Ausgabe-Karten. Folgende Einstellmöglichkeiten stehen zur Verfügung:
  • Selektion serielle Schnittstelle (Win32-API)
    • Auswahl COM-Port
    • Auswahl Empfangsdatenleitung
    • Auswahl Stromversorgungsleitung
  • Selektion parallele Schnittstelle
    • Auswahl Portadresse
    • Auswahl Empfangsdatenleitung
    • Auswahl Stromversorgungsleitung
  • Selektion Soundkarte
    • Auswahl Soundkarte
    • Auswahl Abtastrate
    • Auswahl Filterfrequenz
  • Selektion Joystick
    • Auswahl Joystick
    • Auswahl Knopf-Nummer
    • Auswahl Zeit-Achse
  • Selektion USB-Parallel-Konverter
    • Auswahl eines Konverters
    • Auswahl eines Eingangs
  • Selektion Vorlaufempfänger
    • Auswahl eines Gerätes
    • Anzeige / Festlegung des Akkutyps
Die Angaben müssen entsprechend der vorgenommenen Beschaltung stimmen, sonst kommt es zu keinem Empfang.

Für die Benutzung einer parallelen Schnittstelle muss der Portzugriffstreiber inpout32.dll (Win64-Version: inpoutx64.dll) neben der Datei Funkuhr.exe liegen oder im Windows-Verzeichnis sein.

Alle Einstellungen werden sofort wirksam. Fehlerhafte Einstellungen werden beim Verlassen der Eigenschaftsseite moniert.

Ein Funkuhr-Modul benötigt nach dem Anlegen der Betriebsspannung einige Sekunden bis zum korrekten Funksignal-Empfang.


Selektion serielle Schnittstelle

Zugriff auf digitale Ein/Ausgabeleitungen des Rechners auf „sauberem“ Weg. Gut für die Verwendung von Schnittstellen-Konvertern, bspw. von USB. Dazu muss üblicherweise ein Treiber installiert werden, der den Konverter als COM-Schnittstelle abbildet.

Die Funkuhr-Schaltung muss für die Potenzialverhältnisse der seriellen Schnittstelle geeignet sein!


Serielle Schnittstelle

Eine der hier aufgelisteten seriellen Schnittstellen kann ausgewählt werden. Die Auswahl gibt die am Rechner vorhandenen seriellen Schnittstellen wieder. Beim Anstecken und Abziehen von USB-Seriell-Konvertern wird die Liste automatisch aktualisiert.

Empfehlung: COM1 für die erste serielle Schnittstelle

Unter wine werden maximal COM1 und COM2 gelistet.


Empfangsdaten-Leitung

Auswahl einer benannten Leitung, an der die Empfangsdatenbits dem Computer zugeführt werden. In Klammern steht die Pin-Nummer des 9pol. SubD-Steckers.

Empfehlung: DSR, bei „Expert Mouse Clock“ RxD

Bei Empfang an RxD erfolgt die Impulslängenmessung unabhängig von Windows durch die Hardware der seriellen Schnittstelle, deren Auflösung auf 20 ms begrenzt ist. Außerdem ist an RxD die Polarität zu beachten, da hierbei die automatische Invertierung nicht zur Verfügung steht: High-Impulse bei RS232 (nominell ±12 V), Low-Impulse bei TTL (0 .. 3 oder 5 V je nach Logikfamilie). In jedem Fall erfolgt die (vergleichsweise unkritische) Impulsabstandsbewertung durch einen Windows-Timer.

Sollte trotz anliegendem Signal keine Daten ankommen, sind die Spannungspegel zu überprüfen, ob ein LOW ≤ -3 V und ein HIGH ≥ 3 V ist.


Stromversorgungs-Leitung

Auswahl einer benannten Leitung, die bei Empfang permanent auf hohes Potenzial gehalten wird, um den Funkempfänger zu versorgen. In Klammern steht die Pin-Nummer des 9pol. SubD-Steckers.

Empfehlung: RTS, bei „Expert Mouse Clock“ DTR


Selektion parallele Schnittstelle

Zugriff auf Ein/Ausgabeleitungen des Rechners auf „schmutzigem“ Weg. Administrator-Rechte erforderlich. inpout32.dll (oder inpoutx64.dll) erforderlich. Äußerst flexibel bei der Wahl der Signalleitungen. Als Nebenanwendung kann sogar eine Steuerleitung einer durch Verwendung des Infrarotports unbrauchbaren seriellen Schnittstelle verwendet werden. Oder ein Joystick-Port.


Portadresse

Zur Auswahl stehen die drei „üblichen“ Portadressen der parallelen Schnittstellen LPT1 bis LPT3 sowie das Gameport.

Empfehlung: LPT1 für die erste parallele Schnittstelle. Entscheidend ist die Portadresse, nicht die LPT-Nummer.

Sie können auch eine wahlfreie Adresse angeben.

M Vorsicht! Sie sollten wissen, was Sie da gerade tun! Wenn Sie auf die Portadresse Ihrer Netzkarte, VGA-Karte oder Festplatte zugreifen, sind die Folgen katastrophal.

Eine wahlfreie Adresse stellt die einzig sichere Möglichkeit dar, eine PCI-, PCIexpress-, ExpressCard- oder PCMCIA-Karte anzusprechen. Die richtige Portadresse erfahren/erraten Sie im Geräte-Manager.

Auch der haftmann#software USB2LPT-Konverter kann hier eingesetzt werden. Gewöhnliche USB-Paralleldrucker-Adapter haben keine Adresse, für diese gibt es eine gesonderte Unterstützung.

Als Gameport funktionieren nur die althergebrachten, bspw. onboard oder auf Soundkarten.
USB-Gameport-Adapter funktionieren hier nicht, weil diese aufs HID-Protokoll umsetzen; hierzu als Hardware den Joystick auswählen.


Empfangsdaten-Leitung

Auswahl einer benannten Leitung, an der die Empfangsdatenbits dem Computer zugeführt werden. In Klammern steht die Pin-Nummer der 25pol. SubD-Buchse (Parallelport) bzw. der 15pol. SubD-Buchse (Gameport).

Empfehlung: ONL (eine Meldeleitung des Druckers);
TB2 (letzte Joystick-Feuertaste)

Sollte trotz anliegendem Signal keine Daten ankommen, sind die Spannungspegel zu überprüfen, ob ein LOW ≤ 0,8 V und ein HIGH ≥ 2,0 V ist.


Stromversorgungs-Leitung

Auswahl einer benannten Leitung, die bei Empfang permanent auf hohes Potenzial gehalten wird, um den Funkempfänger zu versorgen. In Klammern steht die Pin-Nummer der 25pol. SubD-Buchse (Parallelport) bzw. der 15pol. SubD-Buchse (Gameport).

Empfehlung: SEL(eine Steuerleitung zum Drucker).
Beim Gameport besteht keine Auswahlmöglichkeit.


Selektion Soundkarte

Demodulation und Filterung des frequenz-umgesetzten und vorverstärkten Funksignals mit der Soundkarte und dem eingebauten I/Q-Demodulator. Diese Option ist insbesondere für Funkamateure gedacht.

Eine zusätzliche Dialogseite „Demodulator“ dient zur Visualisierung der Demodulationsvorgangs.

Hinweis: Unter wine erscheint jene zusätzliche Seite erst nach Schließen und erneutem Öffnen des Einstellungs-Dialogs.

Achtung: Bei manchen Soundkarten hängt sich dieses Programm auf, sobald man diesen Punkt anwählt. Ursache ist ein Konflikt irgendwo im Win32 zwischen Soundausgabe (für den Kontroll-Piep) und Soundeingabe, den ich weder verstehe noch auflösen kann. In einem solchen Fall ist vorher die Piep-Lautstärke unter dem Reiter „Tray-Icon“ auf Null (Linksanschlag) zu stellen. Dies deaktiviert die Soundausgabe und schließt das entsprechende Win32-Handle.


Name der Soundkarte

Eine der hier aufgelisteten Soundkarte kann ausgewählt werden. Die Auswahl gibt die am Rechner vorhandenen Soundkarten wieder. Beim Anstecken und Abziehen von USB-Soundkarten wird die Liste automatisch aktualisiert. Der Eintrag an erster Stelle (Wave-Mapper oder ähnlich) bezeichnet die in der Systemsteuerung ausgewählte Standard-Soundkarte für Aufnahmen.

Empfehlung: Die erste oder einzige Soundkarte.

Der Anwender muss selbst dafür Sorge tragen, dass die Mixer-Einstellungen die „Aufnahme“ des Tonsignals ermöglichen!


Abtastrate

Selektion einer gewünschten Abtastrate. Sie muss mindestens doppelt so groß, besser deutlich größer sein als die herauszufilternde Frequenz. Abtastraten von über 50 kSa/s funktionieren nur sinnvoll mit „frisierten“ Soundkarten, deren Eingangstiefpass entfernt wurde. Dies ermöglicht die direkte Verarbeitung der Empfangsfrequenz von 77,5 kHz ohne Mischer!

Im Interesse geringer Rechnerbelastung sollte die Abtastrate wiederum möglichst niedrig gewählt werden. Dabei droht ggf. Spiegelfrequenz-Empfindlichkeit.

Die Liste gibt die von Windows gemeldeten möglichen Standard-Abtastraten an, die Angabe ist jedoch wahlfrei möglich.

Empfehlung: 44100 Sa/s


Filterfrequenz

Angabe der aus dem Frequenzgemisch herauszufilternden Frequenz mit einer festen Bandbreite von ca. 10 Hz. Eine AFC kann die Frequenz bei Verstimmung des Mischeroszillators geringfügig nachziehen. Danach erfolgt die Amplituden-Demodulation.

Der maximal erlaubte Wert ist die halbe Abtastrate. Das Minimum ist 10 Hz.

Empfehlung: 1000 Hz (Der Mischeroszillator muss dann 78,5 kHz oder 76,5 kHz haben.)


Selektion Joystick

Der Funkempfänger steuert hierbei eine Taste irgendeines Joysticks. Hauptanwendung ist FunkUsb mit entsprechender Firmware ab November 2012, die einen derartigen Joystick emuliert und deshalb ohne extra Treiber auskommt.

Ist die Auswahlmöglichkeit deaktiviert, obwohl ein Joystick-Anschluss vorhanden ist und ein Treiber geladen ist, dann müssen zwei Widerstände ≈47 kΩ zwischen die Pins 1-3 und 1-6 geschaltet werden, um dem Treiber das Vorhandensein eines echten Joysticks vorzugaukeln.


Joystick-Name

Auswahl eines angeschlossenen Joysticks. Je nach Betriebssystem ist der Name mehr oder weniger aussagekräftig. Die Auswahl gibt die am Rechner vorhandenen Joysticks wieder. Beim Anstecken und Abziehen von USB-Joysticks wird die Liste automatisch aktualisiert.

Empfehlung: Ausprobieren! Windows ist mit der Reihenfolge recht eigensinnig, sie übersteht jedoch Reboots.


Joystick-Knopf

Auswahl eines der Knöpfe für das Eingangssignal. Die Auswahl gibt die am Joystick vorhandenen Knöpfe wieder.

Empfehlung: Erster Knopf – ggf. ausprobieren

Sollte trotz anliegendem Signal keine Daten ankommen, sind die Spannungspegel zu überprüfen, ob ein LOW ≤ 0,8 V und ein HIGH ≥ 2,0 V ist.


Joystick-Achse

Beim FunkUsb ab November 2012 liefert an der Joystick-Achse einen Zeitstempel. Damit wird die Zeitmessung unabhängig von Windows und der Systemlast.

Empfehlung: Benutzen bei FunkUsb, sonst nicht benutzen. Unter wine nicht benutzen; da lauern gleich mehrere Bugs.

Die Bugs im einzelnen:

  • Die Funktion joyGetPosEx liefert anscheinend nur Nullen.
  • Die Joystick-Achse an /dev/input/js0 liefert selbst bei ausgeschalteter Kalibrierung nicht die Daten, die über USB laufen.
  • Seit Mai 2016 sollten wine-seitige Bugs ausgemerzt sein; nicht überprüft


Selektion USB-Parallel-Konverter

Der Funkempfänger steuert hierbei einen von drei Statuseingängen eines derartigen Standard-Konverters. Manch ein Bastler hat wohl so ein Ding als Fehlinvestition in seiner Schublade liegen. Von Vorteil ist die TTL-Kompatibilität. Eine der zahlreichen Ausgabeleitungen kann zur Stromversorgung dienen.

Es wird kein extra Treiber benötigt. Außer unter Windows 98; hierfür gibt es auch einen Universaltreiber u. a. auf meiner Webseite.


USB-Parallel-Konverter-Nummer

Auswahl eines angeschlossenen USB-Paralleldrucker-Konverters. Die Auswahl gibt die am Rechner vorhandenen Konverter sowie USB-Drucker wieder. Beim Anstecken und Abziehen von derartigen USB-Geräten wird die Liste automatisch aktualisiert.

Empfehlung: Ausprobieren! Windows ist mit der Reihenfolge recht eigensinnig, sie übersteht jedoch Reboots. Etwas problematisch kann das Hinzufügen oder Entfernen von USB-Druckern sein.
Natürlich sollte man es vermeiden, einen USB-Drucker auszuwählen!


USB-Parallel-Konverter-Eingang

Auswahl einer benannten Leitung, an der die Empfangsdatenbits dem Computer zugeführt werden. In Klammern steht die Pin-Nummer der 25pol. SubD-Buchse.

Empfehlung: ONL (eine Meldeleitung).


Selektion Vorlaufempfänger

Dabei handelt es sich um eine gesonderte (2014 noch zu entwickelnde) Firmware für FunkUsb, die das Funksignal unabhängig vom Rechner dekodiert und vorhält; bei Vorhandensein eines geeigneten Dechiffrierchips auch die Wettervorhersageinformation. Die PC-Uhr kann dann ohne Zeitverzug beim Hochfahren gestellt werden. Das Gerät sollte vorzugsweise an eine USB-Buchse mit Standby-Stromversorgung angeschlossen werden, um Akkus zu ersparen. Es meldet sich als HID-Gerät. Es wird kein extra Treiber benötigt.


Nummer des Vorlaufempfängers

Hiermit kann ggf. aus mehreren Empfängern ausgewählt werden.

Empfehlung: Das einzige Gerät auswählen.

Mehrere Empfänger am PC sind kaum sinnvoll. Werden mehrere angezeigt liegt eine unglückliche Mehrfachnutzung der freien USB-VID und -PID von Objective Development vor; durch diese Auswahlmöglichkeit ist's aber unkritisch.


Akku im Vorlaufempfänger

Der Sinn und Zweck des Vorlaufempfängers ist ja, die Uhrzeit vor dem Start des Computers zu empfangen und sofort bereitzustellen. Daher benötigt ein solches Gerät irgendeine autonome Stromversorgung. Bei Durchlaufbetrieb (für Wetterdatenempfang) würden Primärzellen nicht allzu lange halten (maximal 1 Woche), daher ist Akkubetrieb vorgesehen. Der Mikrocontroller übernimmt das Laden gleich mit.

Empfehlung: Genau den verwendeten Akkutyp einstellen, sowie die dazu passende Lade- und Entladeschlussspannung.

Lassen sich chemische Energiespeicher mit begrenzter Lebensdauer vermeiden?
Eine Versorgung über das PC-Standby-Netzteil erspart den Aufwand mit der Stromversorgung, ist aber leider nicht standardisiert: Man müsste es für bestimmte USB-Anschlüsse ausprobieren und ggf. per Jumper aktivieren. Bei den meisten Boards ist dieser Jumper grün und in der Nähe der Buchse. Der Betrieb des PCs an einer schaltbaren Steckdosenleiste wäre dabei kontraproduktiv. An Notebooks funktioniert es m.W. überhaupt nicht.

Die Stromaufnahme beträgt ca. 1 mA und verletzt die USB-Spezifikation etwas; anders lässt sich aber der Funkempfänger nicht betreiben.

Empfehlung: Das einzige Gerät auswählen.


Computer-Uhr stellen

Ziel der Funkuhr am PC ist das Stellen der Computer-Uhr in regelmäßigen Abständen.
Dazu gibt es folgende Einstellmöglichkeiten:

  • Auswahlfeld: Stellen beim Programmstart
  • Auswahlfeld: Stellen alle xx Stunden
    • Eingabe: xx Stunden
  • Auswahlfeld: Stellen, wenn Uhr verstellt
  • Auswahlfeld: Stellen mit Datum
  • Auswahlfeld: Information bei Gangfehler über xx Sekunden
    • Eingabe: xx Sekunden
  • Auswahlfeld: Stellen via UTC (Universelle koordinierte Zeit)
Weiterhin wird angezeigt, wann die Uhr zuletzt gestellt wurde, und wann sie als nächstes gestellt werden soll:

  • Anzeige: Das nächste Mal stellen
  • Anzeige: Computer-Uhr zuletzt gestellt
  • Anzeige: Letzter Fehler
Alle Einstellungen werden sofort wirksam. Allerdings erfolgt kein Start bzw. Abbruch eines laufenden Funkuhr-Empfangs.


Stellen bei Programmstart

Eingeschaltet beginnt dieses Programm unmittelbar mit dem Funkuhr-Empfang und dem Versuch, die Computer-Uhr zu stellen. Ausgeschaltet bleibt das Programm zunächst inaktiv.

Empfehlung: EIN bei gelegentlichem Start,
AUS bei häufigen Rechner-Starts und Programm als Dienst


Stellen alle xx Stunden

Eingeschaltet wertet das Programm den nächsten Stell-Zeitpunkt aus und beginnt dann mit dem Funkuhr-Empfang, ggf. sofort. Ausgeschaltet beendet sich das Programm automatisch, wenn die Computer-Uhr gestellt wurde (sofern „Stellen, wenn Uhr verstellt“ nicht aktiviert ist).

Empfehlung: AUS bei sporadischer Nutzung, ansonsten EIN


Stundenangabe für's periodischen Stellen

Eine Angabe von 0 bis 255 Stunden ist möglich. 0 Stunden bedeutet permanentes Stellen. Die Stundenangabe bezieht sich auf die Zeit zwischen erfolgreichem Stellen und Start des Empfangs, sodass die Stellzeit bei Angabe 24 Stunden langsam nach hinten driftet.

Empfehlung: 8 Stunden

7 Mit den vertikalen Pfeiltasten kann die Angabe in Einerschritten, mit Bild Auf / Bild Ab in Zehnerschritten gestellt werden.


Stellen wenn Uhr verstellt

Eingeschaltet startet der Empfang, wenn ein anderes Programm die Computer-Uhr verstellt (wenn es den Windows-Rundruf WM_TIMECHANGE gibt). Damit versucht dieses Programm, die Uhr wieder zu korrigieren.

Empfehlung: AUS wenn bestimmte Software getestet werden soll, ansonsten EIN


Stellen mit Datum

Im Normalfall stellt die Software sowohl Uhrzeit als auch Datum. Bisweilen ist jedoch das Setzen des Datums unerwünscht.

Empfehlung: AUS wenn bestimmte Software ein falsches Datum verlangt, ansonsten EIN

Hinweis: Für derartige Software gibt es das haftmann#software-Programm FakeDate. Damit sind falsch gehende Computer-Uhren passé.


Anzeige der Abweichung

Eingeschaltet zeigt das Programm die Stell-Differenz beim Stellen der Computer-Uhr an (d. h. den Gangfehler).

Empfehlung: EIN

Hinweis: Es erfolgt stets eine Anzeige des Gangfehlers, wenn dieser größer als 24 Stunden war.


Sekundenangabe für die Gangfehler-Info

Eine Angabe von 0 bis 60 Sekunden ist möglich. 0 Sekunden bedeutet, dass immer die Differenz angezeigt wird, selbst bei nur wenigen Millisekunden.

Empfehlung: 2 Sekunden

7 Mit den vertikalen Pfeiltasten kann die Angabe in Einerschritten, mit Bild Auf / Bild Ab in Zehnerschritten gestellt werden.


Stellen via UTC

Im Normalfall stellt dieses Programm die Zonenzeit („SetLocalTime“). Damit werden eventuell falsche Sommerzeitregeln ausgemerzt.

Ist dieser Schalter eingeschaltet, rechnet dieses Programm die empfangene Zeit in UTC (hier gleichbedeutend mit GMT, Greenwich Mean Time, die mittlere Ortszeit am Nullmeridian) um und stellt die sogenannte Systemzeit („SetSystemTime“). Damit werden die Zonenzeitregeln des Computers zur Anzeige der Zonenzeit wirksam.

Empfehlung: AUS im Empfangsgebiet von DCF77 (Mitteleuropa), außer in England.
EIN wenn der Anwender seinen Computer bspw. mit Moskauer Zeit betreiben möchte.


Anzeige „Das nächste Mal“ stellen

Wenn der Schalter für's periodische Stellen aktiv ist, wird hier angezeigt, wann der nächste Stellvorgang starten wird. Entweder als Zeitdifferenz bei unter 24 Stunden, oder als Datum und Uhrzeit (Zonenzeit) bei über 24 Stunden.


Anzeige „Computer-Uhr zuletzt gestellt“

Hier kann festgestellt werden, wann dieses Programm zuletzt die Computer-Uhr erfolgreich gestellt hatte. Entweder als Zeitdifferenz bei unter 24 Stunden, oder als Datum und Uhrzeit (Zonenzeit) bei über 24 Stunden. Die Differenz-Angabe vertraut darauf, dass die Computer-Uhr inzwischen nicht nennenswert verstellt wurde.


Anzeige „Letzter Fehler“

Das Programm zeigt per Sprechblase über dem Tray-Icon Fehlermeldungen an. Hier kann die letzte Fehlermeldung noch einmal gesehen werden.

Die Zeitangabe erfolgt entweder als Zeitdifferenz bei unter 24 Stunden, oder als Datum und Uhrzeit (Zonenzeit) bei über 24 Stunden. Die Differenz-Angabe vertraut darauf, dass die Computer-Uhr inzwischen nicht nennenswert verstellt wurde.


Tray-Icon-Anzeige und Empfangssteuerung

Das Funkuhr-Programm wird im wesentlichen über sein Tray-Icon, das Symbol im Systembereich der Startleiste, gesteuert. Es kann verschiedenartig erscheinen und auch, wem's stört, ausgeblendet werden.

Dazu gibt es folgende Einstellmöglichkeiten:

  • Auswahl: Tray-Icon immer sichtbar
  • Auswahl: Tray-Icon nur bei Empfang sichtbar
  • Auswahl: Tray-Icon nie sichtbar
  • Auswahlfeld: Tray-Icon bei Empfang blinkend
  • Schieberegler: Piep-Lautstärke
Weiterhin ist das Verhalten nach erfolgreichem oder erfolglosem Funksignalempfang festlegbar.

  • Auswahl: Empfang maximal 15 Minuten
  • Auswahl: Empfang 15 Minuten, dann „stiller“ Empfang
  • Auswahl: Immer empfangen
  • Auswahl: Als Windows-Systemdienst
Die 15 Minuten sind eine undokumentierte Einstellung, die nur mittels RegEdit geändert werden kann.

Der Funkempfänger kann manuell ein- und ausgeschaltet werden.

  • Auswahlfeld: Empfang
Alle Einstellungen werden sofort wirksam.


Tray-Icon immer sichtbar

Das Funkuhr-Symbol wird stets angezeigt und verbrät eine Position im System-Tray. Von Vorteil ist, dass das Programm hiermit jederzeit beendet werden kann (rechte Maustaste, dann Beenden).

Empfehlung: dieser Schalter, später „nur bei Empfang“, wenn das Symbol nervt.


Tray-Icon nur bei Empfang sichtbar

Legt sich das Programm schlafen zum nächsten Empfangsversuch, wird kein Tray-Icon angezeigt. Es erscheint erst bei erneutem Empfang, oder wenn FUNKUHR.EXE erneut gestartet wird.

Empfehlung: Erst verwenden, wenn man dieses Programm regelmäßig oder permanent nutzt.


Tray-Icon nie sichtbar

Das Funkuhr-Symbol wird nie angezeigt, außer wenn der Eigenschafts-Dialog angezeigt wird. Dies erreicht man durch nochmaligen Start der FUNKUHR.EXE.

Empfehlung: Nicht verwenden! Nur für Administratoren.


Tray-Icon blinkend

Wenn eingeschaltet, blinkt das Symbol im Takt des Empfangssignals, d.h. leuchtet 100 ms oder 200 ms hell während der Trägerabsenkung. Besonders zu Diagnosezwecken geeignet.

Empfehlung: EIN, später AUS (wenn's nervt und der Empfänger läuft)


Piep-Lautstärke

Nicht das Symbol piepst, sondern das Programm bei detektierter Trägerabsenkung. Besonders unter Windows 2000 und XP ist die zeitliche Zuordnung so gut, dass man mit dem Gehör eine gute Empfangsposition des Empfängers finden kann. Es ist ein Sinuston von 367,5 Hz, der auf die Standard-Soundkarte monofon ausgegeben wird.

Empfehlung: bei 50 %, später AUS (wenn's nervt und der Empfänger läuft)

Bei Empfang via Soundkarte und Demodulator ist der Piep deaktivert.


Empfang max. 15 Minuten

Der Funkuhr-Empfänger wird nach spätestens 15 Minuten rigoros ausgeschaltet (Energieeinsparung bspw. bei Laptops). Bei geglücktem Empfang auch eher.

Empfehlung: In der Regel nicht verwenden. Vorteilhaft bei stundenlangem schlechten Empfang.

Unwirksam bei gewähltem periodischem Empfang mit 0 Stunden.


Sichtbarer Empfang max. 15 Minuten, dann „stiller“ Empfang bis Erfolg

Das Funkuhr-Programm schaltet nach 15 Minuten in den „stillen“ Empfangsmodus, d.h. versucht weiterhin korrekten Empfang, aber ohne Piep, ohne Blinken, ohne Symbol (falls ausschaltend). Bei geglücktem Empfang wird der Empfänger abgeschaltet.

Empfehlung: bevorzugte Einstellung

Unwirksam bei gewähltem periodischen Empfang mit 0 Stunden.


Immer empfangen

Der Funkuhr-Empfänger wird bis zum geglückten Empfang betrieben. Dann Übergang in den „stillen“ Empfangsmodus (ohne Piep, ohne Blinken, ggf. ohne Symbol).

Empfehlung: Gut zur Beobachtung des Empfangs.
Erforderlich zum Empfang von Wetterdaten. Die Computer-Uhr wird trotzdem nur alle angegebenen Stunden gestellt.

Bei gewähltem periodischen Empfang mit 0 Stunden kein „stiller“ Empfangsmodus.


Empfang (zurzeit)

Anzeige des Empfangs-Zustandes. Bei Anzeige „undefiniert“ ist das Programm im „stillen“ Empfangsmodus.

Stellen auf EIN oder AUS zum sofortigen Ein- und Ausschalten des Empfangs. (Auf „stillen“ Empfang kann nicht gestellt werden. Intern kennt FUNKUHR.EXE zwei „stille“ Empfangsmodi, einen nach unglücklichem Empfang, und einen nach geglücktem Empfang.)

Empfehlung: lassen – oder schalten nach Bedarf

Abgesehen vom gleichlautenden Kontextmenüpunkt einzige Stelle, die unmittelbar den Betriebsmodus des Funkuhr-Programms beeinflusst.


Als Windows-Systemdienst

Wenn eingeschaltet, dann trägt sich das Programm als „Dienst“ ein.

Als Folge startet das Empfangsprogramm beim nächsten Mal automatisch. Der Start erfolgt bereits vor der Benutzeranmeldung.

Empfehlung: Im Probebetrieb oder bei gelegentlicher Nutzung ausgeschaltet.
Bei regelmäßiger Nutzung ist der Dienst-Betrieb am nützlichsten!

Seiteneffekte (NT-basierte Systeme):

  • Zur erfolgreichen Betätigung des Schalters muss der Anwender Administrator sein.
  • Der Dienst hat den Namen DCF77. Er lässt sich manuell steuern:
    • Anhalten: "net pause dcf77"
    • Fortsetzen: "net continue dcf77"
    • Beenden: "net stop dcf77"
    • Starten: "net start dcf77"
    Die Steuerfähigkeit per Symbol in der Task-Leiste bleibt bestehen.
  • Der aktive Benutzer des Dienstes ist SYSTEM. Dies kann man im Task-Manager ersehen.
  • Die Konfigurationsdaten werden von HKEY_LOCAL_MACHINE geladen. Daher kann es Konfigurationsunterschiede geben, ob man das Programm als Benutzer oder als Dienst laufen lässt. Beim Aktivieren des Dienstbetriebs werden deshalb die aktuell wirksamen Konfigurationsdaten nach HKEY_LOCAL_MACHINE kopiert.
Unter Windows98/Me erfolgt der Dienst-Eintrag unter RunServices. Damit startet das Programm auch unter diesen Betriebssystemen vor der Benutzeranmeldung.


Über Funkuhr-Programm

Die Seite für echte Programmierer und ambitionierte Anwender!

Hier gibt es folgende Knöpfe:

  • Knopf: Freeware-Seite besuchen
  • Knopf: E-Mail abschicken
„Ohne Laufzeitbibliothek“ heißt hier:
  • Das Programm enthält ausschließlich des Programmierers Kode. (Das ist keine Selbstverständlichkeit! Fast alle Programme schleppen einen überflüssigen Rucksack mit Microsoft- oder Borland-Kode mit.)
  • Das Programm benötigt keine obskure DLL zum Start. Alle Referenzen beziehen sich auf Standard-DLLs.
  • In diesem speziellen (sportlichen) Fall wird nicht einmal MSVCRT.DLL benötigt. Was für das 64-Bit-Kompilat einiger Klimmzüge bedurfte.
Das, was den Start unter Windows NT 4 sowie Windows 95 ernsthaft verhindert ist die fehlende HID.DLL, das hat etwas mit USB zu tun.


Freeware-Seite besuchen

Start des Standard-Web-Browsers zur Anzeige der haftmann#software Freeware-Angebote.

(Die URL ist http://www.tu-chemnitz.de/~heha/free. Als Browser-Mindestanforderung gilt Lynx ☺ – beliebige Version.)

Möge die URL lange gültig sein!

Der Knopf ist grau, wenn das Betriebssystem „kein Internet“ meldet.


E-Mail senden

Start des Standard-E-Mail-Programms zum Absenden einer E-Mail an mich.

Bitte schreiben Sie im Betreff „Funkuhr“ hin! Und schalten Sie das Senden von HTML aus. Sonst kommt die E-Mail nicht an.

Der Knopf ist nicht grau, wenn das Betriebssystem „kein Internet“ meldet! Sie müssen sich ggf. mit dem Internet verbinden können, wenn Sie mit dem Text fertig sind.


Empfang in Kreisform

Diagnose-Seite, die die kurzen und langen Impulse sekundenzeigergerecht in Kreisform darstellt.

Hier gibt es folgende Anzeigen und Einstellmöglichkeiten:

  • Anzeige: Empfang in Kreisen
  • Eingabe: Anzahl dargestellter Minuten
  • Anzeige: Legende


Empfang in Kreisen

Für jede Minute mit den 59 Bits wird ein Kreis mit den Empfangsbits (Farbe siehe Legende) gezeichnet. Der äußere Kreis ist der jüngste. Bei detektierter Lücke (Sekunde 59) wird ein Sekundenzeiger mitgeführt.


Anzahl dargestellter Minuten

Maximalzahl der Kreise, somit „Tiefe“ des Einblicks in die Empfangsgeschichte.

Empfehlung: 10 (maximal)

7 Mit den vertikalen Pfeiltasten kann die Angabe in Einerschritten gestellt werden.


Legende

Farbzuordnung für Empfangsbits.


Bit-Anzeige

Diagnose-Seite, zur Dekodierung der empfangenen Bits und Erkennung logischer Fehler.

Hier gibt es folgende Anzeigen und Einstellmöglichkeiten:

  • Eingabe: Dargestelle Minute
  • Anzeige: Sekunde
  • Anzeige: Minutenstart
  • Anzeige: Wettervorhersage
  • Anzeige: Rufbit
  • Anzeige: MEZ/MESZ
  • Anzeige: Schaltsekunde
  • Anzeige: Startbit
  • Anzeige: Minute
  • Anzeige: Stunde
  • Anzeige: Tag des Monats
  • Anzeige: Wochentag
  • Anzeige: Monat
  • Anzeige: Jahr
  • Anzeige: Parität (3x)


Dargestellte Minute

In Bezugnahme zur „Kreisdarstellung“ im benachbarten Tab kann entweder der „aktuelle Kreis“ (aktuelle Empfangsminute) oder eine vergangene Empfangsminute zur Beobachtung gewählt werden. Vergangene Empfangsminuten werden als negative Zahlen geführt.

Empfehlung: 0 (aktuell)

7 Mit den vertikalen Pfeiltasten kann die Angabe in Einerschritten gestellt werden.


Empfangene Sekunde

Bei detektierter Lücke in der Sekunde 59 der vorhergehenden Minute ist der Sekundenzähler aktiv, sonst wird „--“ angezeigt.

„--“ wird ebenfalls angezeigt, wenn eine vergangene Empfangsminute betrachtet wird.


Minutenstart

Muss 0 sein.


Wetter

Verschlüsselte Wettervorhersage und Katastrophenwarnung. Dechiffrierung erfordert externen Originalchip und Steuerungs-DLL HKW581.DLL (nicht mitgeliefert). Nach Dechiffrierung erfolgt Anzeige des „Klartextes“ als Hexadezimalzahl darunter. Dessen Dekodierung erfolgt dann in der „Wetter“-Seite.


Rufbit

Früher „Reserveantenne“, zum Ruf der PTB-Mitarbeiter. Meist 0, nicht ausgewertet.


MEZ/MESZ

Muss x10 oder x01 sein. x ist das Ankündigungsbit für die Umschaltung (meist 0, nicht ausgewertet).


Schaltsekunde

Ankündigungsbit für eine Schaltsekunde (meist 0, nicht ausgewertet).


Startbit

Muss 1 sein.


Minute

Muss eine gültige BCD-Zahl 0..59 ergeben.


Stunde

Muss eine gültige BCD-Zahl 0..23 ergeben.


Tag des Monats

Muss eine gültige BCD-Zahl 1..31 ergeben. Kürzere Monate werden hier nicht geprüft.


Wochentag

Muss eine gültige Zahl 1..7 ergeben.


Monat

Muss eine gültige BCD-Zahl 1..12 ergeben.


Jahr

Muss eine gültige BCD-Zahl 0..99 ergeben. Das Jahrhundert wird nicht übertragen.


Paritätsbits

Zusammen mit den links stehenden Datenbits muss sich eine gerade Anzahl 1-Bits ergeben.


Histogramm

Diagnose-Seite, die die Häufigkeitsverteilung der Pulslängen darstellt. Die Pulslängen werden gemessen und in „Töpfen“ von je 10 ms Breite gesammelt und gezählt. Das sich ergebende Diagramm sollte zwei Maxima (bei 100 ms und bei 200 ms) aufweisen sowie eine deutliche Lücke bei 150 ms.

Hauptursache für die Verbreiterung der Maxima ist vor allem die unexakte Zeitmessung unter Windows — Windows ist eben kein Echtzeitbetriebssystem!

Die Zeitmessung erfolgt nichtsdestotrotz in einem hochpriorisierten Thread, der sonst nichts anderes tut.

In einigen Situationen erfolgt die Zeitmessung unabhängig von Windows:

  • Serielle Schnittstelle mit Signal an RxD (nur Impulslänge)
  • Soundkarte
  • FunkUsb:Joystick mit Zeitmessung mittels Joystick-Achse
  • Vorlaufempfänger
Hier gibt es folgende Anzeigen und Einstellmöglichkeiten:

  • Anzeige: Histogramm
  • Knopf: Histogramm-Daten löschen
  • Eingabe: Schranke für zu kurze Pulse
  • Eingabe: Trennung für Kurz-Lang-Entscheidung
  • Eingabe: Schranke für zu lange Pulse
  • Auswahlfeld: Inversion


Histogramm

Häufigkeit von Pulslängen. Die Darstellung skaliert sich automatisch. Keine Eingabemöglichkeiten. Die Entscheidungslinien sind mit den drei Eingabefeldern rechts zu verschieben. Die Farbzuordnung erfolgt entsprechend der Legende im Tab „Empfang“.


Histogrammdaten löschen

Die Histogrammdaten werden alle auf 0 gesetzt.

Empfehlung: Nach Veränderung der Empfangssituation (bspw. Drehung der Antenne) drücken.


Schranke für zu kurze Pulse

Zu kurze Pulse können als ungültig erkannt werden, um die Empfangssicherheit zu erhöhen. Der Wert 0 schaltet diese Prüfung aus.

Im Histogramm wird eine zugehörige linke blaue Strichellinie dargestellt.

Empfehlung: 50 ms

7 Mit den vertikalen Pfeiltasten kann die Angabe in Einerschritten, mit Bild Auf / Bild Ab in Zehnerschritten gestellt werden.


Trennung für Kurz-Lang-Entscheidung

Je nach Histogrammform kann die optimale „Schnittstelle“ eingestellt werden.

Im Histogramm wird eine zugehörige mittlere blaue Strichellinie dargestellt.

Empfehlung: 160 ms (die üblichen Empfänger dehnen die Trägerabsenkung ein wenig), ansonsten je nach Histogramm einstellen!

7 Mit den vertikalen Pfeiltasten kann die Angabe in Einerschritten, mit Bild Auf / Bild Ab in Zehnerschritten gestellt werden.


Schranke für zu lange Pulse

Zu lange Pulse können als ungültig erkannt werden, um die Empfangssicherheit zu erhöhen.

Im Histogramm wird eine zugehörige rechte blaue Strichellinie dargestellt.

Empfehlung: 270 ms

7 Mit den vertikalen Pfeiltasten kann die Angabe in Einerschritten, mit Bild Auf / Bild Ab in Zehnerschritten gestellt werden.


Inversion

Die Histogrammdaten werden programmintern verwendet, um eine automatische Polaritätserkennung durchzuführen. Erscheinen zu viele Pulse mit mehr als 490 ms, schaltet sich die Inversion um (hiermit sichtbar), das Histogramm wird gelöscht, und der Empfang beginnt von vorn.

Mit dem Auswahlfeld kann eine Polaritätsumkehr erzwungen werden; nach einigen korrekt empfangenen Pulsen sollte das Programm wieder zurückkippen (Testfunktion).

Empfehlung: belassen!

Bei Zeitmessung mittels RxD steht die Inversion nicht zur Verfügung.


Wetter

Anzeige der Wettervorhersage für alle 90 Vorhersageregionen für bis zu 4 Tage im Voraus.

Da alle 3 Minuten eine Vorhersage hereinkommt, muss dazu das Programm recht lange, am besten rund um die Uhr laufen. Neben der Anzeige der Vorhersage für eine Region wie bei vergleichbaren Funkwetterstationen bietet das Programm eine gesonderte Europa-Wetterkarte wie beim Fernsehen an.

Die Wettervorhersagen als Grafiken können mit der Maus überfahren werden, dabei werden die Infos als Text angezeigt. Zusätzlich wird die passende Mondphase angezeigt sowie Sonnen- und Mond-Auf- und Untergangszeiten für den jeweiligen Vorhersage-Ort ausgegeben.

Hier gibt es folgende Einstellmöglichkeiten:

  • Auswahl: Vorhersageregion
  • Knopf: Karte anzeigen
  • Anzeige: 4-Tage-Vorhersage
Die Seite erscheint nur, wenn ein Dechiffrierchip angeschlossen ist.


Vorhersageregion

Eine der 90 Vorhersageregionen kann hier ausgewählt werden.

7 8 Es existiert ein lokales Menü, erreichbar mit der rechten Maustaste oder der Kontextmenü-Taste, um den Anzeigetext und die Sortierung anzupassen.

Empfehlung: Auf Karte klicken, um die Region dann grafisch auszuwählen.


Karte anzeigen

Zeigt eine Europakarte mit den Vorhersageregionen an.

Von Vorteil ist, wenn eine physikalische Karte „Europa.gif“ verfügbar ist.

Drückt man gleichzeitig Umsch, wird eine alternative Hintergrund-Bitmap geladen.

Drückt man gleichzeitig Strg, wird eine sekundäre Karte geöffnet. Man kann beliebig viele sekundäre Karten öffnen.

Auf allen geöffneten Karten werden bei Empfang die Wettersymbole aktualisiert.


4-Tages-Vorhersage

Zeigt in 4 Spalten den Wettertrend für die oben ausgewählte Vorhersageregion an.

Die Mondphase beim Nachtwetter entspricht der Realität, um die Funktionalität mancher Uhren nachzubilden. (Finsternisse werden nicht berechnet.)

7 | Die Erklärung zu den verschiedenen Symbolen gibt es durch Darüberhalten der Maus. Außerdem werden Sonnen- und Mond-Auf- und Untergangszeiten für den angegebenen Ort berechnet und ausgegeben.
8 | Kein Tastatur-Interface.

(Für die Vorhersageregion 60 .. 89 gibt es nur 2 Tage Vorhersageinformation. Am Spätabend kann es dennoch passieren, dass für 3 Tage etwas angezeigt wird, da das morgige Wetter bereits gestern vorhergesagt wurde.)


Demodulator

Anzeige der Funktion des I/Q-Demodulators sowie diverse Einstellmöglichkeiten.

Funktionsweise (ungefähr): Das Eingangssignal wird in 100-ms-Stücke zerhackt und jedes Stück mit einer Sinus- und Kosinusfunktion der angegebenen Frequenz korelliert. Heraus kommt jeweils eine komplexe Zahl, deren Betrag die Amplitude und deren Winkel die Phasenlage darstellt. Benutzt wird letztlich nur die Amplitude. Sie wird im linken senkrechten Fortschrittsbalken angezeigt. Der rechte Fortschrittsbalken zeigt die Gesamtamplitude des Rauschens. Beides logarithmisch.

Die Erkennung des pseudostochastischen Phasenrauschens wird in einer späteren Programmversion erfolgen. Das eigentliche Problem dabei ist nur, dass Windows mit der erreichbaren Millisekunden-Auflösung nichts anfangen kann; man kann eine derartig präzise Referenz nicht zeitnah nach außen geben. Eine Kompensation der Signallaufzeit (1 ms / 300 km) erfolgt anhand des Abstandes vom Sendeort.

Jede dieser komplexen Zahlen wird in dem I/Q-Diagramm mit Nachleuchteffekt dargestellt. So kann man bequem Amplitude und Phase beobachten.

Aus der Amplitude wird eine mittlere Amplitude als Schaltschwelle errechnet, als gelber Kreis im I/Q-Diagramm visualisiert. Daraus wird dann die Trägeraustastung ermittelt.

Hier gibt es folgende Einstellmöglichkeiten:

  • Auswahlfeld: Phasendemodulation
  • Auswahlfeld: Automatische Schaltschwelle
  • Auswahl: Schaltschwelle
  • Eingabe: Frequenz
  • Auswahlfeld: Automatische Frequenznachführung (AFC)
  • Knopf: Dominante Frequenz suchen
Die Seite erscheint nur, wenn die Soundkarte für die Empfangsdaten ausgewählt ist.


Phasendemodulation

Aktivierung der Demodulation des pseudostochastischen Phasenrauschens.

Zurzeit funktionslos!


Automatische Schaltschwelle

Die Schaltschwelle für die Detektion der Trägerabsenkung wird laufend automatisch ermittelt. Der Schieberegler „Pegel“ ist ausgegraut und bewegt sich von selbst. Wenn ausgeschaltet wird die Schaltschwelle ebendamit von Hand eingestellt.

Ist standardmäßig aktiv. Wird nicht gespeichert.


Schaltschwelle

Die Schaltschwelle für die Detektion der Trägerabsenkung wird hiermit angezeigt bzw. eingestellt. Daneben befindet sich passend die Anzeige der Trägeramplitude.


Frequenz

Die Filterfrequenz kann grob in 1-Hz-Schritten sowie fein in 0,01-Hz-Schritten eingestellt werden. Angezeigt wird diese links oben im I/Q-Diagramm.


Automatische Frequenznachführung (AFC)

Die Filterfrequenz wird derart nachgeführt, dass sich die Phase möglichst langsam dreht. So können thermische Schwankungen der Mischoszillatorfrequenz ausgeglichen werden.

Zurzeit funktionslos!


Dominante Frequenz suchen

Die Demodulation stoppt, und es wird jeweils eine FFT durchgeführt, angezeigt sowie über einige Sekunden gemittelt. Die dabei gefundene maximale Amplitude im Spektrum wird als neue Frequenz gesetzt und zur Demodulation zurückgekehrt.

Vorzeitiger Abbruch der Frequenzsuche durch nochmaligen Druck auf diesen Knopf.

Zurzeit funktionslos! Nur das I/Q-Diagramm verschwindet entsprechend.


Verwendung der Karte

Empfohlen: Eine Europakarte, entweder „Europa.gif“, „eclipse-DCF77-Wetter.jpg“ oder „Europe_topography_map.png“, ist hierzu extrem zweckmäßig! Daher ist „Europa.gif“ bereits in der herunterladbaren ZIP-Archiv enthalten; die anderen kann man genau unter jenen Namen herunterladen.
  • PNG-Wiedergabe erfordert vorhandenes GDIplus.
  • Bei Rechnern mit wenig Speicher oder mangelhafter Videoleistung sollte keine Hintergrundkarte verwendet werden.
Für die Festlegung von „Meine Position“ ist eine Maus erforderlich. Koordinaten können dazu nicht eingegeben werden. Alles andere ist auch per Tastatur bedienbar.

Intention: Festlegung des Empfangsortes. Anzeige der Wettervorhersage mit Symbolen wie im Fernsehen.

Features:

  • Skalierung
  • Miniaturansicht
  • automatische Fenstergrößenanpassung
  • Multi-Monitor-Unterstützung
  • teiltransparente Polygon-Überlagerung ohne GDIplus
  • Nicht-Überlappung von Beschriftungen (Ortsnamen)
  • vektorgrafische Wettersymbole, gesondert skalierbar
  • Werkzeugleiste
  • Statuszeile
  • Fliegender Text
  • beliebig viele (sekundäre) Kartenfenster
  • Regionsauswahl
  • Vektorgrafische Europakarte mit einfärbbaren Ländern
  • 4-Tage-Vorhersage kann im Vordergrund gehalten werden
  • reichhaltige Tastaturunterstützung
Und das alles ohne Internet und mit eingebautem Kartenmaterial. Klar, ein Hineinzoomen mit zunehmender Detailtreue ist nicht möglich und würde gigabyteweise Kartenmaterial erfordern.


8 Mausfunktionen des Kartenfensters

Mausbewegung | Hervorhebung der gehoverten Vorhersageregion, Anzeige von Positionsinformation in der Statuszeile
Linke Maustaste | Klicken ohne Ziehen: Aktuelle Vorhersageregion festlegen Klicken und Ziehen: Kartenausschnitt verschieben Doppelklick: Vier-Tages-Vorhersage anzeigen
Rechte Maustaste | Kontextmenü
Scrollrad | Vergrößern / Verkleinern mit Mauszentrierung

8 Mausfunktionen des Miniaturfensters

Linke Maustaste | Klicken und Ziehen: Kartenausschnitt verschieben
Rechte Maustaste | Kontextmenü


7 Tastenfunktionen des Kartenfensters

Die Tastenfunktionen wurden dem Programm ACDSee sowie dem Windows-Explorer nachempfunden.

Pfeiltasten | Bildausschnitt rollen (mit Umsch größere Distanzen)
BildAuf, BildAb | vertikal ganzseitig rollen
Pos1, Ende | horizontal ganzseitig rollen
Tabulator | Vorhersageregion weiterschalten (mit Umsch rückwärts)
Buchstabentaste | Vorhersageregion weiterschalten zu Stadt mit Anfangsbuchstaben (mit Umsch rückwärts)
Entf | „Meine Position“ löschen
Eingabetaste | Region auswählen; 4-Tages-Prognose anzeigen
Ziffern # ^ Leertaste | Wetterprognosen anzeigen
 | Leertaste | Wetterprognose durchschalten (mit Umsch rückwärts)
 | 1,2,3,4 | Wetter heute, morgen, übermorgen, in 4 Tagen
 | 5 | Wettersymbole Tag
 | 6 | Tagestemperaturen
 | 7 | Wettersymbole Nacht
 | 8 | Nachttemperaturen
 | 9 | Niederschlagswahrscheinlichkeit
 | 0 | Keine Wetterinformation
 | # | Windstärke und -richtung
 | ^ | Unwetterwarnungen
+, - | Skalierung ändern
/ | Skalierung 100 %
* | Skalierung so festlegen, dass es ins Fenster passt
LokalMenü Umsch+F10 | Kontextmenü
F6 | Fokuswechsel Kartenfenster / Eigenschaftsdialog (mit Umsch rückwärts)
F7 | Fokuswechsel zum Tray-Icon (funktioniert nicht unter Windows 98)
Umsch+F7 | Tray-Icon-Kontextmenü öffnen

Das Miniaturfenster hat kein Tastaturinterface.


Häufig gestellte Fragen (FAQ)

Noch ein Funkuhr-Programm?

Ja. Für Windows, Win32. Und mit modernen Extras.

Braucht man das?

Wer permanent Internet hat, braucht so etwas nicht! Ansonsten: Warum nicht auf altmodische Art die PC-Uhr stellen?

Was braucht man dazu?

Irgendein DCF77-Funkempfänger-Modul, was typischerweise am seriellen Port (über einen geeigneten Pegelkonverter) angeschlossen wird.

Auch moderne Anschlussvarianten mit USB stehen zur Verfügung, etwa FunkUsb mit den Interfaces

  • Serielle Schnittstelle (kompatibel zu echten seriellen Schnittstellen)
  • HID-Joystick mit 1 Feuertaste und 1 Zeitstempel-Hebel
  • HID-basierter Vorlaufempfänger

Was benötige ich zum Empfang der Wetterdaten?

Zum Empfang benötigen Sie gar nichts weiter ☺.

Aber zum Dechiffrieren benötigen Sie den Originalchip namens HKW581 irgendwo/irgendwie angeschlossen. Da der Wetterdatenempfang am schönsten mit einem durchlaufenden DCF77-Empfang einhergeht, und ein nicht am Internet angeschlossener PC faktisch nie durchläuft, benötigen Sie den o.g. Vorlaufempfänger mit angeschlossenem Dechiffrierchip; dessen Firmware erledigt den Rest.

Alternativ bietet Funkuhr.exe eine Plugin-Schnittstelle an, um die Kommunikation mit dem Dechiffrierchip über eine DLL laufen zu lassen. In diesem Fall ist jeder herkömmliche Funkempfänger für den Empfang und die Dechiffrierung der Wetterdaten geeignet.

Versprechen Sie sich von den Wetterdaten keine Wunder! Die Schweizer Betreiberfirma konnte keine adäquate Wetterwarnung für die schweren Niederschläge und Hochwasser 2013 in Mitteldeutschland und Bayern herausgeben. Durch die lange Vorlaufzeit sind kurzfristige Vorhersage-Änderungen nicht möglich, und bei unsicheren Wetterlagen die Prognosen — gelinde gesagt — irreführend.

Warum ist die Europakarte nicht mit im Programm integriert?

Im Prinzip ist dies doch der Fall! Das Programm enthält die Konturen der europäischen Länder als Platz sparende Vektorgrafik.

Eine stumme physikalische Karte (also mit Höheninformation) ist größer als das ganze Programm mitsamt Quelltext! Und wird nur in Verbindung mit einem Dechiffrierchip benötigt. Deshalb extern. Seit August 2014 im ZIP-Archiv, nicht mehr als extra Download.

Andere Zeitzeichensender?

Das Programm ist zurzeit nur für DCF77 geeignet. (Der Schweizer Sender HBG wurde abgeschaltet.)

Für andere Gebiete der Erde mit anderen Zeitzeichensendern und inkompatiblen Protokollen müsste das Programm erweitert werden; dazu müsste ich mich mit den gebietsspezifischen Besonderheiten auseinandersetzen.

Klar, dass man für den Empfang von Zeitzeichensendern, die etwas anderes als AM bei 77,5 kHz aussenden, auch einen anderen Empfänger benötigt! Außer beim Empfang über die Soundkarte, hier genügt das Ändern der Frequenz des Mischeroszillators.

Wetterdaten sind derzeit DCF77-spezifisch.

Kann das Programm die Systemzeit langsam (gleitend) verstellen?

Nein. Ein solches Feature erfordert direkten Hardwarezugriff und kompatible Hardware. Es gibt anderswo geeignete Software dafür.

Kann man die Schnittstelle erneut öffnen, ohne das Programm zu beenden?

Manchmal gelingt die Hardware-Verbindung nicht, etwa weil beim PC-Start das System zu beschäftigt ist oder der (USB-)Stecker einen Wackelkontakt hat.

Eine bereits aktive Schnittstelle wird geschlossen und wieder geöffnet, wenn man im Hardware-Tab auf den ausgewählten(!) Radiobutton klickt.


Immer blinken und piepsen

Vermeidet den „stillen Empfangsmodus“ für Demonstrationszwecke.
Empfehlung: Ausgeschaltet lassen. Kann sonst auf den Keks gehen.