1 from Screens.Screen import Screen
2 from Screens.MessageBox import MessageBox
3 from Plugins.Plugin import PluginDescriptor
4 from Components.MenuList import MenuList
5 from Tools.Directories import fileExists
6 from Components.ServiceList import ServiceList
7 from Components.ActionMap import ActionMap,NumberActionMap
8 from Components.config import config
9 from os import system,access,F_OK,R_OK,W_OK
10 from Components.Label import Label
11 from Components.AVSwitch import AVSwitch
12 from time import sleep
13 from Components.Console import Console
14 from enigma import eTimer
15 from Components.HTMLComponent import HTMLComponent
16 from Components.GUIComponent import GUIComponent
17 from enigma import eListboxPythonStringContent, eListbox, gFont, eServiceCenter, eDVBResourceManager
18 from enigma import eServiceReference
19 from enigma import eMemtest
20 from enigma import eSctest
21 from enigma import eDVBDB
22 from Components.NimManager import nimmanager
23 from enigma import eDVBCI_UI,eDVBCIInterfaces
25 class TestResultList(HTMLComponent, GUIComponent):
26 def __init__(self, source):
27 GUIComponent.__init__(self)
28 self.l = eListboxPythonStringContent()
30 self.l.setList(self.list)
34 def postWidgetCreate(self, instance):
35 self.instance.setSelectionEnable(0)
36 self.instance.setContent(self.l)
38 def updateList(self,list):
41 class FactoryTest(Screen):
43 <screen position="120,125" size="440,400" title="Test Menu" >
44 <widget name="testlist" position="10,0" size="340,350" />
45 <widget name="resultlist" position="370,0" size="60,350" />
46 <widget name="testdate" position="20,350" size="150,25" font="Regular;22" />
47 <widget name="testversion" position="20,375" size="150,25" font="Regular;22" />
48 <widget name="mactext" position="180,350" size="230,25" font="Regular;22" />
50 def __init__(self, session):
52 self["actions"] = NumberActionMap(["OkCancelActions","WizardActions","NumberActions","ColorActions",],
56 "ok": self.TestAction,
57 "testexit": self.keyCancel,
58 "agingstart": self.Agingmode,
61 "0": self.numberaction,
62 "1": self.numberaction,
63 "2": self.numberaction,
64 "3": self.numberaction,
65 "4": self.numberaction,
66 "5": self.numberaction,
67 "6": self.numberaction,
68 "7": self.numberaction,
69 "8": self.numberaction,
70 "9": self.numberaction,
71 "red": self.shutdownaction,
74 Screen.__init__(self, session)
75 TESTPROGRAM_DATE = "2010-12-14"
76 TESTPROGRAM_VERSION = "Version 00.01"
81 self["testdate"]=Label((TESTPROGRAM_DATE))
82 self["testversion"]=Label(("Loading version..."))
83 self["mactext"]=Label(("Loading mac address..."))
84 nimConfig = nimmanager.getNimConfig(0)
85 nimConfig.configMode.slot_id=0
86 nimConfig.configMode.value= "simple"
87 nimConfig.diseqcMode.value="diseqc_a_b"
88 nimConfig.diseqcA.value="160"
89 nimConfig.diseqcB.value="100"
91 nimConfig = nimmanager.getNimConfig(1)
92 nimConfig.configMode.slot_id=1
93 nimConfig.configMode.value= "simple"
94 nimConfig.diseqcMode.value="diseqc_a_b"
95 nimConfig.diseqcA.value="130"
96 nimConfig.diseqcB.value="192"
99 nimmanager.sec.update()
101 system("cp /usr/lib/enigma2/python/Plugins/SystemPlugins/FactoryTest/testdb /etc/enigma2/lamedb")
102 db = eDVBDB.getInstance()
103 db.reloadServicelist()
108 tlist.append((" 0. Sata & extend hdd test",self.satetestIndex))
110 tlist.append((" 1. USB test",self.usbtestIndex))
111 self.fronttestIndex=2
112 tlist.append((" 2. Front test",self.fronttestIndex))
113 self.smarttestIndex=3
114 tlist.append((" 3. Smartcard test",self.smarttestIndex))
115 self.tuner1_1testIndex=4
116 tlist.append((" 4. T1 H 22K x 4:3 CVBS",self.tuner1_1testIndex))
117 self.tuner1_2testIndex=5
118 tlist.append((" 5. T1 V 22k o 16:9 RGB",self.tuner1_2testIndex))
119 self.tuner2_1testIndex=6
120 tlist.append((" 6. T2 H 22k x 4:3 YC",self.tuner2_1testIndex))
121 self.tuner2_2testIndex=7
122 tlist.append((" 7. T2 V 22k o 16:9 CVBS CAM",self.tuner2_2testIndex))
123 self.scarttestIndex=8
124 tlist.append((" 8. VCR Scart loop",self.scarttestIndex))
125 self.rs232testIndex=9
126 tlist.append((" 9. RS232 test",self.rs232testIndex))
127 self.ethernettestIndex=10
128 tlist.append(("10. Ethernet & mac test",self.ethernettestIndex))
129 # tlist.append(("11. DRAM test",11))
130 # tlist.append(("12. Flash test",12))
131 # tlist.append(("13. DRAM+Flash test",13))
132 self.fdefaultIndex=11
133 tlist.append(("11. Factory default",self.fdefaultIndex))
134 self.shutdownIndex=12
135 tlist.append(("12. Shutdown",self.shutdownIndex))
136 elif self.model == 1:
137 # tlist.append((" 0. Sata & extend hdd test",self.satetestIndex=0))
138 self.satetestIndex = -1
139 self.scarttestIndex = -1
144 tlist.append((" 0. USB test",self.usbtestIndex))
145 self.fronttestIndex=1
146 tlist.append((" 1. Front test",self.fronttestIndex))
147 self.smarttestIndex=2
148 tlist.append((" 2. Smartcard test",self.smarttestIndex))
149 self.tuner1_1testIndex=3
150 tlist.append((" 3. T1 H 22K x 4:3 CVBS",self.tuner1_1testIndex))
151 self.tuner1_2testIndex=4
152 tlist.append((" 4. T1 V 22k o 16:9 RGB CAM",self.tuner1_2testIndex))
153 self.tuner2_2testIndex=4
154 # tlist.append((" 6. T2 H 22k x 4:3 YC",self.tuner2_1testIndex=6))
155 # tlist.append((" 7. T2 V 22k o 16:9 CVBS CAM",self.tuner2_2testIndex=7))
156 # tlist.append((" 8. VCR Scart loop",self.scarttestIndex=8))
157 self.rs232testIndex=5
158 tlist.append((" 5. RS232 test",self.rs232testIndex))
159 self.ethernettestIndex=6
160 tlist.append((" 6. Ethernet & mac test",self.ethernettestIndex))
161 # tlist.append(("11. DRAM test",11))
162 # tlist.append(("12. Flash test",12))
163 # tlist.append(("13. DRAM+Flash test",13))
165 tlist.append((" 7. Factory default",self.fdefaultIndex))
167 tlist.append((" 8. Shutdown",self.shutdownIndex))
169 elif self.model == 2:
170 self.scarttestIndex = -1
172 tlist.append((" 0. Sata & extend hdd test",self.satetestIndex))
174 tlist.append((" 1. USB test",self.usbtestIndex))
175 self.fronttestIndex=2
176 tlist.append((" 2. Front test",self.fronttestIndex))
177 self.smarttestIndex=3
178 tlist.append((" 3. Smartcard test",self.smarttestIndex))
179 self.tuner1_1testIndex=4
180 tlist.append((" 4. T1 H 22K x 4:3 CVBS",self.tuner1_1testIndex))
181 self.tuner1_2testIndex=5
182 tlist.append((" 5. T1 V 22k o 16:9 RGB",self.tuner1_2testIndex))
183 self.tuner2_1testIndex = -1
184 self.tuner2_2testIndex=6
185 tlist.append((" 6. T2 DVB-C 4:3 YC CAM",self.tuner2_2testIndex))
186 self.rs232testIndex=7
187 tlist.append((" 7. RS232 test",self.rs232testIndex))
188 self.ethernettestIndex=8
189 tlist.append(("8. Ethernet & mac test",self.ethernettestIndex))
191 tlist.append(("9. Factory default",self.fdefaultIndex))
192 self.shutdownIndex=10
193 tlist.append(("10. Shutdown",self.shutdownIndex))
195 self.menulength= len(tlist)-1
196 self["testlist"] = MenuList(tlist)
198 for x in range(self.menulength):
199 self.rlist.append((".."))
200 self["resultlist"] = TestResultList(self.rlist)
201 self.NetworkState = 0
204 self.avswitch = AVSwitch()
205 self.memTest = eMemtest()
206 self.scTest= eSctest()
212 self.servicelist = ServiceList()
213 self.oldref = session.nav.getCurrentlyPlayingServiceReference()
214 print "oldref",self.oldref
215 session.nav.stopService() # try to disable foreground service
217 self.tunemsgtimer = eTimer()
218 self.tunemsgtimer.callback.append(self.tunemsg)
222 elif self.model == 1:
224 elif self.model == 2:
227 self.camtimer = eTimer()
228 self.camtimer.callback.append(self.cam_state)
234 self.tuningtimer = eTimer()
235 self.tuningtimer.callback.append(self.updateStatus)
238 self.satatimer = eTimer()
239 self.satatimer.callback.append(self.sataCheck)
241 self.usbtimer = eTimer()
242 self.usbtimer.callback.append(self.usbCheck)
244 def getModelInfo(self):
246 if fileExists("/proc/stb/info/vumodel"):
247 info = open("/proc/stb/info/vumodel").read().strip()
251 print "getModelInfo : combo"
255 print "getModelInfo : solo"
259 print "getModelInfo : duo"
260 if getmodel == 0 and fileExists("/proc/stb/info/version"):
261 info = open("/proc/stb/info/version").read()
262 # print info,info[:2]
265 print "getModelInfo : solo_"
266 elif info[:2] == "12":
268 print "getModelInfo : duo_"
276 if self["testlist"].getCurrent()[1]==0:
277 self["testlist"].moveToIndex(self.menulength)
279 self["testlist"].up()
285 if self["testlist"].getCurrent()[1]==(self.menulength):
286 self["testlist"].moveToIndex(0)
288 self["testlist"].down()
290 def numberaction(self, number):
293 if number > self.menulength:
296 self["testlist"].moveToIndex(index)
299 def updateStatus(self):
300 index = self["testlist"].getCurrent()[1]
301 if index ==self.tuner1_1testIndex or index==self.tuner1_2testIndex:
303 result = eSctest.getInstance().getFrontendstatus(0)
306 result = eSctest.getInstance().getFrontendstatus(1)
308 if self.agingmode == 1:
310 result = eSctest.getInstance().getFrontendstatus(0)
312 if self.model == 2 and index==self.tuner2_2testIndex:
314 elif index == self.tuner1_2testIndex or index==self.tuner2_2testIndex:
319 print "eSctest.getInstance().getFrontendstatus - %d"%result
322 self.tunemsgtimer.stop()
323 self.session.nav.stopService()
324 self.avswitch.setColorFormat(0)
325 self.session.open( MessageBox, _("Tune%d %s Locking Fail..."%(tunno,hv)), MessageBox.TYPE_ERROR)
326 if self.agingmode==0:
327 self.rlist[self["testlist"].getCurrent()[1]]="fail"
331 if self.agingmode==1:
332 self.session.openWithCallback(self.checkaging,AgingTest)
334 def getversion(self):
336 fd = open("/proc/stb/info/version","r")
338 self["testversion"].setText(("Version %s"%version))
340 self["testversion"].setText(("Version no load"))
343 def getmacaddr(self):
346 cmd = "nanddump -s 0x" + str((self.mactry-1)*2) + "0000 -b -o -l 64 -p /dev/mtd5"
347 elif self.model == 0 or self.model == 1:
348 cmd = "nanddump -s 0x" + str((self.mactry-1)*2) + "0000 -b -o -l 64 -p /dev/mtd4"
349 self.macConsole = Console()
350 self.macConsole.ePopen(cmd, self.readmac,self.checkReadmac)
354 def readmac(self, result, retval,extra_args=None):
355 (callback) = extra_args
356 if self.macConsole is not None:
358 self.macConsole = None
360 content =result.splitlines()
362 if x.startswith('0x000'+str((self.mactry-1)*2)+'0010:'):
366 elif len(macline) < 10:
369 mac = macline[5]+":"+macline[6]+":"+macline[7]+":"+macline[8]+":"+macline[9]+":"+macline[10]
370 self["mactext"].setText(("MAC : "+mac))
373 def checkReadmac(self,data):
375 print "block %d is bad block" % self.mactry
376 self.mactry = self.mactry + 1
378 self.session.open(MessageBox, _("FLASH IS BROKEN"), type = MessageBox.TYPE_INFO, enable_input = False)
383 print 'mac dump read error'
386 print 'mac address read ok'
389 def TestAction(self):
391 # tlist.append((" 0. Sata & extend hdd test",self.satetestIndex=0))
392 # tlist.append((" 1. USB test",self.usbtestIndex=1))
393 # tlist.append((" 2. Front test",self.fronttestIndex=2))
394 # tlist.append((" 3. Smartcard test",self.smarttestIndex=3))
395 # tlist.append((" 4. T1 H 22K x 4:3 CVBS",self.tuner1_1testIndex=4))
396 # tlist.append((" 5. T1 V 22k o 16:9 RGB",self.tuner1_2testIndex=5))
397 # tlist.append((" 6. T2 H 22k x 4:3 YC",self.tuner2_1testIndex=6))
398 # tlist.append((" 7. T2 V 22k o 16:9 CVBS CAM",self.tuner2_2testIndex=7))
399 # tlist.append((" 8. VCR Scart loop",self.scarttestIndex=8))
400 # tlist.append((" 9. RS232 test",self.rs232testIndex=9))
401 # tlist.append(("10. Ethernet & mac test",self.ethernettestIndex=10))
402 # tlist.append(("11. DRAM test",11))
403 # tlist.append(("12. Flash test",12))
404 # tlist.append(("13. DRAM+Flash test",13))
405 # tlist.append(("11. Factory default",self.fdefaultIndex=11))
406 # tlist.append(("12. Shutdown",self.shutdownIndex=12))
410 print "line - ",self["testlist"].getCurrent()[1]
411 index = self["testlist"].getCurrent()[1]
413 if index==self.satetestIndex:
415 elif index==self.fronttestIndex:
417 elif index>=self.tuner1_1testIndex and index<=self.tuner2_2testIndex:
419 elif index==self.scarttestIndex:
421 elif index==self.rs232testIndex:
423 elif index==self.usbtestIndex:
425 elif index==self.ethernettestIndex:
427 elif index == self.smarttestIndex:
435 elif index==self.fdefaultIndex:
437 # elif index==self.shutdownIndex:
442 def shutdownaction(self):
443 if self["testlist"].getCurrent()[1] == self.shutdownIndex:
449 self.satatimer.start(100,True)
452 # print "try", self.satatry
453 if self.satatry == 0:
456 self.rlist[self["testlist"].getCurrent()[1]]="try %d"%self.satatry
457 self["resultlist"].updateList(self.rlist)
462 if fileExists("/autofs/sdb1"):
463 if access("/autofs/sdb1",F_OK|R_OK|W_OK):
464 dummy=open("/autofs/sdb1/dummy03","w")
465 dummy.write("complete")
467 dummy=open("/autofs/sdb1/dummy03","r")
468 if dummy.readline()=="complete":
469 print "/autofs/sdb1 - complete"
471 print "/autofs/sdb1 - readline error"
475 system("rm /autofs/sdb1/dummy03")
477 print "/autofs/sdb1 - rw access error"
481 print "/autofs/sdb1 - file not exist"
484 print "/autofs/sdb1 - exceptional error"
488 if fileExists("/media/hdd"):
489 if access("/media/hdd",F_OK|R_OK|W_OK):
490 dummy=open("/media/hdd/dummy03","w")
491 dummy.write("complete")
493 dummy=open("/media/hdd/dummy03","r")
494 if dummy.readline()=="complete":
495 print "/media/hdd - complete"
497 print "/media/hdd - readline error"
501 system("rm /media/hdd/dummy03")
503 print "/media/hdd - rw access error"
507 print "/media/hdd - file not exist"
510 print "/media/hdd - exceptional error"
515 self.session.open( MessageBox, _("Sata & extend hdd test pass"), MessageBox.TYPE_INFO)
516 self.rlist[self["testlist"].getCurrent()[1]]="pass"
519 self.session.open( MessageBox, _("One hdd test error"), MessageBox.TYPE_ERROR)
520 self.rlist[self["testlist"].getCurrent()[1]]="fail"
522 self.satatimer.start(1100,True)
525 self.session.open( MessageBox, _("Sata & extend hdd test error"), MessageBox.TYPE_ERROR)
526 self.rlist[self["testlist"].getCurrent()[1]]="fail"
528 self.satatimer.start(1100,True)
532 self.session.openWithCallback(self.displayresult ,FrontTest)
533 elif self.model == 1:
534 self.session.openWithCallback(self.displayresult ,FrontTest_solo)
535 elif self.model == 2:
536 self.session.openWithCallback(self.displayresult ,FrontTest_solo)
538 def displayresult(self):
541 self.rlist[self["testlist"].getCurrent()[1]]="pass"
543 self.rlist[self["testlist"].getCurrent()[1]]="fail"
545 INTERNAL_PID_STATUS_NOOP = 0
546 INTERNAL_PID_STATUS_WAITING = 1
547 INTERNAL_PID_STATUS_SUCCESSFUL = 2
548 INTERNAL_PID_STATUS_FAILED = 3
550 def TestTune(self,index):
551 if self.oldref is None:
552 eref = eServiceReference("1:0:19:1324:3EF:1:C00000:0:0:0")
553 serviceHandler = eServiceCenter.getInstance()
554 servicelist = serviceHandler.list(eref)
555 if not servicelist is None:
556 ref = servicelist.getNext()
558 ref = self.getCurrentSelection()
559 print "servicelist none"
562 self.session.nav.stopService() # try to disable foreground service
563 if index==self.tuner1_1testIndex:
568 ref.setData(4,0xA00000)
569 self.session.nav.playService(ref)
570 self.avswitch.setColorFormat(0)
571 self.avswitch.setAspectRatio(0)
572 elif index==self.tuner1_2testIndex:
575 self.camtimer.start(100,True)
577 ref.setData(1,0x1325)
580 ref.setData(4,0x64af79)
581 # ref.setData(0,0x19)
582 # ref.setData(1,0x83)
584 # ref.setData(3,0x85)
585 # ref.setData(4,0x640000)
586 self.session.nav.playService(ref)
587 self.avswitch.setColorFormat(1)
588 self.avswitch.setAspectRatio(6)
589 elif index==self.tuner2_1testIndex:
591 # self.camtimer.start(100,True)
596 ref.setData(4,0x820000)
597 self.session.nav.playService(ref)
598 self.avswitch.setColorFormat(2)
599 self.avswitch.setAspectRatio(0)
600 elif index==self.tuner2_2testIndex:
602 self.camtimer.start(100,True)
603 # ref.setData(0,0x19)
604 # ref.setData(1,0x83)
606 # ref.setData(3,0x85)
607 # ref.setData(4,0xC00000)
608 # ikseong - for 22000 tp ( /home/ikseong/share/lamedb_ORF)
611 ref.setData(1,0x1325)
614 ref.setData(4,0xC00000)
615 self.session.nav.playService(ref)
616 self.avswitch.setColorFormat(0)
617 self.avswitch.setAspectRatio(6)
620 ref.setData(1,0x1325)
623 ref.setData(4,0xfff029a)
624 self.session.nav.playService(ref)
625 self.avswitch.setColorFormat(2)
626 self.avswitch.setAspectRatio(0)
627 if self.model==0 or self.model==1:
629 self.tuningtimer.start(2000,True)
630 self.tunemsgtimer.start(3000, True)
633 self.tuningtimer.start(4000,True)
634 self.tunemsgtimer.start(5000, True)
637 if self.camstep == 1:
639 state = eDVBCI_UI.getInstance().getState(slot)
640 print '-1-stat',state
643 self.camtimer.start(100,True)
645 self.session.nav.stopService()
646 self.session.open( MessageBox, _("CAM1_NOT_INSERTED\nPress exit!"), MessageBox.TYPE_ERROR)
647 self.rlist[self["testlist"].getCurrent()[1]]="fail"
648 self.tunemsgtimer.stop()
649 # self.rlist[index]="fail"
650 # self["resultlist"].updateList(self.rlist)
651 elif self.camstep == 2:
653 appname = eDVBCI_UI.getInstance().getAppName(slot)
654 print 'appname',appname
656 self.session.nav.stopService()
657 self.session.open( MessageBox, _("NO_GET_APPNAME\nPress exit!"), MessageBox.TYPE_ERROR)
658 self.rlist[self["testlist"].getCurrent()[1]]="fail"
659 self.tunemsgtimer.stop()
662 self.camtimer.start(100,True)
663 elif self.camstep==3:
665 state = eDVBCI_UI.getInstance().getState(slot)
666 print '-2-stat',state
669 self.camtimer.start(100,True)
671 self.session.nav.stopService()
672 self.session.open( MessageBox, _("CAM2_NOT_INSERTED\nPress exit!"), MessageBox.TYPE_ERROR)
673 self.rlist[self["testlist"].getCurrent()[1]]="fail"
674 self.tunemsgtimer.stop()
675 # self.rlist[index]="fail"
676 # self["resultlist"].updateList(self.rlist)
677 elif self.camstep == 4:
679 appname = eDVBCI_UI.getInstance().getAppName(slot)
680 print 'appname',appname
682 self.session.nav.stopService()
683 self.session.open( MessageBox, _("NO_GET_APPNAME\nPress exit!"), MessageBox.TYPE_ERROR)
684 self.rlist[self["testlist"].getCurrent()[1]]="fail"
685 self.tunemsgtimer.stop()
689 # self.session.open( MessageBox, _("CAM OK!"), MessageBox.TYPE_INFO,2)
691 # ikseong - for 22000 tp
693 filename = ("/proc/stb/tsmux/ci0_input")
694 fd = open(filename,'w')
698 # filename = ("/proc/stb/tsmux/ci1_input")
699 # fd = open(filename,'w')
702 fd=open("/proc/stb/tsmux/input1","w")
703 # fd=open("/proc/stb/tsmux/input0","w")
706 print "CI loop test!!!!!!!!!!!!!!"
708 def resetSource(self):
709 fd=open("/proc/stb/tsmux/input1","w")
712 print "CI loop test end!!!!!!!!!!!!!!"
715 self.tuningtimer.stop()
716 self.session.openWithCallback(self.tuneback, MessageBox, _("%s ok?" %(self["testlist"].getCurrent()[0])), MessageBox.TYPE_YESNO)
718 def tuneback(self,yesno):
719 self.session.nav.stopService() # try to disable foreground service
721 self.rlist[self["testlist"].getCurrent()[1]]="pass"
722 if self.tunerlock == 0:
723 self.rlist[self["testlist"].getCurrent()[1]]="fail"
724 elif self["testlist"].getCurrent()[1] == self.cam_index and self.camstep < 5:
725 self.rlist[self["testlist"].getCurrent()[1]]="fail"
727 self.rlist[self["testlist"].getCurrent()[1]]="fail"
728 if self["testlist"].getCurrent()[1] == 6: # YC
729 self.avswitch.setColorFormat(0)
731 self["resultlist"].updateList(self.rlist)
734 self.avswitch.setInput("SCART")
736 self.session.openWithCallback(self.check6, MessageBox, _("Scart loop ok?"), MessageBox.TYPE_YESNO)
738 def check6(self,yesno):
740 self.rlist[self["testlist"].getCurrent()[1]]="pass"
742 self.rlist[self["testlist"].getCurrent()[1]]="fail"
743 self.avswitch.setInput("ENCODER")
748 self.rlist[self["testlist"].getCurrent()[1]]="pass"
750 self.rlist[self["testlist"].getCurrent()[1]]="fail"
753 self.session.openWithCallback(self.check7,RS232Test)
758 if self.oldref is None:
759 eref = eServiceReference("1:0:19:1324:3EF:1:C00000:0:0:0")
760 serviceHandler = eServiceCenter.getInstance()
761 servicelist = serviceHandler.list(eref)
762 if not servicelist is None:
763 ref = servicelist.getNext()
765 ref = self.getCurrentSelection()
766 print "servicelist none"
769 self.session.nav.stopService() # try to disable foreground service
771 ref.setData(1,0x1325)
774 ref.setData(4,0x64af79)
776 # ref.setData(1,0x6D3)
778 # ref.setData(3,0xA4)
779 # ref.setData(4,0xA00000)
780 self.session.nav.playService(ref)
781 self.avswitch.setColorFormat(0)
782 self.avswitch.setAspectRatio(0)
783 self.tuningtimer.start(2000,True)
786 def checkaging(self):
789 self["testlist"].moveToIndex(self.fdefaultIndex)
791 self["testlist"].moveToIndex(self.shutdownIndex)
793 # self["testlist"].instance.moveSelection(self["testlist"].instance.moveDown)
797 self.usbtimer.start(100,True)
803 self.rlist[self["testlist"].getCurrent()[1]]="try %d"%self.usbtry
804 self["resultlist"].updateList(self.rlist)
809 devices = [ "/autofs/sdc1", "/autofs/sdd1", "/autofs/sde1" ]
811 devices = [ "/autofs/sda1", "/autofs/sdb1" ]
813 devices = [ "/autofs/sdc1", "/autofs/sdd1" ]
820 if access(dev,F_OK|R_OK|W_OK):
821 dummy=open(dev+"/dummy03","w")
822 dummy.write("complete")
824 dummy=open(dev+"/dummy03","r")
825 if dummy.readline()=="complete":
826 print dev," - complete"
828 print dev," - readline error"
832 system("rm "+dev+"/dummy03")
834 print dev," - rw access error"
838 print dev," - file not exist"
841 print dev," - exceptional error"
847 elif result == len(devices):
848 self.session.open( MessageBox, _("USB test pass %d devices\nPress OK!"%result), MessageBox.TYPE_INFO)
849 self.rlist[self["testlist"].getCurrent()[1]]="pass"
851 if displayerror == 1:
852 self.session.open( MessageBox, _("USB test error : Success-%d"%result+" Fail-%d\nPress EXIT!"%(len(devices)-result)), MessageBox.TYPE_ERROR)
853 self.rlist[self["testlist"].getCurrent()[1]]="fail"
855 self.usbtimer.start(1100,True)
859 # system("/etc/init.d/networking stop")
860 system("ifconfig eth0 192.168.0.10")
861 # system("/etc/init.d/networking start")
862 cmd1 = "ping -c 1 192.168.0.100"
863 self.PingConsole = Console()
864 self.PingConsole.ePopen(cmd1, self.checkNetworkStateFinished,self.NetworkStatedataAvail)
866 def checkNetworkStateFinished(self, result, retval,extra_args):
867 (statecallback) = extra_args
868 if self.PingConsole is not None:
870 self.PingConsole = None
871 content = result.splitlines()
872 # print 'content',content
873 x = content[4].split()
883 def NetworkStatedataAvail(self,data):
888 # self.session.open( MessageBox, _("Ping test pass"), MessageBox.TYPE_INFO,2)
889 self.session.openWithCallback(self.openMacConfig ,MessageBox, _("Ping test pass"), MessageBox.TYPE_INFO,2)
894 self.session.open( MessageBox, _("Ping test fail\nPress exit"), MessageBox.TYPE_ERROR)
900 def openMacConfig(self, ret=False):
901 self.session.openWithCallback(self.macresult ,MacConfig,mactry=self.mactry)
906 self.rlist[self.ethernettestIndex]="pass"
907 # self.rlist[self["testlist"].getCurrent()[1]]="pass"
909 self.rlist[self.ethernettestIndex]="fail"
910 # self.rlist[self["testlist"].getCurrent()[1]]="fail"
914 def MemTest(self, which):
918 result = eMemtest.getInstance().dramtest()
920 result = eMemtest.getInstance().flashtest()
923 result = eMemtest.getInstance().dramtest()
924 result = eMemtest.getInstance().flashtest()
930 print index,self.rlist[index]
931 self.rlist[index]="pass"
933 print index,self.rlist[index]
934 self.rlist[index]="fail"
935 self["resultlist"].updateList(self.rlist)
937 def scciresult(self):
939 if smartcardtest == 1:
940 self.rlist[self["testlist"].getCurrent()[1]]="pass"
942 self.rlist[self["testlist"].getCurrent()[1]]="fail"
945 self.session.openWithCallback(self.scciresult ,SmartCardTest,stbmodel=self.model)
959 system("rm -R /etc/enigma2")
960 system("cp -R /usr/share/enigma2/defaults /etc/enigma2")
961 self.rlist[self["testlist"].getCurrent()[1]]="pass"
962 self["resultlist"].updateList(self.rlist)
964 self.rlist[self["testlist"].getCurrent()[1]]="fail"
965 self["resultlist"].updateList(self.rlist)
966 self.session.open( MessageBox, _("Factory reset fail"), MessageBox.TYPE_ERROR)
969 self.session.openWithCallback(self.shutdown ,MessageBox, _("Do you want to shut down?"), MessageBox.TYPE_YESNO)
971 def shutdown(self, yesno):
974 system("/usr/bin/showiframe /boot/backdrop.mvi")
984 # if self.oldref is not None:
985 # self.session.nav.playService(self.oldref)
988 class MacConfig(Screen):
990 <screen position="100,250" size="520,100" title="Mac Config" >
991 <eLabel text="Mac Address " position="10,15" size="200,40" font="Regular;30" />
992 <widget name="text" position="230,15" size="230,40" font="Regular;30" />
993 <widget name="text1" position="470,15" size="40,40" font="Regular;30" />
994 <eLabel text=" " position="5,55" zPosition="-1" size="510,5" backgroundColor="#02e1e8e6" />
995 <widget name="stattext" position="30,75" size="400,25" font="Regular;20" />
998 def __init__(self, session, mactry = 1):
999 self["actions"] = ActionMap(["DirectionActions","OkCancelActions"],
1002 "left": self.keyleft,
1003 "right": self.keyright,
1004 "cancel": self.keyCancel,
1007 Screen.__init__(self, session)
1009 self.mactry = mactry
1014 self.macaddr = "000000000000"
1015 self.ReadMacinfo = 0
1016 self["text"]=Label((self.macaddr))
1017 self["text1"]= Label(("< >"))
1018 self["stattext"]= Label((""))
1025 def getModelInfo(self):
1027 if fileExists("/proc/stb/info/vumodel"):
1028 info = open("/proc/stb/info/vumodel").read().strip()
1032 print "MacConfig, model : combo"
1036 print "MacConfig, model : solo"
1040 print "MacConfig, model : duo"
1041 if getmodel == 0 and fileExists("/proc/stb/info/version"):
1042 info = open("/proc/stb/info/version").read()
1043 # print info,info[:2]
1044 if info[:2] == "14":
1046 print "MacConfig, model : solo_"
1047 elif info[:2] == "12":
1049 print "MacConfig, model: duo_"
1051 def loadmacaddr(self):
1056 devices = ["/autofs/sdb1", "/autofs/sdc1", "/autofs/sdd1", "/autofs/sde1" ]
1058 devices = [ "/autofs/sda1", "/autofs/sdb1" ]
1060 devices = [ "/autofs/sdb1", "/autofs/sdc1", "/autofs/sdd1" ]
1064 if fileExists(dev+"/macinfo.txt"):
1065 print "<open>"+dev+"/macinfo.txt"
1066 self.macfd = open(dev+"/macinfo.txt","r+")
1070 self["text"].setText(("cannot read usb!!"))
1071 self["text1"].setText((" "))
1072 self["stattext"].setText((" Press Exit Key."))
1076 macaddr=self.macfd.readline().split(":")
1077 self.macaddr=macaddr[1]+macaddr[2]+macaddr[3]+macaddr[4]+macaddr[5]+macaddr[6]
1079 self.ReadMacinfo = 1
1081 self["text"].setText(("cannot read usb!!"))
1082 self["text1"].setText((" "))
1083 self["stattext"].setText((" Press Exit Key."))
1086 def getmacaddr(self):
1087 if self.ReadMacinfo==0:
1091 cmd = "nanddump -s 0x" + str((self.mactry-1)*2) + "0000 -b -o -l 64 -p /dev/mtd5"
1092 elif self.model == 0 or self.model == 1:
1093 cmd = "nanddump -s 0x" + str((self.mactry-1)*2) + "0000 -b -o -l 64 -p /dev/mtd4"
1094 self.macConsole = Console()
1095 self.macConsole.ePopen(cmd, self.readmac,self.checkReadmac)
1099 def readmac(self, result, retval,extra_args=None):
1100 (callback) = extra_args
1101 if self.macConsole is not None:
1103 self.macConsole = None
1105 content =result.splitlines()
1107 if x.startswith('0x000'+str((self.mactry-1)*2)+'0010:'):
1111 elif len(macline) < 10:
1114 mac = macline[5]+":"+macline[6]+":"+macline[7]+":"+macline[8]+":"+macline[9]+":"+macline[10]
1115 self["stattext"].setText(("now : "+mac))
1118 def checkReadmac(self,data):
1120 print "block %d is bad block" % self.mactry
1121 self.mactry = self.mactry + 1
1123 self.session.open(MessageBox, _("FLASH IS BROKEN"), type = MessageBox.TYPE_INFO, enable_input = False)
1128 print 'mac dump read error'
1131 print 'mac address read ok'
1136 if self.ReadMacinfo==0 :
1138 macaddress = long(self.macaddr,16)-1
1140 macaddress = 0xffffffffffff
1141 self.macaddr = "%012x"%macaddress
1145 if self.ReadMacinfo==0 :
1147 macaddress = long(self.macaddr,16)+1
1148 if macaddress > 0xffffffffffff:
1150 self.macaddr = "%012x"%macaddress
1153 def displaymac(self):
1154 macaddr= self.macaddr
1155 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))))
1158 if self.ReadMacinfo==0 :
1161 macaddr = self.macaddr
1162 #make_mac_sector 00-99-99-99-00-00 > /tmp/mac.sector
1163 #flash_eraseall /dev/mtd4
1164 #nandwrite /dev/mtd4 /tmp/mac.sector -p
1165 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))
1168 system("flash_eraseall /dev/mtd5")
1169 system("nandwrite /dev/mtd5 /tmp/mac.sector -p")
1170 elif self.model == 0 or self.model ==1 :
1171 system("flash_eraseall /dev/mtd4")
1172 system("nandwrite /dev/mtd4 /tmp/mac.sector -p")
1173 macaddress = long(macaddr,16)+1
1174 if macaddress > 0xffffffffffff:
1176 macaddr = "%012x"%macaddress
1177 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))
1179 self.macfd.write(macwritetext)
1182 self.macaddr = macaddr
1185 self.session.open( MessageBox, _("Mac address fail"), MessageBox.TYPE_ERROR)
1190 def keyCancel(self):
1200 class ScCiTest(Screen):
1202 <screen position="120,225" size="440,200" title="CI Smartcard Test" >
1203 <widget name="testlist" position="10,0" size="340,120" />
1204 <widget name="resultlist" position="370,0" size="60,120" />
1205 <eLabel text=" " position="5,125" zPosition="-1" size="430,5" backgroundColor="#02e1e8e6" />
1206 <widget name="text" position="10,140" size="420,50" font="Regular;25" />
1209 def __init__(self, session):
1210 self["actions"] = ActionMap(["DirectionActions","OkCancelActions"],
1215 "cancel": self.keyCancel,
1218 Screen.__init__(self, session)
1220 tlist.append(("Smartcard 1 Test",0))
1221 tlist.append(("Smartcard 2 Test",1))
1222 tlist.append(("CI 1 Test",2))
1223 tlist.append(("CI 2 Test",3))
1224 self["testlist"] = MenuList(tlist)
1227 self.rlist.append((".."))
1228 self["resultlist"] = TestResultList(self.rlist)
1230 self.removecard = eTimer()
1231 self.removecard.callback.append(self.remove_card)
1232 self["text"]=Label(("Press OK Key"))
1233 self.camstate= eTimer()
1234 self.camstate.callback.append(self.cam_state)
1238 def keyCancel(self):
1240 print "result ", self.result
1247 self["text"].setText(_("Press OK Key"))
1248 self["testlist"].instance.moveSelection(self["testlist"].instance.moveUp)
1251 self["text"].setText(_("Press OK Key"))
1252 self["testlist"].instance.moveSelection(self["testlist"].instance.moveDown)
1255 print "line - ",self["testlist"].getCurrent()[1]
1256 index = self["testlist"].getCurrent()[1]
1258 if index==0 or index==1:
1259 self["text"].setText(_("Insert Card?"))
1261 elif index ==2 or index==3:
1262 self["text"].setText(_("Insert Cam"))
1268 self.camstate.start(1000,True)
1270 def setSource(self, cislot):
1271 filename = ("/proc/stb/tsmux/ci%d_input"%cislot)
1272 fd = open(filename,'w')
1276 def setInputSource(self, cislot):
1277 fd=open("/proc/stb/tsmux/input0","w")
1284 def resetSource(self):
1285 fd=open("/proc/stb/tsmux/input0","w")
1288 # fd = open("/proc/stb/tsmux/ci0_input","w")
1291 # fd = open("/proc/stb/tsmux/ci1_input","w")
1295 def channelstart(self):
1296 ref = eServiceReference("1:0:19:1324:3EF:1:C00000:0:0:0")
1301 ref.setData(4,0x640000)
1302 self.session.nav.playService(ref)
1304 def channelstop(self):
1305 self.session.nav.stopService() # try to disable foreground service
1307 def cam_state(self):
1308 index = self["testlist"].getCurrent()[1]
1313 print 'cam_state', self.camstep,self.camtry
1314 if self.camstep == 1:
1315 state = eDVBCI_UI.getInstance().getState(slot)
1320 self["text"].setText(_("Getting Cam name...."))
1321 self.camstate.start(5000,True)
1325 self.camstate.start(1000,True)
1327 self.session.open( MessageBox, _("NO_NOT_INSERTED"), MessageBox.TYPE_ERROR)
1328 self.rlist[index]="fail"
1329 self["resultlist"].updateList(self.rlist)
1331 elif self.camstep == 2:
1332 appname = eDVBCI_UI.getInstance().getAppName(slot)
1333 print 'appname',appname
1337 self.camstate.start(1000,True)
1339 self.session.open( MessageBox, _("NO_GET_APPNAME"), MessageBox.TYPE_ERROR)
1340 self.rlist[index]="fail"
1341 self["resultlist"].updateList(self.rlist)
1343 self["text"].setText(_("Get Cam name : %s"%appname+". \n Remove Cam!"))
1345 self.setInputSource(slot)
1346 self.setSource(slot)
1349 self.camstate.start(1000,True)
1350 elif self.camstep==3:
1351 state = eDVBCI_UI.getInstance().getState(slot)
1355 self.result += (1<<index)
1357 self.rlist[index]="pass"
1358 self["text"].setText(_("Press OK Key"))
1359 self["resultlist"].updateList(self.rlist)
1367 self.camstate.start(1000,True)
1370 self.session.open( MessageBox, _("NO_REMOVE_CAM"), MessageBox.TYPE_ERROR)
1371 self.rlist[index]="fail"
1372 self["resultlist"].updateList(self.rlist)
1374 def check_smart_card(self,which):
1378 result = eSctest.getInstance().check_smart_card("/dev/sci0")
1380 result = eSctest.getInstance().check_smart_card("/dev/sci1")
1390 self.session.open( MessageBox, _("1:NO_DEV_FOUND"), MessageBox.TYPE_ERROR)
1392 self.session.open( MessageBox, _("1:SC_NOT_INSERTED"), MessageBox.TYPE_ERROR)
1394 self.session.open( MessageBox, _("1:SC_NOT_VALID_ATR"), MessageBox.TYPE_ERROR)
1396 self.session.open( MessageBox, _("1:SC_READ_TIMEOUT"), MessageBox.TYPE_ERROR)
1397 self.rlist[which]="fail"
1398 self["resultlist"].updateList(self.rlist)
1401 def remove_card(self):
1402 index = self["testlist"].getCurrent()[1]
1404 result = eSctest.getInstance().eject_smart_card("/dev/sci0")
1406 result = eSctest.getInstance().eject_smart_card("/dev/sci1")
1407 print 'remove result' ,result
1409 self.rlist[index]="pass"
1410 self.result += (1<<index)
1413 self.session.open( MessageBox, _("2:NO_DEV_FOUND"), MessageBox.TYPE_ERROR)
1415 self.session.open( MessageBox, _("2:SC_NOT_INSERTED"), MessageBox.TYPE_ERROR)
1417 self.session.open( MessageBox, _("2:SC_NOT_VALID_ATR"), MessageBox.TYPE_ERROR)
1419 self.session.open( MessageBox, _("2:SC_NOT_REMOVED"), MessageBox.TYPE_ERROR)
1420 self.rlist[index]="fail"
1421 self["resultlist"].updateList(self.rlist)
1422 self["text"].setText(_("Press OK Key"))
1427 def ScTest(self, yesno):
1430 index = self["testlist"].getCurrent()[1]
1431 result = self.check_smart_card(index)
1433 self.removecard.start(100,True)
1434 self["text"].setText(_("Read Ok. Remove Card!"))
1440 class SmartCardTest(Screen):
1442 <screen position="300,240" size="160,120" title="SmartCard Test" >
1443 <widget name="text" position="10,10" size="140,100" font="Regular;22" />
1446 def __init__(self, session, stbmodel = 0):
1447 self["actions"] = ActionMap(["DirectionActions", "OkCancelActions"],
1449 "cancel": self.keyCancel,
1450 "ok" : self.keyCancel
1453 Screen.__init__(self, session)
1454 # self["text"]=Label(("Press Key LEFT"))
1455 self["text"]=Label(("Testing Smartcard 1..."))
1457 self.smartcardtimer = eTimer()
1458 self.smartcardtimer.callback.append(self.check_smart_card)
1459 self.closetimer = eTimer()
1460 self.closetimer.callback.append(self.close)
1462 global smartcardtest
1464 self.model = stbmodel
1466 self.smartcardtimer.start(100,True)
1468 def check_smart_card(self):
1469 global smartcardtest
1470 index = self.smartcard
1473 if self.Testmode==0:
1474 result = eSctest.getInstance().check_smart_card("/dev/sci0")
1476 result = eSctest.getInstance().n_check_smart_card("/dev/sci0")
1478 if self.Testmode==0:
1479 result = eSctest.getInstance().check_smart_card("/dev/sci1")
1481 result = eSctest.getInstance().n_check_smart_card("/dev/sci1")
1489 if(index== 0 and ( self.model== 0 or self.model==2) ):
1491 self["text"].setText(_("Testing Smartcard 2..."))
1492 self.smartcardtimer.start(100,True)
1494 elif (index==1 or self.model==1):
1496 # self.session.open( MessageBox, _("Smart Card OK!!"), MessageBox.TYPE_INFO,2)
1498 self["text"].setText(_("Smart Card OK!!"))
1499 self.closetimer.start(2000,True)
1500 self.smartcardtimer.stop()
1501 # self.session.openWithCallback(self.check6, MessageBox, _("Scart loop ok?"), MessageBox.TYPE_INFO)
1504 # self.session.open( MessageBox, _("%d:NO_DEV_FOUND"%(index+1)), MessageBox.TYPE_ERROR)
1505 # elif result == -2:
1506 # self.session.open( MessageBox, _("%d:SC_NOT_INSERTED"%(index+1)), MessageBox.TYPE_ERROR)
1507 # elif result == -3:
1508 # self.session.open( MessageBox, _("%d:SC_NOT_VALID_ATR"%(index+1)), MessageBox.TYPE_ERROR)
1509 # elif result == -5:
1510 # self.session.open( MessageBox, _("%d:SC_READ_TIMEOUT"%(index+1)), MessageBox.TYPE_ERROR)
1512 self["text"].setText(_("Smart Card 1 Error!\nerrorcode=%d"%result))
1514 self["text"].setText(_("Smart Card 2 Error!\nerrorcode=%d"%result))
1515 self.closetimer.start(2000,True)
1516 self.smartcardtimer.stop()
1519 def keyCancel(self):
1526 class FrontTest(Screen):
1528 <screen position="260,240" size="200,180" title="Front Test" >
1529 <widget name="text" position="10,10" size="180,160" font="Regular;22" />
1532 def __init__(self, session):
1533 self["actions"] = ActionMap(["DirectionActions", "OkCancelActions"],
1537 "down":self.keyDown,
1538 "cancel": self.keyCancel,
1541 Screen.__init__(self, session)
1542 self["text"]=Label(("Wheel LEFT"))
1545 self.fronttimer= eTimer()
1546 self.fronttimer.callback.append(self.FrontAnimate)
1547 self.frontturnonoff = 0
1548 eSctest.getInstance().VFD_Open()
1549 self.keytimeout = eTimer()
1550 self.keytimeout.callback.append(self.KeyTimeOut)
1551 self.keytimeout.start(5000,True)
1553 def KeyTimeOut(self):
1555 self["text"].setText(("Wheel LEFT ERROR"))
1556 elif self.step ==2 :
1557 self["text"].setText(("Wheel RIGHT ERROR"))
1558 elif self.step == 3:
1559 self["text"].setText(("Wheel BUTTON ERROR"))
1563 def keyCancel(self):
1565 self.fronttimer.stop()
1566 eSctest.getInstance().VFD_Close()
1575 self.keytimeout.stop()
1576 self.keytimeout.start(5000,True)
1578 self["text"].setText(_("Press Front Wheel"))
1582 self.keytimeout.stop()
1583 self.keytimeout.start(5000,True)
1585 self["text"].setText(_("Wheel RIGHT"))
1591 self.keytimeout.stop()
1593 self.fronttimer.start(1000,True)
1594 self["text"].setText(("Front Test OK!\nPress Exit Key"))
1595 # elif self.step==4:
1597 # self.fronttimer.stop()
1598 # eSctest.getInstance().VFD_Close()
1602 def FrontAnimate(self):
1603 if (self.frontturnonoff==0):
1604 eSctest.getInstance().turnon_VFD()
1605 self.frontturnonoff = 1
1607 self.frontturnonoff = 0
1608 eSctest.getInstance().turnoff_VFD()
1609 self.fronttimer.start(1000,True)
1612 class FrontTest_solo(Screen):
1614 <screen position="260,240" size="200,180" title="Front Test" >
1615 <widget name="text" position="10,10" size="180,160" font="Regular;22" />
1618 def __init__(self, session):
1619 self["actions"] = ActionMap(["DirectionActions", "OkCancelActions","GlobalActions"],
1622 "cancel": self.keyCancel,
1623 "left": self.keyleft,
1624 "right": self.keyright,
1625 "power_down": self.keypower,
1626 "volumeUp": self.keyvolup,
1627 "volumeDown": self.keyvoldown,
1630 Screen.__init__(self, session)
1631 self["text"]=Label(("Press Front STANDBY"))
1634 self.fronttimer= eTimer()
1635 self.fronttimer.callback.append(self.FrontAnimate)
1636 self.frontturnonoff = 0
1637 eSctest.getInstance().VFD_Open()
1638 self.keytimeout = eTimer()
1639 self.keytimeout.callback.append(self.KeyTimeOut)
1640 self.keytimeout.start(5000,True)
1642 def KeyTimeOut(self):
1644 self["text"].setText(("Front STANDBY ERROR\nPress exit!"))
1645 elif self.step == 2 :
1646 self["text"].setText(("Front CH - ERROR\nPress exit!"))
1647 elif self.step == 3:
1648 self["text"].setText(("Front CH + ERROR\nPress exit!"))
1649 elif self.step == 4 :
1650 self["text"].setText(("Front VOL - ERROR\nPress exit!"))
1651 elif self.step == 5:
1652 self["text"].setText(("Front VOL + ERROR\nPress exit!"))
1659 self.keytimeout.stop()
1660 self.keytimeout.start(5000,True)
1662 self["text"].setText(_("Press Front CH -"))
1666 self.keytimeout.stop()
1667 self.keytimeout.start(5000,True)
1669 self["text"].setText(_("Press Front VOL -"))
1673 self.keytimeout.stop()
1674 self.keytimeout.start(5000,True)
1676 self["text"].setText(_("Press Front CH +"))
1680 self.keytimeout.stop()
1682 self.fronttimer.start(1000,True)
1683 self["text"].setText(_("Front LED OK?\n\nyes-ok\nno-exit"))
1684 # self["text"].setText(("Front Test OK!\nPress Exit Key"))
1686 def keyvoldown(self):
1688 self.keytimeout.stop()
1689 self.keytimeout.start(5000,True)
1691 self["text"].setText(_("Press Front VOL +"))
1693 def checkled(self, yesno):
1700 def keyCancel(self):
1702 self.fronttimer.stop()
1703 eSctest.getInstance().VFD_Close()
1709 self.fronttimer.stop()
1710 eSctest.getInstance().VFD_Close()
1715 def FrontAnimate(self):
1716 if (self.frontturnonoff==0):
1717 eSctest.getInstance().turnon_VFD()
1718 self.frontturnonoff = 1
1720 self.frontturnonoff = 0
1721 eSctest.getInstance().turnoff_VFD()
1722 self.fronttimer.start(1000,True)
1731 class RS232Test(Screen):
1733 <screen position="300,240" size="160,100" title="RS232 Test" >
1734 <widget name="text" position="10,10" size="140,80" font="Regular;22" />
1737 def __init__(self, session):
1738 self["actions"] = ActionMap(["DirectionActions", "OkCancelActions"],
1740 "cancel": self.keyCancel,
1743 Screen.__init__(self, session)
1744 self["text"]=Label(("Press \"Enter\" Key"))
1745 self.timer = eTimer()
1746 self.timer.callback.append(self.checkrs232)
1747 self.timer.start(100, True)
1749 def checkrs232(self):
1752 rs=open('/dev/ttyS0','r')
1754 r,w,e = select.select(rd, [], [], 10)
1769 def keyCancel(self):
1774 class AgingTest(Screen):
1776 <screen position="200,240" size="250,100" title="Aging Test" >
1777 <widget name="text1" position="10,10" size="230,40" font="Regular;22" />
1778 <widget name="text2" position="10,50" size="230,40" font="Regular;22" />
1781 def __init__(self, session):
1782 self["actions"] = ActionMap(["WizardActions","GlobalActions"],
1784 "agingend": self.keyEnd,
1785 "agingfinish": self.keyFinish,
1786 "volumeUp": self.nothing,
1787 "volumeDown": self.nothing,
1788 "volumeMute": self.nothing,
1791 Screen.__init__(self, session)
1792 self["text1"]=Label(("Exit - Press Pause Key"))
1793 self["text2"]=Label(("Reset - Press Stop Key"))
1794 # self.servicelist = ServiceList()
1795 # self.oldref = session.nav.getCurrentlyPlayingServiceReference()
1796 # print "oldref",self.oldref
1797 # session.nav.stopService() # try to disable foreground service
1800 self.tuningtimer = eTimer()
1801 self.tuningtimer.callback.append(self.updateStatus)
1802 # self.tuningtimer.start(2000,True)
1805 def updateStatus(self):
1806 result = eSctest.getInstance().getFrontendstatus(0)
1809 print "eSctest.getInstance().getFrontendstatus - %d"%result
1812 self.session.nav.stopService()
1813 self.session.open( MessageBox, _("Tune 1 Ver Locking Fail..."), MessageBox.TYPE_ERROR)
1818 self.session.nav.stopService()
1819 self.session.open( MessageBox, _("Tune 1 Ver Error %d..."%result), MessageBox.TYPE_ERROR)
1826 if self.oldref is None:
1827 eref = eServiceReference("1:0:19:1324:3EF:1:C00000:0:0:0")
1828 serviceHandler = eServiceCenter.getInstance()
1829 servicelist = serviceHandler.list(eref)
1830 if not servicelist is None:
1831 ref = servicelist.getNext()
1833 ref = self.getCurrentSelection()
1834 print "servicelist none"
1837 self.session.nav.stopService() # try to disable foreground service
1842 ref.setData(4,0x640000)
1843 self.session.nav.playService(ref)
1848 self.session.nav.stopService() # try to disable foreground service
1851 def keyFinish(self):
1854 self.session.nav.stopService() # try to disable foreground service
1866 def main(session, servicelist, **kwargs):
1870 Servicelist = servicelist
1871 bouquets = Servicelist.getBouquetList()
1873 bouquetSel = Session.openWithCallback(cleanup, FactoryTest)
1875 #def Plugins(**kwargs):
1876 # return PluginDescriptor(name=_("Factory Test"), description="Test App for Factory", where = PluginDescriptor.WHERE_EXTENSIONSMENU, fnc=main)