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 "/autofs/sdb1 - readline error"
499 system("rm /media/hdd/dummy03")
501 print "/autofs/sdb1 - rw access error"
505 print "/autofs/sdb1 - file not exist"
508 print "/autofs/sdb1 - 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 self.tuningtimer.start(4000,True)
626 self.tunemsgtimer.start(5000, True)
629 if self.camstep == 1:
631 state = eDVBCI_UI.getInstance().getState(slot)
632 print '-1-stat',state
635 self.camtimer.start(100,True)
637 self.session.nav.stopService()
638 self.session.open( MessageBox, _("CAM1_NOT_INSERTED\nPress exit!"), MessageBox.TYPE_ERROR)
639 self.rlist[self["testlist"].getCurrent()[1]]="fail"
640 self.tunemsgtimer.stop()
641 # self.rlist[index]="fail"
642 # self["resultlist"].updateList(self.rlist)
643 elif self.camstep == 2:
645 appname = eDVBCI_UI.getInstance().getAppName(slot)
646 print 'appname',appname
648 self.session.nav.stopService()
649 self.session.open( MessageBox, _("NO_GET_APPNAME\nPress exit!"), MessageBox.TYPE_ERROR)
650 self.rlist[self["testlist"].getCurrent()[1]]="fail"
651 self.tunemsgtimer.stop()
654 self.camtimer.start(100,True)
655 elif self.camstep==3:
657 state = eDVBCI_UI.getInstance().getState(slot)
658 print '-2-stat',state
661 self.camtimer.start(100,True)
663 self.session.nav.stopService()
664 self.session.open( MessageBox, _("CAM2_NOT_INSERTED\nPress exit!"), MessageBox.TYPE_ERROR)
665 self.rlist[self["testlist"].getCurrent()[1]]="fail"
666 self.tunemsgtimer.stop()
667 # self.rlist[index]="fail"
668 # self["resultlist"].updateList(self.rlist)
669 elif self.camstep == 4:
671 appname = eDVBCI_UI.getInstance().getAppName(slot)
672 print 'appname',appname
674 self.session.nav.stopService()
675 self.session.open( MessageBox, _("NO_GET_APPNAME\nPress exit!"), MessageBox.TYPE_ERROR)
676 self.rlist[self["testlist"].getCurrent()[1]]="fail"
677 self.tunemsgtimer.stop()
681 # self.session.open( MessageBox, _("CAM OK!"), MessageBox.TYPE_INFO,2)
683 # ikseong - for 22000 tp
685 filename = ("/proc/stb/tsmux/ci0_input")
686 fd = open(filename,'w')
690 # filename = ("/proc/stb/tsmux/ci1_input")
691 # fd = open(filename,'w')
694 fd=open("/proc/stb/tsmux/input1","w")
695 # fd=open("/proc/stb/tsmux/input0","w")
698 print "CI loop test!!!!!!!!!!!!!!"
700 def resetSource(self):
701 fd=open("/proc/stb/tsmux/input1","w")
704 print "CI loop test end!!!!!!!!!!!!!!"
707 self.tuningtimer.stop()
708 self.session.openWithCallback(self.tuneback, MessageBox, _("%s ok?" %(self["testlist"].getCurrent()[0])), MessageBox.TYPE_YESNO)
710 def tuneback(self,yesno):
711 self.session.nav.stopService() # try to disable foreground service
713 self.rlist[self["testlist"].getCurrent()[1]]="pass"
714 if self.tunerlock == 0:
715 self.rlist[self["testlist"].getCurrent()[1]]="fail"
716 elif self["testlist"].getCurrent()[1] == self.cam_index and self.camstep < 5:
717 self.rlist[self["testlist"].getCurrent()[1]]="fail"
719 self.rlist[self["testlist"].getCurrent()[1]]="fail"
720 if self["testlist"].getCurrent()[1] == 6: # YC
721 self.avswitch.setColorFormat(0)
723 self["resultlist"].updateList(self.rlist)
726 self.avswitch.setInput("SCART")
728 self.session.openWithCallback(self.check6, MessageBox, _("Scart loop ok?"), MessageBox.TYPE_YESNO)
730 def check6(self,yesno):
732 self.rlist[self["testlist"].getCurrent()[1]]="pass"
734 self.rlist[self["testlist"].getCurrent()[1]]="fail"
735 self.avswitch.setInput("ENCODER")
740 self.rlist[self["testlist"].getCurrent()[1]]="pass"
742 self.rlist[self["testlist"].getCurrent()[1]]="fail"
745 self.session.openWithCallback(self.check7,RS232Test)
750 if self.oldref is None:
751 eref = eServiceReference("1:0:19:1324:3EF:1:C00000:0:0:0")
752 serviceHandler = eServiceCenter.getInstance()
753 servicelist = serviceHandler.list(eref)
754 if not servicelist is None:
755 ref = servicelist.getNext()
757 ref = self.getCurrentSelection()
758 print "servicelist none"
761 self.session.nav.stopService() # try to disable foreground service
763 ref.setData(1,0x1325)
766 ref.setData(4,0x64af79)
768 # ref.setData(1,0x6D3)
770 # ref.setData(3,0xA4)
771 # ref.setData(4,0xA00000)
772 self.session.nav.playService(ref)
773 self.avswitch.setColorFormat(0)
774 self.avswitch.setAspectRatio(0)
775 self.tuningtimer.start(2000,True)
778 def checkaging(self):
781 self["testlist"].moveToIndex(self.fdefaultIndex)
783 self["testlist"].moveToIndex(self.shutdownIndex)
785 # self["testlist"].instance.moveSelection(self["testlist"].instance.moveDown)
789 self.usbtimer.start(100,True)
795 self.rlist[self["testlist"].getCurrent()[1]]="try %d"%self.usbtry
796 self["resultlist"].updateList(self.rlist)
801 devices = [ "/autofs/sdc1", "/autofs/sdd1", "/autofs/sde1" ]
803 devices = [ "/autofs/sda1", "/autofs/sdb1" ]
805 devices = [ "/autofs/sdc1", "/autofs/sdd1" ]
812 if access(dev,F_OK|R_OK|W_OK):
813 dummy=open(dev+"/dummy03","w")
814 dummy.write("complete")
816 dummy=open(dev+"/dummy03","r")
817 if dummy.readline()=="complete":
818 print dev," - complete"
820 print dev," - readline error"
824 system("rm "+dev+"/dummy03")
826 print dev," - rw access error"
830 print dev," - file not exist"
833 print dev," - exceptional error"
839 elif result == len(devices):
840 self.session.open( MessageBox, _("USB test pass %d devices\nPress OK!"%result), MessageBox.TYPE_INFO)
841 self.rlist[self["testlist"].getCurrent()[1]]="pass"
843 if displayerror == 1:
844 self.session.open( MessageBox, _("USB test error : Success-%d"%result+" Fail-%d\nPress EXIT!"%(len(devices)-result)), MessageBox.TYPE_ERROR)
845 self.rlist[self["testlist"].getCurrent()[1]]="fail"
847 self.usbtimer.start(1100,True)
851 # system("/etc/init.d/networking stop")
852 system("ifconfig eth0 192.168.0.10")
853 # system("/etc/init.d/networking start")
854 cmd1 = "ping -c 1 192.168.0.100"
855 self.PingConsole = Console()
856 self.PingConsole.ePopen(cmd1, self.checkNetworkStateFinished,self.NetworkStatedataAvail)
858 def checkNetworkStateFinished(self, result, retval,extra_args):
859 (statecallback) = extra_args
860 if self.PingConsole is not None:
862 self.PingConsole = None
863 content = result.splitlines()
864 # print 'content',content
865 x = content[4].split()
875 def NetworkStatedataAvail(self,data):
880 # self.session.open( MessageBox, _("Ping test pass"), MessageBox.TYPE_INFO,2)
881 self.session.openWithCallback(self.openMacConfig ,MessageBox, _("Ping test pass"), MessageBox.TYPE_INFO,2)
886 self.session.open( MessageBox, _("Ping test fail\nPress exit"), MessageBox.TYPE_ERROR)
892 def openMacConfig(self, ret=False):
893 self.session.openWithCallback(self.macresult ,MacConfig,mactry=self.mactry)
898 self.rlist[self.ethernettestIndex]="pass"
899 # self.rlist[self["testlist"].getCurrent()[1]]="pass"
901 self.rlist[self.ethernettestIndex]="fail"
902 # self.rlist[self["testlist"].getCurrent()[1]]="fail"
906 def MemTest(self, which):
910 result = eMemtest.getInstance().dramtest()
912 result = eMemtest.getInstance().flashtest()
915 result = eMemtest.getInstance().dramtest()
916 result = eMemtest.getInstance().flashtest()
922 print index,self.rlist[index]
923 self.rlist[index]="pass"
925 print index,self.rlist[index]
926 self.rlist[index]="fail"
927 self["resultlist"].updateList(self.rlist)
929 def scciresult(self):
931 if smartcardtest == 1:
932 self.rlist[self["testlist"].getCurrent()[1]]="pass"
934 self.rlist[self["testlist"].getCurrent()[1]]="fail"
937 self.session.openWithCallback(self.scciresult ,SmartCardTest,stbmodel=self.model)
951 system("rm -R /etc/enigma2")
952 system("cp -R /usr/share/enigma2/defaults /etc/enigma2")
953 self.rlist[self["testlist"].getCurrent()[1]]="pass"
954 self["resultlist"].updateList(self.rlist)
956 self.rlist[self["testlist"].getCurrent()[1]]="fail"
957 self["resultlist"].updateList(self.rlist)
958 self.session.open( MessageBox, _("Factory reset fail"), MessageBox.TYPE_ERROR)
961 self.session.openWithCallback(self.shutdown ,MessageBox, _("Do you want to shut down?"), MessageBox.TYPE_YESNO)
963 def shutdown(self, yesno):
966 system("/usr/bin/showiframe /boot/backdrop.mvi")
976 # if self.oldref is not None:
977 # self.session.nav.playService(self.oldref)
980 class MacConfig(Screen):
982 <screen position="100,250" size="520,100" title="Mac Config" >
983 <eLabel text="Mac Address " position="10,15" size="200,40" font="Regular;30" />
984 <widget name="text" position="230,15" size="230,40" font="Regular;30" />
985 <widget name="text1" position="470,15" size="40,40" font="Regular;30" />
986 <eLabel text=" " position="5,55" zPosition="-1" size="510,5" backgroundColor="#02e1e8e6" />
987 <widget name="stattext" position="30,75" size="400,25" font="Regular;20" />
990 def __init__(self, session, mactry = 1):
991 self["actions"] = ActionMap(["DirectionActions","OkCancelActions"],
994 "left": self.keyleft,
995 "right": self.keyright,
996 "cancel": self.keyCancel,
999 Screen.__init__(self, session)
1001 self.mactry = mactry
1006 self.macaddr = "000000000000"
1007 self.ReadMacinfo = 0
1008 self["text"]=Label((self.macaddr))
1009 self["text1"]= Label(("< >"))
1010 self["stattext"]= Label((""))
1017 def getModelInfo(self):
1019 if fileExists("/proc/stb/info/vumodel"):
1020 info = open("/proc/stb/info/vumodel").read().strip()
1024 print "MacConfig, model : combo"
1028 print "MacConfig, model : solo"
1032 print "MacConfig, model : duo"
1033 if getmodel == 0 and fileExists("/proc/stb/info/version"):
1034 info = open("/proc/stb/info/version").read()
1035 # print info,info[:2]
1036 if info[:2] == "14":
1038 print "MacConfig, model : solo_"
1039 elif info[:2] == "12":
1041 print "MacConfig, model: duo_"
1043 def loadmacaddr(self):
1048 devices = ["/autofs/sda1", "/autofs/sdb1", "/autofs/sdc1", "/autofs/sdd1", "/autofs/sde1" ]
1050 devices = [ "/autofs/sda1", "/autofs/sdb1" ]
1052 devices = [ "/autofs/sda1", "/autofs/sdb1", "/autofs/sdc1", "/autofs/sdd1" ]
1056 if fileExists(dev+"/macinfo.txt"):
1057 self.macfd = open(dev+"/macinfo.txt","r+")
1061 self["text"].setText(("cannot read usb!!"))
1062 self["text1"].setText((" "))
1063 self["stattext"].setText((" Press Exit Key."))
1067 macaddr=self.macfd.readline().split(":")
1068 self.macaddr=macaddr[1]+macaddr[2]+macaddr[3]+macaddr[4]+macaddr[5]+macaddr[6]
1070 self.ReadMacinfo = 1
1072 self["text"].setText(("cannot read usb!!"))
1073 self["text1"].setText((" "))
1074 self["stattext"].setText((" Press Exit Key."))
1077 def getmacaddr(self):
1078 if self.ReadMacinfo==0:
1082 cmd = "nanddump -s 0x" + str((self.mactry-1)*2) + "0000 -b -o -l 64 -p /dev/mtd5"
1083 elif self.model == 0 or self.model == 1:
1084 cmd = "nanddump -s 0x" + str((self.mactry-1)*2) + "0000 -b -o -l 64 -p /dev/mtd4"
1085 self.macConsole = Console()
1086 self.macConsole.ePopen(cmd, self.readmac,self.checkReadmac)
1090 def readmac(self, result, retval,extra_args=None):
1091 (callback) = extra_args
1092 if self.macConsole is not None:
1094 self.macConsole = None
1096 content =result.splitlines()
1098 if x.startswith('0x000'+str((self.mactry-1)*2)+'0010:'):
1102 elif len(macline) < 10:
1105 mac = macline[5]+":"+macline[6]+":"+macline[7]+":"+macline[8]+":"+macline[9]+":"+macline[10]
1106 self["stattext"].setText(("now : "+mac))
1109 def checkReadmac(self,data):
1111 print "block %d is bad block" % self.mactry
1112 self.mactry = self.mactry + 1
1114 self.session.open(MessageBox, _("FLASH IS BROKEN"), type = MessageBox.TYPE_INFO, enable_input = False)
1119 print 'mac dump read error'
1122 print 'mac address read ok'
1127 if self.ReadMacinfo==0 :
1129 macaddress = long(self.macaddr,16)-1
1131 macaddress = 0xffffffffffff
1132 self.macaddr = "%012x"%macaddress
1136 if self.ReadMacinfo==0 :
1138 macaddress = long(self.macaddr,16)+1
1139 if macaddress > 0xffffffffffff:
1141 self.macaddr = "%012x"%macaddress
1144 def displaymac(self):
1145 macaddr= self.macaddr
1146 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))))
1149 if self.ReadMacinfo==0 :
1152 macaddr = self.macaddr
1153 #make_mac_sector 00-99-99-99-00-00 > /tmp/mac.sector
1154 #flash_eraseall /dev/mtd4
1155 #nandwrite /dev/mtd4 /tmp/mac.sector -p
1156 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))
1159 system("flash_eraseall /dev/mtd5")
1160 system("nandwrite /dev/mtd5 /tmp/mac.sector -p")
1161 elif self.model == 0 or self.model ==1 :
1162 system("flash_eraseall /dev/mtd4")
1163 system("nandwrite /dev/mtd4 /tmp/mac.sector -p")
1164 macaddress = long(macaddr,16)+1
1165 if macaddress > 0xffffffffffff:
1167 macaddr = "%012x"%macaddress
1168 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))
1170 self.macfd.write(macwritetext)
1173 self.macaddr = macaddr
1176 self.session.open( MessageBox, _("Mac address fail"), MessageBox.TYPE_ERROR)
1181 def keyCancel(self):
1191 class ScCiTest(Screen):
1193 <screen position="120,225" size="440,200" title="CI Smartcard Test" >
1194 <widget name="testlist" position="10,0" size="340,120" />
1195 <widget name="resultlist" position="370,0" size="60,120" />
1196 <eLabel text=" " position="5,125" zPosition="-1" size="430,5" backgroundColor="#02e1e8e6" />
1197 <widget name="text" position="10,140" size="420,50" font="Regular;25" />
1200 def __init__(self, session):
1201 self["actions"] = ActionMap(["DirectionActions","OkCancelActions"],
1206 "cancel": self.keyCancel,
1209 Screen.__init__(self, session)
1211 tlist.append(("Smartcard 1 Test",0))
1212 tlist.append(("Smartcard 2 Test",1))
1213 tlist.append(("CI 1 Test",2))
1214 tlist.append(("CI 2 Test",3))
1215 self["testlist"] = MenuList(tlist)
1218 self.rlist.append((".."))
1219 self["resultlist"] = TestResultList(self.rlist)
1221 self.removecard = eTimer()
1222 self.removecard.callback.append(self.remove_card)
1223 self["text"]=Label(("Press OK Key"))
1224 self.camstate= eTimer()
1225 self.camstate.callback.append(self.cam_state)
1229 def keyCancel(self):
1231 print "result ", self.result
1238 self["text"].setText(_("Press OK Key"))
1239 self["testlist"].instance.moveSelection(self["testlist"].instance.moveUp)
1242 self["text"].setText(_("Press OK Key"))
1243 self["testlist"].instance.moveSelection(self["testlist"].instance.moveDown)
1246 print "line - ",self["testlist"].getCurrent()[1]
1247 index = self["testlist"].getCurrent()[1]
1249 if index==0 or index==1:
1250 self["text"].setText(_("Insert Card?"))
1252 elif index ==2 or index==3:
1253 self["text"].setText(_("Insert Cam"))
1259 self.camstate.start(1000,True)
1261 def setSource(self, cislot):
1262 filename = ("/proc/stb/tsmux/ci%d_input"%cislot)
1263 fd = open(filename,'w')
1267 def setInputSource(self, cislot):
1268 fd=open("/proc/stb/tsmux/input0","w")
1275 def resetSource(self):
1276 fd=open("/proc/stb/tsmux/input0","w")
1279 # fd = open("/proc/stb/tsmux/ci0_input","w")
1282 # fd = open("/proc/stb/tsmux/ci1_input","w")
1286 def channelstart(self):
1287 ref = eServiceReference("1:0:19:1324:3EF:1:C00000:0:0:0")
1292 ref.setData(4,0x640000)
1293 self.session.nav.playService(ref)
1295 def channelstop(self):
1296 self.session.nav.stopService() # try to disable foreground service
1298 def cam_state(self):
1299 index = self["testlist"].getCurrent()[1]
1304 print 'cam_state', self.camstep,self.camtry
1305 if self.camstep == 1:
1306 state = eDVBCI_UI.getInstance().getState(slot)
1311 self["text"].setText(_("Getting Cam name...."))
1312 self.camstate.start(5000,True)
1316 self.camstate.start(1000,True)
1318 self.session.open( MessageBox, _("NO_NOT_INSERTED"), MessageBox.TYPE_ERROR)
1319 self.rlist[index]="fail"
1320 self["resultlist"].updateList(self.rlist)
1322 elif self.camstep == 2:
1323 appname = eDVBCI_UI.getInstance().getAppName(slot)
1324 print 'appname',appname
1328 self.camstate.start(1000,True)
1330 self.session.open( MessageBox, _("NO_GET_APPNAME"), MessageBox.TYPE_ERROR)
1331 self.rlist[index]="fail"
1332 self["resultlist"].updateList(self.rlist)
1334 self["text"].setText(_("Get Cam name : %s"%appname+". \n Remove Cam!"))
1336 self.setInputSource(slot)
1337 self.setSource(slot)
1340 self.camstate.start(1000,True)
1341 elif self.camstep==3:
1342 state = eDVBCI_UI.getInstance().getState(slot)
1346 self.result += (1<<index)
1348 self.rlist[index]="pass"
1349 self["text"].setText(_("Press OK Key"))
1350 self["resultlist"].updateList(self.rlist)
1358 self.camstate.start(1000,True)
1361 self.session.open( MessageBox, _("NO_REMOVE_CAM"), MessageBox.TYPE_ERROR)
1362 self.rlist[index]="fail"
1363 self["resultlist"].updateList(self.rlist)
1365 def check_smart_card(self,which):
1369 result = eSctest.getInstance().check_smart_card("/dev/sci0")
1371 result = eSctest.getInstance().check_smart_card("/dev/sci1")
1381 self.session.open( MessageBox, _("1:NO_DEV_FOUND"), MessageBox.TYPE_ERROR)
1383 self.session.open( MessageBox, _("1:SC_NOT_INSERTED"), MessageBox.TYPE_ERROR)
1385 self.session.open( MessageBox, _("1:SC_NOT_VALID_ATR"), MessageBox.TYPE_ERROR)
1387 self.session.open( MessageBox, _("1:SC_READ_TIMEOUT"), MessageBox.TYPE_ERROR)
1388 self.rlist[which]="fail"
1389 self["resultlist"].updateList(self.rlist)
1392 def remove_card(self):
1393 index = self["testlist"].getCurrent()[1]
1395 result = eSctest.getInstance().eject_smart_card("/dev/sci0")
1397 result = eSctest.getInstance().eject_smart_card("/dev/sci1")
1398 print 'remove result' ,result
1400 self.rlist[index]="pass"
1401 self.result += (1<<index)
1404 self.session.open( MessageBox, _("2:NO_DEV_FOUND"), MessageBox.TYPE_ERROR)
1406 self.session.open( MessageBox, _("2:SC_NOT_INSERTED"), MessageBox.TYPE_ERROR)
1408 self.session.open( MessageBox, _("2:SC_NOT_VALID_ATR"), MessageBox.TYPE_ERROR)
1410 self.session.open( MessageBox, _("2:SC_NOT_REMOVED"), MessageBox.TYPE_ERROR)
1411 self.rlist[index]="fail"
1412 self["resultlist"].updateList(self.rlist)
1413 self["text"].setText(_("Press OK Key"))
1418 def ScTest(self, yesno):
1421 index = self["testlist"].getCurrent()[1]
1422 result = self.check_smart_card(index)
1424 self.removecard.start(100,True)
1425 self["text"].setText(_("Read Ok. Remove Card!"))
1431 class SmartCardTest(Screen):
1433 <screen position="300,240" size="160,120" title="SmartCard Test" >
1434 <widget name="text" position="10,10" size="140,100" font="Regular;22" />
1437 def __init__(self, session, stbmodel = 0):
1438 self["actions"] = ActionMap(["DirectionActions", "OkCancelActions"],
1440 "cancel": self.keyCancel,
1441 "ok" : self.keyCancel
1444 Screen.__init__(self, session)
1445 # self["text"]=Label(("Press Key LEFT"))
1446 self["text"]=Label(("Testing Smartcard 1..."))
1448 self.smartcardtimer = eTimer()
1449 self.smartcardtimer.callback.append(self.check_smart_card)
1450 self.closetimer = eTimer()
1451 self.closetimer.callback.append(self.close)
1453 global smartcardtest
1455 self.model = stbmodel
1457 self.smartcardtimer.start(100,True)
1459 def check_smart_card(self):
1460 global smartcardtest
1461 index = self.smartcard
1464 if self.Testmode==0:
1465 result = eSctest.getInstance().check_smart_card("/dev/sci0")
1467 result = eSctest.getInstance().n_check_smart_card("/dev/sci0")
1469 if self.Testmode==0:
1470 result = eSctest.getInstance().check_smart_card("/dev/sci1")
1472 result = eSctest.getInstance().n_check_smart_card("/dev/sci1")
1480 if(index== 0 and ( self.model== 0 or self.model==2) ):
1482 self["text"].setText(_("Testing Smartcard 2..."))
1483 self.smartcardtimer.start(100,True)
1485 elif (index==1 or self.model==1):
1487 # self.session.open( MessageBox, _("Smart Card OK!!"), MessageBox.TYPE_INFO,2)
1489 self["text"].setText(_("Smart Card OK!!"))
1490 self.closetimer.start(2000,True)
1491 self.smartcardtimer.stop()
1492 # self.session.openWithCallback(self.check6, MessageBox, _("Scart loop ok?"), MessageBox.TYPE_INFO)
1495 # self.session.open( MessageBox, _("%d:NO_DEV_FOUND"%(index+1)), MessageBox.TYPE_ERROR)
1496 # elif result == -2:
1497 # self.session.open( MessageBox, _("%d:SC_NOT_INSERTED"%(index+1)), MessageBox.TYPE_ERROR)
1498 # elif result == -3:
1499 # self.session.open( MessageBox, _("%d:SC_NOT_VALID_ATR"%(index+1)), MessageBox.TYPE_ERROR)
1500 # elif result == -5:
1501 # self.session.open( MessageBox, _("%d:SC_READ_TIMEOUT"%(index+1)), MessageBox.TYPE_ERROR)
1503 self["text"].setText(_("Smart Card 1 Error!\nerrorcode=%d"%result))
1505 self["text"].setText(_("Smart Card 2 Error!\nerrorcode=%d"%result))
1506 self.closetimer.start(2000,True)
1507 self.smartcardtimer.stop()
1510 def keyCancel(self):
1517 class FrontTest(Screen):
1519 <screen position="260,240" size="200,180" title="Front Test" >
1520 <widget name="text" position="10,10" size="180,160" font="Regular;22" />
1523 def __init__(self, session):
1524 self["actions"] = ActionMap(["DirectionActions", "OkCancelActions"],
1528 "down":self.keyDown,
1529 "cancel": self.keyCancel,
1532 Screen.__init__(self, session)
1533 self["text"]=Label(("Wheel LEFT"))
1536 self.fronttimer= eTimer()
1537 self.fronttimer.callback.append(self.FrontAnimate)
1538 self.frontturnonoff = 0
1539 eSctest.getInstance().VFD_Open()
1540 self.keytimeout = eTimer()
1541 self.keytimeout.callback.append(self.KeyTimeOut)
1542 self.keytimeout.start(5000,True)
1544 def KeyTimeOut(self):
1546 self["text"].setText(("Wheel LEFT ERROR"))
1547 elif self.step ==2 :
1548 self["text"].setText(("Wheel RIGHT ERROR"))
1549 elif self.step == 3:
1550 self["text"].setText(("Wheel BUTTON ERROR"))
1554 def keyCancel(self):
1556 self.fronttimer.stop()
1557 eSctest.getInstance().VFD_Close()
1566 self.keytimeout.stop()
1567 self.keytimeout.start(5000,True)
1569 self["text"].setText(_("Press Front Wheel"))
1573 self.keytimeout.stop()
1574 self.keytimeout.start(5000,True)
1576 self["text"].setText(_("Wheel RIGHT"))
1582 self.keytimeout.stop()
1584 self.fronttimer.start(1000,True)
1585 self["text"].setText(("Front Test OK!\nPress Exit Key"))
1586 # elif self.step==4:
1588 # self.fronttimer.stop()
1589 # eSctest.getInstance().VFD_Close()
1593 def FrontAnimate(self):
1594 if (self.frontturnonoff==0):
1595 eSctest.getInstance().turnon_VFD()
1596 self.frontturnonoff = 1
1598 self.frontturnonoff = 0
1599 eSctest.getInstance().turnoff_VFD()
1600 self.fronttimer.start(1000,True)
1603 class FrontTest_solo(Screen):
1605 <screen position="260,240" size="200,180" title="Front Test" >
1606 <widget name="text" position="10,10" size="180,160" font="Regular;22" />
1609 def __init__(self, session):
1610 self["actions"] = ActionMap(["DirectionActions", "OkCancelActions","GlobalActions"],
1613 "cancel": self.keyCancel,
1614 "left": self.keyleft,
1615 "right": self.keyright,
1616 "power_down": self.keypower,
1617 "volumeUp": self.keyvolup,
1618 "volumeDown": self.keyvoldown,
1621 Screen.__init__(self, session)
1622 self["text"]=Label(("Press Front STANDBY"))
1625 self.fronttimer= eTimer()
1626 self.fronttimer.callback.append(self.FrontAnimate)
1627 self.frontturnonoff = 0
1628 eSctest.getInstance().VFD_Open()
1629 self.keytimeout = eTimer()
1630 self.keytimeout.callback.append(self.KeyTimeOut)
1631 self.keytimeout.start(5000,True)
1633 def KeyTimeOut(self):
1635 self["text"].setText(("Front STANDBY ERROR\nPress exit!"))
1636 elif self.step == 2 :
1637 self["text"].setText(("Front CH - ERROR\nPress exit!"))
1638 elif self.step == 3:
1639 self["text"].setText(("Front CH + ERROR\nPress exit!"))
1640 elif self.step == 4 :
1641 self["text"].setText(("Front VOL - ERROR\nPress exit!"))
1642 elif self.step == 5:
1643 self["text"].setText(("Front VOL + ERROR\nPress exit!"))
1650 self.keytimeout.stop()
1651 self.keytimeout.start(5000,True)
1653 self["text"].setText(_("Press Front CH -"))
1657 self.keytimeout.stop()
1658 self.keytimeout.start(5000,True)
1660 self["text"].setText(_("Press Front VOL -"))
1664 self.keytimeout.stop()
1665 self.keytimeout.start(5000,True)
1667 self["text"].setText(_("Press Front CH +"))
1671 self.keytimeout.stop()
1673 self.fronttimer.start(1000,True)
1674 self["text"].setText(_("Front LED OK?\n\nyes-ok\nno-exit"))
1675 # self["text"].setText(("Front Test OK!\nPress Exit Key"))
1677 def keyvoldown(self):
1679 self.keytimeout.stop()
1680 self.keytimeout.start(5000,True)
1682 self["text"].setText(_("Press Front VOL +"))
1684 def checkled(self, yesno):
1691 def keyCancel(self):
1693 self.fronttimer.stop()
1694 eSctest.getInstance().VFD_Close()
1700 self.fronttimer.stop()
1701 eSctest.getInstance().VFD_Close()
1706 def FrontAnimate(self):
1707 if (self.frontturnonoff==0):
1708 eSctest.getInstance().turnon_VFD()
1709 self.frontturnonoff = 1
1711 self.frontturnonoff = 0
1712 eSctest.getInstance().turnoff_VFD()
1713 self.fronttimer.start(1000,True)
1722 class RS232Test(Screen):
1724 <screen position="300,240" size="160,100" title="RS232 Test" >
1725 <widget name="text" position="10,10" size="140,80" font="Regular;22" />
1728 def __init__(self, session):
1729 self["actions"] = ActionMap(["DirectionActions", "OkCancelActions"],
1731 "cancel": self.keyCancel,
1734 Screen.__init__(self, session)
1735 self["text"]=Label(("Press \"Enter\" Key"))
1736 self.timer = eTimer()
1737 self.timer.callback.append(self.checkrs232)
1738 self.timer.start(100, True)
1740 def checkrs232(self):
1743 rs=open('/dev/ttyS0','r')
1745 r,w,e = select.select(rd, [], [], 10)
1760 def keyCancel(self):
1765 class AgingTest(Screen):
1767 <screen position="200,240" size="250,100" title="Aging Test" >
1768 <widget name="text1" position="10,10" size="230,40" font="Regular;22" />
1769 <widget name="text2" position="10,50" size="230,40" font="Regular;22" />
1772 def __init__(self, session):
1773 self["actions"] = ActionMap(["WizardActions","GlobalActions"],
1775 "agingend": self.keyEnd,
1776 "agingfinish": self.keyFinish,
1777 "volumeUp": self.nothing,
1778 "volumeDown": self.nothing,
1779 "volumeMute": self.nothing,
1782 Screen.__init__(self, session)
1783 self["text1"]=Label(("Exit - Press Pause Key"))
1784 self["text2"]=Label(("Reset - Press Stop Key"))
1785 # self.servicelist = ServiceList()
1786 # self.oldref = session.nav.getCurrentlyPlayingServiceReference()
1787 # print "oldref",self.oldref
1788 # session.nav.stopService() # try to disable foreground service
1791 self.tuningtimer = eTimer()
1792 self.tuningtimer.callback.append(self.updateStatus)
1793 # self.tuningtimer.start(2000,True)
1796 def updateStatus(self):
1797 result = eSctest.getInstance().getFrontendstatus(0)
1800 print "eSctest.getInstance().getFrontendstatus - %d"%result
1803 self.session.nav.stopService()
1804 self.session.open( MessageBox, _("Tune 1 Ver Locking Fail..."), MessageBox.TYPE_ERROR)
1809 self.session.nav.stopService()
1810 self.session.open( MessageBox, _("Tune 1 Ver Error %d..."%result), MessageBox.TYPE_ERROR)
1817 if self.oldref is None:
1818 eref = eServiceReference("1:0:19:1324:3EF:1:C00000:0:0:0")
1819 serviceHandler = eServiceCenter.getInstance()
1820 servicelist = serviceHandler.list(eref)
1821 if not servicelist is None:
1822 ref = servicelist.getNext()
1824 ref = self.getCurrentSelection()
1825 print "servicelist none"
1828 self.session.nav.stopService() # try to disable foreground service
1833 ref.setData(4,0x640000)
1834 self.session.nav.playService(ref)
1839 self.session.nav.stopService() # try to disable foreground service
1842 def keyFinish(self):
1845 self.session.nav.stopService() # try to disable foreground service
1857 def main(session, servicelist, **kwargs):
1861 Servicelist = servicelist
1862 bouquets = Servicelist.getBouquetList()
1864 bouquetSel = Session.openWithCallback(cleanup, FactoryTest)
1866 #def Plugins(**kwargs):
1867 # return PluginDescriptor(name=_("Factory Test"), description="Test App for Factory", where = PluginDescriptor.WHERE_EXTENSIONSMENU, fnc=main)