[chirp_devel] Fwd: Fix downloading/uploading issue for UV-5R. Fixes #2317
Mathieu Rozon
Mon Mar 9 18:46:18 PDT 2015
I have tested it with the "newer" versions that had the upload/download
issues as well as an "older" version that was previously working with
chirp.
What is the review process for patches? Should I submit a new patch with
the corrections that you request?
Thank you.
2015-03-09 21:16 GMT-04:00 Dan Smith <dsmith at danplanet.com>:
> Hi Mathieu,
>
> It came through this time :)
>
> > # HG changeset patch
> > # User Mathieu Rozon <mathrozon at gmail.com>
> > # Date 1425778153 18000
> > # Sat Mar 07 20:29:13 2015 -0500
> > # Node ID cfdd6f6577f1c8d420376c35bb684a9552042179
> > # Parent d84dfd6c29d61268de11584f5d427e60936131d9
> > Fix downloading/uploading issue for UV-5R. Fixes #2317
> >
> > diff -r d84dfd6c29d6 -r cfdd6f6577f1 chirp/drivers/uv5r.py
> > --- a/chirp/drivers/uv5r.py Tue Mar 03 22:25:38 2015 -0800
> > +++ b/chirp/drivers/uv5r.py Sat Mar 07 20:29:13 2015 -0500
> > @@ -438,17 +438,22 @@
> > ack = serial.read(1)
> > if ack != "\x06":
> > raise errors.RadioError("Radio refused clone")
> > -
> > +
>
> You're adding whitespace here, please remove this.
>
> > return ident
> >
> >
> > -def _read_block(radio, start, size):
> > +def _read_block(radio, start, size, firstCommand):
>
> Since this is not needed every time, you should default this to False
> for easier calling. Like this:
>
> def _read_block(radio, start, size, first_command=False):
> ...
>
> > msg = struct.pack(">BHB", ord("S"), start, size)
> > radio.pipe.write(msg)
> >
> > + if(firstCommand == False):
>
> Please don't use camelCase identifiers and observe proper spacing; the
> parentheses are unnecessary. Also, the pythonic way to do this would be:
>
> if not first_command:
> ...
>
> > + 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)
> > + raise errors.RadioError("Radio refused to send first block
> 0x%04x" % start)
>
> I don't think you should make this change, as you could hit this error
> on a non-first block.
>
> >
> > cmd, addr, length = struct.unpack(">BHB", answer)
> > if cmd != ord("X") or addr != start or length != size:
> > @@ -464,28 +469,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)
> > + block = _read_block(radio, 0x1FF0, 0x40, True)
> > version = block[0:6]
> > else:
> > - block1 = _read_block(radio, 0x1EC0, 0x40)
> > - block2 = _read_block(radio, 0x1F00, 0x40)
> > + block1 = _read_block(radio, 0x1EC0, 0x40, True)
> > + block2 = _read_block(radio, 0x1F00, 0x40, False)
>
> If you make the change I suggested above about the defaulted parameter,
> then you won't need to pass False here.
>
> I'm worried that this may not work for other UV5R variants, other than
> the ones mentioned in the bug.
>
> Jim, can you look the changes here over and see if you think it'll be a
> problem for the other versions of this radio?
>
> Thanks!
>
> --Dan
>
>
> _______________________________________________
> chirp_devel mailing list
> chirp_devel at intrepid.danplanet.com
> http://intrepid.danplanet.com/mailman/listinfo/chirp_devel
> Developer docs: http://chirp.danplanet.com/projects/chirp/wiki/Developers
>
--
<---- Mathieu Rozon ---->
mathrozon at gmail.com <mathrozon at gmail.som>
(514)475-5010
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://intrepid.danplanet.com/pipermail/chirp_devel/attachments/20150309/f8c82c68/attachment-0001.html
More information about the chirp_devel
mailing list