Docs
From DDUtil
This software extends the users ability to control ancillary frequency switching devices such as:
- Linear Power amplifiers with automatic band switching capabilities.
- Antenna switches using RS-232 or BCD input.
- SteppIR antenna controllers.
- Antenna tuners with automatic band switching capabilities.
Philosophy / Design Criteria
General
- Provide a stand alone software program that will deliver transmit frequency data, from PowerSDR, in the form of RS-232 serial data and/or BCD parallel data to passive listener devices. DDUtil does not receive or acknowledge any communication from the down stream devices it services. It is a one way communication only. Hence, they are referred to as Passive Listeners.
- It was also desired to use DDUtil with other radio control programs simultaneously. Since most users run a logging program or other radio control program, this was considered to be a very high priority.
- As an after thought, in lieu of passing frequency data to a RS232 passive serial device, this data may be optionally passed to another radio allowing it to follow the PowerSDR's frequency. This is useful to users having receive only capability (i.e. 3-board stack, SoftRock, etc.). This capability allows transmit functions of another radio's transmitter to be used in conjunction with the superior receiver performance of the PowerSDR hardware.
- Use all current technologies, if appropriate, in the software design. These include XML files, XPATH, Regular Expressions and Threading, to list a few.
- Development was done in Microsoft C# using the Microsoft Visual Studio 2005 Integrated Development Environment (IDE).
Program Flow
See the following links for visual aids to program operation:
- Program Flow Chart
- Data Flow
- Hardware connections
Program Initialization:
- Variables Setup
- Restore saved values to controls
- Initialize system polling timers for serial ports
- Open selected serial ports
- Show main form
This program is driven by events from either the serial ports receiving data or the polling timers counting down and firing. The following descriptions describe these events.
- Radio Port Data Received [1]
- This indicates CAT data has arrived from PowerSDR
- Decode PowerSDR data to see if it is frequency data
- If yes, send formatted frequency data to the selected passive listener serial port and call BCD decoding routine to process and output the BCD data on the selected parallel port
- If Radio Control is active (log flag = true) send radio data to Radio Control port
- Reset flags and return
- Radio Control Port Data Received
- This indicates CAT data has arrived from the Radio Control program
- Forward the command on to PowerSDR CAT port
- Disable the PowerSDR polling timer, which stops DDUtil querying the radio for frequency data as this is now done by the Radio Control program
- Set Log flag to true
- Radio Control Port Polling Timer Elapsed
This indicates that Radio Control port polling interval has expired which also means that NO CAT data has arrived from the Radio Control for 10 seconds- Set radio poll timer to enabled
- Set the log flag to false
- Reset the Radio Control polling timer (10 seconds)
- Radio Port Polling Timer Elapsed [2]
This indicates the CAT port polling interval has expired which also means the Radio Control port is not active- Send CAT commands to PowerSDR for the VFO status and frequency
- Check PowerSDR CAT port buffer for messages
- Decode the buffer message data to see if it is frequency data
- If yes, send formatted frequency data to the selected passive listener serial port and call BCD decoding routine to process and output the BCD data on the selected parallel port
