
# HG changeset patch # User Ran Katz rankatz@gmail.com # Date 1659530381 -10800 # Wed Aug 03 15:39:41 2022 +0300 # Node ID 7c1a4c8b1c8dd4e97f2f31b89ed1e158adafb6d9 # Parent 5dbf582fbc464805b2e5322920f04d78a28a8947 [tg_uv2p] Inhibit keypad lock when in dual watch or crossmode. Fixes forth issue in #9939 This is a radio feature when using the keypad :keypad lock cannot be applied (or releaswed) when in the above modes, now chirp behaves similarly.
diff --git a/chirp/drivers/tg_uv2p.py b/chirp/drivers/tg_uv2p.py --- a/chirp/drivers/tg_uv2p.py +++ b/chirp/drivers/tg_uv2p.py @@ -212,6 +212,8 @@
_memsize = 0x2000
+ RxModeKeyUnLock_FLAG = False + @classmethod def get_prompts(cls): rp = chirp_common.RadioPrompts() @@ -496,7 +498,9 @@ cfg_grp.append(rs)
# Keypad lock - rs = RadioSetting("keyunlocked", "Keypad Lock", + rs = RadioSetting("keyunlocked", "Keypad Lock\n" + + "Note: will not be set (locked)\n" + + "if RX is in Dual/Cross mode", RadioSettingValueBoolean( not _settings.keyunlocked)) cfg_grp.append(rs) @@ -707,7 +711,21 @@ elif setting == "busy_lockout": setattr(obj, setting, not int(element.value)) elif setting == "keyunlocked": - setattr(obj, setting, not int(element.value)) + if self.RxModeKeyUnLock_FLAG: + val = True + else: + val = not int(element.value) + LOG.debug("Setting %s = %s" % (setting, val)) + setattr(obj, setting, val) + elif setting == "rxmode": + if int(element.value) < 2: + self.RxModeKeyUnLock_FLAG = True + LOG.debug("Due to RxMode not normal, " + + "forcing keylock to unlock") + else: + self.RxModeKeyUnLock_FLAG = False + LOG.debug("Setting %s = %s" % (setting, element.value)) + setattr(obj, setting, element.value) elif element.value.get_mutable(): LOG.debug("Setting %s = %s" % (setting, element.value)) setattr(obj, setting, element.value)