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
24 from Tools.Directories import resolveFilename, SCOPE_SYSETC
26 class TestResultList(MenuList):
27 def postWidgetCreate(self, instance):
28 self.instance.setSelectionEnable(0)
29 instance.setContent(self.l)
30 instance.selectionChanged.get().append(self.selectionChanged)
31 if self.enableWrapAround:
32 self.instance.setWrapAround(True)
34 def updateList(self, list):
36 self.l.setList(self.list)
38 class FactoryTest(Screen):
40 <screen position="120,125" size="440,400" title="Test Menu" >
41 <widget name="testlist" position="10,0" size="340,350" />
42 <widget name="resultlist" position="370,0" size="60,350" />
43 <widget name="testdate" position="20,350" size="150,25" font="Regular;22" />
44 <widget name="testversion" position="20,375" size="150,25" font="Regular;22" />
45 <widget name="mactext" position="180,350" size="230,25" font="Regular;22" />
47 def __init__(self, session):
49 self["actions"] = NumberActionMap(["OkCancelActions","WizardActions","NumberActions","ColorActions",],
53 "ok": self.TestAction,
54 "testexit": self.keyCancel,
55 "agingstart": self.Agingmode,
58 "0": self.numberaction,
59 "1": self.numberaction,
60 "2": self.numberaction,
61 "3": self.numberaction,
62 "4": self.numberaction,
63 "5": self.numberaction,
64 "6": self.numberaction,
65 "7": self.numberaction,
66 "8": self.numberaction,
67 "9": self.numberaction,
68 "red": self.shutdownaction,
71 Screen.__init__(self, session)
72 TESTPROGRAM_DATE = self.getImageVersion() +" (v1.00)"
73 TESTPROGRAM_VERSION = "Version 01.10"
78 self["testdate"]=Label((TESTPROGRAM_DATE))
79 self["testversion"]=Label(("Loading version..."))
80 self["mactext"]=Label(("Loading mac address..."))
81 if self.model == 0 or self.model == 1:
82 nimConfig = nimmanager.getNimConfig(0)
83 nimConfig.configMode.slot_id=0
84 nimConfig.configMode.value= "simple"
85 nimConfig.diseqcMode.value="diseqc_a_b"
86 nimConfig.diseqcA.value="160"
87 nimConfig.diseqcB.value="100"
89 nimConfig = nimmanager.getNimConfig(1)
90 nimConfig.configMode.slot_id=1
91 nimConfig.configMode.value= "simple"
92 nimConfig.diseqcMode.value="diseqc_a_b"
93 nimConfig.diseqcA.value="130"
94 nimConfig.diseqcB.value="192"
97 if self.model == 3 or self.model == 4:
99 sat_list = ["160","100","130","192","620","642"]
101 nimfile = open("/proc/bus/nim_sockets")
105 self.session.openWithCallback(self.close, MessageBox, _("File not Found!\n/proc/bus/nim_sockets"), MessageBox.TYPE_ERROR)
106 for line in nimfile.readlines():
110 if line.strip().startswith("NIM Socket"):
111 parts = line.strip().split(" ")
112 current_slot = int(parts[2][:-1])
113 self.NimType[current_slot]={}
114 self.NimType[current_slot]["slot"] = current_slot
115 elif line.strip().startswith("Type:"):
116 print str(line.strip())
117 self.NimType[current_slot]["type"] = str(line.strip()[6:])
118 if self.NimType[current_slot]["type"].startswith("DVB-S"):
119 self.NimType[current_slot]["sat1"] = sat_list.pop(0)
120 self.NimType[current_slot]["sat2"] = sat_list.pop(0)
122 self.NimType[current_slot]["sat1"] = None
123 self.NimType[current_slot]["sat2"] = None
124 elif line.strip().startswith("empty"):
125 self.NimType.pop(current_slot)
128 for (key, val) in self.NimType.items():
131 if val["type"].startswith("DVB-S"):
132 print "nimConfig (dvb-s): ",key
133 nimConfig = nimmanager.getNimConfig(key)
134 nimConfig.configMode.slot_id=key
135 nimConfig.configMode.value= "simple"
136 nimConfig.diseqcMode.value="diseqc_a_b"
137 nimConfig.diseqcA.value = val["sat1"]
138 nimConfig.diseqcB.value = val["sat2"]
140 nimConfig = nimmanager.getNimConfig(key)
141 print "configMode check : ",nimConfig.configMode.value
143 nimmanager.sec.update()
145 system("cp /usr/lib/enigma2/python/Plugins/SystemPlugins/FactoryTest/testdb /etc/enigma2/lamedb")
146 db = eDVBDB.getInstance()
147 db.reloadServicelist()
151 for x in range(self.menulength):
152 self.rlist.append((".."))
153 self["resultlist"] = TestResultList(self.rlist)
155 self.avswitch = AVSwitch()
156 self.scTest= eSctest()
160 self.servicelist = ServiceList()
161 self.oldref = session.nav.getCurrentlyPlayingServiceReference()
162 print "oldref",self.oldref
163 session.nav.stopService() # try to disable foreground service
165 self.tunemsgtimer = eTimer()
166 self.tunemsgtimer.callback.append(self.tunemsg)
169 self.camtimer = eTimer()
170 self.camtimer.callback.append(self.cam_state)
176 self.tuningtimer = eTimer()
177 self.tuningtimer.callback.append(self.updateStatus)
180 self.satatimer = eTimer()
181 self.satatimer.callback.append(self.sataCheck)
183 self.usbtimer = eTimer()
184 self.usbtimer.callback.append(self.usbCheck)
186 self.agingtimer = eTimer()
187 self.agingtimer.callback.append(self.agingCheck)
190 def createConfig(self):
192 self.satetestIndex = -1
193 self.scarttestIndex = -1
196 tlist.append((" 0. Sata & extend hdd test",self.satetestIndex))
198 tlist.append((" 1. USB test",self.usbtestIndex))
199 self.fronttestIndex=2
200 tlist.append((" 2. Front test",self.fronttestIndex))
201 self.smarttestIndex=3
202 tlist.append((" 3. Smartcard test",self.smarttestIndex))
203 self.tuner1_1testIndex=4
204 tlist.append((" 4. T1/H/22K x /4:3/CVBS",self.tuner1_1testIndex))
205 self.tuner1_2testIndex=5
206 tlist.append((" 5. T1/V/22k o/16:9/RGB",self.tuner1_2testIndex))
207 self.tuner2_1testIndex=6
208 tlist.append((" 6. T2/H/22k x/4:3/YC",self.tuner2_1testIndex))
209 self.tuner2_2testIndex=7
210 tlist.append((" 7. T2/V/22k o/16:9/CVBS/CAM",self.tuner2_2testIndex))
211 self.scarttestIndex=8
212 tlist.append((" 8. VCR Scart loop",self.scarttestIndex))
213 self.rs232testIndex=9
214 tlist.append((" 9. RS232 test",self.rs232testIndex))
215 self.ethernettestIndex=10
216 tlist.append(("10. Ethernet & mac test",self.ethernettestIndex))
217 self.fdefaultIndex=11
218 tlist.append(("11. Factory default",self.fdefaultIndex))
219 self.shutdownIndex=12
220 tlist.append(("12. Shutdown(Deep Standby)",self.shutdownIndex))
221 self.tuner_test_first_index = 4
222 self.tuner_test_last_index = 7
224 elif self.model == 1:
226 tlist.append((" 0. USB test",self.usbtestIndex))
227 self.fronttestIndex=1
228 tlist.append((" 1. Front test",self.fronttestIndex))
229 self.smarttestIndex=2
230 tlist.append((" 2. Smartcard test",self.smarttestIndex))
231 self.tuner1_1testIndex=3
232 tlist.append((" 3. T1/H/22K x/4:3/CVBS",self.tuner1_1testIndex))
233 self.tuner2_2testIndex = self.tuner1_2testIndex=4
234 tlist.append((" 4. T1/V/22k o/16:9/RGB/CAM",self.tuner1_2testIndex))
235 self.rs232testIndex=5
236 tlist.append((" 5. RS232 test",self.rs232testIndex))
237 self.ethernettestIndex=6
238 tlist.append((" 6. Ethernet & mac test",self.ethernettestIndex))
240 tlist.append((" 7. Factory default",self.fdefaultIndex))
242 tlist.append((" 8. Shutdown(Deep Standby)",self.shutdownIndex))
243 self.tuner_test_first_index = 3
244 self.tuner_test_last_index = 4
246 elif self.model == 2:
248 tlist.append((" 0. Sata & extend hdd test",self.satetestIndex))
250 tlist.append((" 1. USB test",self.usbtestIndex))
251 self.fronttestIndex=2
252 tlist.append((" 2. Front test",self.fronttestIndex))
253 self.smarttestIndex=3
254 tlist.append((" 3. Smartcard test",self.smarttestIndex))
255 self.tuner1_1testIndex=4
256 tlist.append((" 4. T1 H 22K x 4:3 CVBS",self.tuner1_1testIndex))
257 self.tuner1_2testIndex=5
258 tlist.append((" 5. T1 V 22k o 16:9 RGB",self.tuner1_2testIndex))
259 self.tuner2_1testIndex = -1
260 self.tuner2_2testIndex=6
261 tlist.append((" 6. T2 DVB-C 4:3 YC CAM",self.tuner2_2testIndex))
262 self.rs232testIndex=7
263 tlist.append((" 7. RS232 test",self.rs232testIndex))
264 self.ethernettestIndex=8
265 tlist.append(("8. Ethernet & mac test",self.ethernettestIndex))
267 tlist.append(("9. Factory default",self.fdefaultIndex))
268 self.shutdownIndex=10
269 tlist.append(("10. Shutdown",self.shutdownIndex))
270 self.tuner_test_first_index = 4
271 self.tuner_test_last_index = 6
273 elif self.model == 3 or self.model == 4:
275 tlist.append((" 0. Sata & extend hdd test",self.satetestIndex))
277 tlist.append((" 1. USB test",self.usbtestIndex))
278 self.fronttestIndex=2
279 tlist.append((" 2. Front test",self.fronttestIndex))
280 self.smarttestIndex=3
281 tlist.append((" 3. Smartcard test",self.smarttestIndex))
282 self.tuner_test_first_index = current_index = 4
283 AspectRatio=["4:3", "16:9"]
284 ColorFormat=["CVBS","RGB","YC","CVBS","CVBS","CVBS","CVBS","CVBS"]
286 for (key, val) in self.NimType.items():
287 if val["type"].startswith("DVB-S"):
288 # Chang : DVB -S setting diseqc A
289 getRatio = AspectRatio.pop(0) # ratio
290 AspectRatio.append(getRatio)
291 getColorFormat=ColorFormat.pop(0) # colorFormat
292 menuname=" %d. T%d/%s/H/22k x/%s/%s" % (current_index, key+1, val["type"], getRatio, getColorFormat) #menuname
295 self.setTuneInfo(index=current_index, slot=key, type=val["type"], sat=val["sat1"], pol="H", tone=False, ratio=getRatio, color=getColorFormat, cam=False) # setTuneInfo
296 # self.setTuneInfo(current_index, key, val["type"], val["sat1"], "H", True, getRatio, getColorFormat, False) # setTuneInfo
297 tlist.append((menuname,current_index))
299 # Chang : DVB -S setting diseqc B
300 getRatio = AspectRatio.pop(0)
301 AspectRatio.append(getRatio)
302 getColorFormat=ColorFormat.pop(0)
303 menuname=" %d. T%d/%s/V/22k o/%s/%s" % (current_index, key+1, val["type"], getRatio, getColorFormat)
304 if len(self.NimType) == key+1: # CAM test on/off
309 self.setTuneInfo( index=current_index, slot=key, type=val["type"], sat=val["sat2"], pol="V", tone=True, ratio=getRatio, color=getColorFormat, cam=camtest)
310 tlist.append((menuname,current_index))
312 # Chang : DVB -T or DVB-C
313 elif val["type"].startswith("DVB-T") or val["type"].startswith("DVB-C"):
314 additionalMenu = None
316 if len(self.NimType) == 1:
317 additionalMenu = True
319 for x in range(menulen):
320 getRatio = AspectRatio.pop(0)
321 AspectRatio.append(getRatio)
322 getColorFormat=ColorFormat.pop(0)
323 menuname=" %d. T%d/%s/%s/%s" % (current_index, key+1, val["type"], getRatio, getColorFormat)
324 if len(self.NimType) == key+1 and (additionalMenu is None or x != 0): # CAM test on/off
329 self.setTuneInfo( index=current_index, slot=key, type=val["type"], sat=None, pol=None, tone=None, ratio=getRatio, color=getColorFormat, cam=camtest)
330 tlist.append((menuname,current_index))
332 self.tuner_test_last_index = current_index-1
333 self.rs232testIndex=current_index
334 tlist.append((" %d. RS232 test" % current_index,self.rs232testIndex))
336 self.ethernettestIndex=current_index
337 tlist.append((" %d. Ethernet & mac test" % current_index,self.ethernettestIndex))
339 self.fdefaultIndex=current_index
340 tlist.append((" %d. Factory default" % current_index,self.fdefaultIndex))
342 self.shutdownIndex=current_index
343 tlist.append((" %d. Shutdown(Deep Standby)" % current_index,self.shutdownIndex))
345 self.menulength= len(tlist)
346 self["testlist"] = MenuList(tlist)
348 def setTuneInfo(self,index=0,slot=0,type="DVB-S2",sat="160",pol="H",tone=True,ratio="4:3",color="CVBS",cam=False):
349 self.tuneInfo[index]={}
350 self.tuneInfo[index]["slot"]=slot
351 self.tuneInfo[index]["type"]=type
352 self.tuneInfo[index]["sat"]=sat
353 self.tuneInfo[index]["pol"]=pol
354 self.tuneInfo[index]["22k"]=tone
355 self.tuneInfo[index]["ratio"]=ratio
356 self.tuneInfo[index]["color"]=color
357 self.tuneInfo[index]["cam"]=cam
359 def getModelInfo(self):
361 if fileExists("/proc/stb/info/vumodel"):
362 vumodel = open("/proc/stb/info/vumodel")
363 info=vumodel.read().strip()
368 print "getModelInfo : duo"
372 print "getModelInfo : solo"
376 print "getModelInfo : combo"
380 print "getModelInfo : uno"
384 print "getModelInfo : ultimo"
386 if getmodel == 0 and fileExists("/proc/stb/info/version"):
387 vesion = open("/proc/stb/info/version")
392 print "getModelInfo : solo_"
393 elif info[:2] == "12":
395 print "getModelInfo : duo_"
401 print "self.menulength = ",self.menulength
402 print "self[\"testlist\"].getCurrent()[1] = ",self["testlist"].getCurrent()[1]
405 if self["testlist"].getCurrent()[1]==0:
406 self["testlist"].moveToIndex(self.menulength-1)
407 self["resultlist"].moveToIndex(self.menulength-1)
409 self["testlist"].up()
410 self["resultlist"].up()
414 print "self.menulength = ",self.menulength
415 print "self[\"testlist\"].getCurrent()[1] = ",self["testlist"].getCurrent()[1]
418 if self["testlist"].getCurrent()[1]==(self.menulength-1):
419 self["testlist"].moveToIndex(0)
420 self["resultlist"].moveToIndex(0)
422 self["testlist"].down()
423 self["resultlist"].down()
425 def numberaction(self, number):
428 if number >= self.menulength:
431 self["testlist"].moveToIndex(index)
432 self["resultlist"].moveToIndex(index)
434 def getImageVersion(self):
436 file = open(resolveFilename(SCOPE_SYSETC, 'image-version'), 'r')
437 lines = file.readlines()
439 splitted = x.split('=')
440 if splitted[0] == "version":
442 #0120 2005 11 29 01 16
443 #0123 4567 89 01 23 45
444 version = splitted[1]
446 month = version[8:10]
448 date = '-'.join((year, month, day))
453 def getversion(self):
455 fd = open("/proc/stb/info/version","r")
458 self["testversion"].setText(("Version %s"%version))
460 self["testversion"].setText(("Version no load"))
463 def getmacaddr(self):
465 if self.model == 2 or self.model == 3 or self.model == 4:
466 cmd = "nanddump -s 0x" + str((self.mactry-1)*2) + "0000 -b -o -l 64 -p /dev/mtd5"
467 elif self.model == 0 or self.model == 1:
468 cmd = "nanddump -s 0x" + str((self.mactry-1)*2) + "0000 -b -o -l 64 -p /dev/mtd4"
469 self.macConsole = Console()
470 self.macConsole.ePopen(cmd, self.readmac,self.checkReadmac)
474 def readmac(self, result, retval,extra_args=None):
475 (callback) = extra_args
476 if self.macConsole is not None:
478 self.macConsole = None
480 content =result.splitlines()
482 if x.startswith('0x000'+str((self.mactry-1)*2)+'0010:'):
486 elif len(macline) < 10:
489 mac = macline[5]+":"+macline[6]+":"+macline[7]+":"+macline[8]+":"+macline[9]+":"+macline[10]
490 self["mactext"].setText(("MAC : "+mac))
493 def checkReadmac(self,data):
495 print "block %d is bad block" % self.mactry
496 self.mactry = self.mactry + 1
498 self.session.open(MessageBox, _("FLASH IS BROKEN"), type = MessageBox.TYPE_INFO, enable_input = False)
503 print 'mac dump read error'
506 print 'mac address read ok'
509 def TestAction(self):
512 print "line - ",self["testlist"].getCurrent()[1]
513 self.currentindex = index = self["testlist"].getCurrent()[1]
515 if index==self.satetestIndex:
517 elif index==self.fronttestIndex:
519 elif index>=self.tuner_test_first_index and index<=self.tuner_test_last_index:
521 elif index==self.scarttestIndex:
523 elif index==self.rs232testIndex:
525 elif index==self.usbtestIndex:
527 elif index==self.ethernettestIndex:
529 elif index == self.smarttestIndex:
537 elif index==self.fdefaultIndex:
539 # elif index==self.shutdownIndex:
544 def shutdownaction(self):
545 if self["testlist"].getCurrent()[1] == self.shutdownIndex:
551 self.satatimer.start(100,True)
554 # print "try", self.satatry
555 if self.satatry == 0:
558 self.rlist[self["testlist"].getCurrent()[1]]="try %d"%self.satatry
559 self["resultlist"].updateList(self.rlist)
564 if fileExists("/autofs/sdb1"):
565 if access("/autofs/sdb1",F_OK|R_OK|W_OK):
566 dummy=open("/autofs/sdb1/dummy03","w")
567 dummy.write("complete")
569 dummy=open("/autofs/sdb1/dummy03","r")
570 if dummy.readline()=="complete":
571 print "/autofs/sdb1 - complete"
573 print "/autofs/sdb1 - readline error"
577 system("rm /autofs/sdb1/dummy03")
579 print "/autofs/sdb1 - rw access error"
583 print "/autofs/sdb1 - file not exist"
586 print "/autofs/sdb1 - exceptional error"
590 if fileExists("/autofs/sda1"):
591 if access("/autofs/sda1",F_OK|R_OK|W_OK):
592 dummy=open("/autofs/sda1/dummy03","w")
593 dummy.write("complete")
595 dummy=open("/autofs/sda1/dummy03","r")
596 if dummy.readline()=="complete":
597 print "/autofs/sda1 - complete"
599 print "/autofs/sda1 - readline error"
603 system("rm /autofs/sda1/dummy03")
605 print "/autofs/sda1 - rw access error"
609 print "/autofs/sda1 - file not exist"
612 print "/autofs/sda1 - exceptional error"
617 self.session.open( MessageBox, _("Sata & extend hdd test pass\nPress 'OK' button!"), MessageBox.TYPE_INFO)
618 self.rlist[self["testlist"].getCurrent()[1]]="pass"
621 self.session.open( MessageBox, _("One hdd test error\nPress 'EXIT' button!"), MessageBox.TYPE_ERROR)
622 self.rlist[self["testlist"].getCurrent()[1]]="fail"
624 self.satatimer.start(1100,True)
627 self.session.open( MessageBox, _("Sata & extend hdd test error\nPress 'EXIT' button!"), MessageBox.TYPE_ERROR)
628 self.rlist[self["testlist"].getCurrent()[1]]="fail"
630 self.satatimer.start(1100,True)
634 self.session.openWithCallback(self.displayresult ,FrontTest)
635 elif self.model == 1:
636 self.session.openWithCallback(self.displayresult ,FrontTest_solo)
637 elif self.model == 2 or self.model == 3 or self.model == 4:
638 self.session.openWithCallback(self.displayresult ,FrontTest_uno)
640 def displayresult(self):
643 self.rlist[self["testlist"].getCurrent()[1]]="pass"
645 self.rlist[self["testlist"].getCurrent()[1]]="fail"
647 def TestTune(self,index):
648 if self.oldref is None:
649 eref = eServiceReference("1:0:19:1324:3EF:1:C00000:0:0:0")
650 serviceHandler = eServiceCenter.getInstance()
651 servicelist = serviceHandler.list(eref)
652 if not servicelist is None:
653 ref = servicelist.getNext()
655 ref = self.getCurrentSelection() # raise error
656 print "servicelist none"
659 self.session.nav.stopService() # try to disable foreground service
660 if self.model == 0 or self.model == 1:
661 if index==self.tuner1_1testIndex:
666 ref.setData(4,0xA00000)
667 self.session.nav.playService(ref)
668 self.avswitch.setColorFormat(0)
669 self.avswitch.setAspectRatio(0)
670 elif index==self.tuner1_2testIndex:
673 self.camtimer.start(100,True)
675 ref.setData(1,0x1325)
678 ref.setData(4,0x64af79)
679 self.session.nav.playService(ref)
680 self.avswitch.setColorFormat(1)
681 self.avswitch.setAspectRatio(6)
682 elif index==self.tuner2_1testIndex:
687 ref.setData(4,0x820000)
688 self.session.nav.playService(ref)
689 self.avswitch.setColorFormat(2)
690 self.avswitch.setAspectRatio(0)
691 elif index==self.tuner2_2testIndex:
693 self.camtimer.start(100,True)
695 ref.setData(1,0x1325)
698 ref.setData(4,0xC00000)
699 self.session.nav.playService(ref)
700 self.avswitch.setColorFormat(0)
701 self.avswitch.setAspectRatio(6)
702 self.tuningtimer.start(2000,True)
703 self.tunemsgtimer.start(3000, True)
704 elif self.model == 3 or self.model == 4:
705 getTuneInfo=self.tuneInfo[index]
706 if getTuneInfo["cam"] is True:
708 self.camtimer.start(100,True)
709 if getTuneInfo["type"].startswith("DVB-S"):
710 if getTuneInfo["pol"] == "H":
717 ref.setData(1,0x1325)
720 if getTuneInfo["sat"] == "160": # Eutelsat W2
721 ref.setData(4,0xA00000)
722 elif getTuneInfo["sat"] == "100": # Eutelsat
723 ref.setData(4,0x64af79)
724 elif getTuneInfo["sat"] == "130": # Hotbird
725 ref.setData(4,0x820000)
726 elif getTuneInfo["sat"] == "192": # Astra
727 ref.setData(4,0xC00000)
728 elif getTuneInfo["sat"] == "620": # Intelsat 902
729 ref.setData(4,0x26c0000) # need to fix later
730 elif getTuneInfo["sat"] == "642": # Intelsat 906
731 ref.setData(4,0x282AF79) # need to fix later
732 elif getTuneInfo["type"].startswith("DVB-C"):
734 ref.setData(1,0x1325)
737 ref.setData(4,-64870) # ffff029a
738 elif getTuneInfo["type"].startswith("DVB-T"):
740 ref.setData(1,0x1325)
743 ref.setData(4,-286391716) # eeee025c
744 self.session.nav.playService(ref)
745 if getTuneInfo["color"]=="CVBS":
746 self.avswitch.setColorFormat(0)
747 elif getTuneInfo["color"]=="RGB":
748 self.avswitch.setColorFormat(1)
749 elif getTuneInfo["color"]=="YC":
750 self.avswitch.setColorFormat(2)
751 if getTuneInfo["ratio"] == "4:3":
752 self.avswitch.setAspectRatio(0)
753 elif getTuneInfo["ratio"] == "16:9":
754 self.avswitch.setAspectRatio(6)
755 self.tuningtimer.start(2000,True)
756 self.tunemsgtimer.start(3000, True)
759 current_index = self.currentindex
760 if self.camstep == 1:
762 state = eDVBCI_UI.getInstance().getState(slot)
763 print '-1-stat',state
766 self.camtimer.start(100,True)
768 self.session.nav.stopService()
769 self.session.open( MessageBox, _("CAM1_NOT_INSERTED\nPress exit!"), MessageBox.TYPE_ERROR)
770 self.rlist[current_index]="fail"
771 self.tunemsgtimer.stop()
772 elif self.camstep == 2:
774 appname = eDVBCI_UI.getInstance().getAppName(slot)
775 print 'appname',appname
777 self.session.nav.stopService()
778 self.session.open( MessageBox, _("NO_GET_APPNAME\nPress exit!"), MessageBox.TYPE_ERROR)
779 self.rlist[current_index]="fail"
780 self.tunemsgtimer.stop()
783 self.camtimer.start(100,True)
784 elif self.camstep==3:
786 state = eDVBCI_UI.getInstance().getState(slot)
787 print '-2-stat',state
790 self.camtimer.start(100,True)
792 self.session.nav.stopService()
793 self.session.open( MessageBox, _("CAM2_NOT_INSERTED\nPress exit!"), MessageBox.TYPE_ERROR)
794 self.rlist[current_index]="fail"
795 self.tunemsgtimer.stop()
796 elif self.camstep == 4:
798 appname = eDVBCI_UI.getInstance().getAppName(slot)
799 print 'appname',appname
801 self.session.nav.stopService()
802 self.session.open( MessageBox, _("NO_GET_APPNAME\nPress exit!"), MessageBox.TYPE_ERROR)
803 self.rlist[current_index]="fail"
804 self.tunemsgtimer.stop()
809 def updateStatus(self):
810 current_index = self.currentindex
811 if self.model == 0 or self.model == 1:
812 if current_index ==self.tuner1_1testIndex or current_index==self.tuner1_2testIndex:
814 result = eSctest.getInstance().getFrontendstatus(0)
817 result = eSctest.getInstance().getFrontendstatus(1)
818 if current_index == self.tuner1_2testIndex or current_index==self.tuner2_2testIndex:
823 elif self.model == 3 or self.model == 4:
824 getTuneInfo=self.tuneInfo[current_index]
825 result = eSctest.getInstance().getFrontendstatus(getTuneInfo["slot"])
826 tunno = getTuneInfo["slot"]+1
827 hv = getTuneInfo["pol"]
835 print "eSctest.getInstance().getFrontendstatus - %d"%result
838 self.tunemsgtimer.stop()
839 self.session.nav.stopService()
840 self.avswitch.setColorFormat(0)
841 self.session.open( MessageBox, _("Tune%d %s Locking Fail..."%(tunno,hv)), MessageBox.TYPE_ERROR)
842 self.rlist[current_index]="fail"
846 def tuneback(self,yesno):
847 current_index=self.currentindex
848 self.session.nav.stopService() # try to disable foreground service
849 if yesno and self.tunerlock == 1:
850 if current_index == self.tuner_test_last_index and self.camstep < 5: # need fix to depending about CAM exist
851 self.rlist[current_index]="fail"
853 self.rlist[current_index]="pass"
855 self.rlist[current_index]="fail"
856 if self.model == 0 and current_index == 6: # YC
857 self.avswitch.setColorFormat(0)
858 elif ( self.model == 3 or self.model == 4 ) and self.tuneInfo[current_index]["color"] == "YC":
859 self.avswitch.setColorFormat(0)
861 self["resultlist"].updateList(self.rlist)
864 self.tuningtimer.stop()
865 self.session.openWithCallback(self.tuneback, MessageBox, _("%s ok?" %(self["testlist"].getCurrent()[0])), MessageBox.TYPE_YESNO)
867 def setSourceVar(self):
871 elif self.model == 1:
875 self.input_pad_num=len(self.NimType)-1
876 if self.input_pad_num == 0:
878 elif self.input_pad_num == 1:
880 elif self.input_pad_num == 2:
883 # ikseong - for 22000 tp
886 inputname = ("/proc/stb/tsmux/input%d" % self.input_pad_num)
887 print "<setsource> inputname : ",inputname
888 fd=open(inputname,"w")
892 filename = ("/proc/stb/tsmux/ci0_input")
893 fd = open(filename,'w')
894 fd.write(self.setTuner)
895 print "setTuner(CI0) : ",self.setTuner
897 print "CI loop test!!!!!!!!!!!!!!"
899 def resetSource(self):
900 inputname = ("/proc/stb/tsmux/input%d" % self.input_pad_num)
901 print "<resetsource> inputname : ",inputname
902 fd=open(inputname,"w")
903 fd.write(self.setTuner)
905 print "CI loop test end!!!!!!!!!!!!!!"
908 self.avswitch.setInput("SCART")
910 self.session.openWithCallback(self.check6, MessageBox, _("Scart loop ok?"), MessageBox.TYPE_YESNO)
912 def check6(self,yesno):
914 self.rlist[self["testlist"].getCurrent()[1]]="pass"
916 self.rlist[self["testlist"].getCurrent()[1]]="fail"
917 self.avswitch.setInput("ENCODER")
922 self.rlist[self["testlist"].getCurrent()[1]]="pass"
924 self.rlist[self["testlist"].getCurrent()[1]]="fail"
927 self.session.openWithCallback(self.check7,RS232Test)
932 if self.oldref is None:
933 eref = eServiceReference("1:0:19:1324:3EF:1:C00000:0:0:0")
934 serviceHandler = eServiceCenter.getInstance()
935 servicelist = serviceHandler.list(eref)
936 if not servicelist is None:
937 ref = servicelist.getNext()
939 ref = self.getCurrentSelection()
940 print "servicelist none"
943 self.session.nav.stopService() # try to disable foreground service
944 if self.model == 0 or self.model == 1 or self.NimType[0]["type"].startswith("DVB-S"):
946 ref.setData(1,0x1325)
949 ref.setData(4,0x64af79)
950 elif self.NimType[0]["type"].startswith("DVB-C"):
952 ref.setData(1,0x1325)
955 ref.setData(4,-64870) # ffff029a
956 elif self.NimType[0]["type"].startswith("DVB-T"):
958 ref.setData(1,0x1325)
961 ref.setData(4,-286391716) # eeee025c
962 self.session.nav.playService(ref)
963 self.avswitch.setColorFormat(0)
964 self.avswitch.setAspectRatio(0)
965 self.agingtimer.start(2000,True)
967 def agingCheck(self):
968 result = eSctest.getInstance().getFrontendstatus(0)
970 print "eSctest.getInstance().getFrontendstatus - %d"%result
972 self.session.nav.stopService()
973 self.session.open( MessageBox, _("Tune 1 Ver Locking Fail..."), MessageBox.TYPE_ERROR)
975 self.session.openWithCallback(self.agingResult,AgingTest)
977 self.session.nav.stopService()
978 self.session.open( MessageBox, _("Tune 1 Ver Error %d..."%result), MessageBox.TYPE_ERROR)
980 def agingResult(self):
983 self["testlist"].moveToIndex(self.fdefaultIndex)
985 self["testlist"].moveToIndex(self.shutdownIndex)
989 self.usbtimer.start(100,True)
995 self.rlist[self["testlist"].getCurrent()[1]]="try %d"%self.usbtry
996 self["resultlist"].updateList(self.rlist)
1000 if self.model==0 or self.model==3 or self.model==4:
1001 devices = [ "/autofs/sdc1", "/autofs/sdd1", "/autofs/sde1" ]
1003 devices = [ "/autofs/sda1", "/autofs/sdb1" ]
1005 devices = [ "/autofs/sdc1", "/autofs/sdd1" ]
1007 self.session.open( MessageBox, _("invalid model"), MessageBox.TYPE_ERROR)
1008 self.rlist[self["testlist"].getCurrent()[1]]="fail"
1016 if access(dev,F_OK|R_OK|W_OK):
1017 dummy=open(dev+"/dummy03","w")
1018 dummy.write("complete")
1020 dummy=open(dev+"/dummy03","r")
1021 if dummy.readline()=="complete":
1022 print dev," - complete"
1024 print dev," - readline error"
1028 system("rm "+dev+"/dummy03")
1030 print dev," - rw access error"
1034 print dev," - file not exist"
1037 print dev," - exceptional error"
1043 elif result == len(devices):
1044 self.session.open( MessageBox, _("USB test pass %d devices\nPress 'OK' button!"%result), MessageBox.TYPE_INFO)
1045 self.rlist[self["testlist"].getCurrent()[1]]="pass"
1047 if displayerror == 1:
1048 self.session.open( MessageBox, _("USB test error : Success-%d"%result+" Fail-%d\nPress 'EXIT' button!"%(len(devices)-result)), MessageBox.TYPE_ERROR)
1049 self.rlist[self["testlist"].getCurrent()[1]]="fail"
1051 self.usbtimer.start(1100,True)
1055 # system("/etc/init.d/networking stop")
1056 system("ifconfig eth0 192.168.0.10")
1057 # system("/etc/init.d/networking start")
1058 cmd1 = "ping -c 1 192.168.0.100"
1059 self.PingConsole = Console()
1060 self.PingConsole.ePopen(cmd1, self.checkNetworkStateFinished,self.NetworkStatedataAvail)
1062 def checkNetworkStateFinished(self, result, retval,extra_args):
1063 (statecallback) = extra_args
1064 if self.PingConsole is not None:
1066 self.PingConsole = None
1067 content = result.splitlines()
1068 # print 'content',content
1069 x = content[4].split()
1079 def NetworkStatedataAvail(self,data):
1084 self.session.openWithCallback(self.openMacConfig ,MessageBox, _("Ping test pass"), MessageBox.TYPE_INFO,2)
1089 self.session.open( MessageBox, _("Ping test fail\nPress exit"), MessageBox.TYPE_ERROR)
1095 def openMacConfig(self, ret=False):
1096 self.session.openWithCallback(self.macresult ,MacConfig,mactry=self.mactry)
1098 def macresult(self):
1101 self.rlist[self.ethernettestIndex]="pass"
1103 self.rlist[self.ethernettestIndex]="fail"
1107 def MemTest(self, which):
1111 result = eMemtest.getInstance().dramtest()
1113 result = eMemtest.getInstance().flashtest()
1116 result = eMemtest.getInstance().dramtest()
1117 result = eMemtest.getInstance().flashtest()
1123 print index,self.rlist[index]
1124 self.rlist[index]="pass"
1126 print index,self.rlist[index]
1127 self.rlist[index]="fail"
1128 self["resultlist"].updateList(self.rlist)
1130 def scciresult(self):
1131 global smartcardtest
1132 if smartcardtest == 1:
1133 self.rlist[self["testlist"].getCurrent()[1]]="pass"
1135 self.rlist[self["testlist"].getCurrent()[1]]="fail"
1138 self.session.openWithCallback(self.scciresult ,SmartCardTest,stbmodel=self.model)
1153 system("rm -R /etc/enigma2")
1155 system("cp -R /usr/share/enigma2/defaults /etc/enigma2")
1156 self.rlist[self["testlist"].getCurrent()[1]]="pass"
1157 self["resultlist"].updateList(self.rlist)
1159 print "test14 except"
1160 self.rlist[self["testlist"].getCurrent()[1]]="fail"
1161 self["resultlist"].updateList(self.rlist)
1162 self.session.open( MessageBox, _("Factory reset fail"), MessageBox.TYPE_ERROR)
1165 self.session.openWithCallback(self.shutdown ,MessageBox, _("Do you want to shut down?"), MessageBox.TYPE_YESNO)
1167 def shutdown(self, yesno):
1169 from os import _exit
1170 system("/usr/bin/showiframe /boot/backdrop.mvi")
1175 def keyCancel(self):
1180 # if self.oldref is not None:
1181 # self.session.nav.playService(self.oldref)
1184 class MacConfig(Screen):
1186 <screen position="100,250" size="520,100" title="Mac Config" >
1187 <eLabel text="Mac Address " position="10,15" size="200,40" font="Regular;30" />
1188 <widget name="text" position="230,15" size="230,40" font="Regular;30" />
1189 <widget name="text1" position="470,15" size="40,40" font="Regular;30" />
1190 <eLabel text=" " position="5,55" zPosition="-1" size="510,5" backgroundColor="#02e1e8e6" />
1191 <widget name="stattext" position="30,75" size="400,25" font="Regular;20" />
1194 def __init__(self, session, mactry = 1):
1195 self["actions"] = ActionMap(["DirectionActions","OkCancelActions"],
1198 "left": self.keyleft,
1199 "right": self.keyright,
1200 "cancel": self.keyCancel,
1203 Screen.__init__(self, session)
1205 self.mactry = mactry
1209 self.macaddr = "000000000000"
1210 self.ReadMacinfo = 0
1211 self["text"]=Label((self.macaddr))
1212 self["text1"]= Label(("< >"))
1213 self["stattext"]= Label((""))
1220 def getModelInfo(self):
1222 if fileExists("/proc/stb/info/vumodel"):
1223 vumodel = open("/proc/stb/info/vumodel")
1224 info=vumodel.read().strip()
1229 print "MacConfig, model : combo"
1230 elif info == "solo":
1233 print "MacConfig, model : solo"
1237 print "MacConfig, model : duo"
1241 print "getModelInfo : uno"
1242 elif info == "ultimo":
1245 print "getModelInfo : ultimo"
1247 if getmodel == 0 and fileExists("/proc/stb/info/version"):
1248 version = open("/proc/stb/info/version")
1251 # print info,info[:2]
1252 if info[:2] == "14":
1254 print "MacConfig, model : solo_"
1255 elif info[:2] == "12":
1257 print "MacConfig, model: duo_"
1259 def loadmacaddr(self):
1263 if self.model==0 or self.model==3 or self.model==4 :
1264 devices = ["/autofs/sdb1", "/autofs/sdc1", "/autofs/sdd1", "/autofs/sde1" ]
1266 devices = [ "/autofs/sda1", "/autofs/sdb1" ]
1268 devices = [ "/autofs/sdb1", "/autofs/sdc1", "/autofs/sdd1" ]
1272 if fileExists(dev+"/macinfo.txt"):
1273 print "<open>"+dev+"/macinfo.txt"
1274 self.macfd = open(dev+"/macinfo.txt","r+")
1278 self["text"].setText(("cannot read usb!!"))
1279 self["text1"].setText((" "))
1280 self["stattext"].setText((" Press Exit Key."))
1284 macaddr=self.macfd.readline().split(":")
1285 self.macaddr=macaddr[1]+macaddr[2]+macaddr[3]+macaddr[4]+macaddr[5]+macaddr[6]
1287 self.ReadMacinfo = 1
1289 self["text"].setText(("cannot read usb!!"))
1290 self["text1"].setText((" "))
1291 self["stattext"].setText((" Press Exit Key."))
1294 def getmacaddr(self):
1295 if self.ReadMacinfo==0:
1298 if self.model == 2 or self.model == 3 or self.model == 4:
1299 cmd = "nanddump -s 0x" + str((self.mactry-1)*2) + "0000 -b -o -l 64 -p /dev/mtd5"
1300 elif self.model == 0 or self.model == 1:
1301 cmd = "nanddump -s 0x" + str((self.mactry-1)*2) + "0000 -b -o -l 64 -p /dev/mtd4"
1302 self.macConsole = Console()
1303 self.macConsole.ePopen(cmd, self.readmac,self.checkReadmac)
1307 def readmac(self, result, retval,extra_args=None):
1308 (callback) = extra_args
1309 if self.macConsole is not None:
1311 self.macConsole = None
1313 content =result.splitlines()
1315 if x.startswith('0x000'+str((self.mactry-1)*2)+'0010:'):
1319 elif len(macline) < 10:
1322 mac = macline[5]+":"+macline[6]+":"+macline[7]+":"+macline[8]+":"+macline[9]+":"+macline[10]
1323 self["stattext"].setText(("now : "+mac))
1326 def checkReadmac(self,data):
1328 print "block %d is bad block" % self.mactry
1329 self.mactry = self.mactry + 1
1331 self.session.open(MessageBox, _("FLASH IS BROKEN"), type = MessageBox.TYPE_INFO, enable_input = False)
1336 print 'mac dump read error'
1339 print 'mac address read ok'
1344 if self.ReadMacinfo==0 :
1346 macaddress = long(self.macaddr,16)-1
1348 macaddress = 0xffffffffffff
1349 self.macaddr = "%012x"%macaddress
1353 if self.ReadMacinfo==0 :
1355 macaddress = long(self.macaddr,16)+1
1356 if macaddress > 0xffffffffffff:
1358 self.macaddr = "%012x"%macaddress
1361 def displaymac(self):
1362 macaddr= self.macaddr
1363 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))))
1366 if self.ReadMacinfo==0 :
1369 macaddr = self.macaddr
1370 #make_mac_sector 00-99-99-99-00-00 > /tmp/mac.sector
1371 #flash_eraseall /dev/mtd4
1372 #nandwrite /dev/mtd4 /tmp/mac.sector -p
1373 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))
1375 if self.model == 2 or self.model == 3 or self.model == 4:
1376 system("flash_eraseall /dev/mtd5")
1377 system("nandwrite /dev/mtd5 /tmp/mac.sector -p")
1378 elif self.model == 0 or self.model ==1 :
1379 system("flash_eraseall /dev/mtd4")
1380 system("nandwrite /dev/mtd4 /tmp/mac.sector -p")
1381 macaddress = long(macaddr,16)+1
1382 if macaddress > 0xffffffffffff:
1384 macaddr = "%012x"%macaddress
1385 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))
1387 self.macfd.write(macwritetext)
1390 self.macaddr = macaddr
1393 self.session.open( MessageBox, _("Mac address fail"), MessageBox.TYPE_ERROR)
1398 def keyCancel(self):
1406 class SmartCardTest(Screen):
1408 <screen position="300,240" size="160,120" title="SmartCard Test" >
1409 <widget name="text" position="10,10" size="140,100" font="Regular;22" />
1412 def __init__(self, session, stbmodel = 0):
1413 self["actions"] = ActionMap(["DirectionActions", "OkCancelActions"],
1415 "cancel": self.keyCancel,
1419 Screen.__init__(self, session)
1420 self["text"]=Label(("Testing Smartcard 1..."))
1422 self.smartcardtimer = eTimer()
1423 self.smartcardtimer.callback.append(self.check_smart_card)
1424 self.closetimer = eTimer()
1425 self.closetimer.callback.append(self.close)
1427 global smartcardtest
1429 self.model = stbmodel
1431 self.smartcardtimer.start(100,True)
1433 def check_smart_card(self):
1434 global smartcardtest
1435 index = self.smartcard
1438 if self.Testmode==0:
1439 result = eSctest.getInstance().check_smart_card("/dev/sci0")
1441 result = eSctest.getInstance().n_check_smart_card("/dev/sci0")
1443 if self.Testmode==0:
1444 result = eSctest.getInstance().check_smart_card("/dev/sci1")
1446 result = eSctest.getInstance().n_check_smart_card("/dev/sci1")
1454 if(index== 0 and ( self.model== 0 or self.model==2 or self.model == 3 or self.model == 4) ):
1456 self["text"].setText(_("Testing Smartcard 2..."))
1457 self.smartcardtimer.start(100,True)
1459 elif (index==1 or self.model==1):
1462 self["text"].setText(_("Smart Card OK!!"))
1463 self.closetimer.start(2000,True)
1464 self.smartcardtimer.stop()
1467 self["text"].setText(_("Smart Card model type error"))
1468 self.closetimer.start(2000,True)
1469 self.smartcardtimer.stop()
1472 # self.session.open( MessageBox, _("%d:NO_DEV_FOUND"%(index+1)), MessageBox.TYPE_ERROR)
1473 # elif result == -2:
1474 # self.session.open( MessageBox, _("%d:SC_NOT_INSERTED"%(index+1)), MessageBox.TYPE_ERROR)
1475 # elif result == -3:
1476 # self.session.open( MessageBox, _("%d:SC_NOT_VALID_ATR"%(index+1)), MessageBox.TYPE_ERROR)
1477 # elif result == -5:
1478 # self.session.open( MessageBox, _("%d:SC_READ_TIMEOUT"%(index+1)), MessageBox.TYPE_ERROR)
1480 self["text"].setText(_("Smart Card 1 Error!\nerrorcode=%d"%result))
1482 self["text"].setText(_("Smart Card 2 Error!\nerrorcode=%d"%result))
1483 self.closetimer.start(2000,True)
1484 self.smartcardtimer.stop()
1487 def keyCancel(self):
1491 if self.testok == 1:
1498 class FrontTest(Screen):
1500 <screen position="260,240" size="200,180" title="Front Test" >
1501 <widget name="text" position="10,10" size="180,160" font="Regular;22" />
1504 def __init__(self, session):
1505 self["actions"] = ActionMap(["DirectionActions", "OkCancelActions"],
1509 "down":self.keyDown,
1510 "cancel": self.keyCancel,
1513 Screen.__init__(self, session)
1514 self["text"]=Label(("Wheel LEFT"))
1517 self.fronttimer= eTimer()
1518 self.fronttimer.callback.append(self.FrontAnimate)
1519 self.frontturnonoff = 0
1520 eSctest.getInstance().VFD_Open()
1521 self.keytimeout = eTimer()
1522 self.keytimeout.callback.append(self.KeyTimeOut)
1523 self.keytimeout.start(5000,True)
1525 def KeyTimeOut(self):
1527 self["text"].setText(("Wheel LEFT ERROR"))
1528 elif self.step ==2 :
1529 self["text"].setText(("Wheel RIGHT ERROR"))
1530 elif self.step == 3:
1531 self["text"].setText(("Wheel BUTTON ERROR"))
1535 def keyCancel(self):
1537 self.fronttimer.stop()
1538 eSctest.getInstance().VFD_Close()
1547 self.keytimeout.stop()
1548 self.keytimeout.start(5000,True)
1550 self["text"].setText(_("Press Front Wheel"))
1554 self.keytimeout.stop()
1555 self.keytimeout.start(5000,True)
1557 self["text"].setText(_("Wheel RIGHT"))
1561 self.keytimeout.stop()
1563 self.fronttimer.start(1000,True)
1564 self["text"].setText(("Front Test OK!\nPress Exit Key"))
1565 # elif self.step==4:
1567 # self.fronttimer.stop()
1568 # eSctest.getInstance().VFD_Close()
1572 def FrontAnimate(self):
1573 if (self.frontturnonoff==0):
1574 eSctest.getInstance().turnon_VFD()
1575 self.frontturnonoff = 1
1577 self.frontturnonoff = 0
1578 eSctest.getInstance().turnoff_VFD()
1579 self.fronttimer.start(1000,True)
1582 class FrontTest_solo(Screen):
1584 <screen position="260,240" size="200,180" title="Front Test" >
1585 <widget name="text" position="10,10" size="180,160" font="Regular;22" />
1588 def __init__(self, session):
1589 self["actions"] = ActionMap(["DirectionActions", "OkCancelActions","GlobalActions"],
1592 "cancel": self.keyCancel,
1593 "left": self.keyleft,
1594 "right": self.keyright,
1595 "power_down": self.keypower,
1596 "volumeUp": self.keyvolup,
1597 "volumeDown": self.keyvoldown,
1600 Screen.__init__(self, session)
1601 self["text"]=Label(("Press Front STANDBY"))
1604 self.fronttimer= eTimer()
1605 self.fronttimer.callback.append(self.FrontAnimate)
1606 self.frontturnonoff = 0
1607 eSctest.getInstance().VFD_Open()
1608 self.keytimeout = eTimer()
1609 self.keytimeout.callback.append(self.KeyTimeOut)
1610 self.keytimeout.start(5000,True)
1612 def KeyTimeOut(self):
1614 self["text"].setText(("Front STANDBY ERROR\nPress exit!"))
1615 elif self.step == 2 :
1616 self["text"].setText(("Front CH - ERROR\nPress exit!"))
1617 elif self.step == 3:
1618 self["text"].setText(("Front CH + ERROR\nPress exit!"))
1619 elif self.step == 4 :
1620 self["text"].setText(("Front VOL - ERROR\nPress exit!"))
1621 elif self.step == 5:
1622 self["text"].setText(("Front VOL + ERROR\nPress exit!"))
1629 self.keytimeout.stop()
1630 self.keytimeout.start(5000,True)
1632 self["text"].setText(_("Press Front CH -"))
1636 self.keytimeout.stop()
1637 self.keytimeout.start(5000,True)
1639 self["text"].setText(_("Press Front VOL -"))
1643 self.keytimeout.stop()
1644 self.keytimeout.start(5000,True)
1646 self["text"].setText(_("Press Front CH +"))
1650 self.keytimeout.stop()
1652 self.fronttimer.start(1000,True)
1653 self["text"].setText(_("Front LED OK?\n\nyes-ok\nno-exit"))
1654 # self["text"].setText(("Front Test OK!\nPress Exit Key"))
1656 def keyvoldown(self):
1658 self.keytimeout.stop()
1659 self.keytimeout.start(5000,True)
1661 self["text"].setText(_("Press Front VOL +"))
1663 def checkled(self, yesno):
1670 def keyCancel(self):
1672 self.fronttimer.stop()
1673 eSctest.getInstance().VFD_Close()
1681 self.fronttimer.stop()
1682 eSctest.getInstance().VFD_Close()
1685 def FrontAnimate(self):
1686 if (self.frontturnonoff==0):
1687 eSctest.getInstance().turnon_VFD()
1688 self.frontturnonoff = 1
1690 self.frontturnonoff = 0
1691 eSctest.getInstance().turnoff_VFD()
1692 self.fronttimer.start(1000,True)
1694 class FrontTest_uno(Screen):
1696 <screen name="FrontTest_uno" position="center,center" size="300,180" title="Front Test" >
1697 <widget name="text" position="10,10" size="280,160" font="Regular;30" />
1700 def __init__(self, session):
1701 self["actions"] = ActionMap(["DirectionActions", "OkCancelActions","GlobalActions"],
1704 "cancel": self.keyCancel,
1705 "left": self.keyleft,
1706 "right": self.keyright,
1707 "volumeUp": self.keyvolup,
1708 "volumeDown": self.keyvoldown,
1709 "power_down": self.keypower,
1712 Screen.__init__(self, session)
1713 self["text"]=Label(("Press Front CH -"))
1715 self.fronttimer= eTimer()
1716 self.fronttimer.callback.append(self.FrontAnimate)
1717 self.frontturnonoff = 0
1718 eSctest.getInstance().VFD_Open()
1719 self.keytimeout = eTimer()
1720 self.keytimeout.callback.append(self.KeyTimeOut)
1721 self.keytimeout.start(5000,True)
1723 def KeyTimeOut(self):
1725 self["text"].setText(("Front CH - ERROR\nPress exit!"))
1726 elif self.step == 2:
1727 self["text"].setText(("Front CH + ERROR\nPress exit!"))
1728 elif self.step == 3 :
1729 self["text"].setText(("Front VOL - ERROR\nPress exit!"))
1730 elif self.step == 4:
1731 self["text"].setText(("Front VOL + ERROR\nPress exit!"))
1732 elif self.step == 5:
1733 self["text"].setText(("Front STANDBY ERROR\nPress exit!"))
1738 self.keytimeout.stop()
1739 self.keytimeout.start(5000,True)
1741 self["text"].setText(_("Press Front CH +"))
1744 self.keytimeout.stop()
1745 self.keytimeout.start(5000,True)
1747 self["text"].setText(_("Press Front VOL -"))
1749 def keyvoldown(self):
1751 self.keytimeout.stop()
1752 self.keytimeout.start(5000,True)
1754 self["text"].setText(_("Press Front VOL +"))
1758 self.keytimeout.stop()
1759 self.keytimeout.start(5000,True)
1761 self["text"].setText(_("Press Front STANDBY"))
1765 self.keytimeout.stop()
1767 self.fronttimer.start(1000,True)
1768 self["text"].setText(_("Front LED OK?\n\nyes-ok\nno-exit"))
1770 def keyCancel(self):
1772 self.fronttimer.stop()
1773 eSctest.getInstance().VFD_Close()
1781 self.fronttimer.stop()
1782 eSctest.getInstance().VFD_Close()
1785 def FrontAnimate(self):
1786 if (self.frontturnonoff==0):
1787 eSctest.getInstance().turnon_VFD()
1788 self.frontturnonoff = 1
1790 self.frontturnonoff = 0
1791 eSctest.getInstance().turnoff_VFD()
1792 self.fronttimer.start(1000,True)
1799 class RS232Test(Screen):
1801 <screen position="300,240" size="160,100" title="RS232 Test" >
1802 <widget name="text" position="10,10" size="140,80" font="Regular;22" />
1805 def __init__(self, session):
1806 self["actions"] = ActionMap(["DirectionActions", "OkCancelActions"],
1808 "cancel": self.keyCancel,
1811 Screen.__init__(self, session)
1812 self["text"]=Label(("Press \"Enter\" Key"))
1813 self.timer = eTimer()
1814 self.timer.callback.append(self.checkrs232)
1815 self.timer.start(100, True)
1817 def checkrs232(self):
1820 rs=open('/dev/ttyS0','r')
1822 r,w,e = select.select(rd, [], [], 10)
1838 print 'except error'
1841 self.session.open( MessageBox, _("RS232 Test Failed!\nPress 'EXIT' button!"), MessageBox.TYPE_ERROR)
1844 def keyCancel(self):
1849 class AgingTest(Screen):
1851 <screen position="200,240" size="250,100" title="Aging Test" >
1852 <widget name="text1" position="10,10" size="230,40" font="Regular;22" />
1853 <widget name="text2" position="10,50" size="230,40" font="Regular;22" />
1856 def __init__(self, session):
1857 self["actions"] = ActionMap(["MediaPlayerActions","GlobalActions"],
1859 "pause": self.keyEnd,
1860 "stop": self.keyFinish,
1861 "volumeUp": self.nothing,
1862 "volumeDown": self.nothing,
1863 "volumeMute": self.nothing,
1866 Screen.__init__(self, session)
1867 self["text1"]=Label(("Exit - Press Pause Key"))
1868 self["text2"]=Label(("Reset - Press Stop Key"))
1869 # self.servicelist = ServiceList()
1870 # self.oldref = session.nav.getCurrentlyPlayingServiceReference()
1871 # print "oldref",self.oldref
1872 # session.nav.stopService() # try to disable foreground service
1875 self.tuningtimer = eTimer()
1876 self.tuningtimer.callback.append(self.updateStatus)
1877 # self.tuningtimer.start(200,True)
1880 def updateStatus(self):
1881 result = eSctest.getInstance().getFrontendstatus(0)
1884 print "eSctest.getInstance().getFrontendstatus - %d"%result
1887 self.session.nav.stopService()
1888 self.session.open( MessageBox, _("Tune 1 Ver Locking Fail..."), MessageBox.TYPE_ERROR)
1893 self.session.nav.stopService()
1894 self.session.open( MessageBox, _("Tune 1 Ver Error %d..."%result), MessageBox.TYPE_ERROR)
1901 if self.oldref is None:
1902 eref = eServiceReference("1:0:19:1324:3EF:1:C00000:0:0:0")
1903 serviceHandler = eServiceCenter.getInstance()
1904 servicelist = serviceHandler.list(eref)
1905 if not servicelist is None:
1906 ref = servicelist.getNext()
1908 ref = self.getCurrentSelection()
1909 print "servicelist none"
1912 self.session.nav.stopService() # try to disable foreground service
1917 ref.setData(4,0x640000)
1918 self.session.nav.playService(ref)
1923 self.session.nav.stopService() # try to disable foreground service
1926 def keyFinish(self):
1929 self.session.nav.stopService() # try to disable foreground service
1941 def main(session, servicelist, **kwargs):
1945 Servicelist = servicelist
1946 bouquets = Servicelist.getBouquetList()
1948 bouquetSel = Session.openWithCallback(cleanup, FactoryTest)
1950 #def Plugins(**kwargs):
1951 # return PluginDescriptor(name=_("Factory Test"), description="Test App for Factory", where = PluginDescriptor.WHERE_EXTENSIONSMENU, fnc=main)
1953 def Plugins(**kwargs):