[chirp_devel] [PATCH] [THD72] Fix buggy memory initialization. #1611
Tom Hayward
Sat Mar 18 06:38:33 PDT 2017
Hold off on applying this. It doesn't work as intended.
Tom
On Mar 17, 2017 22:00, "Tom Hayward" <esarfl at gmail.com> wrote:
> # HG changeset patch
> # User Tom Hayward <tom at tomh.us>
> # Date 1489813179 25200
> # Fri Mar 17 21:59:39 2017 -0700
> # Node ID 027d861a73342f6208f4f977d844b2caf4be5721
> # Parent 6b5b397b4859dd64603d7c4a0b91ffdbdfbe2bb6
> [THD72] Fix buggy memory initialization. #1611
>
> Allows channels added by Chirp to transmit. As a side effect, transmit
> inhibit
> is now optional (rather than compulsary).
>
> diff -r 6b5b397b4859 -r 027d861a7334 chirp/drivers/thd72.py
> --- a/chirp/drivers/thd72.py Fri Mar 17 15:17:57 2017 -0700
> +++ b/chirp/drivers/thd72.py Fri Mar 17 21:59:39 2017 -0700
> @@ -90,7 +90,7 @@
> #seekto 0x0c00;
> struct {
> u8 disabled:7,
> - unknown0:1;
> + txinhibit:1;
> u8 skip;
> } flag[1032];
>
> @@ -183,9 +183,6 @@
> EXCH_R = "R\x00\x00\x00\x00"
> EXCH_W = "W\x00\x00\x00\x00"
>
> -# Uploads result in "MCP Error" and garbage data in memory
> -# Clone driver disabled in favor of error-checking live driver.
> -
>
> @directory.register
> class THD72Radio(chirp_common.CloneModeRadio):
> @@ -224,7 +221,7 @@
> rf.valid_tuning_steps = []
> rf.valid_modes = MODES_REV.keys()
> rf.valid_tmodes = TMODES_REV.keys()
> - rf.valid_duplexes = DUPLEX_REV.keys()
> + rf.valid_duplexes = DUPLEX_REV.keys() + ["off"]
> rf.valid_skips = ["", "S"]
> rf.valid_characters = chirp_common.CHARSET_ALPHANUMERIC
> rf.valid_name_length = 8
> @@ -283,7 +280,7 @@
>
> def get_raw_memory(self, number):
> return repr(self._memobj.memory[number]) + \
> - repr(self._memobj.flag[(number)])
> + repr(self._memobj.flag[number])
>
> def get_memory(self, number):
> if isinstance(number, str):
> @@ -315,7 +312,7 @@
> mem.rtone = chirp_common.TONES[_mem.rtone]
> mem.ctone = chirp_common.TONES[_mem.ctone]
> mem.dtcs = chirp_common.DTCS_CODES[_mem.dtcs]
> - mem.duplex = DUPLEX[int(_mem.duplex)]
> + mem.duplex = flag.txinhibit and "off" or DUPLEX[int(_mem.duplex)]
> mem.offset = int(_mem.offset)
> mem.mode = MODES[int(_mem.mode)]
>
> @@ -369,7 +366,8 @@
> _mem.ctone = chirp_common.TONES.index(mem.ctone)
> _mem.dtcs = chirp_common.DTCS_CODES.index(mem.dtcs)
> _mem.cross_mode = chirp_common.CROSS_MODES.index(mem.cross_mode)
> - _mem.duplex = DUPLEX_REV[mem.duplex]
> + flag.txinhibit = mem.duplex == "off"
> + _mem.duplex = DUPLEX_REV.get(mem.duplex, 0)
> _mem.offset = mem.offset
> _mem.mode = MODES_REV[mem.mode]
>
> @@ -509,9 +507,8 @@
> raise errors.RadioError("No response to ID command")
>
> def initialize(self, mmap):
> - mmap[0] = \
> - "\x80\xc8\xb3\x08\x00\x01\x00\x08" + \
> - "\x08\x00\xc0\x27\x09\x00\x00\xff"
> + mmap.set_raw("\x00\xc8\xb3\x08\x00\x01\x00\x08"
> + "\x08\x00\xc0\x27\x09\x00\x00\x00")
>
> def _get_settings(self):
> top = RadioSettings(self._get_display_settings(),
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://intrepid.danplanet.com/pipermail/chirp_devel/attachments/20170318/185cc2e3/attachment-0001.html
More information about the chirp_devel
mailing list