--- /dev/null
+from datasource import datasource
+
+class lamedb(datasource):
+ def __init__(self, filename = "lamedb"):
+ datasource.__init__(self)
+ self.setFilename(filename)
+
+ def setFilename(self, filename):
+ self.filename = filename
+
+ def getName(self):
+ return "lamedb"
+
+ def getCapabilities(self):
+ return [("read file", self.read), ("print all", self.printAll)]
+
+ def read(self):
+ inputfile = open(self.filename, "r")
+ lines = inputfile.readlines()
+ inputfile.close()
+
+ versionstring = lines[0].split('/')
+ version = int(versionstring[1])
+ if 3 > version or 4 < version:
+ print "unsupported lamedb version"
+ return
+
+ transpondersreading = False
+ sats = {}
+ transponders = {}
+ for line in lines:
+ if line.strip() == "transponders":
+ transpondersreading = True
+ continue
+ if line.strip() == "services":
+ transpondersreading = False
+ continue
+ if transpondersreading:
+ if ord(line[0]) == 9:
+ transponder = line.strip().split(' ')[1].split(':')
+ sat = transponder[4]
+ if not sats.has_key(sat):
+ sats[sat] = []
+ sats[sat].append((transponder, tsid, onid))
+ tsid = None
+ onid = None
+ elif line.strip() != "/" and line.strip() != "end":
+ data = line.strip().split(":")
+ tsid = str(int(data[1], 16))
+ onid = str(int(data[2], 16))
+ satlist = sats.keys()
+ satlist.sort()
+
+ for sat in satlist:
+ print sat
+ self.addSat(sat, sat)
+ transponders = sats[sat]
+ transponders.sort(key = lambda a: a[0])
+ for transpondertuple in transponders:
+ transponder = transpondertuple[0]
+ tsid = transpondertuple[1]
+ onid = transpondertuple[2]
+ print transponder, tsid, onid
+ tmp_transponder = {}
+ tmp_transponder["frequency"] = transponder[0]
+ tmp_transponder["symbol_rate"] = transponder[1]
+ tmp_transponder["polarization"] = transponder[2]
+ tmp_transponder["fec"] = transponder[3]
+ if version == 3:
+ if len(transponder) > 6:
+ tmp_transponder["system"] = transponder[6]
+ tmp_transponder["modulation"] = transponder[7]
+ elif version == 4:
+ if len(transponder) > 7:
+ tmp_transponder["system"] = transponder[7]
+ tmp_transponder["modulation"] = transponder[8]
+ if (tsid != "1" or onid != "1"):
+ tmp_transponder["tsid"] = transponder[0]
+ tmp_transponder["onid"] = transponder[0]
+ self.addTransponder(sat, tmp_transponder)
+
\ No newline at end of file