From: kos Date: Tue, 29 Oct 2013 09:45:02 +0000 (+0900) Subject: [blindscan] fixed nim_sockets parser. X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=commitdiff_plain;h=6e9ca1db697d4c92bf7e9d37fba3786903c25ec7 [blindscan] fixed nim_sockets parser. --- diff --git a/lib/python/Plugins/SystemPlugins/Blindscan/plugin.py b/lib/python/Plugins/SystemPlugins/Blindscan/plugin.py index 44128e2..f894d27 100644 --- a/lib/python/Plugins/SystemPlugins/Blindscan/plugin.py +++ b/lib/python/Plugins/SystemPlugins/Blindscan/plugin.py @@ -85,44 +85,60 @@ class Blindscan(ConfigListScreen, Screen): self["introduction"] = Label(_("Please setup your tuner configuration.")) self.i2c_mapping_table = None - self.makeNimSocket() self.nimSockets = self.ScanNimsocket() + self.makeNimSocket() def ScanNimsocket(self): _nimSocket = {} fp = file('/proc/bus/nim_sockets') - sNo, sName = -1, "" + sNo, sName, sI2C = -1, "", -1 for line in fp: line = line.strip() if line.startswith('NIM Socket'): - try: - sNo = line.split()[2][:-1] + sNo, sName, sI2C = -1, '', -1 + try: sNo = line.split()[2][:-1] except: sNo = -1 + elif line.startswith('I2C_Device:'): + try: sI2C = line.split()[1] + except: sI2C = -1 elif line.startswith('Name:'): - try: - sName = line.split()[3][4:-1] + try: sName = line.split()[3][4:-1] except: sName = "" if sNo >= 0 and sName != "": - _nimSocket[sNo] = sName - sNo = -1 - sName = '' + if sI2C != -1: + _nimSocket[sNo] = [sName, sI2C] + else: _nimSocket[sNo] = [sName] fp.close() + print "parsed nimsocket :", _nimSocket return _nimSocket def makeNimSocket(self, nimname=""): - self.i2c_mapping_table = {} + is_exist_i2c = False + self.i2c_mapping_table = {0:2, 1:3, 2:1, 3:0} + if self.nimSockets is not None: + for XX in self.nimSockets.keys(): + nimsocket = self.nimSockets[XX] + if len(nimsocket) > 1: + try: self.i2c_mapping_table[int(XX)] = int(nimsocket[1]) + except: continue + is_exist_i2c = True + print "i2c_mapping_table :", self.i2c_mapping_table, ", is_exist_i2c :", is_exist_i2c + if is_exist_i2c: return if nimname == "AVL6222": model = file('/proc/stb/info/vumodel').read().strip() if model == "uno": self.i2c_mapping_table = {0:3, 1:3, 2:1, 3:0} elif model == "duo2": - if self.nimSockets['0'] == "AVL6222": - self.i2c_mapping_table = {0:2, 1:2, 2:4, 3:4} - else: self.i2c_mapping_table = {0:2, 1:4, 2:4, 3:0} + nimdata = self.nimSockets['0'] + try: + if nimdata[0] == "AVL6222": + self.i2c_mapping_table = {0:2, 1:2, 2:4, 3:4} + else: self.i2c_mapping_table = {0:2, 1:4, 2:4, 3:0} + except: self.i2c_mapping_table = {0:2, 1:4, 2:4, 3:0} else: self.i2c_mapping_table = {0:2, 1:4, 2:0, 3:0} - else: self.i2c_mapping_table = {0:2, 1:3, 2:1, 3:0} + else: self.i2c_mapping_table = {0:2, 1:3, 2:1, 3:0} def getNimSocket(self, slot_number): if slot_number < 0 or slot_number > 3: @@ -370,7 +386,7 @@ class Blindscan(ConfigListScreen, Screen): def GetCommand(nimIdx): _nimSocket = self.nimSockets try: - sName = _nimSocket[str(nimIdx)] + sName = _nimSocket[str(nimIdx)][0] sType = _supportNimType[sName] return "vuplus_%(TYPE)sblindscan"%{'TYPE':sType}, sName except: pass