[chirp_devel] [PATCH] Fix .tpe driver to work with CSV dialects update. #1097 #917
# HG changeset patch # User Tom Hayward tom@tomh.us # Date 1379182691 25200 # Node ID 2a2290fbc2995b53d223b2e99be124d8e68f27e0 # Parent c60b1cdee0f0549b7c1ae56507b3738778fc5b5d Fix .tpe driver to work with CSV dialects update. #1097 #917
diff -r c60b1cdee0f0 -r 2a2290fbc299 chirp/generic_tpe.py --- a/chirp/generic_tpe.py Mon Sep 09 14:06:23 2013 -0700 +++ b/chirp/generic_tpe.py Sat Sep 14 11:18:11 2013 -0700 @@ -16,25 +16,6 @@ import UserDict from chirp import chirp_common, directory, generic_csv
-class TpeMap(UserDict.UserDict): - """Pretend we're a dict""" - def items(self): - return [ - ("Sequence Number" , (int, "number")), - ("Location" , (str, "comment")), - ("Call Sign" , (str, "name")), - ("Output Frequency", (chirp_common.parse_freq, "freq")), - ("Input Frequency" , (str, "duplex")), - ("CTCSS Tones" , (lambda v: "Tone" - if float(v) in chirp_common.TONES - else "", "tmode")), - ("CTCSS Tones" , (lambda v: float(v) - if float(v) in chirp_common.TONES - else 88.5, "rtone")), - ("CTCSS Tones" , (lambda v: float(v) - if float(v) in chirp_common.TONES - else 88.5, "ctone")), - ]
@directory.register class TpeRadio(generic_csv.CSVRadio): @@ -43,7 +24,32 @@ MODEL = "Travel Plus" FILE_EXTENSION = "tpe"
- ATTR_MAP = TpeMap() + ATTR_MAP = { + "Sequence Number" : (int, "number"), + "Location" : (str, "comment"), + "Call Sign" : (str, "name"), + "Output Frequency": (chirp_common.parse_freq, "freq"), + "Input Frequency" : (str, "duplex"), + "CTCSS Tones" : (lambda v: float(v) + if v and float(v) in chirp_common.TONES + else 88.5, "rtone"), + "Repeater Notes": (str, "comment"), + } + + def _clean_tmode(self, headers, line, mem): + try: + val = generic_csv.get_datum_by_header(headers, line, "CTCSS Tones") + if val and float(val) in chirp_common.TONES: + mem.tmode = "Tone" + except generic_csv.OmittedHeaderError: + pass + + return mem + + def _clean_ctone(self, headers, line, mem): + # TPE only stores a single tone value + mem.ctone = mem.rtone + return mem
@classmethod def match_model(cls, filedata, filename):
participants (1)
-
Tom Hayward