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(HTMLComponent, GUIComponent):
27 def __init__(self, list, enableWrapAround=False, content=eListboxPythonStringContent):
28 GUIComponent.__init__(self)
31 self.l.setList(self.list)
32 self.onSelectionChanged = [ ]
33 self.enableWrapAround = enableWrapAround
36 return self.l.getCurrentSelection()
40 def postWidgetCreate(self, instance):
41 self.instance.setSelectionEnable(0)
42 instance.setContent(self.l)
43 instance.selectionChanged.get().append(self.selectionChanged)
44 if self.enableWrapAround:
45 self.instance.setWrapAround(True)
47 def preWidgetRemove(self, instance):
48 instance.setContent(None)
49 instance.selectionChanged.get().remove(self.selectionChanged)
51 def selectionChanged(self):
52 for f in self.onSelectionChanged:
55 def getSelectionIndex(self):
56 return self.l.getCurrentSelectionIndex()
58 def getSelectedIndex(self):
59 return self.l.getCurrentSelectionIndex()
61 def setList(self, list):
63 self.l.setList(self.list)
65 def updateList(self, list):
67 self.l.setList(self.list)
69 def moveToIndex(self, idx):
70 if self.instance is not None:
71 self.instance.moveSelectionTo(idx)
74 if self.instance is not None:
75 self.instance.moveSelection(self.instance.pageUp)
78 if self.instance is not None:
79 self.instance.moveSelection(self.instance.pageDown)
82 if self.instance is not None:
83 self.instance.moveSelection(self.instance.moveUp)
86 if self.instance is not None:
87 self.instance.moveSelection(self.instance.moveDown)
89 def selectionEnabled(self, enabled):
90 if self.instance is not None:
91 self.instance.setSelectionEnable(enabled)
93 class FactoryTest(Screen):
95 <screen position="120,125" size="440,400" title="Test Menu" >
96 <widget name="testlist" position="10,0" size="340,350" />
97 <widget name="resultlist" position="370,0" size="60,350" />
98 <widget name="testdate" position="20,350" size="150,25" font="Regular;22" />
99 <widget name="testversion" position="20,375" size="150,25" font="Regular;22" />
100 <widget name="mactext" position="180,350" size="230,25" font="Regular;22" />
102 def __init__(self, session):
104 self["actions"] = NumberActionMap(["OkCancelActions","WizardActions","NumberActions","ColorActions",],
106 "left": self.nothing,
107 "right":self.nothing,
108 "ok": self.TestAction,
109 "testexit": self.keyCancel,
110 "agingstart": self.Agingmode,
112 "down": self.keydown,
113 "0": self.numberaction,
114 "1": self.numberaction,
115 "2": self.numberaction,
116 "3": self.numberaction,
117 "4": self.numberaction,
118 "5": self.numberaction,
119 "6": self.numberaction,
120 "7": self.numberaction,
121 "8": self.numberaction,
122 "9": self.numberaction,
123 "red": self.shutdownaction,
126 Screen.__init__(self, session)
127 TESTPROGRAM_DATE = self.getImageVersion() +" (v1.00)"
128 TESTPROGRAM_VERSION = "Version 01.10"
133 self["testdate"]=Label((TESTPROGRAM_DATE))
134 self["testversion"]=Label(("Loading version..."))
135 self["mactext"]=Label(("Loading mac address..."))
136 if self.model == 0 or self.model == 1:
137 nimConfig = nimmanager.getNimConfig(0)
138 nimConfig.configMode.slot_id=0
139 nimConfig.configMode.value= "simple"
140 nimConfig.diseqcMode.value="diseqc_a_b"
141 nimConfig.diseqcA.value="160"
142 nimConfig.diseqcB.value="100"
144 nimConfig = nimmanager.getNimConfig(1)
145 nimConfig.configMode.slot_id=1
146 nimConfig.configMode.value= "simple"
147 nimConfig.diseqcMode.value="diseqc_a_b"
148 nimConfig.diseqcA.value="130"
149 nimConfig.diseqcB.value="192"
152 if self.model == 3 or self.model == 4:
154 sat_list = ["160","100","130","192","620","642"]
156 nimfile = open("/proc/bus/nim_sockets")
160 self.session.openWithCallback(self.close, MessageBox, _("File not Found!\n/proc/bus/nim_sockets"), MessageBox.TYPE_ERROR)
161 for line in nimfile.readlines():
165 if line.strip().startswith("NIM Socket"):
166 parts = line.strip().split(" ")
167 current_slot = int(parts[2][:-1])
168 self.NimType[current_slot]={}
169 self.NimType[current_slot]["slot"] = current_slot
170 elif line.strip().startswith("Type:"):
171 print str(line.strip())
172 self.NimType[current_slot]["type"] = str(line.strip()[6:])
173 if self.NimType[current_slot]["type"].startswith("DVB-S"):
174 self.NimType[current_slot]["sat1"] = sat_list.pop(0)
175 self.NimType[current_slot]["sat2"] = sat_list.pop(0)
177 self.NimType[current_slot]["sat1"] = None
178 self.NimType[current_slot]["sat2"] = None
179 elif line.strip().startswith("empty"):
180 self.NimType.pop(current_slot)
183 for (key, val) in self.NimType.items():
186 if val["type"].startswith("DVB-S"):
187 print "nimConfig (dvb-s): ",key
188 nimConfig = nimmanager.getNimConfig(key)
189 nimConfig.configMode.slot_id=key
190 nimConfig.configMode.value= "simple"
191 nimConfig.diseqcMode.value="diseqc_a_b"
192 nimConfig.diseqcA.value = val["sat1"]
193 nimConfig.diseqcB.value = val["sat2"]
195 nimConfig = nimmanager.getNimConfig(key)
196 print "configMode check : ",nimConfig.configMode.value
198 nimmanager.sec.update()
200 system("cp /usr/lib/enigma2/python/Plugins/SystemPlugins/FactoryTest/testdb /etc/enigma2/lamedb")
201 db = eDVBDB.getInstance()
202 db.reloadServicelist()
206 for x in range(self.menulength):
207 self.rlist.append((".."))
208 self["resultlist"] = TestResultList(self.rlist)
210 self.avswitch = AVSwitch()
211 self.scTest= eSctest()
215 self.servicelist = ServiceList()
216 self.oldref = session.nav.getCurrentlyPlayingServiceReference()
217 print "oldref",self.oldref
218 session.nav.stopService() # try to disable foreground service
220 self.tunemsgtimer = eTimer()
221 self.tunemsgtimer.callback.append(self.tunemsg)
224 self.camtimer = eTimer()
225 self.camtimer.callback.append(self.cam_state)
231 self.tuningtimer = eTimer()
232 self.tuningtimer.callback.append(self.updateStatus)
235 self.satatimer = eTimer()
236 self.satatimer.callback.append(self.sataCheck)
238 self.usbtimer = eTimer()
239 self.usbtimer.callback.append(self.usbCheck)
241 self.agingtimer = eTimer()
242 self.agingtimer.callback.append(self.agingCheck)
245 def createConfig(self):
247 self.satetestIndex = -1
248 self.scarttestIndex = -1
251 tlist.append((" 0. Sata & extend hdd test",self.satetestIndex))
253 tlist.append((" 1. USB test",self.usbtestIndex))
254 self.fronttestIndex=2
255 tlist.append((" 2. Front test",self.fronttestIndex))
256 self.smarttestIndex=3
257 tlist.append((" 3. Smartcard test",self.smarttestIndex))
258 self.tuner1_1testIndex=4
259 tlist.append((" 4. T1/H/22K x /4:3/CVBS",self.tuner1_1testIndex))
260 self.tuner1_2testIndex=5
261 tlist.append((" 5. T1/V/22k o/16:9/RGB",self.tuner1_2testIndex))
262 self.tuner2_1testIndex=6
263 tlist.append((" 6. T2/H/22k x/4:3/YC",self.tuner2_1testIndex))
264 self.tuner2_2testIndex=7
265 tlist.append((" 7. T2/V/22k o/16:9/CVBS/CAM",self.tuner2_2testIndex))
266 self.scarttestIndex=8
267 tlist.append((" 8. VCR Scart loop",self.scarttestIndex))
268 self.rs232testIndex=9
269 tlist.append((" 9. RS232 test",self.rs232testIndex))
270 self.ethernettestIndex=10
271 tlist.append(("10. Ethernet & mac test",self.ethernettestIndex))
272 self.fdefaultIndex=11
273 tlist.append(("11. Factory default",self.fdefaultIndex))
274 self.shutdownIndex=12
275 tlist.append(("12. Shutdown(Deep Standby)",self.shutdownIndex))
276 self.tuner_test_first_index = 4
277 self.tuner_test_last_index = 7
279 elif self.model == 1:
281 tlist.append((" 0. USB test",self.usbtestIndex))
282 self.fronttestIndex=1
283 tlist.append((" 1. Front test",self.fronttestIndex))
284 self.smarttestIndex=2
285 tlist.append((" 2. Smartcard test",self.smarttestIndex))
286 self.tuner1_1testIndex=3
287 tlist.append((" 3. T1/H/22K x/4:3/CVBS",self.tuner1_1testIndex))
288 self.tuner2_2testIndex = self.tuner1_2testIndex=4
289 tlist.append((" 4. T1/V/22k o/16:9/RGB/CAM",self.tuner1_2testIndex))
290 self.rs232testIndex=5
291 tlist.append((" 5. RS232 test",self.rs232testIndex))
292 self.ethernettestIndex=6
293 tlist.append((" 6. Ethernet & mac test",self.ethernettestIndex))
295 tlist.append((" 7. Factory default",self.fdefaultIndex))
297 tlist.append((" 8. Shutdown(Deep Standby)",self.shutdownIndex))
298 self.tuner_test_first_index = 3
299 self.tuner_test_last_index = 4
301 elif self.model == 2:
303 tlist.append((" 0. Sata & extend hdd test",self.satetestIndex))
305 tlist.append((" 1. USB test",self.usbtestIndex))
306 self.fronttestIndex=2
307 tlist.append((" 2. Front test",self.fronttestIndex))
308 self.smarttestIndex=3
309 tlist.append((" 3. Smartcard test",self.smarttestIndex))
310 self.tuner1_1testIndex=4
311 tlist.append((" 4. T1 H 22K x 4:3 CVBS",self.tuner1_1testIndex))
312 self.tuner1_2testIndex=5
313 tlist.append((" 5. T1 V 22k o 16:9 RGB",self.tuner1_2testIndex))
314 self.tuner2_1testIndex = -1
315 self.tuner2_2testIndex=6
316 tlist.append((" 6. T2 DVB-C 4:3 YC CAM",self.tuner2_2testIndex))
317 self.rs232testIndex=7
318 tlist.append((" 7. RS232 test",self.rs232testIndex))
319 self.ethernettestIndex=8
320 tlist.append(("8. Ethernet & mac test",self.ethernettestIndex))
322 tlist.append(("9. Factory default",self.fdefaultIndex))
323 self.shutdownIndex=10
324 tlist.append(("10. Shutdown",self.shutdownIndex))
325 self.tuner_test_first_index = 4
326 self.tuner_test_last_index = 6
328 elif self.model == 3 or self.model == 4:
330 tlist.append((" 0. Sata & extend hdd test",self.satetestIndex))
332 tlist.append((" 1. USB test",self.usbtestIndex))
333 self.fronttestIndex=2
334 tlist.append((" 2. Front test",self.fronttestIndex))
335 self.smarttestIndex=3
336 tlist.append((" 3. Smartcard test",self.smarttestIndex))
337 self.tuner_test_first_index = current_index = 4
338 AspectRatio=["4:3", "16:9"]
339 ColorFormat=["CVBS","RGB","YC","CVBS","CVBS","CVBS","CVBS","CVBS"]
341 for (key, val) in self.NimType.items():
342 if val["type"].startswith("DVB-S"):
343 # Chang : DVB -S setting diseqc A
344 getRatio = AspectRatio.pop(0) # ratio
345 AspectRatio.append(getRatio)
346 getColorFormat=ColorFormat.pop(0) # colorFormat
347 menuname=" %d. T%d/%s/H/22k x/%s/%s" % (current_index, key+1, val["type"], getRatio, getColorFormat) #menuname
350 self.setTuneInfo(index=current_index, slot=key, type=val["type"], sat=val["sat1"], pol="H", tone=False, ratio=getRatio, color=getColorFormat, cam=False) # setTuneInfo
351 # self.setTuneInfo(current_index, key, val["type"], val["sat1"], "H", True, getRatio, getColorFormat, False) # setTuneInfo
352 tlist.append((menuname,current_index))
354 # Chang : DVB -S setting diseqc B
355 getRatio = AspectRatio.pop(0)
356 AspectRatio.append(getRatio)
357 getColorFormat=ColorFormat.pop(0)
358 menuname=" %d. T%d/%s/V/22k o/%s/%s" % (current_index, key+1, val["type"], getRatio, getColorFormat)
359 if len(self.NimType) == key+1: # CAM test on/off
364 self.setTuneInfo( index=current_index, slot=key, type=val["type"], sat=val["sat2"], pol="V", tone=True, ratio=getRatio, color=getColorFormat, cam=camtest)
365 tlist.append((menuname,current_index))
367 # Chang : DVB -T or DVB-C
368 elif val["type"].startswith("DVB-T") or val["type"].startswith("DVB-C"):
369 additionalMenu = None
371 if len(self.NimType) == 1:
372 additionalMenu = True
374 for x in range(menulen):
375 getRatio = AspectRatio.pop(0)
376 AspectRatio.append(getRatio)
377 getColorFormat=ColorFormat.pop(0)
378 menuname=" %d. T%d/%s/%s/%s" % (current_index, key+1, val["type"], getRatio, getColorFormat)
379 if len(self.NimType) == key+1 and (additionalMenu is None or x != 0): # CAM test on/off
384 self.setTuneInfo( index=current_index, slot=key, type=val["type"], sat=None, pol=None, tone=None, ratio=getRatio, color=getColorFormat, cam=camtest)
385 tlist.append((menuname,current_index))
387 self.tuner_test_last_index = current_index-1
388 self.rs232testIndex=current_index
389 tlist.append((" %d. RS232 test" % current_index,self.rs232testIndex))
391 self.ethernettestIndex=current_index
392 tlist.append((" %d. Ethernet & mac test" % current_index,self.ethernettestIndex))
394 self.fdefaultIndex=current_index
395 tlist.append((" %d. Factory default" % current_index,self.fdefaultIndex))
397 self.shutdownIndex=current_index
398 tlist.append((" %d. Shutdown(Deep Standby)" % current_index,self.shutdownIndex))
400 self.menulength= len(tlist)
401 self["testlist"] = MenuList(tlist)
403 def setTuneInfo(self,index=0,slot=0,type="DVB-S2",sat="160",pol="H",tone=True,ratio="4:3",color="CVBS",cam=False):
404 self.tuneInfo[index]={}
405 self.tuneInfo[index]["slot"]=slot
406 self.tuneInfo[index]["type"]=type
407 self.tuneInfo[index]["sat"]=sat
408 self.tuneInfo[index]["pol"]=pol
409 self.tuneInfo[index]["22k"]=tone
410 self.tuneInfo[index]["ratio"]=ratio
411 self.tuneInfo[index]["color"]=color
412 self.tuneInfo[index]["cam"]=cam
414 def getModelInfo(self):
416 if fileExists("/proc/stb/info/vumodel"):
417 info = open("/proc/stb/info/vumodel").read().strip()
421 print "getModelInfo : duo"
425 print "getModelInfo : solo"
429 print "getModelInfo : combo"
433 print "getModelInfo : uno"
437 print "getModelInfo : ultimo"
438 if getmodel == 0 and fileExists("/proc/stb/info/version"):
439 info = open("/proc/stb/info/version").read()
442 print "getModelInfo : solo_"
443 elif info[:2] == "12":
445 print "getModelInfo : duo_"
451 print "self.menulength = ",self.menulength
452 print "self[\"testlist\"].getCurrent()[1] = ",self["testlist"].getCurrent()[1]
455 if self["testlist"].getCurrent()[1]==0:
456 self["testlist"].moveToIndex(self.menulength-1)
457 self["resultlist"].moveToIndex(self.menulength-1)
459 self["testlist"].up()
460 self["resultlist"].up()
464 print "self.menulength = ",self.menulength
465 print "self[\"testlist\"].getCurrent()[1] = ",self["testlist"].getCurrent()[1]
468 if self["testlist"].getCurrent()[1]==(self.menulength-1):
469 self["testlist"].moveToIndex(0)
470 self["resultlist"].moveToIndex(0)
472 self["testlist"].down()
473 self["resultlist"].down()
475 def numberaction(self, number):
478 if number >= self.menulength:
481 self["testlist"].moveToIndex(index)
482 self["resultlist"].moveToIndex(index)
484 def getImageVersion(self):
486 file = open(resolveFilename(SCOPE_SYSETC, 'image-version'), 'r')
487 lines = file.readlines()
489 splitted = x.split('=')
490 if splitted[0] == "version":
492 #0120 2005 11 29 01 16
493 #0123 4567 89 01 23 45
494 version = splitted[1]
496 month = version[8:10]
498 date = '-'.join((year, month, day))
502 def getversion(self):
504 fd = open("/proc/stb/info/version","r")
506 self["testversion"].setText(("Version %s"%version))
508 self["testversion"].setText(("Version no load"))
511 def getmacaddr(self):
513 if self.model == 2 or self.model == 3 or self.model == 4:
514 cmd = "nanddump -s 0x" + str((self.mactry-1)*2) + "0000 -b -o -l 64 -p /dev/mtd5"
515 elif self.model == 0 or self.model == 1:
516 cmd = "nanddump -s 0x" + str((self.mactry-1)*2) + "0000 -b -o -l 64 -p /dev/mtd4"
517 self.macConsole = Console()
518 self.macConsole.ePopen(cmd, self.readmac,self.checkReadmac)
522 def readmac(self, result, retval,extra_args=None):
523 (callback) = extra_args
524 if self.macConsole is not None:
526 self.macConsole = None
528 content =result.splitlines()
530 if x.startswith('0x000'+str((self.mactry-1)*2)+'0010:'):
534 elif len(macline) < 10:
537 mac = macline[5]+":"+macline[6]+":"+macline[7]+":"+macline[8]+":"+macline[9]+":"+macline[10]
538 self["mactext"].setText(("MAC : "+mac))
541 def checkReadmac(self,data):
543 print "block %d is bad block" % self.mactry
544 self.mactry = self.mactry + 1
546 self.session.open(MessageBox, _("FLASH IS BROKEN"), type = MessageBox.TYPE_INFO, enable_input = False)
551 print 'mac dump read error'
554 print 'mac address read ok'
557 def TestAction(self):
560 print "line - ",self["testlist"].getCurrent()[1]
561 self.currentindex = index = self["testlist"].getCurrent()[1]
563 if index==self.satetestIndex:
565 elif index==self.fronttestIndex:
567 elif index>=self.tuner_test_first_index and index<=self.tuner_test_last_index:
569 elif index==self.scarttestIndex:
571 elif index==self.rs232testIndex:
573 elif index==self.usbtestIndex:
575 elif index==self.ethernettestIndex:
577 elif index == self.smarttestIndex:
585 elif index==self.fdefaultIndex:
587 # elif index==self.shutdownIndex:
592 def shutdownaction(self):
593 if self["testlist"].getCurrent()[1] == self.shutdownIndex:
599 self.satatimer.start(100,True)
602 # print "try", self.satatry
603 if self.satatry == 0:
606 self.rlist[self["testlist"].getCurrent()[1]]="try %d"%self.satatry
607 self["resultlist"].updateList(self.rlist)
612 if fileExists("/autofs/sdb1"):
613 if access("/autofs/sdb1",F_OK|R_OK|W_OK):
614 dummy=open("/autofs/sdb1/dummy03","w")
615 dummy.write("complete")
617 dummy=open("/autofs/sdb1/dummy03","r")
618 if dummy.readline()=="complete":
619 print "/autofs/sdb1 - complete"
621 print "/autofs/sdb1 - readline error"
625 system("rm /autofs/sdb1/dummy03")
627 print "/autofs/sdb1 - rw access error"
631 print "/autofs/sdb1 - file not exist"
634 print "/autofs/sdb1 - exceptional error"
638 if fileExists("/autofs/sda1"):
639 if access("/autofs/sda1",F_OK|R_OK|W_OK):
640 dummy=open("/autofs/sda1/dummy03","w")
641 dummy.write("complete")
643 dummy=open("/autofs/sda1/dummy03","r")
644 if dummy.readline()=="complete":
645 print "/autofs/sda1 - complete"
647 print "/autofs/sda1 - readline error"
651 system("rm /autofs/sda1/dummy03")
653 print "/autofs/sda1 - rw access error"
657 print "/autofs/sda1 - file not exist"
660 print "/autofs/sda1 - exceptional error"
665 self.session.open( MessageBox, _("Sata & extend hdd test pass\nPress 'OK' button!"), MessageBox.TYPE_INFO)
666 self.rlist[self["testlist"].getCurrent()[1]]="pass"
669 self.session.open( MessageBox, _("One hdd test error\nPress 'EXIT' button!"), MessageBox.TYPE_ERROR)
670 self.rlist[self["testlist"].getCurrent()[1]]="fail"
672 self.satatimer.start(1100,True)
675 self.session.open( MessageBox, _("Sata & extend hdd test error\nPress 'EXIT' button!"), MessageBox.TYPE_ERROR)
676 self.rlist[self["testlist"].getCurrent()[1]]="fail"
678 self.satatimer.start(1100,True)
682 self.session.openWithCallback(self.displayresult ,FrontTest)
683 elif self.model == 1:
684 self.session.openWithCallback(self.displayresult ,FrontTest_solo)
685 elif self.model == 2 or self.model == 3 or self.model == 4:
686 self.session.openWithCallback(self.displayresult ,FrontTest_uno)
688 def displayresult(self):
691 self.rlist[self["testlist"].getCurrent()[1]]="pass"
693 self.rlist[self["testlist"].getCurrent()[1]]="fail"
695 def TestTune(self,index):
696 if self.oldref is None:
697 eref = eServiceReference("1:0:19:1324:3EF:1:C00000:0:0:0")
698 serviceHandler = eServiceCenter.getInstance()
699 servicelist = serviceHandler.list(eref)
700 if not servicelist is None:
701 ref = servicelist.getNext()
703 ref = self.getCurrentSelection() # raise error
704 print "servicelist none"
707 self.session.nav.stopService() # try to disable foreground service
708 if self.model == 0 or self.model == 1:
709 if index==self.tuner1_1testIndex:
714 ref.setData(4,0xA00000)
715 self.session.nav.playService(ref)
716 self.avswitch.setColorFormat(0)
717 self.avswitch.setAspectRatio(0)
718 elif index==self.tuner1_2testIndex:
721 self.camtimer.start(100,True)
723 ref.setData(1,0x1325)
726 ref.setData(4,0x64af79)
727 self.session.nav.playService(ref)
728 self.avswitch.setColorFormat(1)
729 self.avswitch.setAspectRatio(6)
730 elif index==self.tuner2_1testIndex:
735 ref.setData(4,0x820000)
736 self.session.nav.playService(ref)
737 self.avswitch.setColorFormat(2)
738 self.avswitch.setAspectRatio(0)
739 elif index==self.tuner2_2testIndex:
741 self.camtimer.start(100,True)
743 ref.setData(1,0x1325)
746 ref.setData(4,0xC00000)
747 self.session.nav.playService(ref)
748 self.avswitch.setColorFormat(0)
749 self.avswitch.setAspectRatio(6)
750 self.tuningtimer.start(2000,True)
751 self.tunemsgtimer.start(3000, True)
752 elif self.model == 3 or self.model == 4:
753 getTuneInfo=self.tuneInfo[index]
754 if getTuneInfo["cam"] is True:
756 self.camtimer.start(100,True)
757 if getTuneInfo["type"].startswith("DVB-S"):
758 if getTuneInfo["pol"] == "H":
765 ref.setData(1,0x1325)
768 if getTuneInfo["sat"] == "160": # Eutelsat W2
769 ref.setData(4,0xA00000)
770 elif getTuneInfo["sat"] == "100": # Eutelsat
771 ref.setData(4,0x64af79)
772 elif getTuneInfo["sat"] == "130": # Hotbird
773 ref.setData(4,0x820000)
774 elif getTuneInfo["sat"] == "192": # Astra
775 ref.setData(4,0xC00000)
776 elif getTuneInfo["sat"] == "620": # Intelsat 902
777 ref.setData(4,0x26c0000) # need to fix later
778 elif getTuneInfo["sat"] == "642": # Intelsat 906
779 ref.setData(4,0x282AF79) # need to fix later
780 elif getTuneInfo["type"].startswith("DVB-C"):
782 ref.setData(1,0x1325)
785 ref.setData(4,-64870) # ffff029a
786 elif getTuneInfo["type"].startswith("DVB-T"):
788 ref.setData(1,0x1325)
791 ref.setData(4,-286391716) # eeee025c
792 self.session.nav.playService(ref)
793 if getTuneInfo["color"]=="CVBS":
794 self.avswitch.setColorFormat(0)
795 elif getTuneInfo["color"]=="RGB":
796 self.avswitch.setColorFormat(1)
797 elif getTuneInfo["color"]=="YC":
798 self.avswitch.setColorFormat(2)
799 if getTuneInfo["ratio"] == "4:3":
800 self.avswitch.setAspectRatio(0)
801 elif getTuneInfo["ratio"] == "16:9":
802 self.avswitch.setAspectRatio(6)
803 self.tuningtimer.start(2000,True)
804 self.tunemsgtimer.start(3000, True)
807 current_index = self.currentindex
808 if self.camstep == 1:
810 state = eDVBCI_UI.getInstance().getState(slot)
811 print '-1-stat',state
814 self.camtimer.start(100,True)
816 self.session.nav.stopService()
817 self.session.open( MessageBox, _("CAM1_NOT_INSERTED\nPress exit!"), MessageBox.TYPE_ERROR)
818 self.rlist[current_index]="fail"
819 self.tunemsgtimer.stop()
820 elif self.camstep == 2:
822 appname = eDVBCI_UI.getInstance().getAppName(slot)
823 print 'appname',appname
825 self.session.nav.stopService()
826 self.session.open( MessageBox, _("NO_GET_APPNAME\nPress exit!"), MessageBox.TYPE_ERROR)
827 self.rlist[current_index]="fail"
828 self.tunemsgtimer.stop()
831 self.camtimer.start(100,True)
832 elif self.camstep==3:
834 state = eDVBCI_UI.getInstance().getState(slot)
835 print '-2-stat',state
838 self.camtimer.start(100,True)
840 self.session.nav.stopService()
841 self.session.open( MessageBox, _("CAM2_NOT_INSERTED\nPress exit!"), MessageBox.TYPE_ERROR)
842 self.rlist[current_index]="fail"
843 self.tunemsgtimer.stop()
844 elif self.camstep == 4:
846 appname = eDVBCI_UI.getInstance().getAppName(slot)
847 print 'appname',appname
849 self.session.nav.stopService()
850 self.session.open( MessageBox, _("NO_GET_APPNAME\nPress exit!"), MessageBox.TYPE_ERROR)
851 self.rlist[current_index]="fail"
852 self.tunemsgtimer.stop()
857 def updateStatus(self):
858 current_index = self.currentindex
859 if self.model == 0 or self.model == 1:
860 if current_index ==self.tuner1_1testIndex or current_index==self.tuner1_2testIndex:
862 result = eSctest.getInstance().getFrontendstatus(0)
865 result = eSctest.getInstance().getFrontendstatus(1)
866 if current_index == self.tuner1_2testIndex or current_index==self.tuner2_2testIndex:
871 elif self.model == 3 or self.model == 4:
872 getTuneInfo=self.tuneInfo[current_index]
873 result = eSctest.getInstance().getFrontendstatus(getTuneInfo["slot"])
874 tunno = getTuneInfo["slot"]+1
875 hv = getTuneInfo["pol"]
883 print "eSctest.getInstance().getFrontendstatus - %d"%result
886 self.tunemsgtimer.stop()
887 self.session.nav.stopService()
888 self.avswitch.setColorFormat(0)
889 self.session.open( MessageBox, _("Tune%d %s Locking Fail..."%(tunno,hv)), MessageBox.TYPE_ERROR)
890 self.rlist[current_index]="fail"
894 def tuneback(self,yesno):
895 current_index=self.currentindex
896 self.session.nav.stopService() # try to disable foreground service
897 if yesno and self.tunerlock == 1:
898 if current_index == self.tuner_test_last_index and self.camstep < 5: # need fix to depending about CAM exist
899 self.rlist[current_index]="fail"
901 self.rlist[current_index]="pass"
903 self.rlist[current_index]="fail"
904 if self.model == 0 and current_index == 6: # YC
905 self.avswitch.setColorFormat(0)
906 elif ( self.model == 3 or self.model == 4 ) and self.tuneInfo[current_index]["color"] == "YC":
907 self.avswitch.setColorFormat(0)
909 self["resultlist"].updateList(self.rlist)
912 self.tuningtimer.stop()
913 self.session.openWithCallback(self.tuneback, MessageBox, _("%s ok?" %(self["testlist"].getCurrent()[0])), MessageBox.TYPE_YESNO)
915 def setSourceVar(self):
919 elif self.model == 1:
923 self.input_pad_num=len(self.NimType)-1
924 if self.input_pad_num == 0:
926 elif self.input_pad_num == 1:
928 elif self.input_pad_num == 2:
931 # ikseong - for 22000 tp
934 inputname = ("/proc/stb/tsmux/input%d" % self.input_pad_num)
935 print "<setsource> inputname : ",inputname
936 fd=open(inputname,"w")
940 filename = ("/proc/stb/tsmux/ci0_input")
941 fd = open(filename,'w')
942 fd.write(self.setTuner)
943 print "setTuner(CI0) : ",self.setTuner
945 print "CI loop test!!!!!!!!!!!!!!"
947 def resetSource(self):
948 inputname = ("/proc/stb/tsmux/input%d" % self.input_pad_num)
949 print "<resetsource> inputname : ",inputname
950 fd=open(inputname,"w")
951 fd.write(self.setTuner)
953 print "CI loop test end!!!!!!!!!!!!!!"
956 self.avswitch.setInput("SCART")
958 self.session.openWithCallback(self.check6, MessageBox, _("Scart loop ok?"), MessageBox.TYPE_YESNO)
960 def check6(self,yesno):
962 self.rlist[self["testlist"].getCurrent()[1]]="pass"
964 self.rlist[self["testlist"].getCurrent()[1]]="fail"
965 self.avswitch.setInput("ENCODER")
970 self.rlist[self["testlist"].getCurrent()[1]]="pass"
972 self.rlist[self["testlist"].getCurrent()[1]]="fail"
975 self.session.openWithCallback(self.check7,RS232Test)
980 if self.oldref is None:
981 eref = eServiceReference("1:0:19:1324:3EF:1:C00000:0:0:0")
982 serviceHandler = eServiceCenter.getInstance()
983 servicelist = serviceHandler.list(eref)
984 if not servicelist is None:
985 ref = servicelist.getNext()
987 ref = self.getCurrentSelection()
988 print "servicelist none"
991 self.session.nav.stopService() # try to disable foreground service
992 if self.model == 0 or self.model == 1 or self.NimType[0]["type"].startswith("DVB-S"):
994 ref.setData(1,0x1325)
997 ref.setData(4,0x64af79)
998 elif self.NimType[0]["type"].startswith("DVB-C"):
1000 ref.setData(1,0x1325)
1001 ref.setData(2,0x3ef)
1003 ref.setData(4,-64870) # ffff029a
1004 elif self.NimType[0]["type"].startswith("DVB-T"):
1006 ref.setData(1,0x1325)
1007 ref.setData(2,0x3ef)
1009 ref.setData(4,-286391716) # eeee025c
1010 self.session.nav.playService(ref)
1011 self.avswitch.setColorFormat(0)
1012 self.avswitch.setAspectRatio(0)
1013 self.agingtimer.start(2000,True)
1015 def agingCheck(self):
1016 result = eSctest.getInstance().getFrontendstatus(0)
1018 print "eSctest.getInstance().getFrontendstatus - %d"%result
1020 self.session.nav.stopService()
1021 self.session.open( MessageBox, _("Tune 1 Ver Locking Fail..."), MessageBox.TYPE_ERROR)
1023 self.session.openWithCallback(self.agingResult,AgingTest)
1025 self.session.nav.stopService()
1026 self.session.open( MessageBox, _("Tune 1 Ver Error %d..."%result), MessageBox.TYPE_ERROR)
1028 def agingResult(self):
1030 if(Agingresult ==1):
1031 self["testlist"].moveToIndex(self.fdefaultIndex)
1033 self["testlist"].moveToIndex(self.shutdownIndex)
1037 self.usbtimer.start(100,True)
1040 if self.usbtry == 0:
1043 self.rlist[self["testlist"].getCurrent()[1]]="try %d"%self.usbtry
1044 self["resultlist"].updateList(self.rlist)
1048 if self.model==0 or self.model==3 or self.model==4:
1049 devices = [ "/autofs/sdc1", "/autofs/sdd1", "/autofs/sde1" ]
1051 devices = [ "/autofs/sda1", "/autofs/sdb1" ]
1053 devices = [ "/autofs/sdc1", "/autofs/sdd1" ]
1055 self.session.open( MessageBox, _("invalid model"), MessageBox.TYPE_ERROR)
1056 self.rlist[self["testlist"].getCurrent()[1]]="fail"
1064 if access(dev,F_OK|R_OK|W_OK):
1065 dummy=open(dev+"/dummy03","w")
1066 dummy.write("complete")
1068 dummy=open(dev+"/dummy03","r")
1069 if dummy.readline()=="complete":
1070 print dev," - complete"
1072 print dev," - readline error"
1076 system("rm "+dev+"/dummy03")
1078 print dev," - rw access error"
1082 print dev," - file not exist"
1085 print dev," - exceptional error"
1091 elif result == len(devices):
1092 self.session.open( MessageBox, _("USB test pass %d devices\nPress 'OK' button!"%result), MessageBox.TYPE_INFO)
1093 self.rlist[self["testlist"].getCurrent()[1]]="pass"
1095 if displayerror == 1:
1096 self.session.open( MessageBox, _("USB test error : Success-%d"%result+" Fail-%d\nPress 'EXIT' button!"%(len(devices)-result)), MessageBox.TYPE_ERROR)
1097 self.rlist[self["testlist"].getCurrent()[1]]="fail"
1099 self.usbtimer.start(1100,True)
1103 # system("/etc/init.d/networking stop")
1104 system("ifconfig eth0 192.168.0.10")
1105 # system("/etc/init.d/networking start")
1106 cmd1 = "ping -c 1 192.168.0.100"
1107 self.PingConsole = Console()
1108 self.PingConsole.ePopen(cmd1, self.checkNetworkStateFinished,self.NetworkStatedataAvail)
1110 def checkNetworkStateFinished(self, result, retval,extra_args):
1111 (statecallback) = extra_args
1112 if self.PingConsole is not None:
1114 self.PingConsole = None
1115 content = result.splitlines()
1116 # print 'content',content
1117 x = content[4].split()
1127 def NetworkStatedataAvail(self,data):
1132 self.session.openWithCallback(self.openMacConfig ,MessageBox, _("Ping test pass"), MessageBox.TYPE_INFO,2)
1137 self.session.open( MessageBox, _("Ping test fail\nPress exit"), MessageBox.TYPE_ERROR)
1143 def openMacConfig(self, ret=False):
1144 self.session.openWithCallback(self.macresult ,MacConfig,mactry=self.mactry)
1146 def macresult(self):
1149 self.rlist[self.ethernettestIndex]="pass"
1151 self.rlist[self.ethernettestIndex]="fail"
1155 def MemTest(self, which):
1159 result = eMemtest.getInstance().dramtest()
1161 result = eMemtest.getInstance().flashtest()
1164 result = eMemtest.getInstance().dramtest()
1165 result = eMemtest.getInstance().flashtest()
1171 print index,self.rlist[index]
1172 self.rlist[index]="pass"
1174 print index,self.rlist[index]
1175 self.rlist[index]="fail"
1176 self["resultlist"].updateList(self.rlist)
1178 def scciresult(self):
1179 global smartcardtest
1180 if smartcardtest == 1:
1181 self.rlist[self["testlist"].getCurrent()[1]]="pass"
1183 self.rlist[self["testlist"].getCurrent()[1]]="fail"
1186 self.session.openWithCallback(self.scciresult ,SmartCardTest,stbmodel=self.model)
1201 system("rm -R /etc/enigma2")
1203 system("cp -R /usr/share/enigma2/defaults /etc/enigma2")
1204 self.rlist[self["testlist"].getCurrent()[1]]="pass"
1205 self["resultlist"].updateList(self.rlist)
1207 print "test14 except"
1208 self.rlist[self["testlist"].getCurrent()[1]]="fail"
1209 self["resultlist"].updateList(self.rlist)
1210 self.session.open( MessageBox, _("Factory reset fail"), MessageBox.TYPE_ERROR)
1213 self.session.openWithCallback(self.shutdown ,MessageBox, _("Do you want to shut down?"), MessageBox.TYPE_YESNO)
1215 def shutdown(self, yesno):
1217 from os import _exit
1218 system("/usr/bin/showiframe /boot/backdrop.mvi")
1223 def keyCancel(self):
1228 # if self.oldref is not None:
1229 # self.session.nav.playService(self.oldref)
1232 class MacConfig(Screen):
1234 <screen position="100,250" size="520,100" title="Mac Config" >
1235 <eLabel text="Mac Address " position="10,15" size="200,40" font="Regular;30" />
1236 <widget name="text" position="230,15" size="230,40" font="Regular;30" />
1237 <widget name="text1" position="470,15" size="40,40" font="Regular;30" />
1238 <eLabel text=" " position="5,55" zPosition="-1" size="510,5" backgroundColor="#02e1e8e6" />
1239 <widget name="stattext" position="30,75" size="400,25" font="Regular;20" />
1242 def __init__(self, session, mactry = 1):
1243 self["actions"] = ActionMap(["DirectionActions","OkCancelActions"],
1246 "left": self.keyleft,
1247 "right": self.keyright,
1248 "cancel": self.keyCancel,
1251 Screen.__init__(self, session)
1253 self.mactry = mactry
1257 self.macaddr = "000000000000"
1258 self.ReadMacinfo = 0
1259 self["text"]=Label((self.macaddr))
1260 self["text1"]= Label(("< >"))
1261 self["stattext"]= Label((""))
1268 def getModelInfo(self):
1270 if fileExists("/proc/stb/info/vumodel"):
1271 info = open("/proc/stb/info/vumodel").read().strip()
1275 print "MacConfig, model : combo"
1276 elif info == "solo":
1279 print "MacConfig, model : solo"
1283 print "MacConfig, model : duo"
1287 print "getModelInfo : uno"
1288 elif info == "ultimo":
1291 print "getModelInfo : ultimo"
1294 if getmodel == 0 and fileExists("/proc/stb/info/version"):
1295 info = open("/proc/stb/info/version").read()
1296 # print info,info[:2]
1297 if info[:2] == "14":
1299 print "MacConfig, model : solo_"
1300 elif info[:2] == "12":
1302 print "MacConfig, model: duo_"
1304 def loadmacaddr(self):
1308 if self.model==0 or self.model==3 or self.model==4 :
1309 devices = ["/autofs/sdb1", "/autofs/sdc1", "/autofs/sdd1", "/autofs/sde1" ]
1311 devices = [ "/autofs/sda1", "/autofs/sdb1" ]
1313 devices = [ "/autofs/sdb1", "/autofs/sdc1", "/autofs/sdd1" ]
1317 if fileExists(dev+"/macinfo.txt"):
1318 print "<open>"+dev+"/macinfo.txt"
1319 self.macfd = open(dev+"/macinfo.txt","r+")
1323 self["text"].setText(("cannot read usb!!"))
1324 self["text1"].setText((" "))
1325 self["stattext"].setText((" Press Exit Key."))
1329 macaddr=self.macfd.readline().split(":")
1330 self.macaddr=macaddr[1]+macaddr[2]+macaddr[3]+macaddr[4]+macaddr[5]+macaddr[6]
1332 self.ReadMacinfo = 1
1334 self["text"].setText(("cannot read usb!!"))
1335 self["text1"].setText((" "))
1336 self["stattext"].setText((" Press Exit Key."))
1339 def getmacaddr(self):
1340 if self.ReadMacinfo==0:
1343 if self.model == 2 or self.model == 3 or self.model == 4:
1344 cmd = "nanddump -s 0x" + str((self.mactry-1)*2) + "0000 -b -o -l 64 -p /dev/mtd5"
1345 elif self.model == 0 or self.model == 1:
1346 cmd = "nanddump -s 0x" + str((self.mactry-1)*2) + "0000 -b -o -l 64 -p /dev/mtd4"
1347 self.macConsole = Console()
1348 self.macConsole.ePopen(cmd, self.readmac,self.checkReadmac)
1352 def readmac(self, result, retval,extra_args=None):
1353 (callback) = extra_args
1354 if self.macConsole is not None:
1356 self.macConsole = None
1358 content =result.splitlines()
1360 if x.startswith('0x000'+str((self.mactry-1)*2)+'0010:'):
1364 elif len(macline) < 10:
1367 mac = macline[5]+":"+macline[6]+":"+macline[7]+":"+macline[8]+":"+macline[9]+":"+macline[10]
1368 self["stattext"].setText(("now : "+mac))
1371 def checkReadmac(self,data):
1373 print "block %d is bad block" % self.mactry
1374 self.mactry = self.mactry + 1
1376 self.session.open(MessageBox, _("FLASH IS BROKEN"), type = MessageBox.TYPE_INFO, enable_input = False)
1381 print 'mac dump read error'
1384 print 'mac address read ok'
1389 if self.ReadMacinfo==0 :
1391 macaddress = long(self.macaddr,16)-1
1393 macaddress = 0xffffffffffff
1394 self.macaddr = "%012x"%macaddress
1398 if self.ReadMacinfo==0 :
1400 macaddress = long(self.macaddr,16)+1
1401 if macaddress > 0xffffffffffff:
1403 self.macaddr = "%012x"%macaddress
1406 def displaymac(self):
1407 macaddr= self.macaddr
1408 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))))
1411 if self.ReadMacinfo==0 :
1414 macaddr = self.macaddr
1415 #make_mac_sector 00-99-99-99-00-00 > /tmp/mac.sector
1416 #flash_eraseall /dev/mtd4
1417 #nandwrite /dev/mtd4 /tmp/mac.sector -p
1418 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))
1420 if self.model == 2 or self.model == 3 or self.model == 4:
1421 system("flash_eraseall /dev/mtd5")
1422 system("nandwrite /dev/mtd5 /tmp/mac.sector -p")
1423 elif self.model == 0 or self.model ==1 :
1424 system("flash_eraseall /dev/mtd4")
1425 system("nandwrite /dev/mtd4 /tmp/mac.sector -p")
1426 macaddress = long(macaddr,16)+1
1427 if macaddress > 0xffffffffffff:
1429 macaddr = "%012x"%macaddress
1430 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))
1432 self.macfd.write(macwritetext)
1435 self.macaddr = macaddr
1438 self.session.open( MessageBox, _("Mac address fail"), MessageBox.TYPE_ERROR)
1443 def keyCancel(self):
1451 class SmartCardTest(Screen):
1453 <screen position="300,240" size="160,120" title="SmartCard Test" >
1454 <widget name="text" position="10,10" size="140,100" font="Regular;22" />
1457 def __init__(self, session, stbmodel = 0):
1458 self["actions"] = ActionMap(["DirectionActions", "OkCancelActions"],
1460 "cancel": self.keyCancel,
1464 Screen.__init__(self, session)
1465 self["text"]=Label(("Testing Smartcard 1..."))
1467 self.smartcardtimer = eTimer()
1468 self.smartcardtimer.callback.append(self.check_smart_card)
1469 self.closetimer = eTimer()
1470 self.closetimer.callback.append(self.close)
1472 global smartcardtest
1474 self.model = stbmodel
1476 self.smartcardtimer.start(100,True)
1478 def check_smart_card(self):
1479 global smartcardtest
1480 index = self.smartcard
1483 if self.Testmode==0:
1484 result = eSctest.getInstance().check_smart_card("/dev/sci0")
1486 result = eSctest.getInstance().n_check_smart_card("/dev/sci0")
1488 if self.Testmode==0:
1489 result = eSctest.getInstance().check_smart_card("/dev/sci1")
1491 result = eSctest.getInstance().n_check_smart_card("/dev/sci1")
1499 if(index== 0 and ( self.model== 0 or self.model==2 or self.model == 3 or self.model == 4) ):
1501 self["text"].setText(_("Testing Smartcard 2..."))
1502 self.smartcardtimer.start(100,True)
1504 elif (index==1 or self.model==1):
1507 self["text"].setText(_("Smart Card OK!!"))
1508 self.closetimer.start(2000,True)
1509 self.smartcardtimer.stop()
1512 self["text"].setText(_("Smart Card model type error"))
1513 self.closetimer.start(2000,True)
1514 self.smartcardtimer.stop()
1517 # self.session.open( MessageBox, _("%d:NO_DEV_FOUND"%(index+1)), MessageBox.TYPE_ERROR)
1518 # elif result == -2:
1519 # self.session.open( MessageBox, _("%d:SC_NOT_INSERTED"%(index+1)), MessageBox.TYPE_ERROR)
1520 # elif result == -3:
1521 # self.session.open( MessageBox, _("%d:SC_NOT_VALID_ATR"%(index+1)), MessageBox.TYPE_ERROR)
1522 # elif result == -5:
1523 # self.session.open( MessageBox, _("%d:SC_READ_TIMEOUT"%(index+1)), MessageBox.TYPE_ERROR)
1525 self["text"].setText(_("Smart Card 1 Error!\nerrorcode=%d"%result))
1527 self["text"].setText(_("Smart Card 2 Error!\nerrorcode=%d"%result))
1528 self.closetimer.start(2000,True)
1529 self.smartcardtimer.stop()
1532 def keyCancel(self):
1536 if self.testok == 1:
1543 class FrontTest(Screen):
1545 <screen position="260,240" size="200,180" title="Front Test" >
1546 <widget name="text" position="10,10" size="180,160" font="Regular;22" />
1549 def __init__(self, session):
1550 self["actions"] = ActionMap(["DirectionActions", "OkCancelActions"],
1554 "down":self.keyDown,
1555 "cancel": self.keyCancel,
1558 Screen.__init__(self, session)
1559 self["text"]=Label(("Wheel LEFT"))
1562 self.fronttimer= eTimer()
1563 self.fronttimer.callback.append(self.FrontAnimate)
1564 self.frontturnonoff = 0
1565 eSctest.getInstance().VFD_Open()
1566 self.keytimeout = eTimer()
1567 self.keytimeout.callback.append(self.KeyTimeOut)
1568 self.keytimeout.start(5000,True)
1570 def KeyTimeOut(self):
1572 self["text"].setText(("Wheel LEFT ERROR"))
1573 elif self.step ==2 :
1574 self["text"].setText(("Wheel RIGHT ERROR"))
1575 elif self.step == 3:
1576 self["text"].setText(("Wheel BUTTON ERROR"))
1580 def keyCancel(self):
1582 self.fronttimer.stop()
1583 eSctest.getInstance().VFD_Close()
1592 self.keytimeout.stop()
1593 self.keytimeout.start(5000,True)
1595 self["text"].setText(_("Press Front Wheel"))
1599 self.keytimeout.stop()
1600 self.keytimeout.start(5000,True)
1602 self["text"].setText(_("Wheel RIGHT"))
1606 self.keytimeout.stop()
1608 self.fronttimer.start(1000,True)
1609 self["text"].setText(("Front Test OK!\nPress Exit Key"))
1610 # elif self.step==4:
1612 # self.fronttimer.stop()
1613 # eSctest.getInstance().VFD_Close()
1617 def FrontAnimate(self):
1618 if (self.frontturnonoff==0):
1619 eSctest.getInstance().turnon_VFD()
1620 self.frontturnonoff = 1
1622 self.frontturnonoff = 0
1623 eSctest.getInstance().turnoff_VFD()
1624 self.fronttimer.start(1000,True)
1627 class FrontTest_solo(Screen):
1629 <screen position="260,240" size="200,180" title="Front Test" >
1630 <widget name="text" position="10,10" size="180,160" font="Regular;22" />
1633 def __init__(self, session):
1634 self["actions"] = ActionMap(["DirectionActions", "OkCancelActions","GlobalActions"],
1637 "cancel": self.keyCancel,
1638 "left": self.keyleft,
1639 "right": self.keyright,
1640 "power_down": self.keypower,
1641 "volumeUp": self.keyvolup,
1642 "volumeDown": self.keyvoldown,
1645 Screen.__init__(self, session)
1646 self["text"]=Label(("Press Front STANDBY"))
1649 self.fronttimer= eTimer()
1650 self.fronttimer.callback.append(self.FrontAnimate)
1651 self.frontturnonoff = 0
1652 eSctest.getInstance().VFD_Open()
1653 self.keytimeout = eTimer()
1654 self.keytimeout.callback.append(self.KeyTimeOut)
1655 self.keytimeout.start(5000,True)
1657 def KeyTimeOut(self):
1659 self["text"].setText(("Front STANDBY ERROR\nPress exit!"))
1660 elif self.step == 2 :
1661 self["text"].setText(("Front CH - ERROR\nPress exit!"))
1662 elif self.step == 3:
1663 self["text"].setText(("Front CH + ERROR\nPress exit!"))
1664 elif self.step == 4 :
1665 self["text"].setText(("Front VOL - ERROR\nPress exit!"))
1666 elif self.step == 5:
1667 self["text"].setText(("Front VOL + ERROR\nPress exit!"))
1674 self.keytimeout.stop()
1675 self.keytimeout.start(5000,True)
1677 self["text"].setText(_("Press Front CH -"))
1681 self.keytimeout.stop()
1682 self.keytimeout.start(5000,True)
1684 self["text"].setText(_("Press Front VOL -"))
1688 self.keytimeout.stop()
1689 self.keytimeout.start(5000,True)
1691 self["text"].setText(_("Press Front CH +"))
1695 self.keytimeout.stop()
1697 self.fronttimer.start(1000,True)
1698 self["text"].setText(_("Front LED OK?\n\nyes-ok\nno-exit"))
1699 # self["text"].setText(("Front Test OK!\nPress Exit Key"))
1701 def keyvoldown(self):
1703 self.keytimeout.stop()
1704 self.keytimeout.start(5000,True)
1706 self["text"].setText(_("Press Front VOL +"))
1708 def checkled(self, yesno):
1715 def keyCancel(self):
1717 self.fronttimer.stop()
1718 eSctest.getInstance().VFD_Close()
1726 self.fronttimer.stop()
1727 eSctest.getInstance().VFD_Close()
1730 def FrontAnimate(self):
1731 if (self.frontturnonoff==0):
1732 eSctest.getInstance().turnon_VFD()
1733 self.frontturnonoff = 1
1735 self.frontturnonoff = 0
1736 eSctest.getInstance().turnoff_VFD()
1737 self.fronttimer.start(1000,True)
1739 class FrontTest_uno(Screen):
1741 <screen name="FrontTest_uno" position="center,center" size="300,180" title="Front Test" >
1742 <widget name="text" position="10,10" size="280,160" font="Regular;30" />
1745 def __init__(self, session):
1746 self["actions"] = ActionMap(["DirectionActions", "OkCancelActions","GlobalActions"],
1749 "cancel": self.keyCancel,
1750 "left": self.keyleft,
1751 "right": self.keyright,
1752 "volumeUp": self.keyvolup,
1753 "volumeDown": self.keyvoldown,
1754 "power_down": self.keypower,
1757 Screen.__init__(self, session)
1758 self["text"]=Label(("Press Front CH -"))
1760 self.fronttimer= eTimer()
1761 self.fronttimer.callback.append(self.FrontAnimate)
1762 self.frontturnonoff = 0
1763 eSctest.getInstance().VFD_Open()
1764 self.keytimeout = eTimer()
1765 self.keytimeout.callback.append(self.KeyTimeOut)
1766 self.keytimeout.start(5000,True)
1768 def KeyTimeOut(self):
1770 self["text"].setText(("Front CH - ERROR\nPress exit!"))
1771 elif self.step == 2:
1772 self["text"].setText(("Front CH + ERROR\nPress exit!"))
1773 elif self.step == 3 :
1774 self["text"].setText(("Front VOL - ERROR\nPress exit!"))
1775 elif self.step == 4:
1776 self["text"].setText(("Front VOL + ERROR\nPress exit!"))
1777 elif self.step == 5:
1778 self["text"].setText(("Front STANDBY ERROR\nPress exit!"))
1783 self.keytimeout.stop()
1784 self.keytimeout.start(5000,True)
1786 self["text"].setText(_("Press Front CH +"))
1789 self.keytimeout.stop()
1790 self.keytimeout.start(5000,True)
1792 self["text"].setText(_("Press Front VOL -"))
1794 def keyvoldown(self):
1796 self.keytimeout.stop()
1797 self.keytimeout.start(5000,True)
1799 self["text"].setText(_("Press Front VOL +"))
1803 self.keytimeout.stop()
1804 self.keytimeout.start(5000,True)
1806 self["text"].setText(_("Press Front STANDBY"))
1810 self.keytimeout.stop()
1812 self.fronttimer.start(1000,True)
1813 self["text"].setText(_("Front LED OK?\n\nyes-ok\nno-exit"))
1815 def keyCancel(self):
1817 self.fronttimer.stop()
1818 eSctest.getInstance().VFD_Close()
1826 self.fronttimer.stop()
1827 eSctest.getInstance().VFD_Close()
1830 def FrontAnimate(self):
1831 if (self.frontturnonoff==0):
1832 eSctest.getInstance().turnon_VFD()
1833 self.frontturnonoff = 1
1835 self.frontturnonoff = 0
1836 eSctest.getInstance().turnoff_VFD()
1837 self.fronttimer.start(1000,True)
1844 class RS232Test(Screen):
1846 <screen position="300,240" size="160,100" title="RS232 Test" >
1847 <widget name="text" position="10,10" size="140,80" font="Regular;22" />
1850 def __init__(self, session):
1851 self["actions"] = ActionMap(["DirectionActions", "OkCancelActions"],
1853 "cancel": self.keyCancel,
1856 Screen.__init__(self, session)
1857 self["text"]=Label(("Press \"Enter\" Key"))
1858 self.timer = eTimer()
1859 self.timer.callback.append(self.checkrs232)
1860 self.timer.start(100, True)
1862 def checkrs232(self):
1865 rs=open('/dev/ttyS0','r')
1867 r,w,e = select.select(rd, [], [], 10)
1880 self.session.open( MessageBox, _("RS232 Test Failed!\nPress 'EXIT' button!"), MessageBox.TYPE_ERROR)
1883 def keyCancel(self):
1888 class AgingTest(Screen):
1890 <screen position="200,240" size="250,100" title="Aging Test" >
1891 <widget name="text1" position="10,10" size="230,40" font="Regular;22" />
1892 <widget name="text2" position="10,50" size="230,40" font="Regular;22" />
1895 def __init__(self, session):
1896 self["actions"] = ActionMap(["MediaPlayerActions","GlobalActions"],
1898 "pause": self.keyEnd,
1899 "stop": self.keyFinish,
1900 "volumeUp": self.nothing,
1901 "volumeDown": self.nothing,
1902 "volumeMute": self.nothing,
1905 Screen.__init__(self, session)
1906 self["text1"]=Label(("Exit - Press Pause Key"))
1907 self["text2"]=Label(("Reset - Press Stop Key"))
1908 # self.servicelist = ServiceList()
1909 # self.oldref = session.nav.getCurrentlyPlayingServiceReference()
1910 # print "oldref",self.oldref
1911 # session.nav.stopService() # try to disable foreground service
1914 self.tuningtimer = eTimer()
1915 self.tuningtimer.callback.append(self.updateStatus)
1916 # self.tuningtimer.start(200,True)
1919 def updateStatus(self):
1920 result = eSctest.getInstance().getFrontendstatus(0)
1923 print "eSctest.getInstance().getFrontendstatus - %d"%result
1926 self.session.nav.stopService()
1927 self.session.open( MessageBox, _("Tune 1 Ver Locking Fail..."), MessageBox.TYPE_ERROR)
1932 self.session.nav.stopService()
1933 self.session.open( MessageBox, _("Tune 1 Ver Error %d..."%result), MessageBox.TYPE_ERROR)
1940 if self.oldref is None:
1941 eref = eServiceReference("1:0:19:1324:3EF:1:C00000:0:0:0")
1942 serviceHandler = eServiceCenter.getInstance()
1943 servicelist = serviceHandler.list(eref)
1944 if not servicelist is None:
1945 ref = servicelist.getNext()
1947 ref = self.getCurrentSelection()
1948 print "servicelist none"
1951 self.session.nav.stopService() # try to disable foreground service
1956 ref.setData(4,0x640000)
1957 self.session.nav.playService(ref)
1962 self.session.nav.stopService() # try to disable foreground service
1965 def keyFinish(self):
1968 self.session.nav.stopService() # try to disable foreground service
1980 def main(session, servicelist, **kwargs):
1984 Servicelist = servicelist
1985 bouquets = Servicelist.getBouquetList()
1987 bouquetSel = Session.openWithCallback(cleanup, FactoryTest)
1989 #def Plugins(**kwargs):
1990 # return PluginDescriptor(name=_("Factory Test"), description="Test App for Factory", where = PluginDescriptor.WHERE_EXTENSIONSMENU, fnc=main)
1992 def Plugins(**kwargs):