X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fpython%2FPlugins%2FSystemPlugins%2FFactoryTest%2Fplugin.py;h=38ac2f5ecb63c31d7bce1012babbef1e4bf3f305;hp=02462973ad0312da3947a635acec9b7a581554e3;hb=3bf8b7f18df965ddec6c5376a419536142153e35;hpb=a4b722656fb36c746603314b43a4fef6d971586c diff --git a/lib/python/Plugins/SystemPlugins/FactoryTest/plugin.py b/lib/python/Plugins/SystemPlugins/FactoryTest/plugin.py index 0246297..38ac2f5 100755 --- a/lib/python/Plugins/SystemPlugins/FactoryTest/plugin.py +++ b/lib/python/Plugins/SystemPlugins/FactoryTest/plugin.py @@ -16,26 +16,14 @@ from Components.HTMLComponent import HTMLComponent from Components.GUIComponent import GUIComponent from enigma import eListboxPythonStringContent, eListbox, gFont, eServiceCenter, eDVBResourceManager from enigma import eServiceReference -from enigma import eMemtest -from enigma import eSctest +from sctest import eSctest from enigma import eDVBDB from Components.NimManager import nimmanager from enigma import eDVBCI_UI,eDVBCIInterfaces +from Tools.Directories import resolveFilename, SCOPE_SYSETC +from Components.Sources.StaticText import StaticText -class TestResultList(HTMLComponent, GUIComponent): - def __init__(self, list, enableWrapAround=False, content=eListboxPythonStringContent): - GUIComponent.__init__(self) - self.list = list - self.l = content() - self.l.setList(self.list) - self.onSelectionChanged = [ ] - self.enableWrapAround = enableWrapAround - - def getCurrent(self): - return self.l.getCurrentSelection() - - GUI_WIDGET = eListbox - +class TestResultList(MenuList): def postWidgetCreate(self, instance): self.instance.setSelectionEnable(0) instance.setContent(self.l) @@ -43,61 +31,96 @@ class TestResultList(HTMLComponent, GUIComponent): if self.enableWrapAround: self.instance.setWrapAround(True) - def preWidgetRemove(self, instance): - instance.setContent(None) - instance.selectionChanged.get().remove(self.selectionChanged) - - def selectionChanged(self): - for f in self.onSelectionChanged: - f() - - def getSelectionIndex(self): - return self.l.getCurrentSelectionIndex() - - def getSelectedIndex(self): - return self.l.getCurrentSelectionIndex() - - def setList(self, list): - self.list = list - self.l.setList(self.list) - def updateList(self, list): self.list = list self.l.setList(self.list) - def moveToIndex(self, idx): - if self.instance is not None: - self.instance.moveSelectionTo(idx) - - def pageUp(self): - if self.instance is not None: - self.instance.moveSelection(self.instance.pageUp) - - def pageDown(self): - if self.instance is not None: - self.instance.moveSelection(self.instance.pageDown) - - def up(self): - if self.instance is not None: - self.instance.moveSelection(self.instance.moveUp) +class TuneMessageBox(MessageBox): + skin = """ + + + + + + + + + + SNRdB + + + + + AGC + + +# this should be factored out into some helper code, but currently demonstrates applets. +from enigma import eSize, ePoint + +orgwidth = self.instance.size().width() +orgpos = self.instance.position() +textsize = self["text"].getSize() + +# y size still must be fixed in font stuff... +textsize = (textsize[0] + 50, textsize[1] + 50) +offset = 0 +if self.type == self.TYPE_YESNO: + offset = 60 +wsizex = textsize[0] + 60 +wsizey = textsize[1] + offset +if (280 > wsizex): + wsizex = 280 +wsizex = wsizex + 30 +wsizey = wsizey + 30 +wsize = (wsizex, wsizey) + +# resize +self.instance.resize(eSize(*wsize)) + +# resize label +self["text"].instance.resize(eSize(*textsize)) + +# move list +listsize = (wsizex, 50) +self["list"].instance.move(ePoint(0, textsize[1])) +self["list"].instance.resize(eSize(*listsize)) + +# center window +newwidth = wsize[0] +self.instance.move(ePoint(orgpos.x() + (orgwidth - newwidth)/2, orgpos.y())) + + """ + def __init__(self, session, text, type = MessageBox.TYPE_YESNO): + MessageBox.__init__(self, session, text, type) - def down(self): - if self.instance is not None: - self.instance.moveSelection(self.instance.moveDown) +class FactoryTestSummary(Screen): + skin = """ + + + """ - def selectionEnabled(self, enabled): - if self.instance is not None: - self.instance.setSelectionEnable(enabled) +class FactoryTestSummary_VFD(Screen): + skin = """ + + + """ class FactoryTest(Screen): skin = """ - - - - - - + + + + + + """ + + def createSummary(self): + if self.model == 4: + return FactoryTestSummary_VFD + else: + return FactoryTestSummary + def __init__(self, session): self["actions"] = NumberActionMap(["OkCancelActions","WizardActions","NumberActions","ColorActions",], @@ -120,11 +143,12 @@ class FactoryTest(Screen): "8": self.numberaction, "9": self.numberaction, "red": self.shutdownaction, + "blue": self.Agingmode2, }, -2) Screen.__init__(self, session) - TESTPROGRAM_DATE = "2010-03-02" - TESTPROGRAM_VERSION = "Version 00.01" + TESTPROGRAM_DATE = self.getImageVersion() +" (v1.20)" + TESTPROGRAM_VERSION = "Version 01.20" self.model = 0 self.getModelInfo() @@ -150,7 +174,16 @@ class FactoryTest(Screen): pass if self.model == 3 or self.model == 4: self.NimType = {} - sat_list = ["160","100","130","192","620","642"] + sat_list = ["160","100","130","192","620","642","685","720"] +# ' sat ' : namespace , # satname +# '160' : '0xA00000', # Eutelsat W2 +# '100' : '0x64af79', # Eutelsat +# '130' : '0x820000', # Hotbird +# '192' : '0xC00000', # Astra +# '620' : '0x26c0000', # Intelsat 902 +# '642' : '0x282AF79' # Intelsat 906 +# '685' : '02ad0000' # Panamsat 7,10 (68.5E) +# '720' : '02d0af79' # Panamsat 4 (72.0E) try: nimfile = open("/proc/bus/nim_sockets") except IOError: @@ -202,20 +235,14 @@ class FactoryTest(Screen): self.createConfig() self.rlist = [] - for x in range(self.menulength): + for x in range(self.menulength-1): self.rlist.append(("..")) -# self.rlist.append((" ")) + self.rlist.append((" ")) self["resultlist"] = TestResultList(self.rlist) -# self.NetworkState = 0 -# self.first = 0 - self.avswitch = AVSwitch() -# self.memTest = eMemtest() self.scTest= eSctest() -# self.feid=0 -# self.agingmode=0 self.testing = 0 self.servicelist = ServiceList() @@ -226,14 +253,6 @@ class FactoryTest(Screen): self.tunemsgtimer = eTimer() self.tunemsgtimer.callback.append(self.tunemsg) -# chang : use "self.tuner_test_last_index" instead of cam_index -# if self.model == 0: -# self.cam_index = 7 -# elif self.model == 1: -# self.cam_index = 4 -# elif self.model == 2: -# self.cam_index = 6 - self.camstep = 1 self.camtimer = eTimer() self.camtimer.callback.append(self.cam_state) @@ -252,8 +271,19 @@ class FactoryTest(Screen): self.usbtimer = eTimer() self.usbtimer.callback.append(self.usbCheck) - self.agingtimer = eTimer() - self.agingtimer.callback.append(self.agingCheck) + self.setSourceVar() + self.FanSpeedUp(255) + + def FanSpeedUp(self,value): + if self.model in (3,4): # uno or ultimo + if value <0: + value = 0 + elif value >255: + value = 255 + print "[FactoryTest, FanSpeedUp] setPWM to : %d"%value + f = open("/proc/stb/fp/fan_pwm", "w") + f.write("%x" % value) + f.close() def createConfig(self): tlist = [] @@ -269,13 +299,13 @@ class FactoryTest(Screen): self.smarttestIndex=3 tlist.append((" 3. Smartcard test",self.smarttestIndex)) self.tuner1_1testIndex=4 - tlist.append((" 4. T1 H 22K x 4:3 CVBS",self.tuner1_1testIndex)) + tlist.append((" 4. T1/H/22K x /4:3/CVBS",self.tuner1_1testIndex)) self.tuner1_2testIndex=5 - tlist.append((" 5. T1 V 22k o 16:9 RGB",self.tuner1_2testIndex)) + tlist.append((" 5. T1/V/22k o/16:9/RGB",self.tuner1_2testIndex)) self.tuner2_1testIndex=6 - tlist.append((" 6. T2 H 22k x 4:3 YC",self.tuner2_1testIndex)) + tlist.append((" 6. T2/H/22k x/4:3/YC",self.tuner2_1testIndex)) self.tuner2_2testIndex=7 - tlist.append((" 7. T2 V 22k o 16:9 CVBS CAM",self.tuner2_2testIndex)) + tlist.append((" 7. T2/V/22k o/16:9/CVBS/CAM",self.tuner2_2testIndex)) self.scarttestIndex=8 tlist.append((" 8. VCR Scart loop",self.scarttestIndex)) self.rs232testIndex=9 @@ -285,7 +315,7 @@ class FactoryTest(Screen): self.fdefaultIndex=11 tlist.append(("11. Factory default",self.fdefaultIndex)) self.shutdownIndex=12 - tlist.append(("12. Shutdown",self.shutdownIndex)) + tlist.append(("12. Shutdown(Deep Standby)",self.shutdownIndex)) self.tuner_test_first_index = 4 self.tuner_test_last_index = 7 @@ -297,9 +327,9 @@ class FactoryTest(Screen): self.smarttestIndex=2 tlist.append((" 2. Smartcard test",self.smarttestIndex)) self.tuner1_1testIndex=3 - tlist.append((" 3. T1 H 22K x 4:3 CVBS",self.tuner1_1testIndex)) + tlist.append((" 3. T1/H/22K x/4:3/CVBS",self.tuner1_1testIndex)) self.tuner2_2testIndex = self.tuner1_2testIndex=4 - tlist.append((" 4. T1 V 22k o 16:9 RGB CAM",self.tuner1_2testIndex)) + tlist.append((" 4. T1/V/22k o/16:9/RGB/CAM",self.tuner1_2testIndex)) self.rs232testIndex=5 tlist.append((" 5. RS232 test",self.rs232testIndex)) self.ethernettestIndex=6 @@ -307,7 +337,7 @@ class FactoryTest(Screen): self.fdefaultIndex=7 tlist.append((" 7. Factory default",self.fdefaultIndex)) self.shutdownIndex=8 - tlist.append((" 8. Shutdown",self.shutdownIndex)) + tlist.append((" 8. Shutdown(Deep Standby)",self.shutdownIndex)) self.tuner_test_first_index = 3 self.tuner_test_last_index = 4 @@ -347,53 +377,70 @@ class FactoryTest(Screen): tlist.append((" 2. Front test",self.fronttestIndex)) self.smarttestIndex=3 tlist.append((" 3. Smartcard test",self.smarttestIndex)) - self.tuner_test_first_index = current_index = 4 + if self.model == 3: + self.tuner_test_first_index = current_index = 4 + elif self.model == 4: + self.tuner_test_first_index = 4 + current_index = 0 AspectRatio=["4:3", "16:9"] ColorFormat=["CVBS","RGB","YC","CVBS","CVBS","CVBS","CVBS","CVBS"] self.tuneInfo={} - if self.model == 3 or self.model == 4: - for (key, val) in self.NimType.items(): - if val["type"].startswith("DVB-S"): + tunelist = [] + for (key, val) in self.NimType.items(): + if val["type"].startswith("DVB-S"): # Chang : DVB -S setting diseqc A - getRatio = AspectRatio.pop(0) # ratio - AspectRatio.append(getRatio) - getColorFormat=ColorFormat.pop(0) # colorFormat - menuname=" %d. T%d %s H 22k 0 %s %s" % (current_index, key+1, val["type"], getRatio, getColorFormat) #menuname - print current_index + getRatio = AspectRatio.pop(0) # ratio + AspectRatio.append(getRatio) + getColorFormat=ColorFormat.pop(0) # colorFormat + menuname=" %d. T%d/%s/H/22k x/%s/%s" % (current_index, key+1, val["type"], getRatio, getColorFormat) #menuname + print current_index # current_index=4 - self.setTuneInfo(index=current_index, slot=key, type=val["type"], sat=val["sat1"], pol="H", tone=True, ratio=getRatio, color=getColorFormat, cam=False) # setTuneInfo + self.setTuneInfo(index=current_index, slot=key, type=val["type"], sat=val["sat1"], pol="H", tone=False, ratio=getRatio, color=getColorFormat, cam=False) # setTuneInfo # self.setTuneInfo(current_index, key, val["type"], val["sat1"], "H", True, getRatio, getColorFormat, False) # setTuneInfo - tlist.append((menuname,current_index)) - current_index+=1 + tunelist.append((menuname,current_index)) + current_index+=1 # Chang : DVB -S setting diseqc B - getRatio = AspectRatio.pop(0) - AspectRatio.append(getRatio) - getColorFormat=ColorFormat.pop(0) - menuname=" %d. T%d %s V 22k x %s %s" % (current_index, key+1, val["type"], getRatio, getColorFormat) - if 1 == key+1: # CAM test on/off - menuname+=" CAM" - camtest = True - else: - camtest = False - self.setTuneInfo( index=current_index, slot=key, type=val["type"], sat=val["sat2"], pol="V", tone=False, ratio=getRatio, color=getColorFormat, cam=camtest) - tlist.append((menuname,current_index)) - current_index+=1 + getRatio = AspectRatio.pop(0) + AspectRatio.append(getRatio) + getColorFormat=ColorFormat.pop(0) + menuname=" %d. T%d/%s/V/22k o/%s/%s" % (current_index, key+1, val["type"], getRatio, getColorFormat) + if len(self.NimType) == key+1: # CAM test on/off + menuname+="/CAM" + camtest = True + else: + camtest = False + self.setTuneInfo( index=current_index, slot=key, type=val["type"], sat=val["sat2"], pol="V", tone=True, ratio=getRatio, color=getColorFormat, cam=camtest) + tunelist.append((menuname,current_index)) + current_index+=1 # Chang : DVB -T or DVB-C - elif val["type"].startswith("DVB-T") or val["type"].startswith("DVB-C"): + elif val["type"].startswith("DVB-T") or val["type"].startswith("DVB-C"): + additionalMenu = None + menulen = 1 + if len(self.NimType) == 1: + additionalMenu = True + menulen +=1 + for x in range(menulen): getRatio = AspectRatio.pop(0) AspectRatio.append(getRatio) getColorFormat=ColorFormat.pop(0) - menuname=" %d. T%d %s %s %s" % (current_index, key+1, val["type"], getRatio, getColorFormat) -# if len(self.NimType) == key+1: # CAM test on/off - if 1 == key+1: # CAM test on/off + menuname=" %d. T%d/%s/%s/%s" % (current_index, key+1, val["type"], getRatio, getColorFormat) + if len(self.NimType) == key+1 and (additionalMenu is None or x != 0): # CAM test on/off menuname+=" CAM" camtest = True else: - camtest = False + camtest = False self.setTuneInfo( index=current_index, slot=key, type=val["type"], sat=None, pol=None, tone=None, ratio=getRatio, color=getColorFormat, cam=camtest) - tlist.append((menuname,current_index)) + tunelist.append((menuname,current_index)) current_index+=1 - self.tuner_test_last_index = current_index-1 + if self.model == 3: + tlist.extend(tunelist) + self.tuner_test_last_index = current_index-1 + elif self.model == 4: + self.tunelist = tunelist + self.tuner_test_last_index = 4 + current_index = self.tuner_test_last_index + tlist.append((" %d. Tuning test" % current_index,self.tuner_test_last_index)) + current_index+=1 self.rs232testIndex=current_index tlist.append((" %d. RS232 test" % current_index,self.rs232testIndex)) current_index+=1 @@ -404,7 +451,7 @@ class FactoryTest(Screen): tlist.append((" %d. Factory default" % current_index,self.fdefaultIndex)) current_index+=1 self.shutdownIndex=current_index - tlist.append((" %d. Shutdown" % current_index,self.shutdownIndex)) + tlist.append((" %d. Shutdown(Deep Standby)" % current_index,self.shutdownIndex)) self.menulength= len(tlist) self["testlist"] = MenuList(tlist) @@ -423,7 +470,9 @@ class FactoryTest(Screen): def getModelInfo(self): getmodel = 0 if fileExists("/proc/stb/info/vumodel"): - info = open("/proc/stb/info/vumodel").read().strip() + vumodel = open("/proc/stb/info/vumodel") + info=vumodel.read().strip() + vumodel.close() if info == "duo": self.model = 0 getmodel = 1 @@ -444,9 +493,11 @@ class FactoryTest(Screen): self.model = 4 getmodel = 1 print "getModelInfo : ultimo" + if getmodel == 0 and fileExists("/proc/stb/info/version"): - info = open("/proc/stb/info/version").read() -# print info,info[:2] + vesion = open("/proc/stb/info/version") + info=version.read() + version.close() if info[:2] == "14": self.model = 1 print "getModelInfo : solo_" @@ -485,16 +536,36 @@ class FactoryTest(Screen): def numberaction(self, number): if self.testing==1: return - if number > self.menulength: + if number >= self.menulength: return index = int(number) self["testlist"].moveToIndex(index) self["resultlist"].moveToIndex(index) + def getImageVersion(self): + date = 'xxxx-xx-xx' + file = open(resolveFilename(SCOPE_SYSETC, 'image-version'), 'r') + lines = file.readlines() + for x in lines: + splitted = x.split('=') + if splitted[0] == "version": + # YYYY MM DD hh mm + #0120 2005 11 29 01 16 + #0123 4567 89 01 23 45 + version = splitted[1] + year = version[4:8] + month = version[8:10] + day = version[10:12] + date = '-'.join((year, month, day)) + break; + file.close() + return date + def getversion(self): try: fd = open("/proc/stb/info/version","r") version = fd.read() + fd.close() self["testversion"].setText(("Version %s"%version)) except: self["testversion"].setText(("Version no load")) @@ -557,7 +628,10 @@ class FactoryTest(Screen): elif index==self.fronttestIndex: self.Test1() elif index>=self.tuner_test_first_index and index<=self.tuner_test_last_index: - self.TestTune(index) + if self.model == 0 or self.model == 1 or self.model == 2 or self.model == 3: + self.TestTune(index) + elif self.model == 4: + self.openTestTuneMenu() elif index==self.scarttestIndex: self.Test6() elif index==self.rs232testIndex: @@ -627,44 +701,44 @@ class FactoryTest(Screen): result = 1 displayerror = 1 try: - if fileExists("/media/hdd"): - if access("/media/hdd",F_OK|R_OK|W_OK): - dummy=open("/media/hdd/dummy03","w") + if fileExists("/autofs/sda1"): + if access("/autofs/sda1",F_OK|R_OK|W_OK): + dummy=open("/autofs/sda1/dummy03","w") dummy.write("complete") dummy.close() - dummy=open("/media/hdd/dummy03","r") + dummy=open("/autofs/sda1/dummy03","r") if dummy.readline()=="complete": - print "/media/hdd - complete" + print "/autofs/sda1 - complete" else: - print "/media/hdd - readline error" + print "/autofs/sda1 - readline error" result += 1 displayerror = 1 dummy.close() - system("rm /media/hdd/dummy03") + system("rm /autofs/sda1/dummy03") else: - print "/media/hdd - rw access error" + print "/autofs/sda1 - rw access error" result += 1 displayerror = 1 else: - print "/media/hdd - file not exist" + print "/autofs/sda1 - file not exist" result += 1 except: - print "/media/hdd - exceptional error" + print "/autofs/sda1 - exceptional error" result += 1 displayerror = 1 if result == 0: - self.session.open( MessageBox, _("Sata & extend hdd test pass"), MessageBox.TYPE_INFO) + self.session.open( MessageBox, _("Sata & extend hdd test pass\nPress 'OK' button!"), MessageBox.TYPE_INFO) self.rlist[self["testlist"].getCurrent()[1]]="pass" elif result == 1: if displayerror==1: - self.session.open( MessageBox, _("One hdd test error"), MessageBox.TYPE_ERROR) + self.session.open( MessageBox, _("One hdd test error\nPress 'EXIT' button!"), MessageBox.TYPE_ERROR) self.rlist[self["testlist"].getCurrent()[1]]="fail" else: self.satatimer.start(1100,True) else: if displayerror==1: - self.session.open( MessageBox, _("Sata & extend hdd test error"), MessageBox.TYPE_ERROR) + self.session.open( MessageBox, _("Sata & extend hdd test error\nPress 'EXIT' button!"), MessageBox.TYPE_ERROR) self.rlist[self["testlist"].getCurrent()[1]]="fail" else: self.satatimer.start(1100,True) @@ -674,8 +748,10 @@ class FactoryTest(Screen): self.session.openWithCallback(self.displayresult ,FrontTest) elif self.model == 1: self.session.openWithCallback(self.displayresult ,FrontTest_solo) - elif self.model == 2 or self.model == 3 or self.model == 4: - self.session.openWithCallback(self.displayresult ,FrontTest_solo) + elif self.model == 2 or self.model == 3: + self.session.openWithCallback(self.displayresult ,FrontTest_uno) + elif self.model == 4: + self.session.openWithCallback(self.displayresult ,FrontTest_ultimo) def displayresult(self): global fronttest @@ -684,6 +760,16 @@ class FactoryTest(Screen): else: self.rlist[self["testlist"].getCurrent()[1]]="fail" + def openTestTuneMenu(self): + self.session.openWithCallback(self.TestTuneMenuResult ,TestTuneMenu, self.tuneInfo, self.tunelist, self.NimType) + + def TestTuneMenuResult(self,result): + if result : + self.rlist[self["testlist"].getCurrent()[1]]="pass" + else: + self.rlist[self["testlist"].getCurrent()[1]]="fail" + self["resultlist"].updateList(self.rlist) + def TestTune(self,index): if self.oldref is None: eref = eServiceReference("1:0:19:1324:3EF:1:C00000:0:0:0") @@ -692,7 +778,7 @@ class FactoryTest(Screen): if not servicelist is None: ref = servicelist.getNext() else: - ref = self.getCurrentSelection() + ref = self.getCurrentSelection() # raise error print "servicelist none" else: ref = self.oldref @@ -743,6 +829,9 @@ class FactoryTest(Screen): self.tunemsgtimer.start(3000, True) elif self.model == 3 or self.model == 4: getTuneInfo=self.tuneInfo[index] + if getTuneInfo["cam"] is True: + self.camstep = 1 + self.camtimer.start(100,True) if getTuneInfo["type"].startswith("DVB-S"): if getTuneInfo["pol"] == "H": ref.setData(0,1) @@ -754,7 +843,6 @@ class FactoryTest(Screen): ref.setData(1,0x1325) ref.setData(2,0x3ef) ref.setData(3,0x1) - ref.setData(4,0x64af79) if getTuneInfo["sat"] == "160": # Eutelsat W2 ref.setData(4,0xA00000) elif getTuneInfo["sat"] == "100": # Eutelsat @@ -764,9 +852,13 @@ class FactoryTest(Screen): elif getTuneInfo["sat"] == "192": # Astra ref.setData(4,0xC00000) elif getTuneInfo["sat"] == "620": # Intelsat 902 - ref.setData(4,0x26c0000) # need to fix later + ref.setData(4,0x26c0000) elif getTuneInfo["sat"] == "642": # Intelsat 906 - ref.setData(4,0x282AF79) # need to fix later + ref.setData(4,0x282AF79) + elif getTuneInfo["sat"] == "685": # Panamsat 7,10 (68.5E) + ref.setData(4,0x02ad0000) + elif getTuneInfo["sat"] == "720": # Panamsat 4 (72.0E) + ref.setData(4,0x02d0af79) elif getTuneInfo["type"].startswith("DVB-C"): ref.setData(0,0x19) ref.setData(1,0x1325) @@ -779,7 +871,6 @@ class FactoryTest(Screen): ref.setData(2,0x3ef) ref.setData(3,0x1) ref.setData(4,-286391716) # eeee025c - self.session.nav.playService(ref) if getTuneInfo["color"]=="CVBS": self.avswitch.setColorFormat(0) @@ -791,9 +882,6 @@ class FactoryTest(Screen): self.avswitch.setAspectRatio(0) elif getTuneInfo["ratio"] == "16:9": self.avswitch.setAspectRatio(6) - if getTuneInfo["cam"] is True: - self.camstep = 1 - self.camtimer.start(100,True) self.tuningtimer.start(2000,True) self.tunemsgtimer.start(3000, True) @@ -811,8 +899,6 @@ class FactoryTest(Screen): self.session.open( MessageBox, _("CAM1_NOT_INSERTED\nPress exit!"), MessageBox.TYPE_ERROR) self.rlist[current_index]="fail" self.tunemsgtimer.stop() -# self.rlist[index]="fail" -# self["resultlist"].updateList(self.rlist) elif self.camstep == 2: slot = 0 appname = eDVBCI_UI.getInstance().getAppName(slot) @@ -837,8 +923,6 @@ class FactoryTest(Screen): self.session.open( MessageBox, _("CAM2_NOT_INSERTED\nPress exit!"), MessageBox.TYPE_ERROR) self.rlist[current_index]="fail" self.tunemsgtimer.stop() -# self.rlist[index]="fail" -# self["resultlist"].updateList(self.rlist) elif self.camstep == 4: slot = 1 appname = eDVBCI_UI.getInstance().getAppName(slot) @@ -851,7 +935,6 @@ class FactoryTest(Screen): else: self.setSource() self.camstep = 5 -# self.session.open( MessageBox, _("CAM OK!"), MessageBox.TYPE_INFO,2) def updateStatus(self): current_index = self.currentindex @@ -880,7 +963,7 @@ class FactoryTest(Screen): hv == "" print "eSctest.getInstance().getFrontendstatus - %d"%result - if result == 0: + if result == 0 or result == -1: self.tunerlock = 0 self.tunemsgtimer.stop() self.session.nav.stopService() @@ -909,28 +992,45 @@ class FactoryTest(Screen): def tunemsg(self): self.tuningtimer.stop() - self.session.openWithCallback(self.tuneback, MessageBox, _("%s ok?" %(self["testlist"].getCurrent()[0])), MessageBox.TYPE_YESNO) + self.session.openWithCallback(self.tuneback, TuneMessageBox, _("%s ok?" %(self["testlist"].getCurrent()[0])), MessageBox.TYPE_YESNO) + + def setSourceVar(self): + if self.model == 0: + self.input_pad_num=1 + self.setTuner = 'B' + elif self.model == 1: + self.input_pad_num=0 + self.setTuner = 'A' + else: + self.input_pad_num=len(self.NimType)-1 + if self.input_pad_num == 0: + self.setTuner = 'A' + elif self.input_pad_num == 1: + self.setTuner = 'B' + elif self.input_pad_num == 2: + self.setTuner = 'C' # ikseong - for 22000 tp def setSource(self): +# fix input source + inputname = ("/proc/stb/tsmux/input%d" % self.input_pad_num) + print " inputname : ",inputname + fd=open(inputname,"w") + fd.write("CI0") + fd.close() +# fix ci_input Tuner filename = ("/proc/stb/tsmux/ci0_input") fd = open(filename,'w') - fd.write('B') -# fd.write('A') - fd.close() -# filename = ("/proc/stb/tsmux/ci1_input") -# fd = open(filename,'w') -# fd.write('CI0') -# fd.close() - fd=open("/proc/stb/tsmux/input1","w") -# fd=open("/proc/stb/tsmux/input0","w") - fd.write("CI0") + fd.write(self.setTuner) + print "setTuner(CI0) : ",self.setTuner fd.close() print "CI loop test!!!!!!!!!!!!!!" def resetSource(self): - fd=open("/proc/stb/tsmux/input1","w") - fd.write("B") + inputname = ("/proc/stb/tsmux/input%d" % self.input_pad_num) + print " inputname : ",inputname + fd=open(inputname,"w") + fd.write(self.setTuner) fd.close() print "CI loop test end!!!!!!!!!!!!!!" @@ -957,49 +1057,21 @@ class FactoryTest(Screen): self.session.openWithCallback(self.check7,RS232Test) def Agingmode(self): - if self.testing==1: - return - if self.oldref is None: - eref = eServiceReference("1:0:19:1324:3EF:1:C00000:0:0:0") - serviceHandler = eServiceCenter.getInstance() - servicelist = serviceHandler.list(eref) - if not servicelist is None: - ref = servicelist.getNext() - else: - ref = self.getCurrentSelection() - print "servicelist none" - else: - ref = self.oldref - self.session.nav.stopService() # try to disable foreground service - ref.setData(0,0x19) - ref.setData(1,0x1325) - ref.setData(2,0x3ef) - ref.setData(3,0x1) - ref.setData(4,0x64af79) - self.session.nav.playService(ref) - self.avswitch.setColorFormat(0) - self.avswitch.setAspectRatio(0) - self.agingtimer.start(2000,True) - - def agingCheck(self): - result = eSctest.getInstance().getFrontendstatus(0) - hv = "Ver" - print "eSctest.getInstance().getFrontendstatus - %d"%result - if result == 0: - self.session.nav.stopService() - self.session.open( MessageBox, _("Tune 1 Ver Locking Fail..."), MessageBox.TYPE_ERROR) - elif result == 1 : - self.session.openWithCallback(self.agingResult,AgingTest) - else: - self.session.nav.stopService() - self.session.open( MessageBox, _("Tune 1 Ver Error %d..."%result), MessageBox.TYPE_ERROR) + self.session.openWithCallback(self.AgingmodeCallback,AgingTest, self.model) - def agingResult(self): - global Agingresult - if(Agingresult ==1): + def AgingmodeCallback(self,ret): + if ret == 1: self["testlist"].moveToIndex(self.fdefaultIndex) self.Test14() self["testlist"].moveToIndex(self.shutdownIndex) + + def Agingmode2(self): + self.session.openWithCallback(self.Agingmode2Callback,AgingTest_mode2, self.model) + + def Agingmode2Callback(self): + self["testlist"].moveToIndex(self.fdefaultIndex) + self.Test14() + self["testlist"].moveToIndex(self.shutdownIndex) def Test8(self): self.usbtry = 9 @@ -1058,11 +1130,11 @@ class FactoryTest(Screen): if result < 0 : result = 0 elif result == len(devices): - self.session.open( MessageBox, _("USB test pass %d devices\nPress OK!"%result), MessageBox.TYPE_INFO) + self.session.open( MessageBox, _("USB test pass %d devices\nPress 'OK' button!"%result), MessageBox.TYPE_INFO) self.rlist[self["testlist"].getCurrent()[1]]="pass" else: if displayerror == 1: - self.session.open( MessageBox, _("USB test error : Success-%d"%result+" Fail-%d\nPress EXIT!"%(len(devices)-result)), MessageBox.TYPE_ERROR) + self.session.open( MessageBox, _("USB test error : Success-%d"%result+" Fail-%d\nPress 'EXIT' button!"%(len(devices)-result)), MessageBox.TYPE_ERROR) self.rlist[self["testlist"].getCurrent()[1]]="fail" else: self.usbtimer.start(1100,True) @@ -1098,7 +1170,6 @@ class FactoryTest(Screen): if data == 1: ethtest = 1 print "success" -# self.session.open( MessageBox, _("Ping test pass"), MessageBox.TYPE_INFO,2) self.session.openWithCallback(self.openMacConfig ,MessageBox, _("Ping test pass"), MessageBox.TYPE_INFO,2) else: @@ -1117,35 +1188,33 @@ class FactoryTest(Screen): global ethtest if ethtest == 1: self.rlist[self.ethernettestIndex]="pass" -# self.rlist[self["testlist"].getCurrent()[1]]="pass" else: self.rlist[self.ethernettestIndex]="fail" -# self.rlist[self["testlist"].getCurrent()[1]]="fail" self.getmacaddr() self.testing = 0 - def MemTest(self, which): - index = which - result = 0 - if index==0: - result = eMemtest.getInstance().dramtest() - elif index==1: - result = eMemtest.getInstance().flashtest() - result = 0 # temp - else: - result = eMemtest.getInstance().dramtest() - result = eMemtest.getInstance().flashtest() - result = 0 # temp +# def MemTest(self, which): +# index = which +# result = 0 +# if index==0: +# result = eMemtest.getInstance().dramtest() +# elif index==1: +# result = eMemtest.getInstance().flashtest() +# result = 0 # temp +# else: +# result = eMemtest.getInstance().dramtest() +# result = eMemtest.getInstance().flashtest() +# result = 0 # temp - index = index+10 +# index = index+10 - if result == 0: - print index,self.rlist[index] - self.rlist[index]="pass" - else: - print index,self.rlist[index] - self.rlist[index]="fail" - self["resultlist"].updateList(self.rlist) +# if result == 0: +# print index,self.rlist[index] +# self.rlist[index]="pass" +# else: +# print index,self.rlist[index] +# self.rlist[index]="fail" +# self["resultlist"].updateList(self.rlist) def scciresult(self): global smartcardtest @@ -1157,15 +1226,14 @@ class FactoryTest(Screen): def Test10(self): self.session.openWithCallback(self.scciresult ,SmartCardTest,stbmodel=self.model) - def Test11(self): - self.MemTest(1) +# def Test11(self): +# self.MemTest(1) - def Test12(self): - self.MemTest(2) - - def Test13(self): - self.MemTest(3) +# def Test12(self): +# self.MemTest(2) +# def Test13(self): +# self.MemTest(3) def Test14(self): try: @@ -1203,12 +1271,12 @@ class FactoryTest(Screen): ethtest = 0 class MacConfig(Screen): skin = """ - + - + - + """ def __init__(self, session, mactry = 1): @@ -1225,7 +1293,6 @@ class MacConfig(Screen): self.mactry = mactry self.model = 0 self.getModelInfo() -# self.result = 0 self.macfd = 0 self.macaddr = "000000000000" self.ReadMacinfo = 0 @@ -1241,7 +1308,9 @@ class MacConfig(Screen): def getModelInfo(self): getmodel = 0 if fileExists("/proc/stb/info/vumodel"): - info = open("/proc/stb/info/vumodel").read().strip() + vumodel = open("/proc/stb/info/vumodel") + info=vumodel.read().strip() + vumodel.close() if info == "combo": self.model = 2 getmodel = 1 @@ -1263,9 +1332,10 @@ class MacConfig(Screen): getmodel = 1 print "getModelInfo : ultimo" - if getmodel == 0 and fileExists("/proc/stb/info/version"): - info = open("/proc/stb/info/version").read() + version = open("/proc/stb/info/version") + info=version.read() + version.close() # print info,info[:2] if info[:2] == "14": self.model = 1 @@ -1420,266 +1490,23 @@ class MacConfig(Screen): ethtest = 0 self.close() - -sccitest = 0 - -class ScCiTest(Screen): - skin = """ - - - - - - """ - step=1 - def __init__(self, session): - self["actions"] = ActionMap(["DirectionActions","OkCancelActions"], - { - "ok": self.keyOk, - "up": self.up, - "down":self.down, - "cancel": self.keyCancel, - }, -2) - - Screen.__init__(self, session) - tlist = [] - tlist.append(("Smartcard 1 Test",0)) - tlist.append(("Smartcard 2 Test",1)) - tlist.append(("CI 1 Test",2)) - tlist.append(("CI 2 Test",3)) - self["testlist"] = MenuList(tlist) - self.rlist = [] - for x in range(4): - self.rlist.append(("..")) - self["resultlist"] = TestResultList(self.rlist) - self.result = 0 - self.removecard = eTimer() - self.removecard.callback.append(self.remove_card) - self["text"]=Label(("Press OK Key")) - self.camstate= eTimer() - self.camstate.callback.append(self.cam_state) - self.camtry = 5 - self.camstep = 0 - - def keyCancel(self): - global sccitest - print "result ", self.result - if self.result==15: - sccitest=1 - self.resetSource() - self.close() - - def up(self): - self["text"].setText(_("Press OK Key")) - self["testlist"].instance.moveSelection(self["testlist"].instance.moveUp) - - def down(self): - self["text"].setText(_("Press OK Key")) - self["testlist"].instance.moveSelection(self["testlist"].instance.moveDown) - - def keyOk(self): - print "line - ",self["testlist"].getCurrent()[1] - index = self["testlist"].getCurrent()[1] - result = 0 - if index==0 or index==1: - self["text"].setText(_("Insert Card?")) - self.ScTest(True) - elif index ==2 or index==3: - self["text"].setText(_("Insert Cam")) - self.CamTest() - - def CamTest(self): - self.camtry = 10 - self.camstep = 1 - self.camstate.start(1000,True) - - def setSource(self, cislot): - filename = ("/proc/stb/tsmux/ci%d_input"%cislot) - fd = open(filename,'w') - fd.write('A') - fd.close() - - def setInputSource(self, cislot): - fd=open("/proc/stb/tsmux/input0","w") - if cislot==0: - fd.write("CI0") - else: - fd.write("CI1") - fd.close() - - def resetSource(self): - fd=open("/proc/stb/tsmux/input0","w") - fd.write("A") - fd.close() -# fd = open("/proc/stb/tsmux/ci0_input","w") -# fd.write("CI0") -# fd.close() -# fd = open("/proc/stb/tsmux/ci1_input","w") -# fd.write("CI1") -# fd.close() - - def channelstart(self): - ref = eServiceReference("1:0:19:1324:3EF:1:C00000:0:0:0") - ref.setData(0,0x19) - ref.setData(1,0x83) - ref.setData(2,0x6) - ref.setData(3,0x85) - ref.setData(4,0x640000) - self.session.nav.playService(ref) - - def channelstop(self): - self.session.nav.stopService() # try to disable foreground service - - def cam_state(self): - index = self["testlist"].getCurrent()[1] - if (index-2)==0: - slot = 1 - else: - slot = 0 - print 'cam_state', self.camstep,self.camtry - if self.camstep == 1: - state = eDVBCI_UI.getInstance().getState(slot) - print 'stat',state - if state == 1: - self.camstep=2 - self.camtry=10 - self["text"].setText(_("Getting Cam name....")) - self.camstate.start(5000,True) - else: - self.camtry-=1 - if self.camtry>0: - self.camstate.start(1000,True) - else: - self.session.open( MessageBox, _("NO_NOT_INSERTED"), MessageBox.TYPE_ERROR) - self.rlist[index]="fail" - self["resultlist"].updateList(self.rlist) - - elif self.camstep == 2: - appname = eDVBCI_UI.getInstance().getAppName(slot) - print 'appname',appname - if appname is None: - self.camtry-=1 - if self.camtry>0: - self.camstate.start(1000,True) - else: - self.session.open( MessageBox, _("NO_GET_APPNAME"), MessageBox.TYPE_ERROR) - self.rlist[index]="fail" - self["resultlist"].updateList(self.rlist) - else: - self["text"].setText(_("Get Cam name : %s"%appname+". \n Remove Cam!")) - self.channelstart() - self.setInputSource(slot) - self.setSource(slot) - self.camstep=3 - self.camtry=30 - self.camstate.start(1000,True) - elif self.camstep==3: - state = eDVBCI_UI.getInstance().getState(slot) - print 'stat', state - if state == 0: - self.channelstop() - self.result += (1<0: - self.camstate.start(1000,True) - else: - self.channelstop() - self.session.open( MessageBox, _("NO_REMOVE_CAM"), MessageBox.TYPE_ERROR) - self.rlist[index]="fail" - self["resultlist"].updateList(self.rlist) - - def check_smart_card(self,which): - index = which - result = 0 - if which==0: - result = eSctest.getInstance().check_smart_card("/dev/sci0") - elif which ==1: - result = eSctest.getInstance().check_smart_card("/dev/sci1") - else: - result = -1 - - print result - - if result == 0: - print 'pass' - else: - if result ==-1: - self.session.open( MessageBox, _("1:NO_DEV_FOUND"), MessageBox.TYPE_ERROR) - elif result == -2: - self.session.open( MessageBox, _("1:SC_NOT_INSERTED"), MessageBox.TYPE_ERROR) - elif result == -3: - self.session.open( MessageBox, _("1:SC_NOT_VALID_ATR"), MessageBox.TYPE_ERROR) - elif result == -5: - self.session.open( MessageBox, _("1:SC_READ_TIMEOUT"), MessageBox.TYPE_ERROR) - self.rlist[which]="fail" - self["resultlist"].updateList(self.rlist) - return result - - def remove_card(self): - index = self["testlist"].getCurrent()[1] - if index==0: - result = eSctest.getInstance().eject_smart_card("/dev/sci0") - elif index==1: - result = eSctest.getInstance().eject_smart_card("/dev/sci1") - print 'remove result' ,result - if result == 0: - self.rlist[index]="pass" - self.result += (1< - + + """ def __init__(self, session, stbmodel = 0): self["actions"] = ActionMap(["DirectionActions", "OkCancelActions"], { "cancel": self.keyCancel, - "ok" : self.keyCancel + "ok" : self.keyOk }, -2) Screen.__init__(self, session) -# self["text"]=Label(("Press Key LEFT")) self["text"]=Label(("Testing Smartcard 1...")) - self.step = 0 + self.testok = 0 self.smartcardtimer = eTimer() self.smartcardtimer.callback.append(self.check_smart_card) self.closetimer = eTimer() @@ -1688,7 +1515,6 @@ class SmartCardTest(Screen): global smartcardtest smartcardtest = 0 self.model = stbmodel - self.Testmode = 1 self.smartcardtimer.start(100,True) def check_smart_card(self): @@ -1696,19 +1522,13 @@ class SmartCardTest(Screen): index = self.smartcard result = 0 if index==0: - if self.Testmode==0: - result = eSctest.getInstance().check_smart_card("/dev/sci0") - else: - result = eSctest.getInstance().n_check_smart_card("/dev/sci0") + result = eSctest.getInstance().check_smart_card("/dev/sci0") elif index ==1: - if self.Testmode==0: - result = eSctest.getInstance().check_smart_card("/dev/sci1") - else: - result = eSctest.getInstance().n_check_smart_card("/dev/sci1") + result = eSctest.getInstance().check_smart_card("/dev/sci1") else: result = -1 - print result + print "check smartcard : ", result if result == 0: print 'pass' @@ -1719,8 +1539,7 @@ class SmartCardTest(Screen): return elif (index==1 or self.model==1): smartcardtest = 1 -# self.session.open( MessageBox, _("Smart Card OK!!"), MessageBox.TYPE_INFO,2) - self.step = 1 + self.testok = 1 self["text"].setText(_("Smart Card OK!!")) self.closetimer.start(2000,True) self.smartcardtimer.stop() @@ -1729,7 +1548,6 @@ class SmartCardTest(Screen): self["text"].setText(_("Smart Card model type error")) self.closetimer.start(2000,True) self.smartcardtimer.stop() -# self.session.openWithCallback(self.check6, MessageBox, _("Scart loop ok?"), MessageBox.TYPE_INFO) else: # if result ==-1: # self.session.open( MessageBox, _("%d:NO_DEV_FOUND"%(index+1)), MessageBox.TYPE_ERROR) @@ -1750,14 +1568,18 @@ class SmartCardTest(Screen): def keyCancel(self): self.close() + def keyOk(self): + if self.testok == 1: + self.close() + fronttest = 0 class FrontTest(Screen): skin = """ - - + + """ def __init__(self, session): @@ -1814,8 +1636,6 @@ class FrontTest(Screen): self.keytimeout.start(5000,True) self.step=2 self["text"].setText(_("Wheel RIGHT")) -# else: -# print "" def keyOk(self): if self.step == 3: @@ -1842,8 +1662,8 @@ class FrontTest(Screen): class FrontTest_solo(Screen): skin = """ - - + + """ def __init__(self, session): @@ -1937,11 +1757,11 @@ class FrontTest_solo(Screen): def keyOk(self): global fronttest - self.fronttimer.stop() - eSctest.getInstance().VFD_Close() if self.step == 6: fronttest = 1 - self.close() + self.fronttimer.stop() + eSctest.getInstance().VFD_Close() + self.close() def FrontAnimate(self): if (self.frontturnonoff==0): @@ -1952,138 +1772,1144 @@ class FrontTest_solo(Screen): eSctest.getInstance().turnoff_VFD() self.fronttimer.start(1000,True) - - - -rstest = 0 - -import select - -class RS232Test(Screen): +class FrontTest_uno(Screen): skin = """ - - + + """ - step=1 + def __init__(self, session): - self["actions"] = ActionMap(["DirectionActions", "OkCancelActions"], + self["actions"] = ActionMap(["DirectionActions", "OkCancelActions","GlobalActions"], { + "ok": self.keyOk, "cancel": self.keyCancel, + "left": self.keyleft, + "right": self.keyright, + "volumeUp": self.keyvolup, + "volumeDown": self.keyvoldown, + "power_down": self.keypower, }, -2) Screen.__init__(self, session) - self["text"]=Label(("Press \"Enter\" Key")) - self.timer = eTimer() - self.timer.callback.append(self.checkrs232) - self.timer.start(100, True) + self["text"]=Label(("Press Front CH -")) + self.step = 1 + self.fronttimer= eTimer() + self.fronttimer.callback.append(self.FrontAnimate) + self.frontturnonoff = 0 + eSctest.getInstance().VFD_Open() + self.keytimeout = eTimer() + self.keytimeout.callback.append(self.KeyTimeOut) + self.keytimeout.start(5000,True) - def checkrs232(self): - global rstest - try: - rs=open('/dev/ttyS0','r') - rd = [rs] - r,w,e = select.select(rd, [], [], 10) - if r: - input = rs.read(1) - if input == "\n": -# if input == "m": - rstest = 1 - else: - rstest = 0 - else: - rstest = 0 - except: - print 'error' - rstest = 0 - self.close() + def KeyTimeOut(self): + if self.step == 1: + self["text"].setText(("Front CH - ERROR\nPress exit!")) + elif self.step == 2: + self["text"].setText(("Front CH + ERROR\nPress exit!")) + elif self.step == 3 : + self["text"].setText(("Front VOL - ERROR\nPress exit!")) + elif self.step == 4: + self["text"].setText(("Front VOL + ERROR\nPress exit!")) + elif self.step == 5: + self["text"].setText(("Front STANDBY ERROR\nPress exit!")) + self.step = 0 + + def keyleft(self): + if self.step== 1: + self.keytimeout.stop() + self.keytimeout.start(5000,True) + self.step = 2 + self["text"].setText(_("Press Front CH +")) + def keyright(self): + if self.step== 2: + self.keytimeout.stop() + self.keytimeout.start(5000,True) + self.step = 3 + self["text"].setText(_("Press Front VOL -")) + + def keyvoldown(self): + if self.step== 3: + self.keytimeout.stop() + self.keytimeout.start(5000,True) + self.step = 4 + self["text"].setText(_("Press Front VOL +")) + + def keyvolup(self): + if self.step== 4: + self.keytimeout.stop() + self.keytimeout.start(5000,True) + self.step = 5 + self["text"].setText(_("Press Front STANDBY")) + + def keypower(self): + if self.step== 5: + self.keytimeout.stop() + self.step = 6 + self.fronttimer.start(1000,True) + self["text"].setText(_("Front LED OK?\n\nyes-ok\nno-exit")) def keyCancel(self): + global fronttest + self.fronttimer.stop() + eSctest.getInstance().VFD_Close() + fronttest = 0 self.close() -Agingresult = 0 + def keyOk(self): + global fronttest + if self.step == 6: + fronttest = 1 + self.fronttimer.stop() + eSctest.getInstance().VFD_Close() + self.close() -class AgingTest(Screen): + def FrontAnimate(self): + if (self.frontturnonoff==0): + eSctest.getInstance().turnon_VFD() + self.frontturnonoff = 1 + else: + self.frontturnonoff = 0 + eSctest.getInstance().turnoff_VFD() + self.fronttimer.start(1000,True) + +class FrontTest_ultimo_Summary(Screen): + skin = """ + + + + """ + + def __init__(self, session, parent): + Screen.__init__(self, session, parent = parent) + self["text"] = Label("Press Front STANDBY") + + def setText(self, text = ""): + if not isinstance(text, str): + text = str(text) + self["text"].setText(text) + +class FrontTest_ultimo(FrontTest_solo): + skin = """ + + + """ + + def createSummary(self): + return FrontTest_ultimo_Summary + + def KeyTimeOut(self): + if self.step == 1: + self["text"].setText(("Front STANDBY ERROR\nPress exit!")) + self.summaries.setText("Front STANDBY ERROR\nPress exit!") + elif self.step == 2 : + self["text"].setText(("Front CH - ERROR\nPress exit!")) + self.summaries.setText("Front CH - ERROR\nPress exit!") + elif self.step == 3: + self["text"].setText(("Front CH + ERROR\nPress exit!")) + self.summaries.setText("Front CH + ERROR\nPress exit!") + elif self.step == 4 : + self["text"].setText(("Front VOL - ERROR\nPress exit!")) + self.summaries.setText("Front VOL - ERROR\nPress exit!") + elif self.step == 5: + self["text"].setText(("Front VOL + ERROR\nPress exit!")) + self.summaries.setText("Front VOL + ERROR\nPress exit!") + self.step = 0 + + def keypower(self): + if self.step== 1: + self.keytimeout.stop() + self.keytimeout.start(5000,True) + self.step = 2 + self["text"].setText(_("Press Front CH -")) + self.summaries.setText(_("Press Front CH -")) + + def keyright(self): + if self.step== 3: + self.keytimeout.stop() + self.keytimeout.start(5000,True) + self.step = 4 + self["text"].setText(_("Press Front VOL -")) + self.summaries.setText(_("Press Front VOL -")) + + def keyleft(self): + if self.step== 2: + self.keytimeout.stop() + self.keytimeout.start(5000,True) + self.step = 3 + self["text"].setText(_("Press Front CH +")) + self.summaries.setText(_("Press Front CH +")) + + def keyvolup(self): + if self.step== 5: + self.keytimeout.stop() + self.step = 6 + self.fronttimer.start(1000,True) + self["text"].setText(_("Front LED OK?\n\nyes-ok\nno-exit")) + self.summaries.setText(_("Front LED OK?")) + + def keyvoldown(self): + if self.step== 4: + self.keytimeout.stop() + self.keytimeout.start(5000,True) + self.step = 5 + self["text"].setText(_("Press Front VOL +")) + self.summaries.setText(_("Press Front VOL +")) + + def FrontAnimate(self): + if (self.frontturnonoff==0): + eSctest.getInstance().turnon_VFD() + self.frontturnonoff = 1 + self.fronttimer.start(1500,True) + else: + self.frontturnonoff = 0 + eSctest.getInstance().turnoff_VFD() + self.fronttimer.start(500,True) + +rstest = 0 + +import select + +class RS232Test(Screen): skin = """ - - - + + """ step=1 def __init__(self, session): - self["actions"] = ActionMap(["WizardActions","GlobalActions"], + self["actions"] = ActionMap(["DirectionActions", "OkCancelActions"], { - "agingend": self.keyEnd, - "agingfinish": self.keyFinish, - "volumeUp": self.nothing, - "volumeDown": self.nothing, - "volumeMute": self.nothing, + "cancel": self.keyCancel, }, -2) Screen.__init__(self, session) + self["text"]=Label(("Press \"Enter\" Key")) + self.timer = eTimer() + self.timer.callback.append(self.checkrs232) + self.timer.start(100, True) + + def checkrs232(self): + global rstest + try: + rs=open('/dev/ttyS0','r') + rd = [rs] + r,w,e = select.select(rd, [], [], 10) + if r: + input = rs.read(1) + if input == "\n": + rstest = 1 + else: + rstest = 0 + else: + rstest = 0 + rs.close() + except: + try: + if rs: + rs.close() + except: + pass + print 'except error' + rstest = 0 + if rstest == 0: + self.session.open( MessageBox, _("RS232 Test Failed!\nPress 'EXIT' button!"), MessageBox.TYPE_ERROR) + self.close() + + def keyCancel(self): + self.close() + +class AgingTestSummary(Screen): + skin = """ + + + """ + +class AgingTestSummaryVFD(Screen): + skin = """ + + + + + + + + + + SNRdB + + + + + AGC + + + """ + + def __init__(self, session, parent): + Screen.__init__(self, session) + self["zapmode"] = Label("") + self["timer"] = Label("") + self["curtuner"] = Label("") + self["error"] = Label("") + + def setText(self, label = "zapmode",text = ""): + if not isinstance(text,str): + text = str(text) + self[label].setText(text) + +class AgingTest(Screen): + skin = """ + + + + + + + SNRdB + + + + + AGC + + + + """ + step=1 + def __init__(self, session, model): + Screen.__init__(self, session) + self["actions"] = ActionMap(["MediaPlayerActions","GlobalActions", "MediaPlayerSeekActions", "ChannelSelectBaseActions"], + { + "pause": self.keyEnd, + "stop": self.keyFinish, + "volumeUp": self.keyVolumeup, + "volumeDown": self.keyVolumedown, + "volumeMute": self.nothing, + "seekFwd" : self.keyFFW, + }, -2) + self.model = model self["text1"]=Label(("Exit - Press Pause Key")) self["text2"]=Label(("Reset - Press Stop Key")) -# self.servicelist = ServiceList() -# self.oldref = session.nav.getCurrentlyPlayingServiceReference() -# print "oldref",self.oldref -# session.nav.stopService() # try to disable foreground service -# self.chstart() - self.tunerlock = 0 - self.tuningtimer = eTimer() - self.tuningtimer.callback.append(self.updateStatus) -# self.tuningtimer.start(200,True) + self["text3"]=Label(("Manual zapping")) + self["text4"]=Label((" ")) + self.avswitch = AVSwitch() + self.curzappingmode = 'manual' + self.zapping_interval = 300 + self.error = 0 + self.timeout = self.zapping_interval + self.tunelist = [] + self.zappinglist = { + 'DVB-S2' : [ + ('S-1','1:0:19:1325:3EF:1:0x64af79:0:0:0:'), # astra hd + ('S-2','1:0:19:1324:3EF:1:0x64af79:0:0:0:'), # anixe hd + ('S-3','1:0:19:1331:3EF:1:0x64af79:0:0:0:') # servus hd + ], + 'DVB-C': [ + ('C-1','1:0:19:1325:3EF:1:FFFF029A:0:0:0:'), # astra hd (DVB-C) + ('C-2','1:0:19:1324:3EF:1:FFFF029A:0:0:0:') # anixe hd (DVB-C) + ] + } + self.LockCheckTimer = eTimer() + self.LockCheckTimer.callback.append(self.LockCheck) + self.nextzappingtimer = eTimer() + self.nextzappingtimer.callback.append(self.checktimeout) + self.checkTunerType() + self.makeTunelList() + self.playservice(service = self.tunelist[0][1]) +# self.logmessage("AGING TEST START") + + def createSummary(self): + if self.model == 4: + self.onShown.append(self.VFDinit) + return AgingTestSummaryVFD + else: + return AgingTestSummary + def setTextVFD(self, name ,text): + if self.model == 4: + self.summaries.setText(name ,text) - def updateStatus(self): - result = eSctest.getInstance().getFrontendstatus(0) - hv = "Ver" - - print "eSctest.getInstance().getFrontendstatus - %d"%result - if result == 0: - self.tunerlock = 0 - self.session.nav.stopService() - self.session.open( MessageBox, _("Tune 1 Ver Locking Fail..."), MessageBox.TYPE_ERROR) - elif result==1 : - self.tunerlock = 1 + def VFDinit(self): + if self.curzappingmode == 'manual' : + self.summaries.setText("zapmode", 'MANUAL') else: - self.tunerlock = 0 - self.session.nav.stopService() - self.session.open( MessageBox, _("Tune 1 Ver Error %d..."%result), MessageBox.TYPE_ERROR) + self.summaries.setText("zapmode", 'AUTO') + self.summaries.setText("timer", "Timer %d sec"%self.timeout) + self.summaries.setText("curtuner", "%s, CHANNEL - %s)"%(self.NimType[0], self.tunelist[0][0])) + + def checkTunerType(self): + self.NimType={} + nimfile = open("/proc/bus/nim_sockets") + for line in nimfile.readlines(): + print line + if line == "": + break + if line.strip().startswith("NIM Socket"): + parts = line.strip().split(" ") + current_slot = int(parts[2][:-1]) + elif line.strip().startswith("Type:"): + self.NimType[current_slot]= str(line.strip()[6:]) + elif line.strip().startswith("empty"): + self.NimType.pop(current_slot) + nimfile.close() + + def makeTunelList(self): + if self.NimType[0].startswith("DVB-S"): + tunetype = "DVB-S2" + elif self.NimType[0].startswith("DVB-C"): + tunetype = "DVB-C" + elif self.NimType[0].startswith("DVB-T"): +# tunetype = "DVB-T" + pass # fix later.. + try : + self.tunelist = self.zappinglist[tunetype] + except: + print "[FactoryTest] ERROR, index error (%s)"%tunetype + + def nextZapping(self, zap_rev = False): + if zap_rev: + tunelistlen = len(self.tunelist) + nextservice = self.tunelist.pop(tunelistlen-1) + self.tunelist.insert(0,nextservice) + else: + currentservice = self.tunelist.pop(0) + self.tunelist.append(currentservice) + self.playservice(service=self.tunelist[0][1]) + if self.curzappingmode == 'auto': + self.timeout = self.zapping_interval + self.setTextVFD("curtuner", "%s, CHANNEL - %s)"%(self.NimType[0], self.tunelist[0][0])) + + def checktimeout(self): + if self.timeout == 0: + self.nextZapping() + else: + self.timeout -=1 + self["text4"].setText("remain %d sec for next tuning" %self.timeout) + self.setTextVFD("timer", "Timer %d sec"%self.timeout) + def playservice(self,service = '1:0:19:1325:3EF:1:0x64af79:0:0:0:'): + ref = eServiceReference(service) + self.session.nav.playService(ref) + self.avswitch.setAspectRatio(6) + self.avswitch.setColorFormat(0) + self.LockCheckTimer.start(2000,True) + + def LockCheck(self): + result = eSctest.getInstance().getFrontendstatus(0) + if result == 0 or result == -1: + if self.model == 4: + self.error +=1 + print "AGINGTEST - LOCK FAIL(%d)"%self.error + self.setTextVFD("error", "LOCK FAIL(%d)"%self.error) + # logmsg = "[LOCKFAIL][%d] TYPE : %s, CH : %s, ZAPMODE: %s"%(self.error,self.NimType[0],self.tunelist[0][0],self.curzappingmode) + # self.logmessage(logmsg) + else: + self.session.open( MessageBox, _("Locking Fail Error"), MessageBox.TYPE_ERROR) + + def logmessage(self,msg): + pass def nothing(self): print "nothing" - def chstart(self): - if self.oldref is None: - eref = eServiceReference("1:0:19:1324:3EF:1:C00000:0:0:0") - serviceHandler = eServiceCenter.getInstance() - servicelist = serviceHandler.list(eref) - if not servicelist is None: - ref = servicelist.getNext() + def keyFFW(self): + if self.curzappingmode == 'auto': + self.curzappingmode = 'manual' + self.nextzappingtimer.stop() + self.timeout = self.zapping_interval + self["text3"].setText("Manual zapping") + self["text4"].setText("") + self.setTextVFD("zapmode", 'MANUAL') + self.setTextVFD("timer", "") + + elif self.curzappingmode == 'manual': + self.curzappingmode = 'auto' + self["text3"].setText("Auto zapping") + self["text4"].setText("remain %d sec for next tuning" %self.timeout) + self.setTextVFD("zapmode", 'AUTO') + self.setTextVFD("timer", "Timer %d sec"%self.timeout) +# self.timeout = self.zapping_interval + self.nextzappingtimer.start(1000) + + def keyVolumeup(self): + self.nextZapping(zap_rev = False) + + def keyVolumedown(self): + self.nextZapping(zap_rev = True) + + def nothing(self): + print "nothing" + + def keyEnd(self): + self.session.nav.stopService() + self.close(0) # exit + + def keyFinish(self): + self.session.nav.stopService() + self.close(1) # exit and reset + +class AgingTest_mode2_Summary(Screen): + skin = """ + + + """ + +class AgingTest_mode2_Summary_VFD(Screen): + skin = """ + + + + + + + + + + SNRdB + + + + + AGC + + + """ + + def __init__(self, session, parent): + Screen.__init__(self, session) + self["zapmode"] = Label("") + self["timer"] = Label("") + self["curtuner"] = Label("") + self["error"] = Label("") + + def setText(self, label = "zapmode",text = ""): + if not isinstance(text,str): + text = str(text) + self[label].setText(text) + +from Components.Input import Input +from Screens.InputBox import InputBox +class AgingTest_mode2(Screen): + skin = """ + + + + + + + SNRdB + + + + + AGC + + + + """ + step=1 + def __init__(self, session,model = 4): + self["actions"] = ActionMap(["MediaPlayerActions","GlobalActions","InfobarMenuActions","ChannelSelectBaseActions"], + { + "pause": self.keyEnd, + "stop": self.keyFinish, + "volumeUp": self.keyVolumeup, + "volumeDown": self.keyVolumedown, + "volumeMute": self.nothing, + "mainMenu" : self.keyMenu, + "nextBouquet" : self.keyChannelup, + "prevBouquet" : self.keyChannelDown, + "showFavourites" : self.keyBlue, + }, -2) + + Screen.__init__(self, session) + self.model = model + self.slotindex = { 0 : 'A', 1 : 'B', 2 : 'C', 3: 'D'} + self.curtuner = 0 + self.isChangeTuner = True + self.isChangeChannel = False + self.zapping_interval = 300 + self.timeout = self.zapping_interval + self.avswitch = AVSwitch() + self.error = 0 + self.LockCheckTimer = eTimer() + self.LockCheckTimer.callback.append(self.LockCheck) + self.nextzappingtimer = eTimer() + self.nextzappingtimer.callback.append(self.checktimeout) + self.tunelist_db = { + 'DVB-S2' : [ + [ + ('1-1','1:0:19:1325:3EF:1:0x64af79:0:0:0:'), # astra hd + ('1-2','1:0:19:1324:3EF:1:0x64af79:0:0:0:'), # anixe hd + ('1-3','1:0:19:1331:3EF:1:0x64af79:0:0:0:') # servus hd + ], + [ + ('2-1','1:0:19:1325:3EF:1:0xC00000:0:0:0:'), # astra hd + ('2-2','1:0:19:1324:3EF:1:0xC00000:0:0:0:'), # anixe hd + ('2-3','1:0:19:1331:3EF:1:0xC00000:0:0:0:') # servus hd + ], + [ + ('3-1','1:0:19:1325:3EF:1:0x282AF79:0:0:0:'), # astra hd + ('3-2','1:0:19:1324:3EF:1:0x282AF79:0:0:0:'), # anixe hd + ('3-3','1:0:19:1331:3EF:1:0x282AF79:0:0:0:') # servus hd + ], + [ + ('4-1','1:0:19:1325:3EF:1:0x02d0af79:0:0:0:'), # astra hd, Panamsat 4 (72.0E) + ('4-2','1:0:19:1324:3EF:1:0x02d0af79:0:0:0:'), # anixe hd + ('4-3','1:0:19:1331:3EF:1:0x02d0af79:0:0:0:') # servus hd + ] +# namespace : 0x02d0af79, 720 # Panamsat 7,10 (68.5E) + ], + 'DVB-C': [ + [ + ('C-1','1:0:19:1325:3EF:1:FFFF029A:0:0:0:'), # astra hd (DVB-C) + ('C-2','1:0:19:1324:3EF:1:FFFF029A:0:0:0:') # anixe hd (DVB-C) + ] + ] + } + self.tunelist = {} + self.NimType={} + self.checkTunerType() + self.makeTunelList() + self.playservice(service = self.tunelist[self.curtuner][0][1]) + self.curzappingmode = 'auto' + self["text1"]=Label("ZAPPING MODE : AUTO") + self["text2"]=Label("CURRENT TUNER : %s (%s)"%(self.slotindex[self.curtuner], self.NimType[self.curtuner])) + self["text3"]=Label("remain %d sec for next tuning" %self.timeout) + self["text4"]=Label("Press 'stop' key for exit") + self.nextzappingtimer.start(1000) + self.logmessage("AGING TEST START") + + def createSummary(self): + if self.model == 4: + self.onShown.append(self.VFDinit) + return AgingTest_mode2_Summary_VFD + else: + return AgingTest_mode2_Summary + + def VFDinit(self): + if self.curzappingmode == 'manual' : + self.summaries.setText("zapmode", 'MANUAL') + else: + self.summaries.setText("zapmode", 'AUTO') + self.summaries.setText("timer", "Timer %d sec"%self.timeout) + self.summaries.setText("curtuner", "%s (%s, CHANNEL - %s)"%(self.slotindex[self.curtuner], self.NimType[self.curtuner], self.tunelist[self.curtuner][0][0])) + + def setTextVFD(self,name ,text): + if self.model == 4: + self.summaries.setText(name, text) + + def checkTunerType(self): + nimfile = open("/proc/bus/nim_sockets") + for line in nimfile.readlines(): + print line + if line == "": + break + if line.strip().startswith("NIM Socket"): + parts = line.strip().split(" ") + current_slot = int(parts[2][:-1]) + elif line.strip().startswith("Type:"): + self.NimType[current_slot]= str(line.strip()[6:]) + elif line.strip().startswith("empty"): + self.NimType.pop(current_slot) + nimfile.close() + + def makeTunelList(self): + for slot, type in self.NimType.items(): + if type.startswith('DVB-S'): + tunelist_type = 'DVB-S2' + elif type.startswith('DVB-C'): + tunelist_type = 'DVB-C' + elif type.startswith('DVB-T'): + tunelist_type = 'DVB-T' + try : + self.tunelist[slot] = self.tunelist_db[tunelist_type].pop(0) + except: + print "[FactoryTest] ERROR, pop from empty list (%s)"%tunelist_type + print "tunelist : " + print self.tunelist + + def nextZapping(self, mode = 'auto', changeTuner = True, changeService = False, reverse_tuner = False, reverse_service = False): + if mode == 'manual' and changeTuner or mode == 'auto' and self.isChangeTuner: + if reverse_tuner: + self.curtuner -=1 else: - ref = self.getCurrentSelection() - print "servicelist none" + self.curtuner +=1 + if self.curtuner >= len(self.tunelist): + self.curtuner = 0 + if self.curtuner < 0: + self.curtuner = len(self.tunelist)-1 + if mode == 'manual' and changeService or mode == 'auto' and self.isChangeChannel: + if reverse_service: + tunelistlen = len(self.tunelist[self.curtuner]) + nextservice = self.tunelist[self.curtuner].pop(tunelistlen-1) + self.tunelist[self.curtuner].insert(0,nextservice) + else: + currentservice = self.tunelist[self.curtuner].pop(0) + self.tunelist[self.curtuner].append(currentservice) + self.playservice(service=self.tunelist[self.curtuner][0][1]) + if self.curzappingmode == 'auto': + self.timeout = self.zapping_interval + self["text2"].setText("CURRENT TUNER : %s (%s)"%(self.slotindex[self.curtuner], self.NimType[self.curtuner])) + self.setTextVFD("curtuner", "%s (%s, CHANNEL - %s)"%(self.slotindex[self.curtuner], self.NimType[self.curtuner], self.tunelist[self.curtuner][0][0])) + + + def checktimeout(self): + if self.timeout == 0: + self.nextZapping(mode = 'auto') else: - ref = self.oldref - self.session.nav.stopService() # try to disable foreground service - ref.setData(0,0x19) - ref.setData(1,0x83) - ref.setData(2,0x6) - ref.setData(3,0x85) - ref.setData(4,0x640000) + self.timeout -=1 + self["text3"].setText("remain %d sec for next tuning" %self.timeout) + self.setTextVFD("timer", "Timer %d sec"%self.timeout) + + def playservice(self,service = '1:0:19:1325:3EF:1:0x64af79:0:0:0:'): + ref = eServiceReference(service) self.session.nav.playService(ref) + self.avswitch.setAspectRatio(6) + self.avswitch.setColorFormat(0) + self.LockCheckTimer.start(2000,True) + + def LockCheck(self): + result = eSctest.getInstance().getFrontendstatus(self.curtuner) + if result == 0 or result == -1: + if self.model == 4: + self.error +=1 + print "AGINGTEST - LOCK FAIL(%d)"%self.error + self.summaries.setText("error", "LOCK FAIL(%d)"%self.error) + logmsg = "[LOCKFAIL][%d] SLOT : %d, TYPE : %s, CH : %s, ZAPMODE: %s"%(self.error,self.curtuner,self.NimType[self.curtuner],self.tunelist[self.curtuner][0][0],self.curzappingmode) + self.logmessage(logmsg) + else: + self.error +=1 + print "AGINGTEST - LOCK FAIL(%d)"%self.error + logmsg = "[LOCKFAIL][%d] SLOT : %d, TYPE : %s, CH : %s, ZAPMODE: %s"%(self.error,self.curtuner,self.NimType[self.curtuner],self.tunelist[self.curtuner][0][0],self.curzappingmode) + self.logmessage(logmsg) + self.session.open( MessageBox, _("Locking Fail Error"), MessageBox.TYPE_ERROR) + + def logmessage(self,msg): + print "[logmessage]",msg + devpath = None + checklist = ["/autofs/sda1", "/autofs/sdb1", "/autofs/sdc1", "/autofs/sdd1", "/autofs/sde1"] + for dev in checklist: + try: + if fileExists(dev): + if access(dev,F_OK|R_OK|W_OK): + dummy=open(dev+"/dummy03","w") + dummy.write("check") + dummy.close() + dummy=open(dev+"/dummy03","r") + if dummy.readline()=="check": + print dev," - rw check ok" + devpath = dev + break + else: + print dev," - read check error" + dummy.close() + system("rm "+dev+"/dummy03") + else: + print dev," - rw access error" + else: + pass + except: + print dev," - exceptional error" + if devpath: + cmd = "echo %s >> %s/agingTest.log" % (msg,devpath) + print "[logmessage] %s(%s)"%(cmd,devpath) + system(cmd) + + def nothing(self): + print "nothing" + + def keyBlue(self): + if self.curzappingmode == 'auto': + self.curzappingmode = 'manual' + self["text1"].setText("ZAPPING MODE : MANUAL") + self["text3"].setText("Press 'stop' key for exit") + self["text4"].setText("") + self.setTextVFD("zapmode", 'MANUAL') + self.setTextVFD("timer", "") + self.nextzappingtimer.stop() + self.timeout = self.zapping_interval + elif self.curzappingmode == 'manual': + self.curzappingmode = 'auto' + self["text1"].setText("ZAPPING MODE : AUTO") + self["text3"].setText("remain %d sec for next tuning" %self.timeout) + self["text4"].setText("Press 'stop' key for exit") + self.setTextVFD("zapmode", 'AUTO') + self.setTextVFD("timer", "Timer %d sec"%self.timeout) + self.timeout = self.zapping_interval + self.nextzappingtimer.start(1000) + + def keyVolumeup(self): + self.nextZapping(mode = 'manual', changeTuner = False, changeService = True) + + def keyVolumedown(self): + self.nextZapping(mode = 'manual', changeTuner = False, changeService = True, reverse_service = True) + + def keyChannelup(self): + self.nextZapping(mode = 'manual', changeTuner = True, changeService = False) + + def keyChannelDown(self): + self.nextZapping(mode = 'manual', changeTuner = True, changeService = False, reverse_tuner = True) + + def keyMenu(self): + self.session.openWithCallback(self.menuCallback, AgingTest_mode2_setmenu, tuner = self.isChangeTuner, channel = self.isChangeChannel, interval = self.zapping_interval) + + def menuCallback(self, tuner, channel, interval): + if tuner is not None: + self.isChangeTuner = tuner + if channel is not None: + self.isChangeChannel = channel + if interval is not None: + self.zapping_interval = interval + self.timeout = self.zapping_interval def keyEnd(self): - global Agingresult - Agingresult = 0 - self.session.nav.stopService() # try to disable foreground service + self.session.nav.stopService() self.close() def keyFinish(self): - global Agingresult - Agingresult = 1 - self.session.nav.stopService() # try to disable foreground service + self.session.nav.stopService() self.close() + +from Components.ConfigList import ConfigListScreen +from Components.config import ConfigInteger, ConfigYesNo, getConfigListEntry, NoSave +class AgingTest_mode2_setmenu(Screen,ConfigListScreen): + skin = """ + + + + + + + """ + def __init__(self,session, tuner = True, channel = False, interval = 300): + Screen.__init__(self,session) + self.session = session + self.tuner = tuner + self.channel = channel + self.zap_interval = interval + self["key_red"] = StaticText(_("Save")) + self["key_green"] = StaticText(_("Cancel")) + self["shortcuts"] = ActionMap(["ShortcutActions", "SetupActions" ], + { + "ok": self.keySave, + "cancel": self.keyCancel, + "red": self.keyCancel, + "green": self.keySave, + }, -2) + self.list = [] + ConfigListScreen.__init__(self, self.list,session = self.session) + self.config_tuner = NoSave(ConfigYesNo(default = self.tuner)) + self.config_channel = NoSave(ConfigYesNo(default = self.channel)) + self.config_zap_interval = NoSave(ConfigInteger(default = self.zap_interval, limits=(5, 9999) ) ) + self.configSetup() + + def configSetup(self): + self.list = [] + self.setupEntryTuner = getConfigListEntry(_("change tuner on timeout"), self.config_tuner ) + self.setupEntryChannel = getConfigListEntry(_("change channel on timeout"), self.config_channel ) + self.setupEntryZapInterval = getConfigListEntry(_("zapping interval (sec) "), self.config_zap_interval ) + self.list.append( self.setupEntryTuner ) + self.list.append( self.setupEntryChannel ) + self.list.append( self.setupEntryZapInterval ) + self["config"].list = self.list + self["config"].l.setList(self.list) + + def keySave(self): + self.close(self.config_tuner.value, self.config_channel.value, self.config_zap_interval.value) + + def keyCancel(self): + self.close(None, None, None) + +class TestTuneMenu(Screen): + skin = """ + + + + + """ + + def __init__(self ,session ,tuneInfo, tunelist,NimType): + self.session = session + self.NimType = NimType + self.tuneInfo = tuneInfo + self.tunelist = tunelist + self.model = 4 + self["actions"] = NumberActionMap(["OkCancelActions","WizardActions","NumberActions"], + { + "left": self.nothing, + "right":self.nothing, + "ok": self.TestAction, + "cancel": self.keyCancel, + "up": self.keyup, + "down": self.keydown, + "0": self.numberaction, + "1": self.numberaction, + "2": self.numberaction, + "3": self.numberaction, + "4": self.numberaction, + "5": self.numberaction, + "6": self.numberaction, + "7": self.numberaction, + "8": self.numberaction, + "9": self.numberaction, + + }, -2) + Screen.__init__(self, session) + self.text = _("Press 'EXIT' key to finish tune test.") + self["text"] = StaticText(self.text) + self.createConfig() + session.nav.stopService() # try to disable foreground service + + self.tunemsgtimer = eTimer() + self.tunemsgtimer.callback.append(self.tunemsg) + + self.camstep = 1 + self.camtimer = eTimer() + self.camtimer.callback.append(self.cam_state) + + self.tunerlock = 0 + self.tuningtimer = eTimer() + self.tuningtimer.callback.append(self.updateStatus) + self.setSourceVar() + self.avswitch = AVSwitch() + + def createConfig(self): + self.menulength= len(self.tunelist) + self["testlist"] = MenuList(self.tunelist) + self.rlist = [] + for x in range(self.menulength): + self.rlist.append(("..")) + self["resultlist"] = TestResultList(self.rlist) + + def TestAction(self): + print "line - ",self["testlist"].getCurrent()[1] + self.currentindex = index = self["testlist"].getCurrent()[1] + result = 0 + self.TestTune(index) + + def nothing(self): + print "nothing" + + def keyup(self): + print "self.menulength = ",self.menulength + print "self[\"testlist\"].getCurrent()[1] = ",self["testlist"].getCurrent()[1] + if self["testlist"].getCurrent()[1]==0: + self["testlist"].moveToIndex(self.menulength-1) + self["resultlist"].moveToIndex(self.menulength-1) + else: + self["testlist"].up() + self["resultlist"].up() + + + def keydown(self): + print "self.menulength = ",self.menulength + print "self[\"testlist\"].getCurrent()[1] = ",self["testlist"].getCurrent()[1] + if self["testlist"].getCurrent()[1]==(self.menulength-1): + self["testlist"].moveToIndex(0) + self["resultlist"].moveToIndex(0) + else: + self["testlist"].down() + self["resultlist"].down() + + def numberaction(self, number): + if number >= self.menulength: + return + index = int(number) + self["testlist"].moveToIndex(index) + self["resultlist"].moveToIndex(index) + + def keyCancel(self): + print "testtunemenu exit" + if not '..' in self.rlist and not 'fail' in self.rlist: + self.close(True) + else: + self.close(False) +# if self.oldref is not None: +# self.session.nav.playService(self.oldref) + + def TestTune(self,index): + ref = eServiceReference("1:0:19:1324:3EF:1:C00000:0:0:0") + self.session.nav.stopService() # try to disable foreground service + getTuneInfo=self.tuneInfo[index] + if getTuneInfo["cam"] is True: + self.camstep = 1 + self.camtimer.start(100,True) + if getTuneInfo["type"].startswith("DVB-S"): + if getTuneInfo["pol"] == "H": + ref.setData(0,1) + ref.setData(1,0x6D3) + ref.setData(2,0x3) + ref.setData(3,0xA4) + else: + ref.setData(0,0x19) + ref.setData(1,0x1325) + ref.setData(2,0x3ef) + ref.setData(3,0x1) + if getTuneInfo["sat"] == "160": # Eutelsat W2 + ref.setData(4,0xA00000) + elif getTuneInfo["sat"] == "100": # Eutelsat + ref.setData(4,0x64af79) + elif getTuneInfo["sat"] == "130": # Hotbird + ref.setData(4,0x820000) + elif getTuneInfo["sat"] == "192": # Astra + ref.setData(4,0xC00000) + elif getTuneInfo["sat"] == "620": # Intelsat 902 + ref.setData(4,0x26c0000) # need to fix later + elif getTuneInfo["sat"] == "642": # Intelsat 906 + ref.setData(4,0x282AF79) # need to fix later + elif getTuneInfo["type"].startswith("DVB-C"): + ref.setData(0,0x19) + ref.setData(1,0x1325) + ref.setData(2,0x3ef) + ref.setData(3,0x1) + ref.setData(4,-64870) # ffff029a + elif getTuneInfo["type"].startswith("DVB-T"): + ref.setData(0,0x19) + ref.setData(1,0x1325) + ref.setData(2,0x3ef) + ref.setData(3,0x1) + ref.setData(4,-286391716) # eeee025c + self.session.nav.playService(ref) + if getTuneInfo["color"]=="CVBS": + self.avswitch.setColorFormat(0) + elif getTuneInfo["color"]=="RGB": + self.avswitch.setColorFormat(1) + elif getTuneInfo["color"]=="YC": + self.avswitch.setColorFormat(2) + if getTuneInfo["ratio"] == "4:3": + self.avswitch.setAspectRatio(0) + elif getTuneInfo["ratio"] == "16:9": + self.avswitch.setAspectRatio(6) + self.tuningtimer.start(2000,True) + self.tunemsgtimer.start(3000, True) + + def cam_state(self): + current_index = self.currentindex + if self.camstep == 1: + slot = 0 + state = eDVBCI_UI.getInstance().getState(slot) + print '-1-stat',state + if state > 0: + self.camstep=2 + self.camtimer.start(100,True) + else: + self.session.nav.stopService() + self.session.open( MessageBox, _("CAM1_NOT_INSERTED\nPress exit!"), MessageBox.TYPE_ERROR) + self.rlist[current_index]="fail" + self.tunemsgtimer.stop() + elif self.camstep == 2: + slot = 0 + appname = eDVBCI_UI.getInstance().getAppName(slot) + print 'appname',appname + if appname is None: + self.session.nav.stopService() + self.session.open( MessageBox, _("NO_GET_APPNAME\nPress exit!"), MessageBox.TYPE_ERROR) + self.rlist[current_index]="fail" + self.tunemsgtimer.stop() + else: + self.camstep=3 + self.camtimer.start(100,True) + elif self.camstep==3: + slot = 1 + state = eDVBCI_UI.getInstance().getState(slot) + print '-2-stat',state + if state > 0: + self.camstep=4 + self.camtimer.start(100,True) + else: + self.session.nav.stopService() + self.session.open( MessageBox, _("CAM2_NOT_INSERTED\nPress exit!"), MessageBox.TYPE_ERROR) + self.rlist[current_index]="fail" + self.tunemsgtimer.stop() + elif self.camstep == 4: + slot = 1 + appname = eDVBCI_UI.getInstance().getAppName(slot) + print 'appname',appname + if appname is None: + self.session.nav.stopService() + self.session.open( MessageBox, _("NO_GET_APPNAME\nPress exit!"), MessageBox.TYPE_ERROR) + self.rlist[current_index]="fail" + self.tunemsgtimer.stop() + else: + self.setSource() + self.camstep = 5 + + def updateStatus(self): + current_index = self.currentindex + getTuneInfo=self.tuneInfo[current_index] + result = eSctest.getInstance().getFrontendstatus(getTuneInfo["slot"]) + tunno = getTuneInfo["slot"]+1 + hv = getTuneInfo["pol"] + if hv == "H": + hv = "Hor" + elif hv == "V": + hv = "Ver" + else : + hv == "" + + print "eSctest.getInstance().getFrontendstatus - %d"%result + if result == 0 or result == -1: + self.tunerlock = 0 + self.tunemsgtimer.stop() + self.session.nav.stopService() + self.avswitch.setColorFormat(0) + self.session.open( MessageBox, _("Tune%d %s Locking Fail..."%(tunno,hv)), MessageBox.TYPE_ERROR) + self.rlist[current_index]="fail" + else : + self.tunerlock = 1 + + def tuneback(self,yesno): + current_index=self.currentindex + self.session.nav.stopService() # try to disable foreground service + if yesno and self.tunerlock == 1: + getTuneInfo=self.tuneInfo[current_index] + if getTuneInfo["cam"] and self.camstep < 5: # need fix to depending about CAM exist + self.rlist[current_index]="fail" + else : + self.rlist[current_index]="pass" + else: + self.rlist[current_index]="fail" + if self.tuneInfo[current_index]["color"] == "YC": + self.avswitch.setColorFormat(0) + self.resetSource() + self["resultlist"].updateList(self.rlist) + + def tunemsg(self): + self.tuningtimer.stop() + self.session.openWithCallback(self.tuneback, TuneMessageBox, _("%s ok?" %(self["testlist"].getCurrent()[0])), MessageBox.TYPE_YESNO) + + def setSourceVar(self): + self.input_pad_num=len(self.NimType)-1 + if self.input_pad_num == 0: + self.setTuner = 'A' + elif self.input_pad_num == 1: + self.setTuner = 'B' + elif self.input_pad_num == 2: + self.setTuner = 'C' + +# ikseong - for 22000 tp + def setSource(self): +# fix input source + inputname = ("/proc/stb/tsmux/input%d" % self.input_pad_num) + print " inputname : ",inputname + fd=open(inputname,"w") + fd.write("CI0") + fd.close() +# fix ci_input Tuner + filename = ("/proc/stb/tsmux/ci0_input") + fd = open(filename,'w') + fd.write(self.setTuner) + print "setTuner(CI0) : ",self.setTuner + fd.close() + print "CI loop test!!!!!!!!!!!!!!" + + def resetSource(self): + inputname = ("/proc/stb/tsmux/input%d" % self.input_pad_num) + print " inputname : ",inputname + fd=open(inputname,"w") + fd.write(self.setTuner) + fd.close() + print "CI loop test end!!!!!!!!!!!!!!" session = None @@ -2105,3 +2931,6 @@ def main(session, servicelist, **kwargs): #def Plugins(**kwargs): # return PluginDescriptor(name=_("Factory Test"), description="Test App for Factory", where = PluginDescriptor.WHERE_EXTENSIONSMENU, fnc=main) + +def Plugins(**kwargs): + return []