[chirp_devel] [PATCH 2 of 2] [FT857] Add Dtcs cross modes support and other tones related features

Marco Filippi IZ3GME
Tue May 22 12:10:31 PDT 2012


# HG changeset patch
# User Marco Filippi <iz3gme.marco at gmail.com>
# Date 1337713200 -7200
# Node ID 0f4b9e7b7209e35cfd1cfee52727b6deecb6de7b
# Parent  9bdc33a4911e933402243f6fa61e607b80228f9b
[FT857] Add Dtcs cross modes support and other tones related features
last part of Feature #100

diff -r 9bdc33a4911e -r 0f4b9e7b7209 chirp/ft857.py
--- a/chirp/ft857.py	mar mag 22 20:58:18 2012 +0200
+++ b/chirp/ft857.py	mar mag 22 21:00:00 2012 +0200
@@ -27,6 +27,7 @@
     TMODES = {
         0x04 : "Tone",
         0x05 : "TSQL",
+        0x08 : "DTCS Enc",
         0x0a : "DTCS",
         0xff : "Cross",
         0x00 : "",
@@ -36,11 +37,12 @@
     CROSS_MODES = {
         0x01 : "->Tone",
         0x02 : "->DTCS",
-        # 0x04 : "Tone->", not supported bi chirp UI
+        0x04 : "Tone->",
         0x05 : "Tone->Tone",
         0x06 : "Tone->DTCS",
         0x08 : "DTCS->",
         0x09 : "DTCS->Tone",
+        0x0a : "DTCS->DTCS",
     }
     CROSS_MODES_REV = dict(zip(CROSS_MODES.values(), CROSS_MODES.keys()))
 
@@ -188,6 +190,7 @@
         rf = ft817.FT817Radio.get_features(self)
         rf.has_cross = True
         rf.has_ctone = True
+        rf.has_rx_dtcs = True
         rf.valid_tmodes = self.TMODES_REV.keys()
         rf.valid_cross_modes = self.CROSS_MODES_REV.keys()
         return rf
@@ -209,8 +212,10 @@
              mem.rtone = mem.ctone = chirp_common.TONES[_mem.tone]
         elif mem.tmode == "TSQL":
              mem.rtone = mem.ctone = chirp_common.TONES[_mem.tone]
+        elif mem.tmode == "DTCS Enc":
+             mem.dtcs = mem.rx_dtcs = chirp_common.DTCS_CODES[_mem.dcs]
         elif mem.tmode == "DTCS":
-             mem.dtcs = chirp_common.DTCS_CODES[_mem.dcs]
+             mem.dtcs = mem.rx_dtcs = chirp_common.DTCS_CODES[_mem.dcs]
         elif mem.tmode == "Cross":
             mem.ctone = chirp_common.TONES[_mem.rxtone]
             # don't want to fail for this
@@ -218,15 +223,8 @@
                 mem.rtone = chirp_common.TONES[_mem.tone]
             except IndexError:
                 mem.rtone = chirp_common.TONES[0]
-            if mem.cross_mode == "DTCS->":
-                mem.dtcs = chirp_common.DTCS_CODES[_mem.dcs]
-            elif mem.cross_mode == "Tone->DTCS":
-                mem.dtcs = chirp_common.DTCS_CODES[_mem.rxdcs]
-            elif mem.cross_mode == "DTCS->Tone":
-                mem.dtcs = chirp_common.DTCS_CODES[_mem.dcs]
-            elif mem.cross_mode == "->DTCS":
-                mem.dtcs = chirp_common.DTCS_CODES[_mem.rxdcs]
-
+            mem.dtcs = chirp_common.DTCS_CODES[_mem.dcs]
+            mem.rx_dtcs = chirp_common.DTCS_CODES[_mem.rxdcs]
 
     def _set_tmode(self, mem, _mem):
         if mem.tmode != "Cross":
@@ -240,12 +238,15 @@
             _mem.tone = _mem.rxtone = chirp_common.TONES.index(mem.rtone)
         elif mem.tmode == "TSQL":
             _mem.tone = _mem.rxtone = chirp_common.TONES.index(mem.ctone)
+        elif mem.tmode == "DTCS Enc":
+            _mem.dcs = _mem.rxdcs = chirp_common.DTCS_CODES.index(mem.dtcs)
         elif mem.tmode == "DTCS":
-            _mem.dcs = _mem.rxdcs = chirp_common.DTCS_CODES.index(mem.dtcs)
+            _mem.dcs = _mem.rxdcs = chirp_common.DTCS_CODES.index(mem.rx_dtcs)
         elif mem.tmode == "Cross":
             _mem.tone = chirp_common.TONES.index(mem.rtone)
             _mem.rxtone = chirp_common.TONES.index(mem.ctone)
-            _mem.dcs = _mem.rxdcs = chirp_common.DTCS_CODES.index(mem.dtcs)
+            _mem.dcs = chirp_common.DTCS_CODES.index(mem.dtcs)
+            _mem.rxdcs = chirp_common.DTCS_CODES.index(mem.rx_dtcs)
         # have to put this bit to 0 otherwise we get strange display in tone
         # frequency (menu 83). See bug #88 and #163
         _mem.unknown_toneflag = 0



More information about the chirp_devel mailing list