[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