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-08-test"
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):
245 if fileExists("/proc/stb/info/vumodel"):
246 info = open("/proc/stb/info/vumodel").read()
247 if info[:5] == "combo":
249 print "getModelInfo : combo"
251 info = open("/proc/stb/info/version").read()
252 # print info,info[:2]
255 print "getModelInfo : solo"
256 elif info[:2] == "12":
258 print "getModelInfo : duo"
266 if self["testlist"].getCurrent()[1]==0:
267 self["testlist"].moveToIndex(self.menulength)
269 self["testlist"].up()
275 if self["testlist"].getCurrent()[1]==(self.menulength):
276 self["testlist"].moveToIndex(0)
278 self["testlist"].down()
280 def numberaction(self, number):
284 self["testlist"].moveToIndex(index)
287 def updateStatus(self):
288 index = self["testlist"].getCurrent()[1]
289 if index ==self.tuner1_1testIndex or index==self.tuner1_2testIndex:
291 result = eSctest.getInstance().getFrontendstatus(0)
294 result = eSctest.getInstance().getFrontendstatus(1)
296 if self.agingmode == 1:
298 result = eSctest.getInstance().getFrontendstatus(0)
300 if self.model == 2 and index==self.tuner2_2testIndex:
302 elif index == self.tuner1_2testIndex or index==self.tuner2_2testIndex:
307 print "eSctest.getInstance().getFrontendstatus - %d"%result
310 self.tunemsgtimer.stop()
311 self.session.nav.stopService()
312 self.avswitch.setColorFormat(0)
313 self.session.open( MessageBox, _("Tune%d %s Locking Fail..."%(tunno,hv)), MessageBox.TYPE_ERROR)
314 if self.agingmode==0:
315 self.rlist[self["testlist"].getCurrent()[1]]="fail"
319 if self.agingmode==1:
320 self.session.openWithCallback(self.checkaging,AgingTest)
322 def getversion(self):
324 fd = open("/proc/stb/info/version","r")
326 self["testversion"].setText(("Version %s"%version))
328 self["testversion"].setText(("Version no load"))
331 def getmacaddr(self):
334 cmd = "nanddump -s 0x" + str((self.mactry-1)*2) + "0000 -b -o -l 64 -p /dev/mtd5"
335 elif self.model == 0 or self.model == 1:
336 cmd = "nanddump -s 0x" + str((self.mactry-1)*2) + "0000 -b -o -l 64 -p /dev/mtd4"
337 self.macConsole = Console()
338 self.macConsole.ePopen(cmd, self.readmac,self.checkReadmac)
342 def readmac(self, result, retval,extra_args=None):
343 (callback) = extra_args
344 if self.macConsole is not None:
346 self.macConsole = None
348 content =result.splitlines()
350 if x.startswith('0x000'+str((self.mactry-1)*2)+'0010:'):
354 elif len(macline) < 10:
357 mac = macline[5]+":"+macline[6]+":"+macline[7]+":"+macline[8]+":"+macline[9]+":"+macline[10]
358 self["mactext"].setText(("MAC : "+mac))
361 def checkReadmac(self,data):
363 print "block %d is bad block" % self.mactry
364 self.mactry = self.mactry + 1
366 self.session.open(MessageBox, _("FLASH IS BROKEN"), type = MessageBox.TYPE_INFO, enable_input = False)
371 print 'mac dump read error'
374 print 'mac address read ok'
377 def TestAction(self):
379 # tlist.append((" 0. Sata & extend hdd test",self.satetestIndex=0))
380 # tlist.append((" 1. USB test",self.usbtestIndex=1))
381 # tlist.append((" 2. Front test",self.fronttestIndex=2))
382 # tlist.append((" 3. Smartcard test",self.smarttestIndex=3))
383 # tlist.append((" 4. T1 H 22K x 4:3 CVBS",self.tuner1_1testIndex=4))
384 # tlist.append((" 5. T1 V 22k o 16:9 RGB",self.tuner1_2testIndex=5))
385 # tlist.append((" 6. T2 H 22k x 4:3 YC",self.tuner2_1testIndex=6))
386 # tlist.append((" 7. T2 V 22k o 16:9 CVBS CAM",self.tuner2_2testIndex=7))
387 # tlist.append((" 8. VCR Scart loop",self.scarttestIndex=8))
388 # tlist.append((" 9. RS232 test",self.rs232testIndex=9))
389 # tlist.append(("10. Ethernet & mac test",self.ethernettestIndex=10))
390 # tlist.append(("11. DRAM test",11))
391 # tlist.append(("12. Flash test",12))
392 # tlist.append(("13. DRAM+Flash test",13))
393 # tlist.append(("11. Factory default",self.fdefaultIndex=11))
394 # tlist.append(("12. Shutdown",self.shutdownIndex=12))
398 print "line - ",self["testlist"].getCurrent()[1]
399 index = self["testlist"].getCurrent()[1]
401 if index==self.satetestIndex:
403 elif index==self.fronttestIndex:
405 elif index>=self.tuner1_1testIndex and index<=self.tuner2_2testIndex:
407 elif index==self.scarttestIndex:
409 elif index==self.rs232testIndex:
411 elif index==self.usbtestIndex:
413 elif index==self.ethernettestIndex:
415 elif index == self.smarttestIndex:
423 elif index==self.fdefaultIndex:
425 elif index==self.shutdownIndex:
430 def shutdownaction(self):
431 if self["testlist"].getCurrent()[1] == self.shutdownIndex:
437 self.satatimer.start(100,True)
440 # print "try", self.satatry
441 if self.satatry == 0:
444 self.rlist[self["testlist"].getCurrent()[1]]="try %d"%self.satatry
445 self["resultlist"].updateList(self.rlist)
450 if fileExists("/autofs/sdb1"):
451 if access("/autofs/sdb1",F_OK|R_OK|W_OK):
452 dummy=open("/autofs/sdb1/dummy03","w")
453 dummy.write("complete")
455 dummy=open("/autofs/sdb1/dummy03","r")
456 if dummy.readline()=="complete":
457 print "/autofs/sdb1 - complete"
459 print "/autofs/sdb1 - readline error"
463 system("rm /autofs/sdb1/dummy03")
465 print "/autofs/sdb1 - rw access error"
469 print "/autofs/sdb1 - file not exist"
472 print "/autofs/sdb1 - exceptional error"
476 if fileExists("/media/hdd"):
477 if access("/media/hdd",F_OK|R_OK|W_OK):
478 dummy=open("/media/hdd/dummy03","w")
479 dummy.write("complete")
481 dummy=open("/media/hdd/dummy03","r")
482 if dummy.readline()=="complete":
483 print "/media/hdd - complete"
485 print "/autofs/sdb1 - readline error"
489 system("rm /media/hdd/dummy03")
491 print "/autofs/sdb1 - rw access error"
495 print "/autofs/sdb1 - file not exist"
498 print "/autofs/sdb1 - exceptional error"
503 self.session.open( MessageBox, _("Sata & extend hdd test pass"), MessageBox.TYPE_INFO)
504 self.rlist[self["testlist"].getCurrent()[1]]="pass"
507 self.session.open( MessageBox, _("One hdd test error"), MessageBox.TYPE_ERROR)
508 self.rlist[self["testlist"].getCurrent()[1]]="fail"
510 self.satatimer.start(1100,True)
513 self.session.open( MessageBox, _("Sata & extend hdd test error"), MessageBox.TYPE_ERROR)
514 self.rlist[self["testlist"].getCurrent()[1]]="fail"
516 self.satatimer.start(1100,True)
520 self.session.openWithCallback(self.displayresult ,FrontTest)
521 elif self.model == 1:
522 self.session.openWithCallback(self.displayresult ,FrontTest_solo)
523 elif self.model == 2:
524 self.session.openWithCallback(self.displayresult ,FrontTest_solo)
526 def displayresult(self):
529 self.rlist[self["testlist"].getCurrent()[1]]="pass"
531 self.rlist[self["testlist"].getCurrent()[1]]="fail"
533 INTERNAL_PID_STATUS_NOOP = 0
534 INTERNAL_PID_STATUS_WAITING = 1
535 INTERNAL_PID_STATUS_SUCCESSFUL = 2
536 INTERNAL_PID_STATUS_FAILED = 3
538 def TestTune(self,index):
539 if self.oldref is None:
540 eref = eServiceReference("1:0:19:1324:3EF:1:C00000:0:0:0")
541 serviceHandler = eServiceCenter.getInstance()
542 servicelist = serviceHandler.list(eref)
543 if not servicelist is None:
544 ref = servicelist.getNext()
546 ref = self.getCurrentSelection()
547 print "servicelist none"
550 self.session.nav.stopService() # try to disable foreground service
551 if index==self.tuner1_1testIndex:
556 ref.setData(4,0xA00000)
557 self.session.nav.playService(ref)
558 self.avswitch.setColorFormat(0)
559 self.avswitch.setAspectRatio(0)
560 elif index==self.tuner1_2testIndex:
563 self.camtimer.start(100,True)
565 ref.setData(1,0x1325)
568 ref.setData(4,0x64af79)
569 # ref.setData(0,0x19)
570 # ref.setData(1,0x83)
572 # ref.setData(3,0x85)
573 # ref.setData(4,0x640000)
574 self.session.nav.playService(ref)
575 self.avswitch.setColorFormat(1)
576 self.avswitch.setAspectRatio(6)
577 elif index==self.tuner2_1testIndex:
579 # self.camtimer.start(100,True)
584 ref.setData(4,0x820000)
585 self.session.nav.playService(ref)
586 self.avswitch.setColorFormat(2)
587 self.avswitch.setAspectRatio(0)
588 elif index==self.tuner2_2testIndex:
590 self.camtimer.start(100,True)
591 # ref.setData(0,0x19)
592 # ref.setData(1,0x83)
594 # ref.setData(3,0x85)
595 # ref.setData(4,0xC00000)
596 # ikseong - for 22000 tp ( /home/ikseong/share/lamedb_ORF)
599 ref.setData(1,0x1325)
602 ref.setData(4,0xC00000)
603 self.session.nav.playService(ref)
604 self.avswitch.setColorFormat(0)
605 self.avswitch.setAspectRatio(6)
608 ref.setData(1,0x1325)
611 ref.setData(4,0xfff029a)
612 self.session.nav.playService(ref)
613 self.avswitch.setColorFormat(2)
614 self.avswitch.setAspectRatio(0)
615 self.tuningtimer.start(4000,True)
616 self.tunemsgtimer.start(5000, True)
619 if self.camstep == 1:
621 state = eDVBCI_UI.getInstance().getState(slot)
622 print '-1-stat',state
625 self.camtimer.start(100,True)
627 self.session.nav.stopService()
628 self.session.open( MessageBox, _("CAM1_NOT_INSERTED\nPress exit!"), MessageBox.TYPE_ERROR)
629 self.rlist[self["testlist"].getCurrent()[1]]="fail"
630 self.tunemsgtimer.stop()
631 # self.rlist[index]="fail"
632 # self["resultlist"].updateList(self.rlist)
633 elif self.camstep == 2:
635 appname = eDVBCI_UI.getInstance().getAppName(slot)
636 print 'appname',appname
638 self.session.nav.stopService()
639 self.session.open( MessageBox, _("NO_GET_APPNAME\nPress exit!"), MessageBox.TYPE_ERROR)
640 self.rlist[self["testlist"].getCurrent()[1]]="fail"
641 self.tunemsgtimer.stop()
644 self.camtimer.start(100,True)
645 elif self.camstep==3:
647 state = eDVBCI_UI.getInstance().getState(slot)
648 print '-2-stat',state
651 self.camtimer.start(100,True)
653 self.session.nav.stopService()
654 self.session.open( MessageBox, _("CAM2_NOT_INSERTED\nPress exit!"), MessageBox.TYPE_ERROR)
655 self.rlist[self["testlist"].getCurrent()[1]]="fail"
656 self.tunemsgtimer.stop()
657 # self.rlist[index]="fail"
658 # self["resultlist"].updateList(self.rlist)
659 elif self.camstep == 4:
661 appname = eDVBCI_UI.getInstance().getAppName(slot)
662 print 'appname',appname
664 self.session.nav.stopService()
665 self.session.open( MessageBox, _("NO_GET_APPNAME\nPress exit!"), MessageBox.TYPE_ERROR)
666 self.rlist[self["testlist"].getCurrent()[1]]="fail"
667 self.tunemsgtimer.stop()
671 # self.session.open( MessageBox, _("CAM OK!"), MessageBox.TYPE_INFO,2)
673 # ikseong - for 22000 tp
675 filename = ("/proc/stb/tsmux/ci0_input")
676 fd = open(filename,'w')
680 # filename = ("/proc/stb/tsmux/ci1_input")
681 # fd = open(filename,'w')
684 fd=open("/proc/stb/tsmux/input1","w")
685 # fd=open("/proc/stb/tsmux/input0","w")
688 print "CI loop test!!!!!!!!!!!!!!"
690 def resetSource(self):
691 fd=open("/proc/stb/tsmux/input1","w")
694 print "CI loop test end!!!!!!!!!!!!!!"
697 self.tuningtimer.stop()
698 self.session.openWithCallback(self.tuneback, MessageBox, _("%s ok?" %(self["testlist"].getCurrent()[0])), MessageBox.TYPE_YESNO)
700 def tuneback(self,yesno):
701 self.session.nav.stopService() # try to disable foreground service
703 self.rlist[self["testlist"].getCurrent()[1]]="pass"
704 if self.tunerlock == 0:
705 self.rlist[self["testlist"].getCurrent()[1]]="fail"
706 elif self["testlist"].getCurrent()[1] == self.cam_index and self.camstep < 5:
707 self.rlist[self["testlist"].getCurrent()[1]]="fail"
709 self.rlist[self["testlist"].getCurrent()[1]]="fail"
710 if self["testlist"].getCurrent()[1] == 6: # YC
711 self.avswitch.setColorFormat(0)
713 self["resultlist"].updateList(self.rlist)
716 self.avswitch.setInput("SCART")
718 self.session.openWithCallback(self.check6, MessageBox, _("Scart loop ok?"), MessageBox.TYPE_YESNO)
720 def check6(self,yesno):
722 self.rlist[self["testlist"].getCurrent()[1]]="pass"
724 self.rlist[self["testlist"].getCurrent()[1]]="fail"
725 self.avswitch.setInput("ENCODER")
730 self.rlist[self["testlist"].getCurrent()[1]]="pass"
732 self.rlist[self["testlist"].getCurrent()[1]]="fail"
735 self.session.openWithCallback(self.check7,RS232Test)
740 if self.oldref is None:
741 eref = eServiceReference("1:0:19:1324:3EF:1:C00000:0:0:0")
742 serviceHandler = eServiceCenter.getInstance()
743 servicelist = serviceHandler.list(eref)
744 if not servicelist is None:
745 ref = servicelist.getNext()
747 ref = self.getCurrentSelection()
748 print "servicelist none"
751 self.session.nav.stopService() # try to disable foreground service
753 ref.setData(1,0x1325)
756 ref.setData(4,0x64af79)
758 # ref.setData(1,0x6D3)
760 # ref.setData(3,0xA4)
761 # ref.setData(4,0xA00000)
762 self.session.nav.playService(ref)
763 self.avswitch.setColorFormat(0)
764 self.avswitch.setAspectRatio(0)
765 self.tuningtimer.start(2000,True)
768 def checkaging(self):
771 self["testlist"].moveToIndex(self.fdefaultIndex)
773 self["testlist"].moveToIndex(self.shutdownIndex)
775 # self["testlist"].instance.moveSelection(self["testlist"].instance.moveDown)
779 self.usbtimer.start(100,True)
785 self.rlist[self["testlist"].getCurrent()[1]]="try %d"%self.usbtry
786 self["resultlist"].updateList(self.rlist)
791 devices = [ "/autofs/sdc1", "/autofs/sdd1", "/autofs/sde1" ]
793 devices = [ "/autofs/sda1", "/autofs/sdb1" ]
795 devices = [ "/autofs/sdc1", "/autofs/sdd1" ]
802 if access(dev,F_OK|R_OK|W_OK):
803 dummy=open(dev+"/dummy03","w")
804 dummy.write("complete")
806 dummy=open(dev+"/dummy03","r")
807 if dummy.readline()=="complete":
808 print dev," - complete"
810 print dev," - readline error"
814 system("rm "+dev+"/dummy03")
816 print dev," - rw access error"
820 print dev," - file not exist"
823 print dev," - exceptional error"
829 elif result == len(devices):
830 self.session.open( MessageBox, _("USB test pass %d devices\nPress OK!"%result), MessageBox.TYPE_INFO)
831 self.rlist[self["testlist"].getCurrent()[1]]="pass"
833 if displayerror == 1:
834 self.session.open( MessageBox, _("USB test error : Success-%d"%result+" Fail-%d\nPress EXIT!"%(len(devices)-result)), MessageBox.TYPE_ERROR)
835 self.rlist[self["testlist"].getCurrent()[1]]="fail"
837 self.usbtimer.start(1100,True)
841 # system("/etc/init.d/networking stop")
842 system("ifconfig eth0 192.168.0.10")
843 # system("/etc/init.d/networking start")
844 cmd1 = "ping -c 1 192.168.0.100"
845 self.PingConsole = Console()
846 self.PingConsole.ePopen(cmd1, self.checkNetworkStateFinished,self.NetworkStatedataAvail)
848 def checkNetworkStateFinished(self, result, retval,extra_args):
849 (statecallback) = extra_args
850 if self.PingConsole is not None:
852 self.PingConsole = None
853 content = result.splitlines()
854 # print 'content',content
855 x = content[4].split()
865 def NetworkStatedataAvail(self,data):
870 # self.session.open( MessageBox, _("Ping test pass"), MessageBox.TYPE_INFO,2)
871 self.session.openWithCallback(self.openMacConfig ,MessageBox, _("Ping test pass"), MessageBox.TYPE_INFO,2)
876 self.session.open( MessageBox, _("Ping test fail\nPress exit"), MessageBox.TYPE_ERROR)
882 def openMacConfig(self, ret=False):
883 self.session.openWithCallback(self.macresult ,MacConfig,mactry=self.mactry)
888 self.rlist[self.ethernettestIndex]="pass"
889 # self.rlist[self["testlist"].getCurrent()[1]]="pass"
891 self.rlist[self.ethernettestIndex]="fail"
892 # self.rlist[self["testlist"].getCurrent()[1]]="fail"
896 def MemTest(self, which):
900 result = eMemtest.getInstance().dramtest()
902 result = eMemtest.getInstance().flashtest()
905 result = eMemtest.getInstance().dramtest()
906 result = eMemtest.getInstance().flashtest()
912 print index,self.rlist[index]
913 self.rlist[index]="pass"
915 print index,self.rlist[index]
916 self.rlist[index]="fail"
917 self["resultlist"].updateList(self.rlist)
919 def scciresult(self):
921 if smartcardtest == 1:
922 self.rlist[self["testlist"].getCurrent()[1]]="pass"
924 self.rlist[self["testlist"].getCurrent()[1]]="fail"
927 self.session.openWithCallback(self.scciresult ,SmartCardTest)
941 system("rm -R /etc/enigma2")
942 system("cp -R /usr/share/enigma2/defaults /etc/enigma2")
943 self.rlist[self["testlist"].getCurrent()[1]]="pass"
944 self["resultlist"].updateList(self.rlist)
946 self.rlist[self["testlist"].getCurrent()[1]]="fail"
947 self["resultlist"].updateList(self.rlist)
948 self.session.open( MessageBox, _("Factory reset fail"), MessageBox.TYPE_ERROR)
951 self.session.openWithCallback(self.shutdown ,MessageBox, _("Do you want to shut down?"), MessageBox.TYPE_YESNO)
953 def shutdown(self, yesno):
956 system("/usr/bin/showiframe /boot/backdrop.mvi")
966 # if self.oldref is not None:
967 # self.session.nav.playService(self.oldref)
970 class MacConfig(Screen):
972 <screen position="100,250" size="520,100" title="Mac Config" >
973 <eLabel text="Mac Address " position="10,15" size="200,40" font="Regular;30" />
974 <widget name="text" position="230,15" size="230,40" font="Regular;30" />
975 <widget name="text1" position="470,15" size="40,40" font="Regular;30" />
976 <eLabel text=" " position="5,55" zPosition="-1" size="510,5" backgroundColor="#02e1e8e6" />
977 <widget name="stattext" position="30,75" size="400,25" font="Regular;20" />
980 def __init__(self, session, mactry = 1):
981 self["actions"] = ActionMap(["DirectionActions","OkCancelActions"],
984 "left": self.keyleft,
985 "right": self.keyright,
986 "cancel": self.keyCancel,
989 Screen.__init__(self, session)
996 self.macaddr = "000000000000"
998 self["text"]=Label((self.macaddr))
999 self["text1"]= Label(("< >"))
1000 self["stattext"]= Label((""))
1007 def getModelInfo(self):
1008 if fileExists("/proc/stb/info/vumodel"):
1009 info = open("/proc/stb/info/vumodel").read()
1010 if info[:5] == "combo":
1012 print "MacConfig, model : combo"
1014 info = open("/proc/stb/info/version").read()
1015 if info[:2] == "14":
1017 print "MacConfig, model : solo"
1018 elif info[:2] == "12":
1020 print "MacConfig, model: duo"
1022 def loadmacaddr(self):
1027 devices = ["/autofs/sda1", "/autofs/sdb1", "/autofs/sdc1", "/autofs/sdd1", "/autofs/sde1" ]
1029 devices = [ "/autofs/sda1", "/autofs/sdb1" ]
1031 devices = [ "/autofs/sda1", "/autofs/sdb1", "/autofs/sdc1", "/autofs/sdd1" ]
1035 if fileExists(dev+"/macinfo.txt"):
1036 self.macfd = open(dev+"/macinfo.txt","r+")
1040 self["text"].setText(("cannot read usb!!"))
1041 self["text1"].setText((" "))
1042 self["stattext"].setText((" Press Exit Key."))
1046 macaddr=self.macfd.readline().split(":")
1047 self.macaddr=macaddr[1]+macaddr[2]+macaddr[3]+macaddr[4]+macaddr[5]+macaddr[6]
1049 self.ReadMacinfo = 1
1051 self["text"].setText(("cannot read usb!!"))
1052 self["text1"].setText((" "))
1053 self["stattext"].setText((" Press Exit Key."))
1056 def getmacaddr(self):
1057 if self.ReadMacinfo==0:
1061 cmd = "nanddump -s 0x" + str((self.mactry-1)*2) + "0000 -b -o -l 64 -p /dev/mtd5"
1062 elif self.model == 0 or self.model == 1:
1063 cmd = "nanddump -s 0x" + str((self.mactry-1)*2) + "0000 -b -o -l 64 -p /dev/mtd4"
1064 self.macConsole = Console()
1065 self.macConsole.ePopen(cmd, self.readmac,self.checkReadmac)
1069 def readmac(self, result, retval,extra_args=None):
1070 (callback) = extra_args
1071 if self.macConsole is not None:
1073 self.macConsole = None
1075 content =result.splitlines()
1077 if x.startswith('0x000'+str((self.mactry-1)*2)+'0010:'):
1081 elif len(macline) < 10:
1084 mac = macline[5]+":"+macline[6]+":"+macline[7]+":"+macline[8]+":"+macline[9]+":"+macline[10]
1085 self["stattext"].setText(("now : "+mac))
1088 def checkReadmac(self,data):
1090 print "block %d is bad block" % self.mactry
1091 self.mactry = self.mactry + 1
1093 self.session.open(MessageBox, _("FLASH IS BROKEN"), type = MessageBox.TYPE_INFO, enable_input = False)
1098 print 'mac dump read error'
1101 print 'mac address read ok'
1106 if self.ReadMacinfo==0 :
1108 macaddress = long(self.macaddr,16)-1
1110 macaddress = 0xffffffffffff
1111 self.macaddr = "%012x"%macaddress
1115 if self.ReadMacinfo==0 :
1117 macaddress = long(self.macaddr,16)+1
1118 if macaddress > 0xffffffffffff:
1120 self.macaddr = "%012x"%macaddress
1123 def displaymac(self):
1124 macaddr= self.macaddr
1125 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))))
1128 if self.ReadMacinfo==0 :
1131 macaddr = self.macaddr
1132 #make_mac_sector 00-99-99-99-00-00 > /tmp/mac.sector
1133 #flash_eraseall /dev/mtd4
1134 #nandwrite /dev/mtd4 /tmp/mac.sector -p
1135 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))
1138 system("flash_eraseall /dev/mtd5")
1139 system("nandwrite /dev/mtd5 /tmp/mac.sector -p")
1140 elif self.model == 0 or self.model ==1 :
1141 system("flash_eraseall /dev/mtd4")
1142 system("nandwrite /dev/mtd4 /tmp/mac.sector -p")
1143 macaddress = long(macaddr,16)+1
1144 if macaddress > 0xffffffffffff:
1146 macaddr = "%012x"%macaddress
1147 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))
1149 self.macfd.write(macwritetext)
1152 self.macaddr = macaddr
1155 self.session.open( MessageBox, _("Mac address fail"), MessageBox.TYPE_ERROR)
1160 def keyCancel(self):
1170 class ScCiTest(Screen):
1172 <screen position="120,225" size="440,200" title="CI Smartcard Test" >
1173 <widget name="testlist" position="10,0" size="340,120" />
1174 <widget name="resultlist" position="370,0" size="60,120" />
1175 <eLabel text=" " position="5,125" zPosition="-1" size="430,5" backgroundColor="#02e1e8e6" />
1176 <widget name="text" position="10,140" size="420,50" font="Regular;25" />
1179 def __init__(self, session):
1180 self["actions"] = ActionMap(["DirectionActions","OkCancelActions"],
1185 "cancel": self.keyCancel,
1188 Screen.__init__(self, session)
1190 tlist.append(("Smartcard 1 Test",0))
1191 tlist.append(("Smartcard 2 Test",1))
1192 tlist.append(("CI 1 Test",2))
1193 tlist.append(("CI 2 Test",3))
1194 self["testlist"] = MenuList(tlist)
1197 self.rlist.append((".."))
1198 self["resultlist"] = TestResultList(self.rlist)
1200 self.removecard = eTimer()
1201 self.removecard.callback.append(self.remove_card)
1202 self["text"]=Label(("Press OK Key"))
1203 self.camstate= eTimer()
1204 self.camstate.callback.append(self.cam_state)
1208 def keyCancel(self):
1210 print "result ", self.result
1217 self["text"].setText(_("Press OK Key"))
1218 self["testlist"].instance.moveSelection(self["testlist"].instance.moveUp)
1221 self["text"].setText(_("Press OK Key"))
1222 self["testlist"].instance.moveSelection(self["testlist"].instance.moveDown)
1225 print "line - ",self["testlist"].getCurrent()[1]
1226 index = self["testlist"].getCurrent()[1]
1228 if index==0 or index==1:
1229 self["text"].setText(_("Insert Card?"))
1231 elif index ==2 or index==3:
1232 self["text"].setText(_("Insert Cam"))
1238 self.camstate.start(1000,True)
1240 def setSource(self, cislot):
1241 filename = ("/proc/stb/tsmux/ci%d_input"%cislot)
1242 fd = open(filename,'w')
1246 def setInputSource(self, cislot):
1247 fd=open("/proc/stb/tsmux/input0","w")
1254 def resetSource(self):
1255 fd=open("/proc/stb/tsmux/input0","w")
1258 # fd = open("/proc/stb/tsmux/ci0_input","w")
1261 # fd = open("/proc/stb/tsmux/ci1_input","w")
1265 def channelstart(self):
1266 ref = eServiceReference("1:0:19:1324:3EF:1:C00000:0:0:0")
1271 ref.setData(4,0x640000)
1272 self.session.nav.playService(ref)
1274 def channelstop(self):
1275 self.session.nav.stopService() # try to disable foreground service
1277 def cam_state(self):
1278 index = self["testlist"].getCurrent()[1]
1283 print 'cam_state', self.camstep,self.camtry
1284 if self.camstep == 1:
1285 state = eDVBCI_UI.getInstance().getState(slot)
1290 self["text"].setText(_("Getting Cam name...."))
1291 self.camstate.start(5000,True)
1295 self.camstate.start(1000,True)
1297 self.session.open( MessageBox, _("NO_NOT_INSERTED"), MessageBox.TYPE_ERROR)
1298 self.rlist[index]="fail"
1299 self["resultlist"].updateList(self.rlist)
1301 elif self.camstep == 2:
1302 appname = eDVBCI_UI.getInstance().getAppName(slot)
1303 print 'appname',appname
1307 self.camstate.start(1000,True)
1309 self.session.open( MessageBox, _("NO_GET_APPNAME"), MessageBox.TYPE_ERROR)
1310 self.rlist[index]="fail"
1311 self["resultlist"].updateList(self.rlist)
1313 self["text"].setText(_("Get Cam name : %s"%appname+". \n Remove Cam!"))
1315 self.setInputSource(slot)
1316 self.setSource(slot)
1319 self.camstate.start(1000,True)
1320 elif self.camstep==3:
1321 state = eDVBCI_UI.getInstance().getState(slot)
1325 self.result += (1<<index)
1327 self.rlist[index]="pass"
1328 self["text"].setText(_("Press OK Key"))
1329 self["resultlist"].updateList(self.rlist)
1337 self.camstate.start(1000,True)
1340 self.session.open( MessageBox, _("NO_REMOVE_CAM"), MessageBox.TYPE_ERROR)
1341 self.rlist[index]="fail"
1342 self["resultlist"].updateList(self.rlist)
1344 def check_smart_card(self,which):
1348 result = eSctest.getInstance().check_smart_card("/dev/sci0")
1350 result = eSctest.getInstance().check_smart_card("/dev/sci1")
1360 self.session.open( MessageBox, _("1:NO_DEV_FOUND"), MessageBox.TYPE_ERROR)
1362 self.session.open( MessageBox, _("1:SC_NOT_INSERTED"), MessageBox.TYPE_ERROR)
1364 self.session.open( MessageBox, _("1:SC_NOT_VALID_ATR"), MessageBox.TYPE_ERROR)
1366 self.session.open( MessageBox, _("1:SC_READ_TIMEOUT"), MessageBox.TYPE_ERROR)
1367 self.rlist[which]="fail"
1368 self["resultlist"].updateList(self.rlist)
1371 def remove_card(self):
1372 index = self["testlist"].getCurrent()[1]
1374 result = eSctest.getInstance().eject_smart_card("/dev/sci0")
1376 result = eSctest.getInstance().eject_smart_card("/dev/sci1")
1377 print 'remove result' ,result
1379 self.rlist[index]="pass"
1380 self.result += (1<<index)
1383 self.session.open( MessageBox, _("2:NO_DEV_FOUND"), MessageBox.TYPE_ERROR)
1385 self.session.open( MessageBox, _("2:SC_NOT_INSERTED"), MessageBox.TYPE_ERROR)
1387 self.session.open( MessageBox, _("2:SC_NOT_VALID_ATR"), MessageBox.TYPE_ERROR)
1389 self.session.open( MessageBox, _("2:SC_NOT_REMOVED"), MessageBox.TYPE_ERROR)
1390 self.rlist[index]="fail"
1391 self["resultlist"].updateList(self.rlist)
1392 self["text"].setText(_("Press OK Key"))
1397 def ScTest(self, yesno):
1400 index = self["testlist"].getCurrent()[1]
1401 result = self.check_smart_card(index)
1403 self.removecard.start(100,True)
1404 self["text"].setText(_("Read Ok. Remove Card!"))
1410 class SmartCardTest(Screen):
1412 <screen position="300,240" size="160,120" title="SmartCard Test" >
1413 <widget name="text" position="10,10" size="140,100" font="Regular;22" />
1416 def __init__(self, session):
1417 self["actions"] = ActionMap(["DirectionActions", "OkCancelActions"],
1419 "cancel": self.keyCancel,
1420 "ok" : self.keyCancel
1423 Screen.__init__(self, session)
1424 # self["text"]=Label(("Press Key LEFT"))
1425 self["text"]=Label(("Testing Smartcard 1..."))
1427 self.smartcardtimer = eTimer()
1428 self.smartcardtimer.callback.append(self.check_smart_card)
1429 self.smartcardtimer.start(100,True)
1430 self.closetimer = eTimer()
1431 self.closetimer.callback.append(self.close)
1433 global smartcardtest
1439 def check_mode(self):
1441 if fileExists("/proc/stb/info/vumodel"):
1442 info = open("/proc/stb/info/vumodel").read()
1444 if info[:5] == "combo":
1448 info = open("/proc/stb/info/version").read()
1450 if info[:2] == "14":
1452 elif info[:2] == "12":
1455 # fd = open("/proc/stb/info/version","r")
1456 # version = fd.read()
1457 # if int(version,16) <= 0x1200A3:
1461 # if int(version,16) < 0x130000:
1463 # elif int(version,16) > 0x140000:
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)