Progress on various fronts this week. Firstly, I completed the parallel I/O link from the display processor to the control processor. This means that bi-directional communications are now possible and it has enabled me to get started on some new sections of code.
First up was the band selection logic. This is accessed via a physical push button, revealing a page on the screen with touch screen "buttons" for each band and a separate frequency entry keypad. The touch screen logic that I was working on a week or so ago can now directly control the Flex radio. Touching a band button activates X/Y screen positioning logic that determines which button was pressed and constructs a band change request that is then sent to the control processor via the parallel I/O link. Here is is translated into the correct format command for the Flex radio and sent to the radio via the Ethernet link. The process is more or less instantaneous.
Flushed with success, it was a comparatively simple process to do the same thing for mode control. This, too, is now working.
Along the way I discovered and fixed a particularly exasperating bug that resulted in the wrong filter bandwidth numbers being displayed on the screen... sometimes. As so often is the case with real time systems, it was a matter of timing between two separate processor threads.
I've also unearthed an odd fault that sometimes results in the first slice tuning very slowly. This has me stumped at the moment, all the more so because I hadn't seen the problem before the radio went on vacation to DL. I'm beginning to suspect something in the Flex/SSDR set up, as I cannot see anything in my code that would give rise to such an effect..
Finally, I've wired up and written some code to support the LED push button switches that manage the VFO Tx/Rx configuration. The intention is that this will work in the same way as the red & green LED switches on the FT5000, which is simple, easy to understand and very effective.
Next up will probably be more radio controls, now that I have the touch screen system working. There are also numerous minor rotary encoder functions such as RIT & XIT yet to be implemented. Each of these is relatively simple now that the infrastructure software is in place but there are rather a lot of them!