[chirp_devel] [PATCH] [VV-898] Update Image Detections
Jim Unroe
Thu Dec 25 04:55:27 PST 2014
# HG changeset patch
# User Jim Unroe <rock.unroe at gmail.com>
# Date 1419510301 18000
# Node ID 19242ec08941da524403353948d3d5959e07bbfa
# Parent a81615723033a1f49794e33609913e563efe3ace
[VV-898] Update Image Detections
Add method to fall back to original detection string for older data files
Add method to skip uploading settings area block for older data files
related to #2119
diff -r a81615723033 -r 19242ec08941 chirp/leixen.py
--- a/chirp/leixen.py Wed Dec 24 14:16:04 2014 -0800
+++ b/chirp/leixen.py Thu Dec 25 07:25:01 2014 -0500
@@ -68,6 +68,12 @@
TMODES = ["", "Tone", "DTCS", "DTCS"]
+def _image_ident_from_data(data):
+ return data[0x170:0x176]
+
+def _image_ident_from_image(radio):
+ return _image_ident_from_data(radio.get_mmap())
+
def checksum(frame):
x = 0
for b in frame:
@@ -139,9 +145,15 @@
return memmap.MemoryMap(data)
def do_upload(radio):
+ _ranges = [(0x0d00, 0x2000)]
+
+ image_ident = _image_ident_from_image(radio)
+ if image_ident == radio._file_ident:
+ _ranges = radio._ranges
+
do_ident(radio)
-
- for start, end in radio._ranges:
+
+ for start, end in _ranges:
for addr in range(start, end, 0x10):
frame = make_frame("W", addr, radio._mmap[addr:addr + 0x10])
send(radio, frame)
@@ -348,7 +360,11 @@
@classmethod
def match_model(cls, filedata, filename):
- return filedata[0x170:0x176] == cls._file_ident
+ if filedata[0x170:0x176] == cls._file_ident:
+ return True
+ elif filedata[0x900:0x906] == cls.MODEL:
+ return True
+ return False
@directory.register
More information about the chirp_devel
mailing list