I currently cannot run the "run_tests" script. Sorry.
Jim
On Sat, Mar 14, 2015 at 6:03 PM, Jim Unroe rock.unroe@gmail.com wrote:
# HG changeset patch # User Jim Unroe rock.unroe@gmail.com # Date 1426370486 14400 # Node ID ecba19b26da64ecd03be7d47e04d1ad21d1ae08f # Parent c9c9128ca29ea21f54249788a9c0e47c9d5fbdc4 [UV-5R] "radio refused to send block code 0x1ec0" patch
Fix downloading/uploading issue for UV-5R.
Mathieu Rozon created the original patch. Updated by Jim Unroe for better uploading compatiblilty.
Fixes #2317
diff -r c9c9128ca29e -r ecba19b26da6 chirp/drivers/uv5r.py --- a/chirp/drivers/uv5r.py Thu Mar 12 09:49:32 2015 +0100 +++ b/chirp/drivers/uv5r.py Sat Mar 14 18:01:26 2015 -0400 @@ -442,10 +442,16 @@ return ident
-def _read_block(radio, start, size): +def _read_block(radio, start, size, first_command = False): msg = struct.pack(">BHB", ord("S"), start, size) radio.pipe.write(msg)
- if(first_command == False):
ack = radio.pipe.read(1)
if ack != "\x06":
raise errors.RadioError("Radio refused to send second block 0x%04x" %
start)
- answer = radio.pipe.read(4) if len(answer) != 4: raise errors.RadioError("Radio refused to send block 0x%04x" % start)
@@ -464,28 +470,25 @@ raise errors.RadioError("Radio sent incomplete block 0x%04x" % start)
radio.pipe.write("\x06")
- ack = radio.pipe.read(1)
- if ack != "\x06":
raise errors.RadioError("Radio refused to send block 0x%04x" % start)
time.sleep(0.005)
return chunk
def _get_radio_firmware_version(radio): if radio.MODEL == "BJ-UV55":
block = _read_block(radio, 0x1FF0, 0x40)
else:block = _read_block(radio, 0x1FF0, 0x40, True) version = block[0:6]
block1 = _read_block(radio, 0x1EC0, 0x40)
block2 = _read_block(radio, 0x1F00, 0x40)
block1 = _read_block(radio, 0x1EC0, 0x40, True)
return versionblock2 = _read_block(radio, 0x1F00, 0x40, False) block = block1 + block2 version = block[48:62]
def _get_radio_special_block(radio):
- block = _read_block(radio, 0xCF0, 0x40)
- block = _read_block(radio, 0xCF0, 0x40, False) special_block = block[2:9] return special_block
@@ -517,14 +520,14 @@ # Main block LOG.debug("downloading main block...") for i in range(0, 0x1800, 0x40):
data += _read_block(radio, i, 0x40)
_do_status(radio, radio.get_memsize()) LOG.debug("done.") LOG.debug("downloading aux block...") # Auxiliary block starts at 0x1ECO (?) for i in range(0x1EC0, 0x2000, 0x40):data += _read_block(radio, i, 0x40, False) _do_status(radio, i)
data += _read_block(radio, i, 0x40)
LOG.debug("done.") return memmap.MemoryMap(data)data += _read_block(radio, i, 0x40, False)
@@ -532,6 +535,7 @@ def _send_block(radio, addr, data): msg = struct.pack(">BHB", ord("X"), addr, len(data)) radio.pipe.write(msg + data)
time.sleep(0.05)
ack = radio.pipe.read(1) if ack != "\x06":