[To run this program, please see the end of this page.]
This is one of many of my special-purpose logical user interfaces for my physical general purpose HF receiver. It is a software aid that helps me to find and tune-in to the best available signal from the particular station or broadcasting service I want. This fully functional applet is not actually connected to a receiver.
If you are using Microsoft Windows and a Security Warning box pops up saying that the application has been blocked from running because it is "untrusted" please click here. If you get a warning message with Linux, please click here.
If you click on the down arrow of the Station or Broadcasting Service choice box, a drop-down list appears. This presents the names of around 200 stations or broadcasting services around the world. These are loaded automatically from a file on my server when the applet starts up. They are listed in alphabetical order so you can scroll easily to the one you are seeking.
Click on the name of the station or broadcasting service to which you wish to listen. The list disappears, leaving the name of the station or service you chose. The applet then down-loads a list of all the frequencies on which this station or service is known to broadcast. The lowest of these frequencies then appears in the Freq (kHz) choice box.
This frequency in the list is then sent back to the server. The server then sends a command to the receiver to tune to this frequency. When the receiver has tuned to that frequency, it sends back to the applet, via the server, a confirmation message containing the frequency and its currently-set squelch level. The applet then displays the station name, frequency and squelch level on the confirmation line at the bottom of its panel.
The part of a station's or broadcasting service's name that springs to mind may not be the first word in its name as it appears in the list. It's name may not therefore appear in the position within the list where you expect to find it. For instance, a vast number of stations appear in the list under 'R' for 'Radio' or 'V' for 'Voice of'. Some begin with a sequence of call sign letters.
For this reason, the applet includes a station search feature. You can enter any word or phrase in the Station Search box at the top left of the applet. It should be a word or phrase that you think is likely to appear in the name of the station or broadcasting service you are seeking. For instance, you could enter the name of a city or country. Then press the Find/Next button at the bottom left of the applet.
The applet then scans all the names and selects the first one it finds containing anywhere within it the word or phrase you entered. The name of the selected station or service appears in the Station or Broadcasting Service choice box. If this is not the station or service you were looking for, press the Find/Next button again to take you to the next name in the list that contains the given word or phrase. Repeat if necessary until you find the one you are looking for or until a message appears on the browser's status bar saying that the word or phrase could not be found.
If you now click on the down arrow of the Freq (kHz) choice box, a drop-down list appears. This presents a list of all the frequencies on which the selected station or service is known to broadcast. You can now scroll to, and choose, a frequency from this list by clicking on it.
This is useful when you know the best frequency to use based on time or day, time of year and time within the solar activity cycle.
The applet then sends this frequency back to the server as a special tuning command message. My Java web server has been specially modified to 'listen' for these messages. When a general purpose HF receiver is connected, it will then tune to the specified frequency. When the receiver has tuned to that frequency, the server sends a response message indicating this. The applet then displays the station's name, frequency and the current squelch level at the bottom of its panel.
If you press the Start button, the applet starts scanning through the frequency list of the selected station. The Start button then changes to a Stop button. All other buttons are blanked and rendered inactive during scanning.
Scanning starts with the lowest frequency in the station's list. The applet sends the frequency — in the form of a tuning command message — to the physical receiver via the server. It then listens for a response message from the receiver, via the server.
If the receiver acquires a signal on that frequency, the server sends a response message indicating acquisition. The applet then stops scanning and displays the station's name, frequency and the current squelch level at the bottom of its panel. If the receiver fails to acquire an adequate signal on that frequency, the server sends a response message indicating acquisition failure. The applet then steps automatically to the next frequency in the station's list. It cycles round the list indefinitely unless or until an adequate signal is acquired.
You can terminate the scanning process by pressing what is now the Stop button. This then changes back again to a Start button and the other buttons get their labels back and again become active.
You can step manually to the next higher or next lower frequency in the station's frequency list by pressing the Higher and Lower buttons respectively. Whenever you hit the end or beginning of the list, the stepping loops back to the beginning or end of the list respectively. When the receiver has tuned to that frequency, the server sends a response message indicating this. The applet then displays the station's name, frequency and the current squelch level at the bottom of its panel.
The receiver responds that it has acquired a signal on a given frequency when the strength of the signal it receives on that frequency is at or above the signal strength currently selected in the Squelch choice box. If you click on the down-arrow of this choice box, a drop-down list of the standard signal strengths from S0 to S9+ appears. You can alter the minimum acceptable signal strength you wish the receiver to acquire by selecting the desired value from this list. The default value is S5. The receiver signals to the applet, via the server, that it has adjusted to the requested squelch level. This the applet indicates by displaying the receiver's current squelch level at the bottom of its panel.
For the Java geeks among you, I here include the applet's source code in two versions: the later Java Swing version and the original Java AWT (Abstract Window Toolkit) version. However, the device-specific lines of code required for communicating with the receiver hardware via the web server have been omitted and replaced by comments.
In addition to the main applet class, this applet uses several subordinate Java classes as follows:
The station data is generated by a terminal command-line program also written in Java.
This applet could easily be extended. For example, another small selection menu could be added in the spare space on the left of the applet panel, which could be used to add a further dimension to the applet whereby the user could select a type or genre of transmission. So, in addition to broadcast stations, the user could select VOLMET (aeronautical weather) stations, maritime weather and harbour stations, amateur radio standard calling frequencies and so on. Furthermore, you can add your own code to control specific radio hardware — however simple or complicated.
To run this program, you need Java installed on your computer. Create a new folder in a convenient place. Download the file hfbrx.jar. Move it to your new folder. Unzip the jar file. [A 'jar' file is merely a 'zip' file with a '.jar' extension.] Open a terminal. Change directory to your new folder. Then change to sub-directory '
hfbrx'. Enter the command: '
Mainstream warnings notwithstanding, this program will neither blow up your computer nor wreak any other kind of fanciful mischief. It simply draws an image and displays data on your screen. In the good old days this program simply ran embedded within the web page where its static image is now displayed. The embedded applet still runs in pre-2017 versions of browsers with Java 1.6 installed and the Web Start version still runs in pre-2019 versions of browsers with Java 1.8 installed. To read the rancid history of this sad retrogression in Web functionality, please click here. [Back to top.]