[chirp_devel] Issue #7409 patch
Rick DeWitt AA0RD
Thu Dec 12 07:18:00 PST 2019
Patch for the ts-590 File > New error.
Adds a 'match_model' method to satisfy the new CSV test in directory.py.
Also improved auto-baud detection and changed the class declaration to a
unique name, not duplicating the one in kenwood_live.
--
Rick DeWitt
AA0RD
Sequim, Washington, USA 98382
(360) 681-3494
-------------- next part --------------
# HG changeset patch
# User Rick DeWitt <aa0rd at yahoo.com>
# Date 1576163136 28800
# Thu Dec 12 07:05:36 2019 -0800
# Node ID 62a26da6eaddf9d563f9a2e2753aec6674a04ed9
# Parent b5589aa94c1e6a424d0f713017f68d39caa29be9
[ts590] Resolving issue #7409
Add match_model to satisfy File > New csv generation. Improve auto-baud. Unique class ID.
diff -r b5589aa94c1e -r 62a26da6eadd chirp/drivers/ts590.py
--- a/chirp/drivers/ts590.py Thu Dec 05 21:14:35 2019 +1100
+++ b/chirp/drivers/ts590.py Thu Dec 12 07:05:36 2019 -0800
@@ -19,7 +19,6 @@
import logging
import re
import math
-import threading
from chirp import chirp_common, directory, memmap
from chirp import bitwise, errors, util
from chirp.settings import RadioSettingGroup, RadioSetting, \
@@ -121,12 +120,10 @@
u8 ex099;
} exset[2];
- char mdl_name[9]; // appended model name, first 9 chars
-
"""
+MEMSIZE = 0x0bf8 # Img file size withoud metadata
STIMEOUT = 2
-LOCK = threading.Lock()
BAUD = 0 # Initial baud rate
MEMSEL = 0 # Default Menu A
BEEPVOL = 4 # Default beep volume
@@ -163,7 +160,6 @@
# If rsplen = 0 then do not read after write
start = time.time()
- # LOCK.acquire()
stx = cmd # preserve cmd for response check
stx = stx + exts + ";" # append arguments
ser.write(stx)
@@ -176,7 +172,6 @@
result = ser.read(rsplen)
LOG.debug("RADIO->PC [%s]" % result)
result = result[:-1] # remove terminator
- # LOCK.release()
return result.strip()
@@ -193,15 +188,16 @@
radio.pipe.timeout = STIMEOUT
for bd in bauds:
+ junk = radio.pipe.read(16)
radio.pipe.baudrate = bd
BAUD = bd
radio.pipe.write(";")
radio.pipe.write(";")
- resp = radio.pipe.read(4)
+ resp = radio.pipe.read(16)
radio.pipe.write("ID;")
- resp = radio.pipe.read(6)
-
- if resp == radio.ID: # Good comms
+ resp = radio.pipe.read(16)
+ LOG.debug("Radio sent ID: %s for baud %i" % (resp, BAUD))
+ if resp.find(radio.ID) >= 0: # Good comms
resp = command(radio.pipe, "AI0", 0, W8L)
return
elif resp in RADIO_IDS.keys():
@@ -423,8 +419,7 @@
nc += 1
status.cur = nc
radio.status_fn(status)
- setts += radio.MODEL.ljust(9)
- # Now set the inidial menu selection back
+ # Now set the initial menu selection back
result0 = command(radio.pipe, "MF", 0, W8L, "%1i" % MEMSEL)
# And the original Beep Volume
result0 = command(radio.pipe, "EX0050000%2i" % BEEPVOL, 0, W8L)
@@ -562,10 +557,9 @@
return
-# Bug #7409
-# @directory.register
-class TS590Radio(chirp_common.CloneModeRadio):
- """Kenwood TS-590"""
+ at directory.register
+class TS590_CRadio(chirp_common.CloneModeRadio):
+ """ Kenwood TS-590 using CAT """
VENDOR = "Kenwood"
MODEL = "TS-590SG_CloneMode"
ID = "ID023;"
@@ -1614,7 +1608,6 @@
def set_settings(self, settings):
_settings = self._memobj.settings
- _mem = self._memobj
for element in settings:
if not isinstance(element, RadioSetting):
self.set_settings(element)
@@ -1647,9 +1640,18 @@
LOG.debug(element.get_name())
raise
+ @classmethod
+ def match_model(cls, fdata, fyle):
+ """ Included to prevent 'File > New' error """
+ # Test the file data size
+ if len(fdata) == MEMSIZE:
+ return True
+ else:
+ return False
+
@directory.register
-class TS590SRadio(TS590Radio):
+class TS590S_CRadio(TS590_CRadio):
""" Kenwood TS-590S variant of the TS590 """
VENDOR = "Kenwood"
MODEL = "TS-590S_CloneMode"
More information about the chirp_devel
mailing list