add a format converter, i.e. to convert from lamedb to sat.xml files
[vuplus_dvbapp] / tools / host_tools / FormatConverter / lamedb.py
diff --git a/tools/host_tools/FormatConverter/lamedb.py b/tools/host_tools/FormatConverter/lamedb.py
new file mode 100644 (file)
index 0000000..1d8d2ec
--- /dev/null
@@ -0,0 +1,81 @@
+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