[hpsdr] Full / half duplex implementation -- simultaneous developement
David McQuate
mcquate at sonic.net
Sun Aug 2 09:34:27 PDT 2009
Hi Phil,
My suggestion was to add flexibility,so that, for instance, someone
could monitor (observe on the
bandscope, and listen to) their transmit signal, but require PTT
activation for transmit, rather than
jumping to true full-duplex operation.
I would not do any logic operations like AND on the two selections.
The receiver would be muted if PTT was true only if "Mute Rx on PTT" was
checked, and
the transmitter would be muted when PTT was false, but only if "Tx
enable only on PTT" was
checked. Two check-boxes, two separate queries, with no interaction.
Traditional half-duplex would be obtained if both options were checked.
You'd have full duplex operation when both were UNchecked.
Lots of action on KK now! That's wonderful.
As for how to handle multiple developers, if the goal is to have one
"main" version, with features added by
many, one scheme would be to have each developer "check out" the current
version, locking out any others
who might want to check it out. He would make the changes, test, and
check it back in, unlocking the SVN
code. In this scheme, each developer would have an "experimental" copy
on which the feature would be
developed. When it was ready to share, he would check out and lock the
"master" version, update it and
check it back in--in a fairly short interval.
Another possibility is for each developer to start a branch under his
own name (call sign) by obtaining a copy
of the "master" version at the moment. He would keep one copy of this
unchanged, and modify a second copy,
updating code in his own branch on the SVN at will until satisfied, then
do a diff between the "final" code and the
unchanged saved copy. The results of this diff would be used to update
the "master" version--perhaps in the SVN trunk.
Rather than relying on keeping a "read-only" copy, he could download
that same reference code from the
SVN by SVN version number. (Actually the SVN software may have this
function built in--to compare two
versions and update one of them.)
Simultaneous developement always presents the risk of conflict if two
people modify the same section of
code independently. Automatic diffeence and update programs will
generally fail to produce a correct
result.Doing it by hand would require accurate analysis of the various
changes and correct resolution.
I think it may be helpful to split up Form1.cs into a number of smaller
files, each containing (and isolating)
a single function. Though I have insufficient experience with VC#, my
impression is that it keeps everything
from all files "in memory", so splitting code into several files would
have no effect on compilation.
73,
Dave
wa8ywq
Phil Harman wrote:
> Hi David,
>
> Having a lot of fun using Penny - many thanks for doing this code.
>
> Not sure I fully understand your requirement. At the moment any PTT
> (mic, GUI, VOX) etc will always activate the Tx. If duplex is checked
> the Rx will stay active at all times otherwise it will mute on PTT.
>
> When duplex is selected I'll need a bit set in the C&C to tell me that
> an additional frequency is available to set Penny to and I guess we
> will add more controls to the GUI as required.
>
> With the two controls duplex would be enabled when Mute Rx on PTT was
> false AND Tx enable only on PTT was true.
>
> Sorry but I'm still not following the need for two settings.
>
> 73's Phil....
>
>
> ----- Original Message ----- From: "David McQuate" <mcquate at sonic.net>
> To: "Phil Harman" <phil at pharman.org>
> Sent: Sunday, August 02, 2009 12:45 PM
> Subject: Re: Item 2 on the wish list
>
>
>> Hi Phil,
>> Nice list of features in your wish list! (I'll consider possible
>> additions)
>>
>> One thought on duplex mode selection--
>>
>> choose "Mute Rx on PTT" or not (in which case the receiver is never
>> muted, and duplex operation is supported)
>> and
>> choose "Tx enable only on PTT" or not (in which case duplex operation is
>> supported)
>>
>> By PTT, i mean any scheme in which Transmit is explicitly enabled, such
>> as microphone button, GUI button
>> clicked, or VOX activated..
>>
>> These two options allow quite a lot of flexibility, and, I think, are
>> fairly straight-forward, easy to understand.
>> 73,
>> Dave
>>
More information about the Hpsdr
mailing list