[chirp_devel] IC-7000 Split Duplex and the User Experience

Tom Hayward
Tue Dec 29 15:40:45 PST 2015


On Tue, Dec 29, 2015 at 3:15 PM, Joseph scanlan via chirp_devel
<chirp_devel at intrepid.danplanet.com> wrote:
> Duplex is set for each channel.  Valid values are "" (simplex), "+", "-",
> and "split".  There is a place in each memory channel (and the CI-V frame)
> for a separate transmit frequency.

I think I understand now. When the user has chosen + or -, it will use
the band's standard offset. When the user chooses "split", it uses the
specified transmit frequency. And the problem you have is that
sometimes users change the offset for + or - without realizing it
affects the whole band.

How about something like this:

def set_memory(self, mem):
   ...
    if mem.duplex in ('+', '-'):
        if mem.offset == get_band_offset(mem.freq):
            memobj.duplex = self._rf.valid_duplexes.index(mem.duplex)
        else:
            memobj.duplex = self._rf.valid_duplexes.index("split")
            if mem.duplex == '+':
                memobj.txfreq = mem.freq + mem.offset
            else:
                memobj.txfreq = mem.freq - mem.offset
    elif mem.duplex == "split":
        memobj.txfreq = mem.offset
    else:
        memobj.duplex = self._rf.valid_duplexes.index("")

[This could be refactored a bit, but hopefully this is simple enough
to understand.]

You will need to figure out how to write get_band_offset() if you want
to use that logic. Otherwise you can just set any offset as split.

Tom KD7LXL



More information about the chirp_devel mailing list