MENU | |||
Introducing WSQCall | Uses for WSQCall |
Sending text using WSQ is generally very reliable, certainly more so than other digital modes that use no error correction. Therefore with just a little verification, it has been possible to devise a simple system (simple to use, that is), which can provide clutter-free communication (station selective squelch), and can also perform many automated message-related tasks.This selective calling system is called WSQCall, and operates in the ZL2AFP software in the default Directed mode. Directed mode means that messages are addressed (directed) to a specific station or stations, and are ignored by other stations. The selective calling commands are a sub-set of those used by the HF program FSQCall.
While not attempting to be a full Automatic Link Establishment (ALE) system, WSQCall performs similar functions to allow stations to establish links and pass simple messages manually or automatically. The focus is on sending simple one-sentence messages or commands in a manner best suited to the WSQ protocol. There is a handful of simple and easy to learn commands used by WSQCall. ALL of these can be manually typed, while the receiver end is largely automated. These simple commands allow you to:
This sounds like a tall order, but cunning design has allowed all this to be achieved with just over a dozen easily remembered one-character commands. And you don't even need to remember them all, as the program itself lists the commands for you, with just a mouse-click. There is also comprehensive Help available from the Menu, which gives you details of operating Rules and Syntax, so you can't go wrong.
- Find a station's location and status.
- Read a station's pre-defined message.
- 'Poll' a station to check how reception is.
- Send a sentence to just one specific station.
- Send a sentence to all stations within range.
- Send a sentence to be stored in a specific file.
- Change the transmitting speed at another station.
- Receive and save a file from an unattended station.
- Determine which program version a station is running.
- Send a file to one, many or all stations, even unattended.
- Determine which other stations have been active, and when.
- Have a station relay your sentence to another station or stations.
- Send periodic 'soundings' and other messages from third party software.
- Raise an Alert at a station, with automatic response once acknowledged.
- Send a periodic 'sounding' message to let other stations know you are active.
The WSQCall message structure is simply an extension of WSQ. If you already operate FSQ on HF, you'll find it very familiar. Every sentence starts automatically with your_call:<crc>. The crc (Cyclic Redundancy Check) is used to ensure that the source callsign is received correctly, since it's often used in automatic replies. The CRC is generated and applied automatically. Every message you transmit is identified by your callsign.
You simply type a destination callsign (or maybe more than one), a one-letter command for each callsign, and a message, if needed. Then you just press ENTER, and off the message or command goes.
Let's define some terms:
- Direction:
- A destination callsign for a message or command.
- Preamble:
- The transmitting station's callsign and checksum; the stuff that's prepended automatically to the sentence.
- Trigger:
- The one-letter command character used with every WSQCall transmission.
- Payload:
- The accompaning information for a message or command.
- Sentence:
- The complete transmission; Direction, Trigger and message, if any.
- Sounding:
- Periodic transmission of the Preamble, with or without an optional Payload.
Sounding assists other stations to build a list of available stations.
Sounding is always used without a Direction and Trigger.
Here are some examples below. The text shown bold is added automatically before transmission, outgoing text is in red, while replies (both automated and manual) are shown in blue. In the first exchange, ZL1BPU asks for ZL2ABC's location, which is an automatic response:
zl1bpu:b6zl2abc@As another example, ZL1BPU and ZL2ABC have established contact and are chatting in Active mode:If in range, ZL2ABC will automatically reply:
zl2abc:2ezl1bpu Lower Hutt
Why is the callsign 'zl1bpu' repeated in the reply? So the receiving station WSQCall selective squelch opens, to allow the message to simply print:
Lower Hutt
zl1bpu:b6zl2abc Have you seen Jim ZL3JIM lately?As you will by now have gathered, if your callsign isn't in an incoming message, nothing will print. WSQCall acts like a smart selective squelch. It opens the receiver for printing on the main screen (and other actions) when your callsign is received, and closes again when the actual receiver squelch closes (when the other station stops transmitting).
(ZL2ABC sees only Have you seen Jim ZL3JIM lately?)and ZL2ABC replies:
zl2abc:2ezl1bpu Yes, he was at the club meeting on Wednesday.
(ZL1BPU sees only Yes, he was at the club meeting on Wednesday.)
The Squelch is also 'fade-proof', using a smart delay design to ride through fades that might otherwise close the Selcall.
Because the squelch also locks-out transmission, just as in FSQCall, stations generally do not transmit over other stations, or reply until the other station has finished transmitting. Various delays are also added before automatic replies, in order to manage the priority of messages. Manually typed messages have the highest priority, and sounding messages the lowest. This technique is called CSMA, or Carrier Sensed Multiple Access, controlling access to the radio channel.
Detailed descriptions of the WSQCall Syntax and WSQCall Rules are also available from the program Menu.
Using full-time Forward Error Correction system (FEC) would add unacceptable delay and markedly reduce throughput, and with the already slow sending rate of WSQCall, this would be impractical. Since WSQCall is generally robust, a simple error check mechanism is all that is required, protecting only the message preamble. The preamble of every sentence is protected by a checksum, an 8-bit Cyclic Redundancy Check. The CRC forms the two mysterious letters/numbers which follow the colon in every WSQCall header. If this preamble is not correct, the message will be ignored, for two reasons:Each incoming message is also of course checked for the correct destination callsign (your callsign), and if that's not present, or received incorrectly, the message is ignored. It's also ignored if your callsign is not immediately followed by a permitted trigger character. These are the command characters used to tell the receiver what to do. There are sixteen of them:
- If the preamble is incorrect, the software won't know who to send automatic replies to!
- If the preamble is incorrect, there's a high chance that the message will be too, and you may not know who it's from, in order to ask for a repeat.
? $ * ! ~ # % + | @ & ^ _ < and >, plus space Quite simply, if you don't get an expected reply to your command or message, you just send it again. Messages that don't have an automatic reply (the only one is callsign followed by space) are best used only when the other station is attended, otherwise you've no way of knowing if it was received. If it wasn't received, or was garbled, the other station operator will probably send "Agn?".
The program has a 'Monitor Pane', and you can always keep an eye on that to see if there was anything you might have missed. This is especially useful if for some reason the squelch closes early (typically caused by a fade), or some station is calling you, but doesn't have your callsign the same as you've set it, or makes an error in the syntax.
Hint: The error rate in WSQCall is so low that you see more errors from typos than from any other cause!
This is a very brief summary of the most-used commands. For full syntax, see the WSQCall Syntax Help item within the program.callsign message Enables print of message at station callsignIt's easy to see how simple this all is. There are various ramifications involved if the syntax is used improperly. Check also the WSQCall Rules. Several other trigger characters and commands are available but not listed here, and others are reserved for future features.
callsign? Returns signal report from station callsign
callsign* Sets WSQCall into Directed mode at station callsign if it was in SLEEP
callsign!message Station callsign retransmits message
callsign~message Station callsign retransmits message after a 15 second delay
callsign#[file.ext]message Station callsign stores message as or appended to file.ext
callsign+[file.ext] Station returns the requested file using # command
callsign@ Returns QTH message from station callsign
callsign& Returns QTC message from station callsign
callsign> Station callsign changes to 3 baud and confirms
callsign< Station callsign changes to 6 baud and confirms
allcall message Enables print of message at all stations in range on the radio channel