Posts Tagged ‘Programming’
A bug in KComm
Today started off with me continuing to compare the two morse decoders MRP40 and CW Skimmer in view of PC4T Paul’s insistence that the latter was the better morse decoder. When I heard someone calling CQ with no takers I took pity on them and returned their call. JY4NE and C6AKQ went into the log very quickly, in fact so quickly I was left wondering if I had actually worked them. Some people moan that all digital mode operators do is exchange macro files, but in a lot of CW QSOs you barely exchange anything!
Next I replied to a Russian station who was a bit more chatty. Unfortunately my logging program KComm locked up in mid-QSO. It was embarrassing because I was sending from the keyboard and didn’t even have a key plugged into the transceiver so I couldn’t continue. I’m sure there will be people who would add me to a blacklist for this, but these days I tend to treat CW as just another digital mode. Hence my interest in good decoder programs. 🙂
KComm has a feature where you can insert the answer to a multiple choice question into the outgoing text. It is expressed like this: %?question|answer 1|answer 2|answer3? which would cause a box to pop up saying “Question” and you click on the answer you want inserted. It was this feature that was causing the program to lock up.
After a couple of hours tracing code in the debugger I could not see what the error was, unless it was a bug in the Lazarus library software. The feature had been in KComm since many versions ago, but this current version was compiled with a new version of Lazarus, so that was a possible explanation. Eventually I managed to modify my program code to avoid the error, with the result that this afternoon there is now a version 2.02 of KComm.
I tested the update by having a QSO with Mik EW8O in Belarus. Then I decided it was time for a rest – I find debugging code these days is mentally exhausting!
Recently I downloaded the latest version of Lazarus, the rapid application development tool that uses Free Pascal. It’s a clone of Delphi but open source and cross platform. I’ve used it for hobby program development for the last few years, when I was no longer able to get free copies of Delphi. But now I actually prefer Lazarus to Delphi. It’s like how Delphi used to be.
|The Lazarus IDE|
In Lazarus I have been making a few changes to my logging program for Elecraft transceivers, KComm. Programming again marks another milestone in my return to normality, though in all honesty the time it takes and the number of stupid mistakes I make show that my brain still isn’t firing on all cylinders.
Why write my own logging program when there are so many good alternatives available? For one thing it is the same motivation that makes people build their own gear. For another, it allows me to use a program that works the way I want. If I want a certain feature then I get on and implement it. By limiting its use to the Elecraft community I avoid the troubles encountered by, say, the developers of Ham Radio Deluxe: the problem of dealing with thousands of users. There are probably only a handful of users of KComm, but that’s all right because I’m mainly developing it for my own use.
|KComm can speak Russian|
An example of what writing my own software allows me to do can be seen in the screenshot above. KComm supports user choice of character set for digital modes. So that if someone sends me a message in Russian (for instance) I can see what they sent (and copy and paste it into Google Translate, since I don’t speak Russian.)
This should not be taken as a sign that I will start writing new programs again. I’m just making a few changes to programs I use myself. I have downloaded the source code to the last released version of JT65-HF (which happens to have been developed in Lazarus too.) Perhaps one day I’ll see if I can make a few tweaks to that!