# HG changeset patch # User Dan Smith dsmith@danplanet.com # Date 1328673682 28800 # Node ID d447fde6f900f53d8a0ec5e27e87c13a18a276c2 # Parent 74c27f2df96137b1b07289a7bcdd31cf424e1dfd [ic2200] New bank model support
diff -r 74c27f2df961 -r d447fde6f900 chirp/ic2200.py --- a/chirp/ic2200.py Tue Feb 07 20:01:20 2012 -0800 +++ b/chirp/ic2200.py Tue Feb 07 20:01:22 2012 -0800 @@ -83,6 +83,45 @@ chirp_common.PowerLevel("MidLow", watts=10), chirp_common.PowerLevel("Low", watts=5)]
+class IC2200BankModel(chirp_common.BankModel): + def get_num_banks(self): + return 10 # A-J + + def get_banks(self): + banks = [] + for i in range(0, 10): + index = chr(ord("A") + i) + bank = chirp_common.Bank(self, index, "BANK-%s" % index) + bank.index = i + banks.append(bank) + return banks + + def add_memory_to_bank(self, memory, bank): + _flag = self._radio._memobj.flags[memory.number] + _flag.bank = bank and bank.index or 0x0A + + def remove_memory_from_bank(self, memory, bank): + _flag = self._radio._memobj.flags[memory.number] + if bank and _flag.bank != bank.index: + raise Exception("Memory %i not in bank %s. Cannot remove." % \ + (memory.number, bank)) + _flag.bank = 0x0A + + def get_bank_memories(self, bank): + memories = [] + for i in range(0, 199): + _flag = self._radio._memobj.flags[i] + if _flag.bank == bank.index: + memories.append(self._radio.get_memory(i)) + return memories + + def get_memory_banks(self, memory): + _flag = self._radio._memobj.flags[memory.number] + if _flag.bank == 0x0A: + return [] + else: + return [self.get_banks()[_flag.bank]] + class IC2200Radio(icf.IcomCloneModeRadio, chirp_common.IcomDstarSupport): VENDOR = "Icom" MODEL = "IC-2200H" @@ -258,17 +297,8 @@ def get_raw_memory(self, number): return repr(self._memobj.memory[number])
- def get_banks(self): - banks = [] - - for i in range(0, 10): - bank = chirp_common.ImmutableBank("BANK-%s" % (chr(ord("A")+i))) - banks.append(bank) - - return banks - - def set_banks(self, banks): - raise errors.InvalidDataError("Bank naming not supported on this model") + def get_bank_model(self): + return IC2200BankModel(self)
def get_urcall_list(self): return [str(x.call).rstrip() for x in self._memobj.urcalls]