
PriorityList = []
@classmethod def get_prompts(cls):
@@ -341,10 +342,19 @@ else: mem.number = number
try:
self.PriorityList.remove(mem.number)
except:
None
if (_mem.freq.get_raw()[0] == "\xFF") or (_bf.band == "\x0F"): mem.empty = True return mem
if _bf.band > 0:
self.PriorityList.append(mem.number)
self.PriorityList.sort()
mem.freq = int(_mem.freq) * 10 if _mem.offset.get_raw()[0] == "\xFF":
@@ -390,6 +400,11 @@
_bf.set_raw("\xFF")
try:
self.PriorityList.remove(mem.number)
except:
None
if mem.empty: _mem.set_raw("\xFF" * 16) return
@@ -402,6 +417,10 @@ if mem.freq >= ele[0] and mem.freq <= ele[1]: _bf.band = idx
if _bf.band > 0:
self.PriorityList.append(mem.number)
self.PriorityList.sort()
I have the same core argument here: you're depending on get or set memory to have run before settings such that we've built this information, which won't always be the case. If set_settings() needs to look at the state of all the memories to determine the proper behavior, then that's what should happen. It's good to try to cache the stuff during single-memory operations like you do, but I think it's not necessary for performance and definitely shouldn't sacrifice correctness.
_mem.freq = mem.freq / 10 _mem.offset = mem.offset / 10
@@ -511,10 +530,16 @@ mem_vals.insert(0, 0xFF) user_options.insert(0, "Not Set") options_map = zip(user_options, mem_vals)
_priority_channel = _settings.priority_channel
if not (_priority_channel in self.PriorityList):
_priority_channel = 0xFF
Instead of depending on self.PriorityList, just have a routine you call to scan the bands of the memories in the memory object to help you make your determination.
--Dan