On Tue, Dec 29, 2015 at 3:15 PM, Joseph scanlan via chirp_devel chirp_devel@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