aboutsummaryrefslogtreecommitdiff
path: root/tools/host_tools/FormatConverter/lamedb.py
blob: 1d8d2ecc72e635da25772d3f7b8000579c73d11d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
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)