[chirp_devel] [PATCH]

Ray Cielencki
Sun Mar 11 11:34:43 PDT 2018


# HG changeset patch
# User Ray Cielencki <rayslinky at gmail.com>
# Date 1520793253 14400
#      Sun Mar 11 14:34:13 2018 -0400
# Node ID c5ab89c9767712207d53a6ecfa69249a9d1bb175
# Parent  bc008caf047165682aff19fc420a05b264ad1e5c
#5635: FT2D variant, fix opening message, extend smart beaconing limit

diff -r bc008caf0471 -r c5ab89c97677 chirp/drivers/ft1d.py
--- a/chirp/drivers/ft1d.py	Thu Mar 08 20:23:39 2018 +0000
+++ b/chirp/drivers/ft1d.py	Sun Mar 11 14:34:13 2018 -0400
@@ -624,6 +624,7 @@
     _BACKTRACK_STATUS = ("Valid", "Invalid")
     _NS_HEMI = ("N", "S")
     _WE_HEMI = ("W", "E")
+    _APRS_HIGH_SPEED_MAX = 70
 
     @classmethod
     def get_prompts(cls):
@@ -1350,7 +1351,8 @@
             prof = aprs.smartbeaconing_profile[profile]
 
             low_val = RadioSettingValueInteger(2, 30, prof.low_speed_mph)
-            high_val = RadioSettingValueInteger(3, 70, prof.high_speed_mph)
+            high_val = RadioSettingValueInteger(3, self._APRS_HIGH_SPEED_MAX, \
+                    prof.high_speed_mph)
             low_val.get_max = lambda: min(30, int(high_val.get_value()) - 1)
 
             rs = RadioSetting("%s.low_speed_mph" % path,
@@ -1470,6 +1472,12 @@
                           val)
         menu.append(rs)
 
+        rs = self._decode_opening_message(opening_message)
+        menu.append(rs)
+
+        return menu
+
+    def _decode_opening_message(self, opening_message):
         msg = ""
         for i in opening_message.message.padded_yaesu:
             if i == 0xFF:
@@ -1480,9 +1488,7 @@
                           "Opening Message", val)
         rs.set_apply_callback(self.apply_ff_padded_yaesu,
                               opening_message.message)
-        menu.append(rs)
-
-        return menu
+        return rs
 
     def backtrack_ll_validate(self, number, min, max):
         if str(number).lstrip('0').strip().isdigit() and \
diff -r bc008caf0471 -r c5ab89c97677 chirp/drivers/ft2d.py
--- a/chirp/drivers/ft2d.py	Thu Mar 08 20:23:39 2018 +0000
+++ b/chirp/drivers/ft2d.py	Sun Mar 11 14:34:13 2018 -0400
@@ -20,7 +20,8 @@
 
 from chirp.drivers import yaesu_clone, ft1d
 from chirp import chirp_common, directory, bitwise
-from chirp.settings import RadioSettings
+from chirp.settings import RadioSetting, RadioSettings
+from chirp.settings import RadioSettingValueString
 
 # Differences from Yaesu FT1D
 #  999 memories, but 901-999 are only for skipping VFO frequencies
@@ -75,6 +76,7 @@
                    0x1064A,        # APRS beacon content address.
                    134,            # Length of beacon data stored.
                    60)             # Number of beacons stored.
+    _APRS_HIGH_SPEED_MAX = 90
 
     @classmethod
     def get_prompts(cls):
@@ -125,4 +127,31 @@
         if mem.number >= 901 and mem.number <= 999: # for FT2D; enforces skip
             flag.skip = True
             mem.skip = "S"
-        super(FT2D, self).set_memory(mem)
\ No newline at end of file
+        super(FT2D, self).set_memory(mem)
+
+    def _decode_opening_message(self, opening_message):
+        msg = ""
+        for i in opening_message.message.padded_yaesu:
+            if i == 0xFF:
+                break
+            msg += chr(int(i))
+        val = RadioSettingValueString(0, 16, msg)
+        rs = RadioSetting("opening_message.message.padded_yaesu",
+                          "Opening Message", val)
+        rs.set_apply_callback(self._apply_opening_message,
+                              opening_message.message.padded_yaesu)
+        return rs
+
+    def _apply_opening_message(self, setting, obj):
+        data = self._add_ff_pad(setting.value.get_value().rstrip(), 16)
+        val = []
+        for i in data:
+            val.append(ord(i))
+        self._memobj.opening_message.message.padded_yaesu = val
+
+ at directory.register
+class FT2Dv2(FT2D):
+    """Yaesu FT-2D v2 firwmare"""
+    VARIANT = "Rv2"
+
+    _model = "AH60G"



More information about the chirp_devel mailing list