X-Git-Url: http://code.vuplus.com/gitweb/?a=blobdiff_plain;f=lib%2Fpython%2FPlugins%2FSystemPlugins%2FFactoryTest%2Fplugin.py;h=2beba26869da45061f1880b32a434584cf7d2ac8;hb=b53a82142c8b97e93af2040126604b124cb33f1a;hp=ef4d2f891eb49fdfb932b9ddbff7d809bd769145;hpb=e36ce62da6a90db68322f8a4c5630fa109ff4366;p=vuplus_dvbapp diff --git a/lib/python/Plugins/SystemPlugins/FactoryTest/plugin.py b/lib/python/Plugins/SystemPlugins/FactoryTest/plugin.py index ef4d2f8..2beba26 100755 --- a/lib/python/Plugins/SystemPlugins/FactoryTest/plugin.py +++ b/lib/python/Plugins/SystemPlugins/FactoryTest/plugin.py @@ -49,7 +49,7 @@ class FactoryTest(Screen): """ def __init__(self, session): - self["actions"] = NumberActionMap(["OkCancelActions","WizardActions","NumberActions",], + self["actions"] = NumberActionMap(["OkCancelActions","WizardActions","NumberActions","ColorActions",], { "left": self.nothing, "right":self.nothing, @@ -68,10 +68,11 @@ class FactoryTest(Screen): "7": self.numberaction, "8": self.numberaction, "9": self.numberaction, + "red": self.shutdownaction, }, -2) Screen.__init__(self, session) - TESTPROGRAM_DATE = "2010-03-22" + TESTPROGRAM_DATE = "2010-12-14" TESTPROGRAM_VERSION = "Version 00.01" self.model = 0 @@ -93,6 +94,8 @@ class FactoryTest(Screen): nimConfig.diseqcMode.value="diseqc_a_b" nimConfig.diseqcA.value="130" nimConfig.diseqcB.value="192" + if self.model == 2: + pass nimmanager.sec.update() system("cp /usr/lib/enigma2/python/Plugins/SystemPlugins/FactoryTest/testdb /etc/enigma2/lamedb") @@ -128,8 +131,8 @@ class FactoryTest(Screen): # tlist.append(("13. DRAM+Flash test",13)) self.fdefaultIndex=11 tlist.append(("11. Factory default",self.fdefaultIndex)) - self.shotdownIndex=12 - tlist.append(("12. Shutdown",self.shotdownIndex)) + self.shutdownIndex=12 + tlist.append(("12. Shutdown",self.shutdownIndex)) elif self.model == 1: # tlist.append((" 0. Sata & extend hdd test",self.satetestIndex=0)) self.satetestIndex = -1 @@ -160,13 +163,38 @@ class FactoryTest(Screen): # tlist.append(("13. DRAM+Flash test",13)) self.fdefaultIndex=7 tlist.append((" 7. Factory default",self.fdefaultIndex)) - self.shotdownIndex=8 - tlist.append((" 8. Shutdown",self.shotdownIndex)) + self.shutdownIndex=8 + tlist.append((" 8. Shutdown",self.shutdownIndex)) + + elif self.model == 2: + self.scarttestIndex = -1 + self.satetestIndex=0 + tlist.append((" 0. Sata & extend hdd test",self.satetestIndex)) + self.usbtestIndex=1 + tlist.append((" 1. USB test",self.usbtestIndex)) + self.fronttestIndex=2 + tlist.append((" 2. Front test",self.fronttestIndex)) + 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)) + self.tuner1_2testIndex=5 + tlist.append((" 5. T1 V 22k o 16:9 RGB",self.tuner1_2testIndex)) + self.tuner2_1testIndex = -1 + self.tuner2_2testIndex=6 + tlist.append((" 6. T2 DVB-C 4:3 YC CAM",self.tuner2_2testIndex)) + self.rs232testIndex=7 + tlist.append((" 7. RS232 test",self.rs232testIndex)) + self.ethernettestIndex=8 + tlist.append(("8. Ethernet & mac test",self.ethernettestIndex)) + self.fdefaultIndex=9 + tlist.append(("9. Factory default",self.fdefaultIndex)) + self.shutdownIndex=10 + tlist.append(("10. Shutdown",self.shutdownIndex)) + self.menulength= len(tlist)-1 self["testlist"] = MenuList(tlist) self.rlist = [] -# for x in range(15): -# for x in range(12): for x in range(self.menulength): self.rlist.append(("..")) self["resultlist"] = TestResultList(self.rlist) @@ -189,9 +217,16 @@ class FactoryTest(Screen): self.tunemsgtimer = eTimer() self.tunemsgtimer.callback.append(self.tunemsg) + 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) + self.mactry = 1 self.getmacaddr() self.getversion() @@ -203,14 +238,34 @@ class FactoryTest(Screen): self.satatimer = eTimer() self.satatimer.callback.append(self.sataCheck) + self.usbtimer = eTimer() + self.usbtimer.callback.append(self.usbCheck) + def getModelInfo(self): - info = open("/proc/stb/info/version").read() - print info,info[:2] - if info[:2] == "14": - self.model = 1 - elif info[:2] == "12": - self.model= 0 - + getmodel = 0 + if fileExists("/proc/stb/info/vumodel"): + info = open("/proc/stb/info/vumodel").read().strip() + if info == "combo": + self.model = 2 + getmodel = 1 + print "getModelInfo : combo" + if info == "solo": + self.model = 1 + getmodel = 1 + print "getModelInfo : solo" + if info == "duo": + self.model = 0 + getmodel = 1 + print "getModelInfo : duo" + if getmodel == 0 and fileExists("/proc/stb/info/version"): + info = open("/proc/stb/info/version").read() +# print info,info[:2] + if info[:2] == "14": + self.model = 1 + print "getModelInfo : solo_" + elif info[:2] == "12": + self.model = 0 + print "getModelInfo : duo_" def nothing(self): print "nothing" @@ -252,8 +307,9 @@ class FactoryTest(Screen): tunno = 1 result = eSctest.getInstance().getFrontendstatus(0) hv = "Ver" - - if index == self.tuner1_2testIndex or index==self.tuner2_2testIndex: + if self.model == 2 and index==self.tuner2_2testIndex: + hv = "" + elif index == self.tuner1_2testIndex or index==self.tuner2_2testIndex: hv = "Ver" else: hv = "Hor" @@ -263,6 +319,7 @@ class FactoryTest(Screen): 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) if self.agingmode==0: self.rlist[self["testlist"].getCurrent()[1]]="fail" @@ -281,22 +338,51 @@ class FactoryTest(Screen): self["testversion"].setText(("Version no load")) - def readmac(self, result, retval,extra_args=None): - (statecallback) = extra_args - if self.macConsole is not None: - if retval == 0: - self.macConsole = None - content =result.split() - self["mactext"].setText(("MAC : "+content[10])) - def getmacaddr(self): try: - cmd = "ip -o addr" + if self.model == 2: + cmd = "nanddump -s 0x" + str((self.mactry-1)*2) + "0000 -b -o -l 64 -p /dev/mtd5" + elif self.model == 0 or self.model == 1: + cmd = "nanddump -s 0x" + str((self.mactry-1)*2) + "0000 -b -o -l 64 -p /dev/mtd4" self.macConsole = Console() - self.macConsole.ePopen(cmd, self.readmac) -# self["stattext"].setText((macaddr)) + self.macConsole.ePopen(cmd, self.readmac,self.checkReadmac) except: return + + def readmac(self, result, retval,extra_args=None): + (callback) = extra_args + if self.macConsole is not None: + if retval == 0: + self.macConsole = None + macline = None + content =result.splitlines() + for x in content: + if x.startswith('0x000'+str((self.mactry-1)*2)+'0010:'): + macline = x.split() + if macline == None: + callback(0) + elif len(macline) < 10: + callback(1) + else: + mac = macline[5]+":"+macline[6]+":"+macline[7]+":"+macline[8]+":"+macline[9]+":"+macline[10] + self["mactext"].setText(("MAC : "+mac)) + callback(2) + + def checkReadmac(self,data): + if data == 0: + print "block %d is bad block" % self.mactry + self.mactry = self.mactry + 1 + if self.mactry > 4: + self.session.open(MessageBox, _("FLASH IS BROKEN"), type = MessageBox.TYPE_INFO, enable_input = False) + return + else: + self.getmacaddr() + elif data == 1: + print 'mac dump read error' + return + elif data == 2: + print 'mac address read ok' + return def TestAction(self): # @@ -315,7 +401,7 @@ class FactoryTest(Screen): # tlist.append(("12. Flash test",12)) # tlist.append(("13. DRAM+Flash test",13)) # tlist.append(("11. Factory default",self.fdefaultIndex=11)) -# tlist.append(("12. Shutdown",self.shotdownIndex=12)) +# tlist.append(("12. Shutdown",self.shutdownIndex=12)) # if self.testing==1: return @@ -346,7 +432,13 @@ class FactoryTest(Screen): # self.Test13() elif index==self.fdefaultIndex: self.Test14() - elif index==self.shotdownIndex: + elif index==self.shutdownIndex: + self.Test15() + else: + pass + + def shutdownaction(self): + if self["testlist"].getCurrent()[1] == self.shutdownIndex: self.Test15() @@ -363,57 +455,33 @@ class FactoryTest(Screen): self["resultlist"].updateList(self.rlist) self.satatry -= 1 displayerror = 0 - result = 0 - checktab=0 - try: - mtab = open('/etc/mtab','r') - while(1): - disk = mtab.readline().split(' ') - if len(disk) < 2: - break - if disk[1].startswith('/media/hdd'): - checktab+=1 - elif disk[1].startswith('/media/sdb1'): - checktab+=10 - if checktab==11: - break - except: - checktab = 0 - - if checktab==0: - if displayerror==1: - self.session.open( MessageBox, _("Sata & extend hdd test error"), MessageBox.TYPE_ERROR) - self.rlist[self["testlist"].getCurrent()[1]]="fail" - else: - self.satatimer.start(1100,True) - return - elif checktab < 11: - if displayerror==1: - self.session.open( MessageBox, _("one hdd test error"), MessageBox.TYPE_ERROR) - self.rlist[self["testlist"].getCurrent()[1]]="fail" - else: - self.satatimer.start(1100,True) - return - + result =0 try: - if fileExists("/media/sdb1"): - if access("/media/sdb1",F_OK|R_OK|W_OK): - dummy=open("/media/sdb1/dummy03","w") + if fileExists("/autofs/sdb1"): + if access("/autofs/sdb1",F_OK|R_OK|W_OK): + dummy=open("/autofs/sdb1/dummy03","w") dummy.write("complete") dummy.close() - dummy=open("/media/sdb1/dummy03","r") + dummy=open("/autofs/sdb1/dummy03","r") if dummy.readline()=="complete": - print "complete" + print "/autofs/sdb1 - complete" else: + print "/autofs/sdb1 - readline error" result = 1 + displayerror = 1 dummy.close() - system("rm /media/sdb1/dummy03") + system("rm /autofs/sdb1/dummy03") else: + print "/autofs/sdb1 - rw access error" result = 1 + displayerror = 1 else: + print "/autofs/sdb1 - file not exist" result = 1 except: + print "/autofs/sdb1 - exceptional error" result = 1 + displayerror = 1 try: if fileExists("/media/hdd"): if access("/media/hdd",F_OK|R_OK|W_OK): @@ -422,37 +490,48 @@ class FactoryTest(Screen): dummy.close() dummy=open("/media/hdd/dummy03","r") if dummy.readline()=="complete": - print "complete" + print "/media/hdd - complete" else: + print "/autofs/sdb1 - readline error" result += 1 + displayerror = 1 dummy.close() system("rm /media/hdd/dummy03") else: - result = 1 + print "/autofs/sdb1 - rw access error" + result += 1 + displayerror = 1 else: + print "/autofs/sdb1 - file not exist" result += 1 except: + print "/autofs/sdb1 - exceptional error" result += 1 - - if result ==0: + displayerror = 1 + + if result == 0: self.session.open( MessageBox, _("Sata & extend hdd test pass"), 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"), MessageBox.TYPE_ERROR) self.rlist[self["testlist"].getCurrent()[1]]="fail" - self.satatimer.start(1100,True) + else: + self.satatimer.start(1100,True) else: if displayerror==1: self.session.open( MessageBox, _("Sata & extend hdd test error"), MessageBox.TYPE_ERROR) self.rlist[self["testlist"].getCurrent()[1]]="fail" - self.satatimer.start(1100,True) + else: + self.satatimer.start(1100,True) def Test1(self): if self.model== 0: self.session.openWithCallback(self.displayresult ,FrontTest) elif self.model == 1: - self.session.openWithCallback(self.displayresult ,FrontTest_solo) + self.session.openWithCallback(self.displayresult ,FrontTest_solo) + elif self.model == 2: + self.session.openWithCallback(self.displayresult ,FrontTest_solo) def displayresult(self): global fronttest @@ -525,16 +604,26 @@ class FactoryTest(Screen): # ref.setData(3,0x85) # ref.setData(4,0xC00000) # ikseong - for 22000 tp ( /home/ikseong/share/lamedb_ORF) - ref.setData(0,0x19) - ref.setData(1,0x1325) - ref.setData(2,0x3ef) - ref.setData(3,0x1) - ref.setData(4,0xC00000) - self.session.nav.playService(ref) - self.avswitch.setColorFormat(0) - self.avswitch.setAspectRatio(6) - self.tuningtimer.start(2000,True) - self.tunemsgtimer.start(3000, True) + if self.model==0: + ref.setData(0,0x19) + ref.setData(1,0x1325) + ref.setData(2,0x3ef) + ref.setData(3,0x1) + ref.setData(4,0xC00000) + self.session.nav.playService(ref) + self.avswitch.setColorFormat(0) + self.avswitch.setAspectRatio(6) + elif self.model==2: + ref.setData(0,0x19) + ref.setData(1,0x1325) + ref.setData(2,0x3ef) + ref.setData(3,0x1) + ref.setData(4,0xfff029a) + self.session.nav.playService(ref) + self.avswitch.setColorFormat(2) + self.avswitch.setAspectRatio(0) + self.tuningtimer.start(4000,True) + self.tunemsgtimer.start(5000, True) def cam_state(self): if self.camstep == 1: @@ -546,7 +635,7 @@ class FactoryTest(Screen): self.camtimer.start(100,True) else: self.session.nav.stopService() - self.session.open( MessageBox, _("NO_CAM1_NOT_INSERTED"), MessageBox.TYPE_ERROR) + self.session.open( MessageBox, _("CAM1_NOT_INSERTED\nPress exit!"), MessageBox.TYPE_ERROR) self.rlist[self["testlist"].getCurrent()[1]]="fail" self.tunemsgtimer.stop() # self.rlist[index]="fail" @@ -557,7 +646,7 @@ class FactoryTest(Screen): print 'appname',appname if appname is None: self.session.nav.stopService() - self.session.open( MessageBox, _("NO_GET_APPNAME"), MessageBox.TYPE_ERROR) + self.session.open( MessageBox, _("NO_GET_APPNAME\nPress exit!"), MessageBox.TYPE_ERROR) self.rlist[self["testlist"].getCurrent()[1]]="fail" self.tunemsgtimer.stop() else: @@ -572,7 +661,7 @@ class FactoryTest(Screen): self.camtimer.start(100,True) else: self.session.nav.stopService() - self.session.open( MessageBox, _("NO_CAM2_NOT_INSERTED"), MessageBox.TYPE_ERROR) + self.session.open( MessageBox, _("CAM2_NOT_INSERTED\nPress exit!"), MessageBox.TYPE_ERROR) self.rlist[self["testlist"].getCurrent()[1]]="fail" self.tunemsgtimer.stop() # self.rlist[index]="fail" @@ -583,7 +672,7 @@ class FactoryTest(Screen): print 'appname',appname if appname is None: self.session.nav.stopService() - self.session.open( MessageBox, _("NO_GET_APPNAME"), MessageBox.TYPE_ERROR) + self.session.open( MessageBox, _("NO_GET_APPNAME\nPress exit!"), MessageBox.TYPE_ERROR) self.rlist[self["testlist"].getCurrent()[1]]="fail" self.tunemsgtimer.stop() else: @@ -624,11 +713,11 @@ class FactoryTest(Screen): self.rlist[self["testlist"].getCurrent()[1]]="pass" if self.tunerlock == 0: self.rlist[self["testlist"].getCurrent()[1]]="fail" - elif self["testlist"].getCurrent()[1] == 7 and self.camstep < 5: + elif self["testlist"].getCurrent()[1] == self.cam_index and self.camstep < 5: self.rlist[self["testlist"].getCurrent()[1]]="fail" else: self.rlist[self["testlist"].getCurrent()[1]]="fail" - if self["testlist"].getCurrent()[1] == 6: + if self["testlist"].getCurrent()[1] == 6: # YC self.avswitch.setColorFormat(0) self.resetSource() self["resultlist"].updateList(self.rlist) @@ -689,76 +778,73 @@ class FactoryTest(Screen): def checkaging(self): global Agingresult if(Agingresult ==1): - self["testlist"].moveToIndex(11) + self["testlist"].moveToIndex(self.fdefaultIndex) self.Test14() - self["testlist"].moveToIndex(12) + self["testlist"].moveToIndex(self.shutdownIndex) self.agingmode = 0 -# self["testlist"].instance.moveSelection(self["testlist"].instance.moveDown) - - - +# self["testlist"].instance.moveSelection(self["testlist"].instance.moveDown) + def Test8(self): - if self.model==0: - try: - result = 0 - mtab = open('/etc/mtab','r') - while(1): - disk = mtab.readline().split(' ') - if len(disk) < 2: - break - if disk[1].startswith('/media/hdd'): - continue - elif disk[1].startswith('/media/sdb1'): - continue - elif disk[1].startswith('/media/sd'): - result=result +1 - - if result < 0 : - result = 0 - if result == 3: - self.session.open( MessageBox, _("USB test pass %d devices"%result), MessageBox.TYPE_INFO) - self.rlist[self["testlist"].getCurrent()[1]]="pass" - else: - self.session.open( MessageBox, _("USB test error : Success-%d"%result+" Fail-%d"%(3-result)), MessageBox.TYPE_ERROR) - self.rlist[self["testlist"].getCurrent()[1]]="fail" - except: - if result < 0 : - result = 0 - if result == 3: - self.session.open( MessageBox, _("USB test pass %d devices"%result), MessageBox.TYPE_INFO) - self.rlist[self["testlist"].getCurrent()[1]]="pass" - else: - self.session.open( MessageBox, _("USB test error : Success-%d"%result+" Fail-%d"%(3-result)), MessageBox.TYPE_ERROR) - self.rlist[self["testlist"].getCurrent()[1]]="fail" + self.usbtry = 9 + self.usbtimer.start(100,True) + + def usbCheck(self): + if self.usbtry == 0: + displayerror = 1 + else: + self.rlist[self["testlist"].getCurrent()[1]]="try %d"%self.usbtry + self["resultlist"].updateList(self.rlist) + self.usbtry -= 1 + displayerror = 0 + + if self.model==0: + devices = [ "/autofs/sdc1", "/autofs/sdd1", "/autofs/sde1" ] elif self.model==1: + devices = [ "/autofs/sda1", "/autofs/sdb1" ] + elif self.model==2: + devices = [ "/autofs/sdc1", "/autofs/sdd1" ] + + result=len(devices) + + for dev in devices: try: - result = 0 - mtab = open('/etc/mtab','r') - while(1): - disk = mtab.readline().split(' ') - if len(disk) < 2: - break - if disk[1].startswith('/media/'): - result=result +1 - - if result < 0 : - result = 0 - if result == 2: - self.session.open( MessageBox, _("USB test pass %d devices"%result), MessageBox.TYPE_INFO) - self.rlist[self["testlist"].getCurrent()[1]]="pass" + if fileExists(dev): + if access(dev,F_OK|R_OK|W_OK): + dummy=open(dev+"/dummy03","w") + dummy.write("complete") + dummy.close() + dummy=open(dev+"/dummy03","r") + if dummy.readline()=="complete": + print dev," - complete" + else: + print dev," - readline error" + result=result -1 + displayerror = 1 + dummy.close() + system("rm "+dev+"/dummy03") + else: + print dev," - rw access error" + result=result -1 + displayerror = 1 else: - self.session.open( MessageBox, _("USB test error : Success-%d"%result+" Fail-%d"%(2-result)), MessageBox.TYPE_ERROR) - self.rlist[self["testlist"].getCurrent()[1]]="fail" + print dev," - file not exist" + result=result-1 except: - if result < 0 : - result = 0 - if result == 2: - self.session.open( MessageBox, _("USB test pass %d devices"%result), MessageBox.TYPE_INFO) - self.rlist[self["testlist"].getCurrent()[1]]="pass" - else: - self.session.open( MessageBox, _("USB test error : Success-%d"%result+" Fail-%d"%(2-result)), MessageBox.TYPE_ERROR) - self.rlist[self["testlist"].getCurrent()[1]]="fail" - + print dev," - exceptional error" + result=result -1 + displayerror = 1 + + 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.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.rlist[self["testlist"].getCurrent()[1]]="fail" + else: + self.usbtimer.start(1100,True) def pingtest(self): self.testing = 1 @@ -797,14 +883,14 @@ class FactoryTest(Screen): else: ethtest = 0 print "fail" - self.session.open( MessageBox, _("Ping test fail"), MessageBox.TYPE_ERROR) + self.session.open( MessageBox, _("Ping test fail\nPress exit"), MessageBox.TYPE_ERROR) self.macresult() def Test9(self): self.pingtest() def openMacConfig(self, ret=False): - self.session.openWithCallback(self.macresult ,MacConfig) + self.session.openWithCallback(self.macresult ,MacConfig,mactry=self.mactry) def macresult(self): global ethtest @@ -848,7 +934,7 @@ class FactoryTest(Screen): self.rlist[self["testlist"].getCurrent()[1]]="fail" def Test10(self): - self.session.openWithCallback(self.scciresult ,SmartCardTest) + self.session.openWithCallback(self.scciresult ,SmartCardTest,stbmodel=self.model) def Test11(self): self.MemTest(1) @@ -887,6 +973,8 @@ class FactoryTest(Screen): return print "exit" self.close() +# if self.oldref is not None: +# self.session.nav.playService(self.oldref) ethtest = 0 class MacConfig(Screen): @@ -899,7 +987,7 @@ class MacConfig(Screen): """ - def __init__(self, session): + def __init__(self, session, mactry = 1): self["actions"] = ActionMap(["DirectionActions","OkCancelActions"], { "ok": self.keyOk, @@ -909,75 +997,134 @@ class MacConfig(Screen): }, -2) Screen.__init__(self, session) - - self.result = 0 + + self.mactry = mactry + self.model = 0 + self.getModelInfo() +# self.result = 0 self.macfd = 0 self.macaddr = "000000000000" - self.NetworkState = 0 + self.ReadMacinfo = 0 self["text"]=Label((self.macaddr)) self["text1"]= Label(("< >")) self["stattext"]= Label(("")) self.displaymac() self.loadmacaddr() self.getmacaddr() - self.pingok=1 -# self.pingtest() global ethtest ethtest = 1 + def getModelInfo(self): + getmodel = 0 + if fileExists("/proc/stb/info/vumodel"): + info = open("/proc/stb/info/vumodel").read().strip() + if info == "combo": + self.model = 2 + getmodel = 1 + print "MacConfig, model : combo" + if info == "solo": + self.model = 1 + getmodel = 1 + print "MacConfig, model : solo" + if info == "duo": + self.model = 0 + getmodel = 1 + print "MacConfig, model : duo" + if getmodel == 0 and fileExists("/proc/stb/info/version"): + info = open("/proc/stb/info/version").read() +# print info,info[:2] + if info[:2] == "14": + self.model = 1 + print "MacConfig, model : solo_" + elif info[:2] == "12": + self.model = 0 + print "MacConfig, model: duo_" + def loadmacaddr(self): try: - result = 0 self.macfd = 0 - mtab = open('/etc/mtab','r') - while(1): - disk = mtab.readline().split(' ') - if len(disk) < 2: + + if self.model==0: + devices = ["/autofs/sda1", "/autofs/sdb1", "/autofs/sdc1", "/autofs/sdd1", "/autofs/sde1" ] + elif self.model==1: + devices = [ "/autofs/sda1", "/autofs/sdb1" ] + elif self.model==2: + devices = [ "/autofs/sda1", "/autofs/sdb1", "/autofs/sdc1", "/autofs/sdd1" ] + + for dev in devices: + print 'try..',dev + if fileExists(dev+"/macinfo.txt"): + self.macfd = open(dev+"/macinfo.txt","r+") break - if disk[1].startswith('/media/sd') or disk[1].startswith('/media/hdd'): - print 'try..',disk[1] - if fileExists(disk[1]+"/Vuplus_mac.txt"): - self.macfd = open(disk[1]+"/Vuplus_mac.txt","r+") - break + if self.macfd == 0: self["text"].setText(("cannot read usb!!")) self["text1"].setText((" ")) self["stattext"].setText((" Press Exit Key.")) - self.NetworkState=0 + self.ReadMacinfo=0 return macaddr=self.macfd.readline().split(":") self.macaddr=macaddr[1]+macaddr[2]+macaddr[3]+macaddr[4]+macaddr[5]+macaddr[6] self.displaymac() - self.NetworkState = 1 + self.ReadMacinfo = 1 except: self["text"].setText(("cannot read usb!!")) self["text1"].setText((" ")) self["stattext"].setText((" Press Exit Key.")) - self.NetworkState=0 -# self.session.open( MessageBox, _("Mac address fail"), MessageBox.TYPE_ERROR) - - def readmac(self, result, retval,extra_args=None): - (statecallback) = extra_args - if self.macConsole is not None: - if retval == 0: - self.macConsole = None - content =result.split() - self["stattext"].setText(("now : "+content[10])) + self.ReadMacinfo=0 def getmacaddr(self): - if self.NetworkState==0: + if self.ReadMacinfo==0: return try: - cmd = "ip -o addr" + if self.model == 2: + cmd = "nanddump -s 0x" + str((self.mactry-1)*2) + "0000 -b -o -l 64 -p /dev/mtd5" + elif self.model == 0 or self.model == 1: + cmd = "nanddump -s 0x" + str((self.mactry-1)*2) + "0000 -b -o -l 64 -p /dev/mtd4" self.macConsole = Console() - self.macConsole.ePopen(cmd, self.readmac) -# self["stattext"].setText((macaddr)) + self.macConsole.ePopen(cmd, self.readmac,self.checkReadmac) except: return + + def readmac(self, result, retval,extra_args=None): + (callback) = extra_args + if self.macConsole is not None: + if retval == 0: + self.macConsole = None + macline = None + content =result.splitlines() + for x in content: + if x.startswith('0x000'+str((self.mactry-1)*2)+'0010:'): + macline = x.split() + if macline == None: + callback(0) + elif len(macline) < 10: + callback(1) + else: + mac = macline[5]+":"+macline[6]+":"+macline[7]+":"+macline[8]+":"+macline[9]+":"+macline[10] + self["stattext"].setText(("now : "+mac)) + callback(2) + + def checkReadmac(self,data): + if data == 0: + print "block %d is bad block" % self.mactry + self.mactry = self.mactry + 1 + if self.mactry > 4: + self.session.open(MessageBox, _("FLASH IS BROKEN"), type = MessageBox.TYPE_INFO, enable_input = False) + return + else: + self.getmacaddr() + elif data == 1: + print 'mac dump read error' + return + elif data == 2: + print 'mac address read ok' + return + def keyleft(self): - if self.NetworkState==0 or self.pingok<1: + if self.ReadMacinfo==0 : return macaddress = long(self.macaddr,16)-1 if macaddress < 0 : @@ -986,7 +1133,7 @@ class MacConfig(Screen): self.displaymac() def keyright(self): - if self.NetworkState==0 or self.pingok<1: + if self.ReadMacinfo==0 : return macaddress = long(self.macaddr,16)+1 if macaddress > 0xffffffffffff: @@ -999,21 +1146,21 @@ class MacConfig(Screen): self["text"].setText(("%02x:%02x:%02x:%02x:%02x:%02x"%(int(macaddr[0:2],16),int(macaddr[2:4],16),int(macaddr[4:6],16),int(macaddr[6:8],16),int(macaddr[8:10],16),int(macaddr[10:12],16)))) def keyOk(self): - if self.NetworkState==0 or self.pingok<1: + if self.ReadMacinfo==0 : return try: - system("/etc/init.d/networking stop") - system("ifconfig eth0 down") macaddr = self.macaddr - macaddrcmd="ifconfig eth0 hw ether %02x:%02x:%02x:%02x:%02x:%02x"%(int(macaddr[0:2],16),int(macaddr[2:4],16),int(macaddr[4:6],16),int(macaddr[6:8],16),int(macaddr[8:10],16),int(macaddr[10:12],16)) - system(macaddrcmd) #make_mac_sector 00-99-99-99-00-00 > /tmp/mac.sector #flash_eraseall /dev/mtd4 #nandwrite /dev/mtd4 /tmp/mac.sector -p cmd = "make_mac_sector %02x-%02x-%02x-%02x-%02x-%02x > /tmp/mac.sector"%(int(macaddr[0:2],16),int(macaddr[2:4],16),int(macaddr[4:6],16),int(macaddr[6:8],16),int(macaddr[8:10],16),int(macaddr[10:12],16)) system(cmd) - system("flash_eraseall /dev/mtd4") - system("nandwrite /dev/mtd4 /tmp/mac.sector -p") + if self.model == 2: + system("flash_eraseall /dev/mtd5") + system("nandwrite /dev/mtd5 /tmp/mac.sector -p") + elif self.model == 0 or self.model ==1 : + system("flash_eraseall /dev/mtd4") + system("nandwrite /dev/mtd4 /tmp/mac.sector -p") macaddress = long(macaddr,16)+1 if macaddress > 0xffffffffffff: macaddress = 0 @@ -1021,65 +1168,17 @@ class MacConfig(Screen): macwritetext = "MAC:%02x:%02x:%02x:%02x:%02x:%02x"%(int(macaddr[0:2],16),int(macaddr[2:4],16),int(macaddr[4:6],16),int(macaddr[6:8],16),int(macaddr[8:10],16),int(macaddr[10:12],16)) self.macfd.seek(0) self.macfd.write(macwritetext) + self.macfd.close() + system("sync") self.macaddr = macaddr - system("ifconfig eth0 up") - self.loadmacaddr() - system("ifconfig eth0 192.168.0.10") - system("/etc/init.d/networking start") self.close() except: self.session.open( MessageBox, _("Mac address fail"), MessageBox.TYPE_ERROR) global ethtest ethtest = 0 - self.close() - - def pingtest(self): - self["stattext"].setText(("now : wait to finish ping test...")) -# system("/etc/init.d/networking stop") - system("ifconfig eth0 192.168.0.10") -# system("/etc/init.d/networking start") - cmd1 = "ping -c 1 192.168.0.100" - self.PingConsole = Console() - self.PingConsole.ePopen(cmd1, self.checkNetworkStateFinished,self.NetworkStatedataAvail) - - def checkNetworkStateFinished(self, result, retval,extra_args): - (statecallback) = extra_args - if self.PingConsole is not None: - if retval == 0: - self.PingConsole = None - content = result.splitlines() -# print 'content',content - x = content[4].split() -# print 'x',x - if x[0]==x[3]: - statecallback(1) - else: - statecallback(0) - else: - statecallback(0) - - - def NetworkStatedataAvail(self,data): - global ethtest - if data == 1: - ethtest = 1 - print "success" - self.pingok=1 - self.loadmacaddr() - self.getmacaddr() - self.session.open( MessageBox, _("Ping test pass"), MessageBox.TYPE_INFO,2) - else: - ethtest = 0 - print "fail" - self.pingok=0 - self["stattext"].setText(("ping test fail.. press Exit Key")) - self.session.open( MessageBox, _("Ping test fail"), MessageBox.TYPE_ERROR,2) - self.getmacaddr() - + self.close() def keyCancel(self): - if self.pingok == -1: - return if self.macfd != 0: self.macfd.close() global ethtest @@ -1087,7 +1186,6 @@ class MacConfig(Screen): self.close() - sccitest = 0 class ScCiTest(Screen): @@ -1336,7 +1434,7 @@ class SmartCardTest(Screen): """ - def __init__(self, session): + def __init__(self, session, stbmodel = 0): self["actions"] = ActionMap(["DirectionActions", "OkCancelActions"], { "cancel": self.keyCancel, @@ -1349,28 +1447,14 @@ class SmartCardTest(Screen): self.step = 0 self.smartcardtimer = eTimer() self.smartcardtimer.callback.append(self.check_smart_card) - self.smartcardtimer.start(100,True) + self.closetimer = eTimer() + self.closetimer.callback.append(self.close) self.smartcard=0 global smartcardtest smartcardtest = 0 - self.Testmode = 0 - self.model = 0 - self.check_mode() - - def check_mode(self): - try: - fd = open("/proc/stb/info/version","r") - version = fd.read() - if int(version,16) <= 0x1200A3: - self.Testmode = 0 - else: - self.Testmode = 1 - if int(version,16) < 0x130000: - self.model = 0 - elif int(version,16) > 0x140000: - self.model = 1 - except: - self.Testmode = 0 + self.model = stbmodel + self.Testmode = 1 + self.smartcardtimer.start(100,True) def check_smart_card(self): global smartcardtest @@ -1393,7 +1477,7 @@ class SmartCardTest(Screen): if result == 0: print 'pass' - if(index== 0 and self.model== 0): + if(index== 0 and ( self.model== 0 or self.model==2) ): self.smartcard = 1 self["text"].setText(_("Testing Smartcard 2...")) self.smartcardtimer.start(100,True) @@ -1403,21 +1487,23 @@ class SmartCardTest(Screen): # self.session.open( MessageBox, _("Smart Card OK!!"), MessageBox.TYPE_INFO,2) self.step = 1 self["text"].setText(_("Smart Card OK!!")) + 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) - elif result == -2: - self.session.open( MessageBox, _("%d:SC_NOT_INSERTED"%(index+1)), MessageBox.TYPE_ERROR) - elif result == -3: - self.session.open( MessageBox, _("%d:SC_NOT_VALID_ATR"%(index+1)), MessageBox.TYPE_ERROR) - elif result == -5: - self.session.open( MessageBox, _("%d:SC_READ_TIMEOUT"%(index+1)), MessageBox.TYPE_ERROR) +# if result ==-1: +# self.session.open( MessageBox, _("%d:NO_DEV_FOUND"%(index+1)), MessageBox.TYPE_ERROR) +# elif result == -2: +# self.session.open( MessageBox, _("%d:SC_NOT_INSERTED"%(index+1)), MessageBox.TYPE_ERROR) +# elif result == -3: +# self.session.open( MessageBox, _("%d:SC_NOT_VALID_ATR"%(index+1)), MessageBox.TYPE_ERROR) +# elif result == -5: +# self.session.open( MessageBox, _("%d:SC_READ_TIMEOUT"%(index+1)), MessageBox.TYPE_ERROR) if(index==0): - self["text"].setText(_("Smart Card 1 Error!")) + self["text"].setText(_("Smart Card 1 Error!\nerrorcode=%d"%result)) elif (index==1): - self["text"].setText(_("Smart Card 2 Error!")) + self["text"].setText(_("Smart Card 2 Error!\nerrorcode=%d"%result)) + self.closetimer.start(2000,True) self.smartcardtimer.stop() @@ -1496,7 +1582,7 @@ class FrontTest(Screen): self.keytimeout.stop() self.step =4 self.fronttimer.start(1000,True) - self["text"].setText(("Front Test OK! Press Exit Key")) + self["text"].setText(("Front Test OK!\nPress Exit Key")) # elif self.step==4: # global fronttest # self.fronttimer.stop() @@ -1546,15 +1632,15 @@ class FrontTest_solo(Screen): def KeyTimeOut(self): if self.step == 1: - self["text"].setText(("Front STANDBY ERROR")) + self["text"].setText(("Front STANDBY ERROR\nPress exit!")) elif self.step == 2 : - self["text"].setText(("Front CH+ ERROR")) + self["text"].setText(("Front CH - ERROR\nPress exit!")) elif self.step == 3: - self["text"].setText(("Front CH- ERROR")) + self["text"].setText(("Front CH + ERROR\nPress exit!")) elif self.step == 4 : - self["text"].setText(("Front VOL + ERROR")) + self["text"].setText(("Front VOL - ERROR\nPress exit!")) elif self.step == 5: - self["text"].setText(("Front VOL - ERROR")) + self["text"].setText(("Front VOL + ERROR\nPress exit!")) self.step = 0 # self.keyCancel() @@ -1564,51 +1650,58 @@ class FrontTest_solo(Screen): self.keytimeout.stop() self.keytimeout.start(5000,True) self.step = 2 - self["text"].setText(_("Press Front CH+")) + self["text"].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["text"].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["text"].setText(_("Press Front CH +")) def keyvolup(self): - if self.step== 4: + if self.step== 5: self.keytimeout.stop() - self.keytimeout.start(5000,True) - self.step = 5 - self["text"].setText(_("Press Front VOL -")) + self.step = 6 + self.fronttimer.start(1000,True) + self["text"].setText(_("Front LED OK?\n\nyes-ok\nno-exit")) +# self["text"].setText(("Front Test OK!\nPress Exit Key")) def keyvoldown(self): - if self.step== 5: + if self.step== 4: self.keytimeout.stop() - self.step = 6 - self["text"].setText(("Front Test OK! Press Exit Key")) + self.keytimeout.start(5000,True) + self.step = 5 + self["text"].setText(_("Press Front VOL +")) + + def checkled(self, yesno): + if yesno : + self.step=6 + else: + self.step=0 + self.keyCancel() def keyCancel(self): global fronttest self.fronttimer.stop() eSctest.getInstance().VFD_Close() - if self.step==6: - fronttest = 1 - else: - fronttest = 0 + fronttest = 0 self.close() def keyOk(self): - if self.step == 3: - self.keytimeout.stop() - self.step =4 - self.fronttimer.start(1000,True) - self["text"].setText(("Front Test OK! Press Exit Key")) + global fronttest + self.fronttimer.stop() + eSctest.getInstance().VFD_Close() + if self.step == 6: + fronttest = 1 + self.close() def FrontAnimate(self): if (self.frontturnonoff==0):