<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hello CHIRP experts. Thanks for reading, and especially for responding to my questions in bold.<div class=""><br class=""></div><div class="">1. I’ve just found that CHIRP-next and CHIRP-source both break when I try to look at the settings data for a radio that’s new (ahem… not quite: when I use a default .ft1d file written by Yaesu’s ADMS software.) The root cause is that no data have (ever yet) been placed into the APRS section, and CHIRP effectively burps on a Null link. I’ve fixed that, I think. I also simplified some of the inheritance “differences”… The FT1, FT2 and FT3 all have 900 memories, and 99 Skip-memories and 100 PMS-memories, so changing the ft1d.py to at least define them (even if not quite handled!) seemed like a no-brainer.<div class=""><b class="">Question 1: How to put this branch into the regular tree? Will I need to submit an error report (issue) so I can get a case number and email you the diff file with an appropriately-referenced datum? Or, since things are still being wholesale-changed, should I just push it on up? </b>(I’m loath to do that because y’all are very good at spotting stupid programmer errors and I’m no Python expert.)<b class=""> All of my other changes below will be sequential branches from this one.</b><br class=""><div class=""><br class=""></div><div class="">2. The GM/WWIRES-X support from the ft70.py is almost drop-in compatible, so I’ve a (separate) ft1d.py that at least displays those data in a settings tab. (I’ve not tried setting them yet; most are pull-down menus.) There is more work desired to enter to support the digital rooms and categories (Yaesu’s ADMS handles those, so I think CHIRP should as well.) This work supports Feature #6151</div><div class=""><br class=""></div><div class="">3. I’ve yet another ft1d.py branch that handles the 99 skip-memories, 100 PMS-memories and 11 Home memories as ‘specials’. So far, they seem to be displaying correctly (yay!) This looks like the same issue as Bug #3951 but for Yaesu FT-1D, FT2D, FT-3D.</div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>- One downside for now is that there are ~1200 lines in the CHIRP output page. At least for testing purposes, most are empty, and so a LOT of scrolling is required. Is there any way to have CHIRP [optionally] display only one blank line in a row (skipping others) or to go back to the toggles for “show blanks” and “show specials”?? I can imagine having the UI become sensitive to a radio-specific parameter (e.g. rf.display_blank_lines and rf.display_specials, both set True by default but selectable by the driver and/or in the UI) I can imagine having memory output look like the following for an FT1 (Home frequencies are always set; Specials show at least first and maybe last line, even if blank)</div><div class="">1<span class="Apple-tab-span" style="white-space:pre">        </span>freq …</div><div class="">2<span class="Apple-tab-span" style="white-space:pre">        </span>freq …</div><div class="">3<span class="Apple-tab-span" style="white-space:pre">        </span>(blank line)</div><div class="">10<span class="Apple-tab-span" style="white-space:pre">        </span>freq …</div><div class="">11<span class="Apple-tab-span" style="white-space:pre">        </span>(blank line)</div><div class="">900<span class="Apple-tab-span" style="white-space:pre">        </span>(blank line)</div><div class="">S1<span class="Apple-tab-span" style="white-space:pre">        </span>freq …</div><div class="">S2<span class="Apple-tab-span" style="white-space:pre">        </span>(blank line)</div><div class="">S99<span class="Apple-tab-span" style="white-space:pre">        </span>(blank line)</div><div class="">L1<span class="Apple-tab-span" style="white-space:pre">        </span>(blank line)</div><div class="">U50<span class="Apple-tab-span" style="white-space:pre">        </span>(blank line)</div><div class="">H1<span class="Apple-tab-span" style="white-space:pre">        </span>0.65<span class="Apple-tab-span" style="white-space:pre">        </span></div><div class="">H2<span class="Apple-tab-span" style="white-space:pre">        </span>…</div><div class="">H11<span class="Apple-tab-span" style="white-space:pre">        </span>…</div><div class=""><br class=""></div><div class=""><b class="">Question 3a: Can I (optionally) have CHIRP hide some blank lines?</b></div><div class=""><br class=""></div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>- It seems that specials have an execution path that I didn’t expect. When I try to SET a regular memory, my present debug shows ‘set_memory’ is called and works fine. I’ve modified it to handle the special memories, similar to changes in ‘get_memory.’ But when I try to change a special memory, my driver's ‘set_memory’ routine isn’t called at all. Instead, I run into an error (I was able to get debug file from CHIRP_next after loading my driver module; that is attached. I had loaded an ADMS file and touched the settings button, then tried to change Skip901 special memory.)</div><div class=""><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">Traceback (most recent call last):</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> File "/Users/declan/chirp/chirp/wxui/common.py", line 452, in run_safe</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> return fn(*args, **kwargs)</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> ^^^^^^^^^^^^^^^^^^^</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> File "/Users/declan/chirp/chirp/wxui/memedit.py", line 1038, in _memory_edited</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> self._radio.validate_memory(mem))</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> File "/Users/declan/chirp/chirp/chirp_common.py", line 1227, in validate_memory</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> return rf.validate_memory(mem)</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> ^^^^^^^^^^^^^^^^^^^^^^^</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> File "/Users/declan/chirp/chirp/chirp_common.py", line 976, in validate_memory</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> (mem.number < lo or mem.number > hi) and \</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> ^^^^^^^^^^^^^^^</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">TypeError: '<' not supported between instances of 'str' and ‘int'</span></div><div style="margin: 0px; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo; min-height: 13px;" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""></span><br class=""></div></div><div class="">Now AFAICT, the ‘mem.number' that my driver gets can be either an integer (1-900 in FT1D case) or an appropriate string for the specials (e.g.’Home1’). Those names came from my specials list used to set ‘rf.valid_special_chans’ … I don’t think I ever set mem.number, but it seems as if CHIRP is using the names from my specials list (I can’t quite tell… I never put debugs into the memedit.py or chirp_common.py.) I don’t explicitly use ‘extd_number’ anywhere in my drivers.</div><div class=""><br class=""></div><div class=""><b class="">Question 3b: HOW do I correctly allow CHIRP to modify a special memory?</b></div></div><div class=""><b class=""><br class=""></b></div><div class=""></div></div></body></html>