Dan,
Thank you for your valuable insight and I'm glad we are on the same page. Here is take 2 on that GA-2S patch.
It would be great if others could test that their 666/777/888 radios aren't affected.
Thanks, Tony
--- # HG changeset patch # User Tony F goldstar611@hotmail.com # Date 1565994341 18000 # Fri Aug 16 17:25:41 2019 -0500 # Branch issue_6217 # Node ID 454ca84be9ac05fbc32a224325142f9561a9c2ac # Parent 42b4bb639fb6892826091a8a86bf9347b116fe51 [h777] Enable sidekey for Radioddity GA-2S Issue #6217 https://chirp.danplanet.com/issues/6217 NOTE: Setting side key to "TX Power" has no affect on radio
diff --git a/chirp/drivers/h777.py b/chirp/drivers/h777.py --- a/chirp/drivers/h777.py +++ b/chirp/drivers/h777.py @@ -82,7 +82,6 @@ H777_POWER_LEVELS = [chirp_common.PowerLevel("Low", watts=1.00), chirp_common.PowerLevel("High", watts=5.00)] VOICE_LIST = ["English", "Chinese"] -SIDEKEYFUNCTION_LIST = ["Off", "Monitor", "Transmit Power", "Alarm"] TIMEOUTTIMER_LIST = ["Off", "30 seconds", "60 seconds", "90 seconds", "120 seconds", "150 seconds", "180 seconds", "210 seconds", "240 seconds", "270 seconds", @@ -288,6 +287,10 @@ _has_fm = True _has_sidekey = True
+ def __init__(self, *args, **kwargs): + super(H777Radio, self).__init__(*args, **kwargs) + self.SIDEKEYFUNCTION_LIST = ["Off", "Monitor", "Transmit Power", "Alarm"] + def get_features(self): rf = chirp_common.RadioFeatures() rf.has_settings = True @@ -521,8 +524,8 @@ if self._has_sidekey: rs = RadioSetting("settings2.sidekeyfunction", "Side key function", RadioSettingValueList( - SIDEKEYFUNCTION_LIST, - SIDEKEYFUNCTION_LIST[ + self.SIDEKEYFUNCTION_LIST, + self.SIDEKEYFUNCTION_LIST[ self._memobj.settings2.sidekeyfu nction])) basic.append(rs)
@@ -618,9 +621,12 @@ VENDOR = "Radioddity" MODEL = "GA-2S" _has_fm = False - _has_sidekey = False
@classmethod def match_model(cls, filedata, filename): # This model is only ever matched via metadata return False + + def __init__(self, *args, **kwargs): + super(ROGA2SRadio, self).__init__(*args, **kwargs) + self.SIDEKEYFUNCTION_LIST = ["Off", "Monitor", "Unused", "Alarm"]
On Fri, 2019-08-16 at 08:14 -0700, Dan Smith via chirp_devel wrote:
I am open to suggestions on the global variable hack. If more of these variables were inside a class then it would be trivial to update it in the __init__() method using self.SIDEKEYFUNCTION_LIST
Yeah, just move that list definition into the parent class, and override it in the appropriate subclass. Minimizing impact to existing code is good, but do as much as you need to make it _right_ :) You definitely can't modify the global, because if I'm using two radios together, one of which is a GA-2S, after I've used the driver to work with it, it's broken until restart for another variant :)
--Dan _______________________________________________ chirp_devel mailing list chirp_devel@intrepid.danplanet.com http://intrepid.danplanet.com/mailman/listinfo/chirp_devel Developer docs: http://chirp.danplanet.com/projects/chirp/wiki/Developers