TL;DR:
- FcomClient update
- New graphical interface (GUI), and new instructions for it
- Finally, an actual website for FCOM!
- If you’re coming from an older FcomClient version, see here for a crash course on the new GUI
I am pleased to announce that, after over 5 months since the initial release, the first update for the client is out!
Spoiler: absolutely nothing was done on the client between October and February. Much of the work on 0.9.0 started at the beginning of February (yeah, I’ve been busy).
Finally, a gooey GUI!
Anyway, perhaps the biggest thing about this version is that there is finally a nice graphical interface (or GUI). You will no longer need to type inside an ugly command-line interface 78%* of the time.

*I’m still new to this whole WPF thing, so I haven’t been able to port the connection selection bit to the GUI yet. But given how most people don’t seem to get the existing prompt anyway, and that CTP is today, I’ve opted to release it anyway so I can finally push FCOM to a larger audience.
New interface, new instructions
Here’s the updated instructions on how to use it. If, for some bizarre reason, you prefer the old command-line interface, you can still open FcomClient.exe as before. I don’t know why you would prefer that though.
Also, the “verification code” is now known as the “Discord code”. Same thing, but shorter name. Less confusing and less typing. Why waste time say lot word when few word do trick?
If you’re coming from an older version of FcomClient…
The GUI is more or less just a “wrapper” for the existing (and also ugly) client. Functionality under the hood is largely the same. Because of this, the workflow largely maps one-to-one to the GUI, as follows:
GUI button | Old workflow |
---|---|
Start forwarding | Opening FcomClient.exe
|
Pause | Closing the FcomClient.exe console window |
Stop | Closing the console window, then sending “remove” to the bot |
Changelog
The FcomClient changelog can be found on the GitHub releases page for 0.9.0, but because the bot and client are so tightly coupled to each other (but not necessarily updated simultaneously), here’s a high-level overview of the changes that you’ll see:
- Graphical interface. ’nuff said.
- The callsign you enter into the client is now auto-capitalized
- Forwarded messages received over frequency will now include the frequency in the bot message. Sure, it had already been included before, but it’s now nicely formatted (e.g. 123.45 MHz instead of just 12345).
- Some additional logging in log.txt for improved bug-squashing abilities.
- The ability to deregister (i.e. the bot “remove” command) via the GUI
Minor server-side stuff:
- The Discord code is now guaranteed to not contain underscores (“_”) and dashes (ā-ā) – double-clicking on the code will highlight the entire code
- You’ll now receive a bot DM once you’re registered through the client
- If a new client update is availble, this DM will also include a link to the GitHub releases page
GUI source code
To be frank, the GUI code is an absolute mess. It was quickly hacked together, and it mostly just passes the callsign and Discord code to the existing FcomClient.exe.
Because of this, it’s not on GitHub (it’s not quite ready yet), but for the purposes of transparency, you can find them at https://studentweb.uvic.ca/~norrisng/fcom/FcomGui-src/.
I’ll be zipping the entire Visual Studio solution and uploading them here until I can figure out how to bring the GUI and underlying client together into a single, unified repository.
Website
A website has finally been setup for FCOM. It’s at https://norrisng.ca/fcom. The dev blog here will continue to be updated.
Currently, it’s hosted on my university webspace, and is therefore just a redirect. However, it’ll eventually be moved, so please share the link I’ve given, and not the webhome.csc.uvic.ca link.
Download
Available at the same place, as always:
https://github.com/norrisng/FcomClient/releases
And finally, I’ve switched over to PayPal.me for donations: https://paypal.me/norrisng
Always appreciated, but never mandatory. But it certainly helps pay for programming fuel coffee and server bills, among other things š