Having talked to Frank Brickle at Dayton I decided it would be an interesting experiment to put together an SDR radio where the components are all independent and communicate using Java RMI (Remote Method Invocation).
The first experiment is a simple interface to control a Softrock.
A quick view of all the components running on a Linux box (Ubuntu 8.04):
In addition to the UI components there is a central 'Radio' component running that handles the registrations and message distribution, a DttSP component that handles communication with DttSP and a Softrock component that handles the Softrock hardware. Actually there is nothing to do for the hardware, but it does translate the frequency changes to messages to set the oscillator frequency which is handled by the DttSP component. The Softrock component can be replaced with an SDR1000 or a Flex5000 component that actually controls the hardware.
Note the network activity. This was because concurrently I was running the display components on a MacBook Pro:
I started 2 copies of the Panadapter display on the Mac. Each spectrum snapshot is 4096 float samples. which translates into 16384 bytes for each snapshot. At 15 per second this is ... well you can work the math!
All controls stay in sync, regardless of the host thay are running on. When a VFO frequency is changed all the other VFO's and Panadapter displays will change frequency. When a Panadapter display is dragged the VFO's and other Panadapter displays stay in sync.