#print "inversion:", 2
tlist.append(parm)
-def getInitialTerrestrialTransponderList(tlist, region):
+def getInitialTerrestrialTransponderList(tlist, region, skip_t2 = False):
list = nimmanager.getTranspondersTerrestrial(region)
#self.transponders[self.parsedTer].append((2,freq,bw,const,crh,crl,guard,transm,hierarchy,inv,system,plpid))
for x in list:
if x[0] == 2: #TERRESTRIAL
- if x[10] == eDVBFrontendParametersTerrestrial.System_DVB_T2:
+ if skip_t2 and x[10] == eDVBFrontendParametersTerrestrial.System_DVB_T2:
# Should be searching on TerrestrialTransponderSearchSupport.
continue
parm = buildTerTransponder(x[1], x[9], x[2], x[4], x[5], x[3], x[7], x[6], x[8], x[10], x[11])
"DVBC_BAND_US_HYPER" : 1 << 11,
}
-class SimpleNimSockets:
- def __init__(self):
- self.nim_sockets = []
-
- def Parse(self):
- self.nim_sockets = []
-
- nim_slot_idx = -1
- fp = file('/proc/bus/nim_sockets')
- for line in fp:
- line = line.strip()
- if line == "": continue
-
- if line.startswith('NIM Socket '):
- nim_slot_idx += 1
- self.nim_sockets.append({'slot_idx':str(nim_slot_idx)})
- elif line.startswith('Type:'):
- line_token = line.split(":")
- self.nim_sockets[nim_slot_idx]["type"] = line_token[1].strip()
- elif line.startswith('Name:'):
- line_token = line.split(":")
- self.nim_sockets[nim_slot_idx]["name"] = line_token[1].strip()
- elif line.startswith('Frontend_Device:'):
- line_token = line.split(":")
- self.nim_sockets[nim_slot_idx]["frontend_device"] = line_token[1].strip()
- elif line.startswith('Mode '):
- line_token = line.split(":")
- mode=[]
- try: mode=self.nim_sockets[nim_slot_idx]["mode"]
- except: mode=[]
- mode.append(line_token[1].strip())
- self.nim_sockets[nim_slot_idx]["mode"] = mode
- elif line.startswith('I2C_Device:'):
- line_token = line.split(":")
- self.nim_sockets[nim_slot_idx]["i2c_device"] = line_token[1].strip()
- fp.close()
-
- def GetTunerName(self, socket_id, type):
- if len(self.nim_sockets) == 0:
- return None
- try:
- nim_socket = self.nim_sockets[socket_id]
- if nim_socket['type'] in type:
- name_token = nim_socket['name'].split(' ')
- return name_token[2][4:-1]
- except Exception, err:
- print "SimpleNimSockets ->", err
- return ""
-
- def GetDeviceId(self, filter):
- tuners={}
- device_id = 0
- socket_id = 0
- for nim_socket in self.nim_sockets:
- name_token = nim_socket['name'].split(' ')
- name = name_token[2][4:-1]
- if name == filter:
- #print nim_socket['type'], name, device_id
- tuners[str(socket_id)] = {'id' : device_id, 'type' : nim_socket['type']}
- if device_id: device_id = 0
- else: device_id = 1
- socket_id += 1
- return tuners
+cable_autoscan_nimtype = {
+'SSH108' : 'ssh108',
+'TT3L10' : 'tt3l10',
+'TURBO' : 'vuplus_turbo_c'
+}
+
+terrestrial_autoscan_nimtype = {
+'SSH108' : 'ssh108_t2_scan',
+'TT3L10' : 'tt3l10_t2_scan',
+'TURBO' : 'vuplus_turbo_t'
+}
+
+def GetDeviceId(filter, nim_idx):
+ tuners={}
+ device_id = 0
+ socket_id = 0
+ for nim in nimmanager.nim_slots:
+ name_token = nim.description.split(' ')
+ name = name_token[-1][4:-1]
+ if name == filter:
+ if socket_id == nim_idx:
+ break
+
+ if device_id: device_id = 0
+ else: device_id = 1
+ socket_id += 1
+ return device_id
class CableTransponderSearchSupport:
# def setCableTransponderSearchResult(self, tlist):
self.cable_search_session["text"].setText(tmpstr)
def startCableTransponderSearch(self, nim_idx):
- def GetCommand(nimIdx):
- _supportNimType = { 'SSH108':'ssh108', 'TT3L10':'tt3l10' }
-
- simple_ns = SimpleNimSockets()
- try:
- simple_ns.Parse()
- nim_name = simple_ns.GetTunerName(nimIdx, ['DVB-C'])
- if nim_name is not None and nim_name != "":
- device_id = ""
- if nim_name == 'TT3L10':
- try:
- device_id = simple_ns.GetDeviceId('TT3L10')[str(nimIdx)]['id']
- device_id = "--device=%s" % (device_id)
- except: device_id = ""
- if device_id == "":
- return "tda1002x"
- #print nimIdx, nim_name, _supportNimType[nim_name], device_id
- try:
- command = "%s %s" % (_supportNimType[nim_name], device_id)
- return command
- except: pass
- except: pass
- return "tda1002x"
+ def GetCommand(nim_idx):
+ global cable_autoscan_nimtype
+ try:
+ nim_name = nimmanager.getNimName(nim_idx)
+ if nim_name is not None and nim_name != "":
+ device_id = ""
+ nim_name = nim_name.split(' ')[-1][4:-1]
+ if nim_name == 'TT3L10':
+ try:
+ device_id = GetDeviceId('TT3L10', nim_idx)
+ device_id = "--device=%s" % (device_id)
+ except Exception, err:
+ print "GetCommand ->", err
+ device_id = "--device=0"
+# print nim_idx, nim_name, cable_autoscan_nimtype[nim_name], device_id
+ command = "%s %s" % (cable_autoscan_nimtype[nim_name], device_id)
+ return command
+ except Exception, err:
+ print "GetCommand ->", err
+ return "tda1002x"
if not self.tryGetRawFrontend(nim_idx):
self.session.nav.stopService()
print self.terrestrial_search_data
data = self.terrestrial_search_data.split()
if len(data):
+# print "[setTerrestrialTransponderData] data : ", data
if data[0] == 'OK':
# DVB-T : OK frequency bandwidth delivery system -1
# DVB-T2 : OK frequency bandwidth delivery system number_of_plp plp_id0:plp_type0
self.__tlist.append(parm)
else:
plp_list = data[5:]
- plp_num = data[4]
+ plp_num = int(data[4])
if len(plp_list) > plp_num:
plp_list = plp_list[:plp_num]
for plp in plp_list:
else:
return None
- def startTerrestrialTransponderSearch(self, nim_idx, region):
- def GetCommand(nimIdx):
- _supportNimType = { 'SSH108':'ssh108_t2_scan', 'TT3L10':'tt3l10_t2_scan' }
-
- simple_ns = SimpleNimSockets()
- try:
- simple_ns.Parse()
- nim_name = simple_ns.GetTunerName(nimIdx, ['DVB-T','DVB-T2'])
- if nim_name is not None and nim_name != "":
- device_id = ""
- if nim_name == 'TT3L10':
- try:
- device_id = simple_ns.GetDeviceId('TT3L10')[str(nimIdx)]['id']
- device_id = "--device %s" % (device_id)
- except: device_id = ""
- if device_id == "":
- return "ssh108_t2_scan"
- #print nimIdx, nim_name, _supportNimType[nim_name], device_id
- try:
- command = "%s %s" % (_supportNimType[nim_name], device_id)
- return command
- except: pass
- except: pass
- return "ssh108_t2_scan"
+ def terrestrialTransponderGetCmd(self, nim_idx):
+ global terrestrial_autoscan_nimtype
+ try:
+ nim_name = nimmanager.getNimName(nim_idx)
+ if nim_name is not None and nim_name != "":
+ device_id = ""
+ nim_name = nim_name.split(' ')[-1][4:-1]
+ if nim_name == 'TT3L10':
+ try:
+ device_id = GetDeviceId('TT3L10', nim_idx)
+ device_id = "--device %s" % (device_id)
+ except Exception, err:
+ print "terrestrialTransponderGetCmd ->", err
+ device_id = "--device 0"
+# print nim_idx, nim_name, terrestrial_autoscan_nimtype[nim_name], device_id
+ command = "%s %s" % (terrestrial_autoscan_nimtype[nim_name], device_id)
+ return command
+ except Exception, err:
+ print "terrestrialTransponderGetCmd ->", err
+ return ""
+ def startTerrestrialTransponderSearch(self, nim_idx, region):
if not self.tryGetRawFrontend(nim_idx):
self.session.nav.stopService()
if not self.tryGetRawFrontend(nim_idx):
self.terrestrial_search_container.appClosed.append(self.terrestrialTransponderSearchClosed)
self.terrestrial_search_container.dataAvail.append(self.getTerrestrialTransponderData)
- self.terrestrial_search_binName = GetCommand(nim_idx)
+ self.terrestrial_search_binName = self.terrestrialTransponderGetCmd(nim_idx)
self.terrestrial_search_bus = nimmanager.getI2CDevice(nim_idx)
if self.terrestrial_search_bus is None:
- print "ERROR: could not get I2C device for nim", nim_idx, "for terrestrial transponder search"
+# print "ERROR: could not get I2C device for nim", nim_idx, "for terrestrial transponder search"
self.terrestrial_search_bus = 2
self.terrestrial_search_list = []
plpid = self.scan_ter.plp_id.value)
removeAll = False
elif self.scan_typeterrestrial.value == "complete":
- getInitialTerrestrialTransponderList(tlist, nimmanager.getTerrestrialDescription(index_to_scan))
+ skip_t2 = True
if nim.isCompatible("DVB-T2"):
- action = SEARCH_TERRESTRIAL2_TRANSPONDERS
+ scan_util = len(self.terrestrialTransponderGetCmd(nim.slot)) and True or False
+ if scan_util:
+ action = SEARCH_TERRESTRIAL2_TRANSPONDERS
+ else:
+ skip_t2 = False
+
+ getInitialTerrestrialTransponderList(tlist, nimmanager.getTerrestrialDescription(index_to_scan), skip_t2)
flags = self.scan_networkScan.value and eComponentScan.scanNetworkSearch or 0
if nim.isCompatible("DVB-S"):
networks = nimmanager.getSatListForNim(nim.slot)
elif not nim.empty:
- networks = [ nim.type ] # "DVB-C" or "DVB-T". TODO: seperate networks for different C/T tuners, if we want to support that.
+ networks = [ nim.getType() ] # "DVB-C" or "DVB-T". TODO: seperate networks for different C/T tuners, if we want to support that.
else:
# empty tuners provide no networks.
networks = [ ]
if "DVB-T2" in known_networks: # we need to remove "DVB-T" when networks have "DVB-T2"
nims_dvb_t = []
for nim in nims_to_scan:
- if nim.type == "DVB-T":
+ if nim.getType() == "DVB-T":
nims_dvb_t.append(nim)
for nim in nims_dvb_t:
else:
action = SEARCH_CABLE_TRANSPONDERS
elif nim.isCompatible("DVB-T"):
- getInitialTerrestrialTransponderList(tlist, nimmanager.getTerrestrialDescription(nim.slot))
+ skip_t2 = True
if nim.isCompatible("DVB-T2"):
- action = SEARCH_TERRESTRIAL2_TRANSPONDERS
+ scan_util = len(self.terrestrialTransponderGetCmd(nim.slot)) and True or False
+ if scan_util:
+ action = SEARCH_TERRESTRIAL2_TRANSPONDERS
+ else:
+ skip_t2 = False
+ getInitialTerrestrialTransponderList(tlist, nimmanager.getTerrestrialDescription(nim.slot), skip_t2)
else:
assert False