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):
294 self["testlist"].moveToIndex(index)
297 def updateStatus(self):
298 index = self["testlist"].getCurrent()[1]
299 if index ==self.tuner1_1testIndex or index==self.tuner1_2testIndex:
301 result = eSctest.getInstance().getFrontendstatus(0)
304 result = eSctest.getInstance().getFrontendstatus(1)
306 if self.agingmode == 1:
308 result = eSctest.getInstance().getFrontendstatus(0)
310 if self.model == 2 and index==self.tuner2_2testIndex:
312 elif index == self.tuner1_2testIndex or index==self.tuner2_2testIndex:
317 print "eSctest.getInstance().getFrontendstatus - %d"%result
320 self.tunemsgtimer.stop()
321 self.session.nav.stopService()
322 self.avswitch.setColorFormat(0)
323 self.session.open( MessageBox, _("Tune%d %s Locking Fail..."%(tunno,hv)), MessageBox.TYPE_ERROR)
324 if self.agingmode==0:
325 self.rlist[self["testlist"].getCurrent()[1]]="fail"
329 if self.agingmode==1:
330 self.session.openWithCallback(self.checkaging,AgingTest)
332 def getversion(self):
334 fd = open("/proc/stb/info/version","r")
336 self["testversion"].setText(("Version %s"%version))
338 self["testversion"].setText(("Version no load"))
341 def getmacaddr(self):
344 cmd = "nanddump -s 0x" + str((self.mactry-1)*2) + "0000 -b -o -l 64 -p /dev/mtd5"
345 elif self.model == 0 or self.model == 1:
346 cmd = "nanddump -s 0x" + str((self.mactry-1)*2) + "0000 -b -o -l 64 -p /dev/mtd4"
347 self.macConsole = Console()
348 self.macConsole.ePopen(cmd, self.readmac,self.checkReadmac)
352 def readmac(self, result, retval,extra_args=None):
353 (callback) = extra_args
354 if self.macConsole is not None:
356 self.macConsole = None
358 content =result.splitlines()
360 if x.startswith('0x000'+str((self.mactry-1)*2)+'0010:'):
364 elif len(macline) < 10:
367 mac = macline[5]+":"+macline[6]+":"+macline[7]+":"+macline[8]+":"+macline[9]+":"+macline[10]
368 self["mactext"].setText(("MAC : "+mac))
371 def checkReadmac(self,data):
373 print "block %d is bad block" % self.mactry
374 self.mactry = self.mactry + 1
376 self.session.open(MessageBox, _("FLASH IS BROKEN"), type = MessageBox.TYPE_INFO, enable_input = False)
381 print 'mac dump read error'
384 print 'mac address read ok'
387 def TestAction(self):
389 # tlist.append((" 0. Sata & extend hdd test",self.satetestIndex=0))
390 # tlist.append((" 1. USB test",self.usbtestIndex=1))
391 # tlist.append((" 2. Front test",self.fronttestIndex=2))
392 # tlist.append((" 3. Smartcard test",self.smarttestIndex=3))
393 # tlist.append((" 4. T1 H 22K x 4:3 CVBS",self.tuner1_1testIndex=4))
394 # tlist.append((" 5. T1 V 22k o 16:9 RGB",self.tuner1_2testIndex=5))
395 # tlist.append((" 6. T2 H 22k x 4:3 YC",self.tuner2_1testIndex=6))
396 # tlist.append((" 7. T2 V 22k o 16:9 CVBS CAM",self.tuner2_2testIndex=7))
397 # tlist.append((" 8. VCR Scart loop",self.scarttestIndex=8))
398 # tlist.append((" 9. RS232 test",self.rs232testIndex=9))
399 # tlist.append(("10. Ethernet & mac test",self.ethernettestIndex=10))
400 # tlist.append(("11. DRAM test",11))
401 # tlist.append(("12. Flash test",12))
402 # tlist.append(("13. DRAM+Flash test",13))
403 # tlist.append(("11. Factory default",self.fdefaultIndex=11))
404 # tlist.append(("12. Shutdown",self.shutdownIndex=12))
408 print "line - ",self["testlist"].getCurrent()[1]
409 index = self["testlist"].getCurrent()[1]
411 if index==self.satetestIndex:
413 elif index==self.fronttestIndex:
415 elif index>=self.tuner1_1testIndex and index<=self.tuner2_2testIndex:
417 elif index==self.scarttestIndex:
419 elif index==self.rs232testIndex:
421 elif index==self.usbtestIndex:
423 elif index==self.ethernettestIndex:
425 elif index == self.smarttestIndex:
433 elif index==self.fdefaultIndex:
435 # elif index==self.shutdownIndex:
440 def shutdownaction(self):
441 if self["testlist"].getCurrent()[1] == self.shutdownIndex:
447 self.satatimer.start(100,True)
450 # print "try", self.satatry
451 if self.satatry == 0:
454 self.rlist[self["testlist"].getCurrent()[1]]="try %d"%self.satatry
455 self["resultlist"].updateList(self.rlist)
460 if fileExists("/autofs/sdb1"):
461 if access("/autofs/sdb1",F_OK|R_OK|W_OK):
462 dummy=open("/autofs/sdb1/dummy03","w")
463 dummy.write("complete")
465 dummy=open("/autofs/sdb1/dummy03","r")
466 if dummy.readline()=="complete":
467 print "/autofs/sdb1 - complete"
469 print "/autofs/sdb1 - readline error"
473 system("rm /autofs/sdb1/dummy03")
475 print "/autofs/sdb1 - rw access error"
479 print "/autofs/sdb1 - file not exist"
482 print "/autofs/sdb1 - exceptional error"
486 if fileExists("/media/hdd"):
487 if access("/media/hdd",F_OK|R_OK|W_OK):
488 dummy=open("/media/hdd/dummy03","w")
489 dummy.write("complete")
491 dummy=open("/media/hdd/dummy03","r")
492 if dummy.readline()=="complete":
493 print "/media/hdd - complete"
495 print "/media/hdd - readline error"
499 system("rm /media/hdd/dummy03")
501 print "/media/hdd - rw access error"
505 print "/media/hdd - file not exist"
508 print "/media/hdd - exceptional error"
513 self.session.open( MessageBox, _("Sata & extend hdd test pass"), MessageBox.TYPE_INFO)
514 self.rlist[self["testlist"].getCurrent()[1]]="pass"
517 self.session.open( MessageBox, _("One hdd test error"), MessageBox.TYPE_ERROR)
518 self.rlist[self["testlist"].getCurrent()[1]]="fail"
520 self.satatimer.start(1100,True)
523 self.session.open( MessageBox, _("Sata & extend hdd test error"), MessageBox.TYPE_ERROR)
524 self.rlist[self["testlist"].getCurrent()[1]]="fail"
526 self.satatimer.start(1100,True)
530 self.session.openWithCallback(self.displayresult ,FrontTest)
531 elif self.model == 1:
532 self.session.openWithCallback(self.displayresult ,FrontTest_solo)
533 elif self.model == 2:
534 self.session.openWithCallback(self.displayresult ,FrontTest_solo)
536 def displayresult(self):
539 self.rlist[self["testlist"].getCurrent()[1]]="pass"
541 self.rlist[self["testlist"].getCurrent()[1]]="fail"
543 INTERNAL_PID_STATUS_NOOP = 0
544 INTERNAL_PID_STATUS_WAITING = 1
545 INTERNAL_PID_STATUS_SUCCESSFUL = 2
546 INTERNAL_PID_STATUS_FAILED = 3
548 def TestTune(self,index):
549 if self.oldref is None:
550 eref = eServiceReference("1:0:19:1324:3EF:1:C00000:0:0:0")
551 serviceHandler = eServiceCenter.getInstance()
552 servicelist = serviceHandler.list(eref)
553 if not servicelist is None:
554 ref = servicelist.getNext()
556 ref = self.getCurrentSelection()
557 print "servicelist none"
560 self.session.nav.stopService() # try to disable foreground service
561 if index==self.tuner1_1testIndex:
566 ref.setData(4,0xA00000)
567 self.session.nav.playService(ref)
568 self.avswitch.setColorFormat(0)
569 self.avswitch.setAspectRatio(0)
570 elif index==self.tuner1_2testIndex:
573 self.camtimer.start(100,True)
575 ref.setData(1,0x1325)
578 ref.setData(4,0x64af79)
579 # ref.setData(0,0x19)
580 # ref.setData(1,0x83)
582 # ref.setData(3,0x85)
583 # ref.setData(4,0x640000)
584 self.session.nav.playService(ref)
585 self.avswitch.setColorFormat(1)
586 self.avswitch.setAspectRatio(6)
587 elif index==self.tuner2_1testIndex:
589 # self.camtimer.start(100,True)
594 ref.setData(4,0x820000)
595 self.session.nav.playService(ref)
596 self.avswitch.setColorFormat(2)
597 self.avswitch.setAspectRatio(0)
598 elif index==self.tuner2_2testIndex:
600 self.camtimer.start(100,True)
601 # ref.setData(0,0x19)
602 # ref.setData(1,0x83)
604 # ref.setData(3,0x85)
605 # ref.setData(4,0xC00000)
606 # ikseong - for 22000 tp ( /home/ikseong/share/lamedb_ORF)
609 ref.setData(1,0x1325)
612 ref.setData(4,0xC00000)
613 self.session.nav.playService(ref)
614 self.avswitch.setColorFormat(0)
615 self.avswitch.setAspectRatio(6)
618 ref.setData(1,0x1325)
621 ref.setData(4,0xfff029a)
622 self.session.nav.playService(ref)
623 self.avswitch.setColorFormat(2)
624 self.avswitch.setAspectRatio(0)
625 if self.model==0 or self.model==1:
627 self.tuningtimer.start(2000,True)
628 self.tunemsgtimer.start(3000, True)
631 self.tuningtimer.start(4000,True)
632 self.tunemsgtimer.start(5000, True)
635 if self.camstep == 1:
637 state = eDVBCI_UI.getInstance().getState(slot)
638 print '-1-stat',state
641 self.camtimer.start(100,True)
643 self.session.nav.stopService()
644 self.session.open( MessageBox, _("CAM1_NOT_INSERTED\nPress exit!"), MessageBox.TYPE_ERROR)
645 self.rlist[self["testlist"].getCurrent()[1]]="fail"
646 self.tunemsgtimer.stop()
647 # self.rlist[index]="fail"
648 # self["resultlist"].updateList(self.rlist)
649 elif self.camstep == 2:
651 appname = eDVBCI_UI.getInstance().getAppName(slot)
652 print 'appname',appname
654 self.session.nav.stopService()
655 self.session.open( MessageBox, _("NO_GET_APPNAME\nPress exit!"), MessageBox.TYPE_ERROR)
656 self.rlist[self["testlist"].getCurrent()[1]]="fail"
657 self.tunemsgtimer.stop()
660 self.camtimer.start(100,True)
661 elif self.camstep==3:
663 state = eDVBCI_UI.getInstance().getState(slot)
664 print '-2-stat',state
667 self.camtimer.start(100,True)
669 self.session.nav.stopService()
670 self.session.open( MessageBox, _("CAM2_NOT_INSERTED\nPress exit!"), MessageBox.TYPE_ERROR)
671 self.rlist[self["testlist"].getCurrent()[1]]="fail"
672 self.tunemsgtimer.stop()
673 # self.rlist[index]="fail"
674 # self["resultlist"].updateList(self.rlist)
675 elif self.camstep == 4:
677 appname = eDVBCI_UI.getInstance().getAppName(slot)
678 print 'appname',appname
680 self.session.nav.stopService()
681 self.session.open( MessageBox, _("NO_GET_APPNAME\nPress exit!"), MessageBox.TYPE_ERROR)
682 self.rlist[self["testlist"].getCurrent()[1]]="fail"
683 self.tunemsgtimer.stop()
687 # self.session.open( MessageBox, _("CAM OK!"), MessageBox.TYPE_INFO,2)
689 # ikseong - for 22000 tp
691 filename = ("/proc/stb/tsmux/ci0_input")
692 fd = open(filename,'w')
696 # filename = ("/proc/stb/tsmux/ci1_input")
697 # fd = open(filename,'w')
700 fd=open("/proc/stb/tsmux/input1","w")
701 # fd=open("/proc/stb/tsmux/input0","w")
704 print "CI loop test!!!!!!!!!!!!!!"
706 def resetSource(self):
707 fd=open("/proc/stb/tsmux/input1","w")
710 print "CI loop test end!!!!!!!!!!!!!!"
713 self.tuningtimer.stop()
714 self.session.openWithCallback(self.tuneback, MessageBox, _("%s ok?" %(self["testlist"].getCurrent()[0])), MessageBox.TYPE_YESNO)
716 def tuneback(self,yesno):
717 self.session.nav.stopService() # try to disable foreground service
719 self.rlist[self["testlist"].getCurrent()[1]]="pass"
720 if self.tunerlock == 0:
721 self.rlist[self["testlist"].getCurrent()[1]]="fail"
722 elif self["testlist"].getCurrent()[1] == self.cam_index and self.camstep < 5:
723 self.rlist[self["testlist"].getCurrent()[1]]="fail"
725 self.rlist[self["testlist"].getCurrent()[1]]="fail"
726 if self["testlist"].getCurrent()[1] == 6: # YC
727 self.avswitch.setColorFormat(0)
729 self["resultlist"].updateList(self.rlist)
732 self.avswitch.setInput("SCART")
734 self.session.openWithCallback(self.check6, MessageBox, _("Scart loop ok?"), MessageBox.TYPE_YESNO)
736 def check6(self,yesno):
738 self.rlist[self["testlist"].getCurrent()[1]]="pass"
740 self.rlist[self["testlist"].getCurrent()[1]]="fail"
741 self.avswitch.setInput("ENCODER")
746 self.rlist[self["testlist"].getCurrent()[1]]="pass"
748 self.rlist[self["testlist"].getCurrent()[1]]="fail"
751 self.session.openWithCallback(self.check7,RS232Test)
756 if self.oldref is None:
757 eref = eServiceReference("1:0:19:1324:3EF:1:C00000:0:0:0")
758 serviceHandler = eServiceCenter.getInstance()
759 servicelist = serviceHandler.list(eref)
760 if not servicelist is None:
761 ref = servicelist.getNext()
763 ref = self.getCurrentSelection()
764 print "servicelist none"
767 self.session.nav.stopService() # try to disable foreground service
769 ref.setData(1,0x1325)
772 ref.setData(4,0x64af79)
774 # ref.setData(1,0x6D3)
776 # ref.setData(3,0xA4)
777 # ref.setData(4,0xA00000)
778 self.session.nav.playService(ref)
779 self.avswitch.setColorFormat(0)
780 self.avswitch.setAspectRatio(0)
781 self.tuningtimer.start(2000,True)
784 def checkaging(self):
787 self["testlist"].moveToIndex(self.fdefaultIndex)
789 self["testlist"].moveToIndex(self.shutdownIndex)
791 # self["testlist"].instance.moveSelection(self["testlist"].instance.moveDown)
795 self.usbtimer.start(100,True)
801 self.rlist[self["testlist"].getCurrent()[1]]="try %d"%self.usbtry
802 self["resultlist"].updateList(self.rlist)
807 devices = [ "/autofs/sdc1", "/autofs/sdd1", "/autofs/sde1" ]
809 devices = [ "/autofs/sda1", "/autofs/sdb1" ]
811 devices = [ "/autofs/sdc1", "/autofs/sdd1" ]
818 if access(dev,F_OK|R_OK|W_OK):
819 dummy=open(dev+"/dummy03","w")
820 dummy.write("complete")
822 dummy=open(dev+"/dummy03","r")
823 if dummy.readline()=="complete":
824 print dev," - complete"
826 print dev," - readline error"
830 system("rm "+dev+"/dummy03")
832 print dev," - rw access error"
836 print dev," - file not exist"
839 print dev," - exceptional error"
845 elif result == len(devices):
846 self.session.open( MessageBox, _("USB test pass %d devices\nPress OK!"%result), MessageBox.TYPE_INFO)
847 self.rlist[self["testlist"].getCurrent()[1]]="pass"
849 if displayerror == 1:
850 self.session.open( MessageBox, _("USB test error : Success-%d"%result+" Fail-%d\nPress EXIT!"%(len(devices)-result)), MessageBox.TYPE_ERROR)
851 self.rlist[self["testlist"].getCurrent()[1]]="fail"
853 self.usbtimer.start(1100,True)
857 # system("/etc/init.d/networking stop")
858 system("ifconfig eth0 192.168.0.10")
859 # system("/etc/init.d/networking start")
860 cmd1 = "ping -c 1 192.168.0.100"
861 self.PingConsole = Console()
862 self.PingConsole.ePopen(cmd1, self.checkNetworkStateFinished,self.NetworkStatedataAvail)
864 def checkNetworkStateFinished(self, result, retval,extra_args):
865 (statecallback) = extra_args
866 if self.PingConsole is not None:
868 self.PingConsole = None
869 content = result.splitlines()
870 # print 'content',content
871 x = content[4].split()
881 def NetworkStatedataAvail(self,data):
886 # self.session.open( MessageBox, _("Ping test pass"), MessageBox.TYPE_INFO,2)
887 self.session.openWithCallback(self.openMacConfig ,MessageBox, _("Ping test pass"), MessageBox.TYPE_INFO,2)
892 self.session.open( MessageBox, _("Ping test fail\nPress exit"), MessageBox.TYPE_ERROR)
898 def openMacConfig(self, ret=False):
899 self.session.openWithCallback(self.macresult ,MacConfig,mactry=self.mactry)
904 self.rlist[self.ethernettestIndex]="pass"
905 # self.rlist[self["testlist"].getCurrent()[1]]="pass"
907 self.rlist[self.ethernettestIndex]="fail"
908 # self.rlist[self["testlist"].getCurrent()[1]]="fail"
912 def MemTest(self, which):
916 result = eMemtest.getInstance().dramtest()
918 result = eMemtest.getInstance().flashtest()
921 result = eMemtest.getInstance().dramtest()
922 result = eMemtest.getInstance().flashtest()
928 print index,self.rlist[index]
929 self.rlist[index]="pass"
931 print index,self.rlist[index]
932 self.rlist[index]="fail"
933 self["resultlist"].updateList(self.rlist)
935 def scciresult(self):
937 if smartcardtest == 1:
938 self.rlist[self["testlist"].getCurrent()[1]]="pass"
940 self.rlist[self["testlist"].getCurrent()[1]]="fail"
943 self.session.openWithCallback(self.scciresult ,SmartCardTest,stbmodel=self.model)
957 system("rm -R /etc/enigma2")
958 system("cp -R /usr/share/enigma2/defaults /etc/enigma2")
959 self.rlist[self["testlist"].getCurrent()[1]]="pass"
960 self["resultlist"].updateList(self.rlist)
962 self.rlist[self["testlist"].getCurrent()[1]]="fail"
963 self["resultlist"].updateList(self.rlist)
964 self.session.open( MessageBox, _("Factory reset fail"), MessageBox.TYPE_ERROR)
967 self.session.openWithCallback(self.shutdown ,MessageBox, _("Do you want to shut down?"), MessageBox.TYPE_YESNO)
969 def shutdown(self, yesno):
972 system("/usr/bin/showiframe /boot/backdrop.mvi")
982 # if self.oldref is not None:
983 # self.session.nav.playService(self.oldref)
986 class MacConfig(Screen):
988 <screen position="100,250" size="520,100" title="Mac Config" >
989 <eLabel text="Mac Address " position="10,15" size="200,40" font="Regular;30" />
990 <widget name="text" position="230,15" size="230,40" font="Regular;30" />
991 <widget name="text1" position="470,15" size="40,40" font="Regular;30" />
992 <eLabel text=" " position="5,55" zPosition="-1" size="510,5" backgroundColor="#02e1e8e6" />
993 <widget name="stattext" position="30,75" size="400,25" font="Regular;20" />
996 def __init__(self, session, mactry = 1):
997 self["actions"] = ActionMap(["DirectionActions","OkCancelActions"],
1000 "left": self.keyleft,
1001 "right": self.keyright,
1002 "cancel": self.keyCancel,
1005 Screen.__init__(self, session)
1007 self.mactry = mactry
1012 self.macaddr = "000000000000"
1013 self.ReadMacinfo = 0
1014 self["text"]=Label((self.macaddr))
1015 self["text1"]= Label(("< >"))
1016 self["stattext"]= Label((""))
1023 def getModelInfo(self):
1025 if fileExists("/proc/stb/info/vumodel"):
1026 info = open("/proc/stb/info/vumodel").read().strip()
1030 print "MacConfig, model : combo"
1034 print "MacConfig, model : solo"
1038 print "MacConfig, model : duo"
1039 if getmodel == 0 and fileExists("/proc/stb/info/version"):
1040 info = open("/proc/stb/info/version").read()
1041 # print info,info[:2]
1042 if info[:2] == "14":
1044 print "MacConfig, model : solo_"
1045 elif info[:2] == "12":
1047 print "MacConfig, model: duo_"
1049 def loadmacaddr(self):
1054 devices = ["/autofs/sdb1", "/autofs/sdc1", "/autofs/sdd1", "/autofs/sde1" ]
1056 devices = [ "/autofs/sda1", "/autofs/sdb1" ]
1058 devices = [ "/autofs/sdb1", "/autofs/sdc1", "/autofs/sdd1" ]
1062 if fileExists(dev+"/macinfo.txt"):
1063 print "<open>"+dev+"/macinfo.txt"
1064 self.macfd = open(dev+"/macinfo.txt","r+")
1068 self["text"].setText(("cannot read usb!!"))
1069 self["text1"].setText((" "))
1070 self["stattext"].setText((" Press Exit Key."))
1074 macaddr=self.macfd.readline().split(":")
1075 self.macaddr=macaddr[1]+macaddr[2]+macaddr[3]+macaddr[4]+macaddr[5]+macaddr[6]
1077 self.ReadMacinfo = 1
1079 self["text"].setText(("cannot read usb!!"))
1080 self["text1"].setText((" "))
1081 self["stattext"].setText((" Press Exit Key."))
1084 def getmacaddr(self):
1085 if self.ReadMacinfo==0:
1089 cmd = "nanddump -s 0x" + str((self.mactry-1)*2) + "0000 -b -o -l 64 -p /dev/mtd5"
1090 elif self.model == 0 or self.model == 1:
1091 cmd = "nanddump -s 0x" + str((self.mactry-1)*2) + "0000 -b -o -l 64 -p /dev/mtd4"
1092 self.macConsole = Console()
1093 self.macConsole.ePopen(cmd, self.readmac,self.checkReadmac)
1097 def readmac(self, result, retval,extra_args=None):
1098 (callback) = extra_args
1099 if self.macConsole is not None:
1101 self.macConsole = None
1103 content =result.splitlines()
1105 if x.startswith('0x000'+str((self.mactry-1)*2)+'0010:'):
1109 elif len(macline) < 10:
1112 mac = macline[5]+":"+macline[6]+":"+macline[7]+":"+macline[8]+":"+macline[9]+":"+macline[10]
1113 self["stattext"].setText(("now : "+mac))
1116 def checkReadmac(self,data):
1118 print "block %d is bad block" % self.mactry
1119 self.mactry = self.mactry + 1
1121 self.session.open(MessageBox, _("FLASH IS BROKEN"), type = MessageBox.TYPE_INFO, enable_input = False)
1126 print 'mac dump read error'
1129 print 'mac address read ok'
1134 if self.ReadMacinfo==0 :
1136 macaddress = long(self.macaddr,16)-1
1138 macaddress = 0xffffffffffff
1139 self.macaddr = "%012x"%macaddress
1143 if self.ReadMacinfo==0 :
1145 macaddress = long(self.macaddr,16)+1
1146 if macaddress > 0xffffffffffff:
1148 self.macaddr = "%012x"%macaddress
1151 def displaymac(self):
1152 macaddr= self.macaddr
1153 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))))
1156 if self.ReadMacinfo==0 :
1159 macaddr = self.macaddr
1160 #make_mac_sector 00-99-99-99-00-00 > /tmp/mac.sector
1161 #flash_eraseall /dev/mtd4
1162 #nandwrite /dev/mtd4 /tmp/mac.sector -p
1163 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))
1166 system("flash_eraseall /dev/mtd5")
1167 system("nandwrite /dev/mtd5 /tmp/mac.sector -p")
1168 elif self.model == 0 or self.model ==1 :
1169 system("flash_eraseall /dev/mtd4")
1170 system("nandwrite /dev/mtd4 /tmp/mac.sector -p")
1171 macaddress = long(macaddr,16)+1
1172 if macaddress > 0xffffffffffff:
1174 macaddr = "%012x"%macaddress
1175 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))
1177 self.macfd.write(macwritetext)
1180 self.macaddr = macaddr
1183 self.session.open( MessageBox, _("Mac address fail"), MessageBox.TYPE_ERROR)
1188 def keyCancel(self):
1198 class ScCiTest(Screen):
1200 <screen position="120,225" size="440,200" title="CI Smartcard Test" >
1201 <widget name="testlist" position="10,0" size="340,120" />
1202 <widget name="resultlist" position="370,0" size="60,120" />
1203 <eLabel text=" " position="5,125" zPosition="-1" size="430,5" backgroundColor="#02e1e8e6" />
1204 <widget name="text" position="10,140" size="420,50" font="Regular;25" />
1207 def __init__(self, session):
1208 self["actions"] = ActionMap(["DirectionActions","OkCancelActions"],
1213 "cancel": self.keyCancel,
1216 Screen.__init__(self, session)
1218 tlist.append(("Smartcard 1 Test",0))
1219 tlist.append(("Smartcard 2 Test",1))
1220 tlist.append(("CI 1 Test",2))
1221 tlist.append(("CI 2 Test",3))
1222 self["testlist"] = MenuList(tlist)
1225 self.rlist.append((".."))
1226 self["resultlist"] = TestResultList(self.rlist)
1228 self.removecard = eTimer()
1229 self.removecard.callback.append(self.remove_card)
1230 self["text"]=Label(("Press OK Key"))
1231 self.camstate= eTimer()
1232 self.camstate.callback.append(self.cam_state)
1236 def keyCancel(self):
1238 print "result ", self.result
1245 self["text"].setText(_("Press OK Key"))
1246 self["testlist"].instance.moveSelection(self["testlist"].instance.moveUp)
1249 self["text"].setText(_("Press OK Key"))
1250 self["testlist"].instance.moveSelection(self["testlist"].instance.moveDown)
1253 print "line - ",self["testlist"].getCurrent()[1]
1254 index = self["testlist"].getCurrent()[1]
1256 if index==0 or index==1:
1257 self["text"].setText(_("Insert Card?"))
1259 elif index ==2 or index==3:
1260 self["text"].setText(_("Insert Cam"))
1266 self.camstate.start(1000,True)
1268 def setSource(self, cislot):
1269 filename = ("/proc/stb/tsmux/ci%d_input"%cislot)
1270 fd = open(filename,'w')
1274 def setInputSource(self, cislot):
1275 fd=open("/proc/stb/tsmux/input0","w")
1282 def resetSource(self):
1283 fd=open("/proc/stb/tsmux/input0","w")
1286 # fd = open("/proc/stb/tsmux/ci0_input","w")
1289 # fd = open("/proc/stb/tsmux/ci1_input","w")
1293 def channelstart(self):
1294 ref = eServiceReference("1:0:19:1324:3EF:1:C00000:0:0:0")
1299 ref.setData(4,0x640000)
1300 self.session.nav.playService(ref)
1302 def channelstop(self):
1303 self.session.nav.stopService() # try to disable foreground service
1305 def cam_state(self):
1306 index = self["testlist"].getCurrent()[1]
1311 print 'cam_state', self.camstep,self.camtry
1312 if self.camstep == 1:
1313 state = eDVBCI_UI.getInstance().getState(slot)
1318 self["text"].setText(_("Getting Cam name...."))
1319 self.camstate.start(5000,True)
1323 self.camstate.start(1000,True)
1325 self.session.open( MessageBox, _("NO_NOT_INSERTED"), MessageBox.TYPE_ERROR)
1326 self.rlist[index]="fail"
1327 self["resultlist"].updateList(self.rlist)
1329 elif self.camstep == 2:
1330 appname = eDVBCI_UI.getInstance().getAppName(slot)
1331 print 'appname',appname
1335 self.camstate.start(1000,True)
1337 self.session.open( MessageBox, _("NO_GET_APPNAME"), MessageBox.TYPE_ERROR)
1338 self.rlist[index]="fail"
1339 self["resultlist"].updateList(self.rlist)
1341 self["text"].setText(_("Get Cam name : %s"%appname+". \n Remove Cam!"))
1343 self.setInputSource(slot)
1344 self.setSource(slot)
1347 self.camstate.start(1000,True)
1348 elif self.camstep==3:
1349 state = eDVBCI_UI.getInstance().getState(slot)
1353 self.result += (1<<index)
1355 self.rlist[index]="pass"
1356 self["text"].setText(_("Press OK Key"))
1357 self["resultlist"].updateList(self.rlist)
1365 self.camstate.start(1000,True)
1368 self.session.open( MessageBox, _("NO_REMOVE_CAM"), MessageBox.TYPE_ERROR)
1369 self.rlist[index]="fail"
1370 self["resultlist"].updateList(self.rlist)
1372 def check_smart_card(self,which):
1376 result = eSctest.getInstance().check_smart_card("/dev/sci0")
1378 result = eSctest.getInstance().check_smart_card("/dev/sci1")
1388 self.session.open( MessageBox, _("1:NO_DEV_FOUND"), MessageBox.TYPE_ERROR)
1390 self.session.open( MessageBox, _("1:SC_NOT_INSERTED"), MessageBox.TYPE_ERROR)
1392 self.session.open( MessageBox, _("1:SC_NOT_VALID_ATR"), MessageBox.TYPE_ERROR)
1394 self.session.open( MessageBox, _("1:SC_READ_TIMEOUT"), MessageBox.TYPE_ERROR)
1395 self.rlist[which]="fail"
1396 self["resultlist"].updateList(self.rlist)
1399 def remove_card(self):
1400 index = self["testlist"].getCurrent()[1]
1402 result = eSctest.getInstance().eject_smart_card("/dev/sci0")
1404 result = eSctest.getInstance().eject_smart_card("/dev/sci1")
1405 print 'remove result' ,result
1407 self.rlist[index]="pass"
1408 self.result += (1<<index)
1411 self.session.open( MessageBox, _("2:NO_DEV_FOUND"), MessageBox.TYPE_ERROR)
1413 self.session.open( MessageBox, _("2:SC_NOT_INSERTED"), MessageBox.TYPE_ERROR)
1415 self.session.open( MessageBox, _("2:SC_NOT_VALID_ATR"), MessageBox.TYPE_ERROR)
1417 self.session.open( MessageBox, _("2:SC_NOT_REMOVED"), MessageBox.TYPE_ERROR)
1418 self.rlist[index]="fail"
1419 self["resultlist"].updateList(self.rlist)
1420 self["text"].setText(_("Press OK Key"))
1425 def ScTest(self, yesno):
1428 index = self["testlist"].getCurrent()[1]
1429 result = self.check_smart_card(index)
1431 self.removecard.start(100,True)
1432 self["text"].setText(_("Read Ok. Remove Card!"))
1438 class SmartCardTest(Screen):
1440 <screen position="300,240" size="160,120" title="SmartCard Test" >
1441 <widget name="text" position="10,10" size="140,100" font="Regular;22" />
1444 def __init__(self, session, stbmodel = 0):
1445 self["actions"] = ActionMap(["DirectionActions", "OkCancelActions"],
1447 "cancel": self.keyCancel,
1448 "ok" : self.keyCancel
1451 Screen.__init__(self, session)
1452 # self["text"]=Label(("Press Key LEFT"))
1453 self["text"]=Label(("Testing Smartcard 1..."))
1455 self.smartcardtimer = eTimer()
1456 self.smartcardtimer.callback.append(self.check_smart_card)
1457 self.closetimer = eTimer()
1458 self.closetimer.callback.append(self.close)
1460 global smartcardtest
1462 self.model = stbmodel
1464 self.smartcardtimer.start(100,True)
1466 def check_smart_card(self):
1467 global smartcardtest
1468 index = self.smartcard
1471 if self.Testmode==0:
1472 result = eSctest.getInstance().check_smart_card("/dev/sci0")
1474 result = eSctest.getInstance().n_check_smart_card("/dev/sci0")
1476 if self.Testmode==0:
1477 result = eSctest.getInstance().check_smart_card("/dev/sci1")
1479 result = eSctest.getInstance().n_check_smart_card("/dev/sci1")
1487 if(index== 0 and ( self.model== 0 or self.model==2) ):
1489 self["text"].setText(_("Testing Smartcard 2..."))
1490 self.smartcardtimer.start(100,True)
1492 elif (index==1 or self.model==1):
1494 # self.session.open( MessageBox, _("Smart Card OK!!"), MessageBox.TYPE_INFO,2)
1496 self["text"].setText(_("Smart Card OK!!"))
1497 self.closetimer.start(2000,True)
1498 self.smartcardtimer.stop()
1499 # self.session.openWithCallback(self.check6, MessageBox, _("Scart loop ok?"), MessageBox.TYPE_INFO)
1502 # self.session.open( MessageBox, _("%d:NO_DEV_FOUND"%(index+1)), MessageBox.TYPE_ERROR)
1503 # elif result == -2:
1504 # self.session.open( MessageBox, _("%d:SC_NOT_INSERTED"%(index+1)), MessageBox.TYPE_ERROR)
1505 # elif result == -3:
1506 # self.session.open( MessageBox, _("%d:SC_NOT_VALID_ATR"%(index+1)), MessageBox.TYPE_ERROR)
1507 # elif result == -5:
1508 # self.session.open( MessageBox, _("%d:SC_READ_TIMEOUT"%(index+1)), MessageBox.TYPE_ERROR)
1510 self["text"].setText(_("Smart Card 1 Error!\nerrorcode=%d"%result))
1512 self["text"].setText(_("Smart Card 2 Error!\nerrorcode=%d"%result))
1513 self.closetimer.start(2000,True)
1514 self.smartcardtimer.stop()
1517 def keyCancel(self):
1524 class FrontTest(Screen):
1526 <screen position="260,240" size="200,180" title="Front Test" >
1527 <widget name="text" position="10,10" size="180,160" font="Regular;22" />
1530 def __init__(self, session):
1531 self["actions"] = ActionMap(["DirectionActions", "OkCancelActions"],
1535 "down":self.keyDown,
1536 "cancel": self.keyCancel,
1539 Screen.__init__(self, session)
1540 self["text"]=Label(("Wheel LEFT"))
1543 self.fronttimer= eTimer()
1544 self.fronttimer.callback.append(self.FrontAnimate)
1545 self.frontturnonoff = 0
1546 eSctest.getInstance().VFD_Open()
1547 self.keytimeout = eTimer()
1548 self.keytimeout.callback.append(self.KeyTimeOut)
1549 self.keytimeout.start(5000,True)
1551 def KeyTimeOut(self):
1553 self["text"].setText(("Wheel LEFT ERROR"))
1554 elif self.step ==2 :
1555 self["text"].setText(("Wheel RIGHT ERROR"))
1556 elif self.step == 3:
1557 self["text"].setText(("Wheel BUTTON ERROR"))
1561 def keyCancel(self):
1563 self.fronttimer.stop()
1564 eSctest.getInstance().VFD_Close()
1573 self.keytimeout.stop()
1574 self.keytimeout.start(5000,True)
1576 self["text"].setText(_("Press Front Wheel"))
1580 self.keytimeout.stop()
1581 self.keytimeout.start(5000,True)
1583 self["text"].setText(_("Wheel RIGHT"))
1589 self.keytimeout.stop()
1591 self.fronttimer.start(1000,True)
1592 self["text"].setText(("Front Test OK!\nPress Exit Key"))
1593 # elif self.step==4:
1595 # self.fronttimer.stop()
1596 # eSctest.getInstance().VFD_Close()
1600 def FrontAnimate(self):
1601 if (self.frontturnonoff==0):
1602 eSctest.getInstance().turnon_VFD()
1603 self.frontturnonoff = 1
1605 self.frontturnonoff = 0
1606 eSctest.getInstance().turnoff_VFD()
1607 self.fronttimer.start(1000,True)
1610 class FrontTest_solo(Screen):
1612 <screen position="260,240" size="200,180" title="Front Test" >
1613 <widget name="text" position="10,10" size="180,160" font="Regular;22" />
1616 def __init__(self, session):
1617 self["actions"] = ActionMap(["DirectionActions", "OkCancelActions","GlobalActions"],
1620 "cancel": self.keyCancel,
1621 "left": self.keyleft,
1622 "right": self.keyright,
1623 "power_down": self.keypower,
1624 "volumeUp": self.keyvolup,
1625 "volumeDown": self.keyvoldown,
1628 Screen.__init__(self, session)
1629 self["text"]=Label(("Press Front STANDBY"))
1632 self.fronttimer= eTimer()
1633 self.fronttimer.callback.append(self.FrontAnimate)
1634 self.frontturnonoff = 0
1635 eSctest.getInstance().VFD_Open()
1636 self.keytimeout = eTimer()
1637 self.keytimeout.callback.append(self.KeyTimeOut)
1638 self.keytimeout.start(5000,True)
1640 def KeyTimeOut(self):
1642 self["text"].setText(("Front STANDBY ERROR\nPress exit!"))
1643 elif self.step == 2 :
1644 self["text"].setText(("Front CH - ERROR\nPress exit!"))
1645 elif self.step == 3:
1646 self["text"].setText(("Front CH + ERROR\nPress exit!"))
1647 elif self.step == 4 :
1648 self["text"].setText(("Front VOL - ERROR\nPress exit!"))
1649 elif self.step == 5:
1650 self["text"].setText(("Front VOL + ERROR\nPress exit!"))
1657 self.keytimeout.stop()
1658 self.keytimeout.start(5000,True)
1660 self["text"].setText(_("Press Front CH -"))
1664 self.keytimeout.stop()
1665 self.keytimeout.start(5000,True)
1667 self["text"].setText(_("Press Front VOL -"))
1671 self.keytimeout.stop()
1672 self.keytimeout.start(5000,True)
1674 self["text"].setText(_("Press Front CH +"))
1678 self.keytimeout.stop()
1680 self.fronttimer.start(1000,True)
1681 self["text"].setText(_("Front LED OK?\n\nyes-ok\nno-exit"))
1682 # self["text"].setText(("Front Test OK!\nPress Exit Key"))
1684 def keyvoldown(self):
1686 self.keytimeout.stop()
1687 self.keytimeout.start(5000,True)
1689 self["text"].setText(_("Press Front VOL +"))
1691 def checkled(self, yesno):
1698 def keyCancel(self):
1700 self.fronttimer.stop()
1701 eSctest.getInstance().VFD_Close()
1707 self.fronttimer.stop()
1708 eSctest.getInstance().VFD_Close()
1713 def FrontAnimate(self):
1714 if (self.frontturnonoff==0):
1715 eSctest.getInstance().turnon_VFD()
1716 self.frontturnonoff = 1
1718 self.frontturnonoff = 0
1719 eSctest.getInstance().turnoff_VFD()
1720 self.fronttimer.start(1000,True)
1729 class RS232Test(Screen):
1731 <screen position="300,240" size="160,100" title="RS232 Test" >
1732 <widget name="text" position="10,10" size="140,80" font="Regular;22" />
1735 def __init__(self, session):
1736 self["actions"] = ActionMap(["DirectionActions", "OkCancelActions"],
1738 "cancel": self.keyCancel,
1741 Screen.__init__(self, session)
1742 self["text"]=Label(("Press \"Enter\" Key"))
1743 self.timer = eTimer()
1744 self.timer.callback.append(self.checkrs232)
1745 self.timer.start(100, True)
1747 def checkrs232(self):
1750 rs=open('/dev/ttyS0','r')
1752 r,w,e = select.select(rd, [], [], 10)
1767 def keyCancel(self):
1772 class AgingTest(Screen):
1774 <screen position="200,240" size="250,100" title="Aging Test" >
1775 <widget name="text1" position="10,10" size="230,40" font="Regular;22" />
1776 <widget name="text2" position="10,50" size="230,40" font="Regular;22" />
1779 def __init__(self, session):
1780 self["actions"] = ActionMap(["WizardActions","GlobalActions"],
1782 "agingend": self.keyEnd,
1783 "agingfinish": self.keyFinish,
1784 "volumeUp": self.nothing,
1785 "volumeDown": self.nothing,
1786 "volumeMute": self.nothing,
1789 Screen.__init__(self, session)
1790 self["text1"]=Label(("Exit - Press Pause Key"))
1791 self["text2"]=Label(("Reset - Press Stop Key"))
1792 # self.servicelist = ServiceList()
1793 # self.oldref = session.nav.getCurrentlyPlayingServiceReference()
1794 # print "oldref",self.oldref
1795 # session.nav.stopService() # try to disable foreground service
1798 self.tuningtimer = eTimer()
1799 self.tuningtimer.callback.append(self.updateStatus)
1800 # self.tuningtimer.start(2000,True)
1803 def updateStatus(self):
1804 result = eSctest.getInstance().getFrontendstatus(0)
1807 print "eSctest.getInstance().getFrontendstatus - %d"%result
1810 self.session.nav.stopService()
1811 self.session.open( MessageBox, _("Tune 1 Ver Locking Fail..."), MessageBox.TYPE_ERROR)
1816 self.session.nav.stopService()
1817 self.session.open( MessageBox, _("Tune 1 Ver Error %d..."%result), MessageBox.TYPE_ERROR)
1824 if self.oldref is None:
1825 eref = eServiceReference("1:0:19:1324:3EF:1:C00000:0:0:0")
1826 serviceHandler = eServiceCenter.getInstance()
1827 servicelist = serviceHandler.list(eref)
1828 if not servicelist is None:
1829 ref = servicelist.getNext()
1831 ref = self.getCurrentSelection()
1832 print "servicelist none"
1835 self.session.nav.stopService() # try to disable foreground service
1840 ref.setData(4,0x640000)
1841 self.session.nav.playService(ref)
1846 self.session.nav.stopService() # try to disable foreground service
1849 def keyFinish(self):
1852 self.session.nav.stopService() # try to disable foreground service
1864 def main(session, servicelist, **kwargs):
1868 Servicelist = servicelist
1869 bouquets = Servicelist.getBouquetList()
1871 bouquetSel = Session.openWithCallback(cleanup, FactoryTest)
1873 #def Plugins(**kwargs):
1874 # return PluginDescriptor(name=_("Factory Test"), description="Test App for Factory", where = PluginDescriptor.WHERE_EXTENSIONSMENU, fnc=main)