Jim:

You are exactly where we are. In the early days of this when Gerald produced the VB code, his company was like many startups, he was being cautious. He was not about to allow a few folks "take over his company" and he had produced the VB console. Gerald says he agonized for months whether or not to release the source for VB and then whether or not it should be GPL. I hope he feels he made the right choice. So, you are right. You are seeing the legacy from the VB code. Many feel very much let down that it did not stay simple and accessible as in VB. That had to be balanced against Gerald's desire to build a company that would last more than a 3 board kit shipped without the necessary hardware to make it stand up! Several of us bought in to this SDR in a big way and we went to Austin in person and talked Gerald into going a new way. He agreed to produce a console based on a multithreaded model that Frank and I went to Austin to sell him. He hired Eric, and we set off. A couple of months later, we have PowerSDR 0.0.1 alpha. It has been a single process 'til now. Around the time of PowerSDR 1.3.6 Frank had taken all of the DSP code underneath and produced a coherent body of code using some neat macro's at its heart and achieving awesome efficiency. We found a couple of problems with ring buffering, and I built this multithreading thing under Windows that ran under Eric's GUI that had some seriously bad thread stalls in it that took months to find and sort out. I really did put my dunce cap on for some of the stuff that went on.

It has been an evolutionary process and we are at the place where the SDR stuff needs to be easier to allow others to play developer. It needs to be moved to development with free tools where possible so even more can play. If we do all the stuff except the GUI with free tools, as separate processes, many more people can play and we can keep very similar code bases. Jointly, we have all come a long way in 3 years.

On to 1.7:

Once we have the "Virtual Radio Central Command" working and playing radio commander central , this multiple process model is likely to be the best model. This is the model Frank designed for Linux from the smouldering, festering, heap of rubble that was the first DSP code (mostly my fault). Together Frank and I produced the modules that are in the library libDttSP.a and .so for the smouldering heap of rubble. It is in the Linux stuff and at the heart of the windows stuff but seriously refactored by Frank. There have been differences creep in as I developed dsp primarily on Windows to keep Flex going towards a long term goal. Many of the later ideas have been suggested by others and almost all of them were Windows users who wanted it done for Windows. It is a natural consequence of Winblows domination of the world. These differences between the dsp (not the process/vice thread) will be resolved next week. From the smouldering festering heap, Frank developed the entire threading model, the data structures, the macro's, the ring buffers, etc. on Linux. We are all profoundly grateful I am sure and we should be. We are just about to really see that take off on Linux as the separate process model gets fleshed out and then be brought back to Windows I think. Should we do this, it will enable anyone to write their own console on top of the running sdr code or place their own special purpose app on top of it with or without a GUI, etc. Gerald anticipates commercial customers that will want the sdr to run under Linux on servers. If we bring this model to bear, it will allow us to build shared memory interfaces under Windows that to all underlying console processes look exactly the same as they would under Linux, BSD, or Mac OSX. The SDR DSP software, mostly done in sdr.c and the functions it calls, does not care how they get data. They only care they got it somehow.

We have divorced long enough to get stability on one (Windows) so Gerald would have a stable usable product that he can support and use for a long time and it also convinced the independent Linux users and developers such as Pereira and Melton to proceed with a stable base. It is hard to imagine how much more pleased Frank and I could be than to have two super stars like Pereira and Melton take up this challenge. We need to accomplish a marriage that makes sense where we can in fact have one process for doing dsp on windows that is very similar and uses similarly mechanisms to Linux, Mac, BSD, etc.

We can do this now as we proceed to 1.7 on the next couple of months. Thank you for taking the time to do this investigation and documentation. It has been extremely helpful to me.

I did a major cleaning on the dsp library for windows and next Wednesday, Frank and I work from breakfast until ? to get our complete act together on DttSPv2. We may not finish, but we should get close. For the linux folks who have been following the model, a few minor things will have changed. John Melton has said that he will adopt DttSPv2 for the Java console. Phil C has said he will adopt it for HPSDR. With you and all of these folks looking over our shoulder (and kicking our rear), we are getting disciplined.


Enough old history,
Bob

Jim Lux wrote:
At 06:31 AM 2/22/2006, Robert McGwier wrote:
These files were the proximate cause of our fork for development purposes.

winmain, as in windows main file, is the "main" program for the constructor, destructor, threading control, etc. in the PowerSDR software.

main.c contains all of the same stuff. the normal c language main, and none of the windows clutter and is used to construct jsdr from update.c, sdr.c, and the myriad library modules. Most of these modules build libDttSP.a and libDttSP.so...... on *nices.

Bob

So, then, in the windows model, everything is linked into one giant process? As opposed to a windows interface process that talks to a windows dsp process?

Considering that it's not all that hard to have windows console applications, and to have another process start it up, why not do it that way?

Seems like you could keep the windows dsp and linux dsp forks "more similar" with that approach?
(It's not like the dsp thread needs all the stuff from MFC, etc.)

Or is it just historical, coming from the original VB software model?

Jim.




--
AMSAT VP Engineering. Member: ARRL, AMSAT-DL, TAPR, Packrats,
NJQRP/AMQRP, QRP ARCI, QCWA, FRC. ARRL SDR Wrk Grp Chairman
Laziness is the number one inspiration for ingenuity.  Guilty as charged!


Reply via email to