Here’s a chirp* run with a “bad” FT2D image. I’ve elided most of the "Bandplan … duplicates" warnings. The traceback occurs after loading the image, navigating to the Banks tab, when I try to click on a box in the second bank, which the radio’s user had defined with an immutable special memory location. The UI gives a modal error dialog “Failed to add # to mapping: list index out of range”, where # is the memory “Loc” I touched. The UI will never add or delete any instance in the selected bank thereafter. If one never touches a checkbox in the bank, all is OK. Chirp does not crash, but it won’t allow access to that memory bank. I believe it also does not change the entry in the bank location, so it’s not “corrupting” the memory image.
Okay, well, the error you show shouldn’t screw the UI anyway, so maybe there is yet another bug.
Can you send me an image (privately is fine) that has a bank with a special memory mapped into it so I can reproduce this?
The easy changes will special-case those entries and prevent the UI from ever seeing them. I will also add the non-immutable special memory entries so that they can be displayed and changed in memedit.py. I do not think that the radio will allow those entries to be included in a bank, so they should have no effect on bankedit.py. If I could figure out the syntax, it’d probably be best to make the image actually acknowledge the top bit as an “unused” flag,
Um, I thought you were saying that the radio _did_ allow these special channels to be in a bank, and that doing so on the radio itself is what would confuse chirp when it tries to interpret the image? Are there two type of special memories here that I’m missing?
- I used the latest chirp from “brew” for Macintosh:
CHIRP daily-20170714 on Darwin XXXXX 17.2.0 Darwin Kernel Version 17.2.0: Fri Sep 29 18:27:05 PDT 2017; root:xnu-4570.20.62~3/RELEASE_X86_64 x86_64 (Python 2.7.14)
In order to submit changes, you’ll need to pull down the source tree and generate patches from that, FWIW. Also, if I post things for you to try, you’ll want to apply them to the real source tree for testing. If brew has installed all the deps you need to run it the way you show in your log, then you can probably just do “./chirpw” from the root of the source tree without much trouble.
—Dan