1 from Screens.Screen import Screen
2 from Screens.MessageBox import MessageBox
3 from Plugins.Plugin import PluginDescriptor
4 from Components.MenuList import MenuList
5 from Tools.Directories import fileExists
6 from Components.ServiceList import ServiceList
7 from Components.ActionMap import ActionMap,NumberActionMap
8 from Components.config import config
9 from os import system,access,F_OK,R_OK,W_OK
10 from Components.Label import Label
11 from Components.AVSwitch import AVSwitch
12 from time import sleep
13 from Components.Console import Console
14 from enigma import eTimer
15 from Components.HTMLComponent import HTMLComponent
16 from Components.GUIComponent import GUIComponent
17 from enigma import eListboxPythonStringContent, eListbox, gFont, eServiceCenter, eDVBResourceManager
18 from enigma import eServiceReference
19 from enigma import eMemtest
20 from enigma import eSctest
21 from enigma import eDVBDB
22 from Components.NimManager import nimmanager
23 from enigma import eDVBCI_UI,eDVBCIInterfaces
25 class TestResultList(HTMLComponent, GUIComponent):
26 def __init__(self, list, enableWrapAround=False, content=eListboxPythonStringContent):
27 GUIComponent.__init__(self)
30 self.l.setList(self.list)
31 self.onSelectionChanged = [ ]
32 self.enableWrapAround = enableWrapAround
35 return self.l.getCurrentSelection()
39 def postWidgetCreate(self, instance):
40 self.instance.setSelectionEnable(0)
41 instance.setContent(self.l)
42 instance.selectionChanged.get().append(self.selectionChanged)
43 if self.enableWrapAround:
44 self.instance.setWrapAround(True)
46 def preWidgetRemove(self, instance):
47 instance.setContent(None)
48 instance.selectionChanged.get().remove(self.selectionChanged)
50 def selectionChanged(self):
51 for f in self.onSelectionChanged:
54 def getSelectionIndex(self):
55 return self.l.getCurrentSelectionIndex()
57 def getSelectedIndex(self):
58 return self.l.getCurrentSelectionIndex()
60 def setList(self, list):
62 self.l.setList(self.list)
64 def updateList(self, list):
66 self.l.setList(self.list)
68 def moveToIndex(self, idx):
69 if self.instance is not None:
70 self.instance.moveSelectionTo(idx)
73 if self.instance is not None:
74 self.instance.moveSelection(self.instance.pageUp)
77 if self.instance is not None:
78 self.instance.moveSelection(self.instance.pageDown)
81 if self.instance is not None:
82 self.instance.moveSelection(self.instance.moveUp)
85 if self.instance is not None:
86 self.instance.moveSelection(self.instance.moveDown)
88 def selectionEnabled(self, enabled):
89 if self.instance is not None:
90 self.instance.setSelectionEnable(enabled)
92 class FactoryTest(Screen):
94 <screen position="120,125" size="440,400" title="Test Menu" >
95 <widget name="testlist" position="10,0" size="340,350" />
96 <widget name="resultlist" position="370,0" size="60,350" />
97 <widget name="testdate" position="20,350" size="150,25" font="Regular;22" />
98 <widget name="testversion" position="20,375" size="150,25" font="Regular;22" />
99 <widget name="mactext" position="180,350" size="230,25" font="Regular;22" />
101 def __init__(self, session):
103 self["actions"] = NumberActionMap(["OkCancelActions","WizardActions","NumberActions","ColorActions",],
105 "left": self.nothing,
106 "right":self.nothing,
107 "ok": self.TestAction,
108 "testexit": self.keyCancel,
109 "agingstart": self.Agingmode,
111 "down": self.keydown,
112 "0": self.numberaction,
113 "1": self.numberaction,
114 "2": self.numberaction,
115 "3": self.numberaction,
116 "4": self.numberaction,
117 "5": self.numberaction,
118 "6": self.numberaction,
119 "7": self.numberaction,
120 "8": self.numberaction,
121 "9": self.numberaction,
122 "red": self.shutdownaction,
125 Screen.__init__(self, session)
126 TESTPROGRAM_DATE = "2010-04-28"
127 TESTPROGRAM_VERSION = "Version 01.10"
132 self["testdate"]=Label((TESTPROGRAM_DATE))
133 self["testversion"]=Label(("Loading version..."))
134 self["mactext"]=Label(("Loading mac address..."))
135 if self.model == 0 or self.model == 1:
136 nimConfig = nimmanager.getNimConfig(0)
137 nimConfig.configMode.slot_id=0
138 nimConfig.configMode.value= "simple"
139 nimConfig.diseqcMode.value="diseqc_a_b"
140 nimConfig.diseqcA.value="160"
141 nimConfig.diseqcB.value="100"
143 nimConfig = nimmanager.getNimConfig(1)
144 nimConfig.configMode.slot_id=1
145 nimConfig.configMode.value= "simple"
146 nimConfig.diseqcMode.value="diseqc_a_b"
147 nimConfig.diseqcA.value="130"
148 nimConfig.diseqcB.value="192"
151 if self.model == 3 or self.model == 4:
153 sat_list = ["160","100","130","192","620","642"]
155 nimfile = open("/proc/bus/nim_sockets")
159 self.session.openWithCallback(self.close, MessageBox, _("File not Found!\n/proc/bus/nim_sockets"), MessageBox.TYPE_ERROR)
160 for line in nimfile.readlines():
164 if line.strip().startswith("NIM Socket"):
165 parts = line.strip().split(" ")
166 current_slot = int(parts[2][:-1])
167 self.NimType[current_slot]={}
168 self.NimType[current_slot]["slot"] = current_slot
169 elif line.strip().startswith("Type:"):
170 print str(line.strip())
171 self.NimType[current_slot]["type"] = str(line.strip()[6:])
172 if self.NimType[current_slot]["type"].startswith("DVB-S"):
173 self.NimType[current_slot]["sat1"] = sat_list.pop(0)
174 self.NimType[current_slot]["sat2"] = sat_list.pop(0)
176 self.NimType[current_slot]["sat1"] = None
177 self.NimType[current_slot]["sat2"] = None
178 elif line.strip().startswith("empty"):
179 self.NimType.pop(current_slot)
182 for (key, val) in self.NimType.items():
185 if val["type"].startswith("DVB-S"):
186 print "nimConfig (dvb-s): ",key
187 nimConfig = nimmanager.getNimConfig(key)
188 nimConfig.configMode.slot_id=key
189 nimConfig.configMode.value= "simple"
190 nimConfig.diseqcMode.value="diseqc_a_b"
191 nimConfig.diseqcA.value = val["sat1"]
192 nimConfig.diseqcB.value = val["sat2"]
194 nimConfig = nimmanager.getNimConfig(key)
195 print "configMode check : ",nimConfig.configMode.value
197 nimmanager.sec.update()
199 system("cp /usr/lib/enigma2/python/Plugins/SystemPlugins/FactoryTest/testdb /etc/enigma2/lamedb")
200 db = eDVBDB.getInstance()
201 db.reloadServicelist()
205 for x in range(self.menulength):
206 self.rlist.append((".."))
207 self["resultlist"] = TestResultList(self.rlist)
209 self.avswitch = AVSwitch()
210 self.scTest= eSctest()
214 self.servicelist = ServiceList()
215 self.oldref = session.nav.getCurrentlyPlayingServiceReference()
216 print "oldref",self.oldref
217 session.nav.stopService() # try to disable foreground service
219 self.tunemsgtimer = eTimer()
220 self.tunemsgtimer.callback.append(self.tunemsg)
223 self.camtimer = eTimer()
224 self.camtimer.callback.append(self.cam_state)
230 self.tuningtimer = eTimer()
231 self.tuningtimer.callback.append(self.updateStatus)
234 self.satatimer = eTimer()
235 self.satatimer.callback.append(self.sataCheck)
237 self.usbtimer = eTimer()
238 self.usbtimer.callback.append(self.usbCheck)
240 self.agingtimer = eTimer()
241 self.agingtimer.callback.append(self.agingCheck)
244 def createConfig(self):
246 self.satetestIndex = -1
247 self.scarttestIndex = -1
250 tlist.append((" 0. Sata & extend hdd test",self.satetestIndex))
252 tlist.append((" 1. USB test",self.usbtestIndex))
253 self.fronttestIndex=2
254 tlist.append((" 2. Front test",self.fronttestIndex))
255 self.smarttestIndex=3
256 tlist.append((" 3. Smartcard test",self.smarttestIndex))
257 self.tuner1_1testIndex=4
258 tlist.append((" 4. T1 H 22K x 4:3 CVBS",self.tuner1_1testIndex))
259 self.tuner1_2testIndex=5
260 tlist.append((" 5. T1 V 22k o 16:9 RGB",self.tuner1_2testIndex))
261 self.tuner2_1testIndex=6
262 tlist.append((" 6. T2 H 22k x 4:3 YC",self.tuner2_1testIndex))
263 self.tuner2_2testIndex=7
264 tlist.append((" 7. T2 V 22k o 16:9 CVBS CAM",self.tuner2_2testIndex))
265 self.scarttestIndex=8
266 tlist.append((" 8. VCR Scart loop",self.scarttestIndex))
267 self.rs232testIndex=9
268 tlist.append((" 9. RS232 test",self.rs232testIndex))
269 self.ethernettestIndex=10
270 tlist.append(("10. Ethernet & mac test",self.ethernettestIndex))
271 self.fdefaultIndex=11
272 tlist.append(("11. Factory default",self.fdefaultIndex))
273 self.shutdownIndex=12
274 tlist.append(("12. Shutdown",self.shutdownIndex))
275 self.tuner_test_first_index = 4
276 self.tuner_test_last_index = 7
278 elif self.model == 1:
280 tlist.append((" 0. USB test",self.usbtestIndex))
281 self.fronttestIndex=1
282 tlist.append((" 1. Front test",self.fronttestIndex))
283 self.smarttestIndex=2
284 tlist.append((" 2. Smartcard test",self.smarttestIndex))
285 self.tuner1_1testIndex=3
286 tlist.append((" 3. T1 H 22K x 4:3 CVBS",self.tuner1_1testIndex))
287 self.tuner2_2testIndex = self.tuner1_2testIndex=4
288 tlist.append((" 4. T1 V 22k o 16:9 RGB CAM",self.tuner1_2testIndex))
289 self.rs232testIndex=5
290 tlist.append((" 5. RS232 test",self.rs232testIndex))
291 self.ethernettestIndex=6
292 tlist.append((" 6. Ethernet & mac test",self.ethernettestIndex))
294 tlist.append((" 7. Factory default",self.fdefaultIndex))
296 tlist.append((" 8. Shutdown",self.shutdownIndex))
297 self.tuner_test_first_index = 3
298 self.tuner_test_last_index = 4
300 elif self.model == 2:
302 tlist.append((" 0. Sata & extend hdd test",self.satetestIndex))
304 tlist.append((" 1. USB test",self.usbtestIndex))
305 self.fronttestIndex=2
306 tlist.append((" 2. Front test",self.fronttestIndex))
307 self.smarttestIndex=3
308 tlist.append((" 3. Smartcard test",self.smarttestIndex))
309 self.tuner1_1testIndex=4
310 tlist.append((" 4. T1 H 22K x 4:3 CVBS",self.tuner1_1testIndex))
311 self.tuner1_2testIndex=5
312 tlist.append((" 5. T1 V 22k o 16:9 RGB",self.tuner1_2testIndex))
313 self.tuner2_1testIndex = -1
314 self.tuner2_2testIndex=6
315 tlist.append((" 6. T2 DVB-C 4:3 YC CAM",self.tuner2_2testIndex))
316 self.rs232testIndex=7
317 tlist.append((" 7. RS232 test",self.rs232testIndex))
318 self.ethernettestIndex=8
319 tlist.append(("8. Ethernet & mac test",self.ethernettestIndex))
321 tlist.append(("9. Factory default",self.fdefaultIndex))
322 self.shutdownIndex=10
323 tlist.append(("10. Shutdown",self.shutdownIndex))
324 self.tuner_test_first_index = 4
325 self.tuner_test_last_index = 6
327 elif self.model == 3 or self.model == 4:
329 tlist.append((" 0. Sata & extend hdd test",self.satetestIndex))
331 tlist.append((" 1. USB test",self.usbtestIndex))
332 self.fronttestIndex=2
333 tlist.append((" 2. Front test",self.fronttestIndex))
334 self.smarttestIndex=3
335 tlist.append((" 3. Smartcard test",self.smarttestIndex))
336 self.tuner_test_first_index = current_index = 4
337 AspectRatio=["4:3", "16:9"]
338 ColorFormat=["CVBS","RGB","YC","CVBS","CVBS","CVBS","CVBS","CVBS"]
340 for (key, val) in self.NimType.items():
341 if val["type"].startswith("DVB-S"):
342 # Chang : DVB -S setting diseqc A
343 getRatio = AspectRatio.pop(0) # ratio
344 AspectRatio.append(getRatio)
345 getColorFormat=ColorFormat.pop(0) # colorFormat
346 menuname=" %d. T%d %s H 22k 0 %s %s" % (current_index, key+1, val["type"], getRatio, getColorFormat) #menuname
349 self.setTuneInfo(index=current_index, slot=key, type=val["type"], sat=val["sat1"], pol="H", tone=True, ratio=getRatio, color=getColorFormat, cam=False) # setTuneInfo
350 # self.setTuneInfo(current_index, key, val["type"], val["sat1"], "H", True, getRatio, getColorFormat, False) # setTuneInfo
351 tlist.append((menuname,current_index))
353 # Chang : DVB -S setting diseqc B
354 getRatio = AspectRatio.pop(0)
355 AspectRatio.append(getRatio)
356 getColorFormat=ColorFormat.pop(0)
357 menuname=" %d. T%d %s V 22k x %s %s" % (current_index, key+1, val["type"], getRatio, getColorFormat)
358 if len(self.NimType) == key+1: # CAM test on/off
363 self.setTuneInfo( index=current_index, slot=key, type=val["type"], sat=val["sat2"], pol="V", tone=False, ratio=getRatio, color=getColorFormat, cam=camtest)
364 tlist.append((menuname,current_index))
366 # Chang : DVB -T or DVB-C
367 elif val["type"].startswith("DVB-T") or val["type"].startswith("DVB-C"):
368 additionalMenu = None
370 if len(self.NimType) == 1:
371 additionalMenu = True
373 for x in range(menulen):
374 getRatio = AspectRatio.pop(0)
375 AspectRatio.append(getRatio)
376 getColorFormat=ColorFormat.pop(0)
377 menuname=" %d. T%d %s %s %s" % (current_index, key+1, val["type"], getRatio, getColorFormat)
378 if len(self.NimType) == key+1 and (additionalMenu is None or x != 0): # CAM test on/off
383 self.setTuneInfo( index=current_index, slot=key, type=val["type"], sat=None, pol=None, tone=None, ratio=getRatio, color=getColorFormat, cam=camtest)
384 tlist.append((menuname,current_index))
386 self.tuner_test_last_index = current_index-1
387 self.rs232testIndex=current_index
388 tlist.append((" %d. RS232 test" % current_index,self.rs232testIndex))
390 self.ethernettestIndex=current_index
391 tlist.append((" %d. Ethernet & mac test" % current_index,self.ethernettestIndex))
393 self.fdefaultIndex=current_index
394 tlist.append((" %d. Factory default" % current_index,self.fdefaultIndex))
396 self.shutdownIndex=current_index
397 tlist.append((" %d. Shutdown" % current_index,self.shutdownIndex))
399 self.menulength= len(tlist)
400 self["testlist"] = MenuList(tlist)
402 def setTuneInfo(self,index=0,slot=0,type="DVB-S2",sat="160",pol="H",tone=True,ratio="4:3",color="CVBS",cam=False):
403 self.tuneInfo[index]={}
404 self.tuneInfo[index]["slot"]=slot
405 self.tuneInfo[index]["type"]=type
406 self.tuneInfo[index]["sat"]=sat
407 self.tuneInfo[index]["pol"]=pol
408 self.tuneInfo[index]["22k"]=tone
409 self.tuneInfo[index]["ratio"]=ratio
410 self.tuneInfo[index]["color"]=color
411 self.tuneInfo[index]["cam"]=cam
413 def getModelInfo(self):
415 if fileExists("/proc/stb/info/vumodel"):
416 info = open("/proc/stb/info/vumodel").read().strip()
420 print "getModelInfo : duo"
424 print "getModelInfo : solo"
428 print "getModelInfo : combo"
432 print "getModelInfo : uno"
436 print "getModelInfo : ultimo"
437 if getmodel == 0 and fileExists("/proc/stb/info/version"):
438 info = open("/proc/stb/info/version").read()
441 print "getModelInfo : solo_"
442 elif info[:2] == "12":
444 print "getModelInfo : duo_"
450 print "self.menulength = ",self.menulength
451 print "self[\"testlist\"].getCurrent()[1] = ",self["testlist"].getCurrent()[1]
454 if self["testlist"].getCurrent()[1]==0:
455 self["testlist"].moveToIndex(self.menulength-1)
456 self["resultlist"].moveToIndex(self.menulength-1)
458 self["testlist"].up()
459 self["resultlist"].up()
463 print "self.menulength = ",self.menulength
464 print "self[\"testlist\"].getCurrent()[1] = ",self["testlist"].getCurrent()[1]
467 if self["testlist"].getCurrent()[1]==(self.menulength-1):
468 self["testlist"].moveToIndex(0)
469 self["resultlist"].moveToIndex(0)
471 self["testlist"].down()
472 self["resultlist"].down()
474 def numberaction(self, number):
477 if number >= self.menulength:
480 self["testlist"].moveToIndex(index)
481 self["resultlist"].moveToIndex(index)
483 def getversion(self):
485 fd = open("/proc/stb/info/version","r")
487 self["testversion"].setText(("Version %s"%version))
489 self["testversion"].setText(("Version no load"))
492 def getmacaddr(self):
494 if self.model == 2 or self.model == 3 or self.model == 4:
495 cmd = "nanddump -s 0x" + str((self.mactry-1)*2) + "0000 -b -o -l 64 -p /dev/mtd5"
496 elif self.model == 0 or self.model == 1:
497 cmd = "nanddump -s 0x" + str((self.mactry-1)*2) + "0000 -b -o -l 64 -p /dev/mtd4"
498 self.macConsole = Console()
499 self.macConsole.ePopen(cmd, self.readmac,self.checkReadmac)
503 def readmac(self, result, retval,extra_args=None):
504 (callback) = extra_args
505 if self.macConsole is not None:
507 self.macConsole = None
509 content =result.splitlines()
511 if x.startswith('0x000'+str((self.mactry-1)*2)+'0010:'):
515 elif len(macline) < 10:
518 mac = macline[5]+":"+macline[6]+":"+macline[7]+":"+macline[8]+":"+macline[9]+":"+macline[10]
519 self["mactext"].setText(("MAC : "+mac))
522 def checkReadmac(self,data):
524 print "block %d is bad block" % self.mactry
525 self.mactry = self.mactry + 1
527 self.session.open(MessageBox, _("FLASH IS BROKEN"), type = MessageBox.TYPE_INFO, enable_input = False)
532 print 'mac dump read error'
535 print 'mac address read ok'
538 def TestAction(self):
541 print "line - ",self["testlist"].getCurrent()[1]
542 self.currentindex = index = self["testlist"].getCurrent()[1]
544 if index==self.satetestIndex:
546 elif index==self.fronttestIndex:
548 elif index>=self.tuner_test_first_index and index<=self.tuner_test_last_index:
550 elif index==self.scarttestIndex:
552 elif index==self.rs232testIndex:
554 elif index==self.usbtestIndex:
556 elif index==self.ethernettestIndex:
558 elif index == self.smarttestIndex:
566 elif index==self.fdefaultIndex:
568 # elif index==self.shutdownIndex:
573 def shutdownaction(self):
574 if self["testlist"].getCurrent()[1] == self.shutdownIndex:
580 self.satatimer.start(100,True)
583 # print "try", self.satatry
584 if self.satatry == 0:
587 self.rlist[self["testlist"].getCurrent()[1]]="try %d"%self.satatry
588 self["resultlist"].updateList(self.rlist)
593 if fileExists("/autofs/sdb1"):
594 if access("/autofs/sdb1",F_OK|R_OK|W_OK):
595 dummy=open("/autofs/sdb1/dummy03","w")
596 dummy.write("complete")
598 dummy=open("/autofs/sdb1/dummy03","r")
599 if dummy.readline()=="complete":
600 print "/autofs/sdb1 - complete"
602 print "/autofs/sdb1 - readline error"
606 system("rm /autofs/sdb1/dummy03")
608 print "/autofs/sdb1 - rw access error"
612 print "/autofs/sdb1 - file not exist"
615 print "/autofs/sdb1 - exceptional error"
619 if fileExists("/media/hdd"):
620 if access("/media/hdd",F_OK|R_OK|W_OK):
621 dummy=open("/media/hdd/dummy03","w")
622 dummy.write("complete")
624 dummy=open("/media/hdd/dummy03","r")
625 if dummy.readline()=="complete":
626 print "/media/hdd - complete"
628 print "/media/hdd - readline error"
632 system("rm /media/hdd/dummy03")
634 print "/media/hdd - rw access error"
638 print "/media/hdd - file not exist"
641 print "/media/hdd - exceptional error"
646 self.session.open( MessageBox, _("Sata & extend hdd test pass"), MessageBox.TYPE_INFO)
647 self.rlist[self["testlist"].getCurrent()[1]]="pass"
650 self.session.open( MessageBox, _("One hdd test error"), MessageBox.TYPE_ERROR)
651 self.rlist[self["testlist"].getCurrent()[1]]="fail"
653 self.satatimer.start(1100,True)
656 self.session.open( MessageBox, _("Sata & extend hdd test error"), MessageBox.TYPE_ERROR)
657 self.rlist[self["testlist"].getCurrent()[1]]="fail"
659 self.satatimer.start(1100,True)
663 self.session.openWithCallback(self.displayresult ,FrontTest)
664 elif self.model == 1:
665 self.session.openWithCallback(self.displayresult ,FrontTest_solo)
666 elif self.model == 2 or self.model == 3 or self.model == 4:
667 self.session.openWithCallback(self.displayresult ,FrontTest_solo)
669 def displayresult(self):
672 self.rlist[self["testlist"].getCurrent()[1]]="pass"
674 self.rlist[self["testlist"].getCurrent()[1]]="fail"
676 def TestTune(self,index):
677 if self.oldref is None:
678 eref = eServiceReference("1:0:19:1324:3EF:1:C00000:0:0:0")
679 serviceHandler = eServiceCenter.getInstance()
680 servicelist = serviceHandler.list(eref)
681 if not servicelist is None:
682 ref = servicelist.getNext()
684 ref = self.getCurrentSelection() # raise error
685 print "servicelist none"
688 self.session.nav.stopService() # try to disable foreground service
689 if self.model == 0 or self.model == 1:
690 if index==self.tuner1_1testIndex:
695 ref.setData(4,0xA00000)
696 self.session.nav.playService(ref)
697 self.avswitch.setColorFormat(0)
698 self.avswitch.setAspectRatio(0)
699 elif index==self.tuner1_2testIndex:
702 self.camtimer.start(100,True)
704 ref.setData(1,0x1325)
707 ref.setData(4,0x64af79)
708 self.session.nav.playService(ref)
709 self.avswitch.setColorFormat(1)
710 self.avswitch.setAspectRatio(6)
711 elif index==self.tuner2_1testIndex:
716 ref.setData(4,0x820000)
717 self.session.nav.playService(ref)
718 self.avswitch.setColorFormat(2)
719 self.avswitch.setAspectRatio(0)
720 elif index==self.tuner2_2testIndex:
722 self.camtimer.start(100,True)
724 ref.setData(1,0x1325)
727 ref.setData(4,0xC00000)
728 self.session.nav.playService(ref)
729 self.avswitch.setColorFormat(0)
730 self.avswitch.setAspectRatio(6)
731 self.tuningtimer.start(2000,True)
732 self.tunemsgtimer.start(3000, True)
733 elif self.model == 3 or self.model == 4:
734 getTuneInfo=self.tuneInfo[index]
735 if getTuneInfo["cam"] is True:
737 self.camtimer.start(100,True)
738 if getTuneInfo["type"].startswith("DVB-S"):
739 if getTuneInfo["pol"] == "H":
746 ref.setData(1,0x1325)
749 if getTuneInfo["sat"] == "160": # Eutelsat W2
750 ref.setData(4,0xA00000)
751 elif getTuneInfo["sat"] == "100": # Eutelsat
752 ref.setData(4,0x64af79)
753 elif getTuneInfo["sat"] == "130": # Hotbird
754 ref.setData(4,0x820000)
755 elif getTuneInfo["sat"] == "192": # Astra
756 ref.setData(4,0xC00000)
757 elif getTuneInfo["sat"] == "620": # Intelsat 902
758 ref.setData(4,0x26c0000) # need to fix later
759 elif getTuneInfo["sat"] == "642": # Intelsat 906
760 ref.setData(4,0x282AF79) # need to fix later
761 elif getTuneInfo["type"].startswith("DVB-C"):
763 ref.setData(1,0x1325)
766 ref.setData(4,-64870) # ffff029a
767 elif getTuneInfo["type"].startswith("DVB-T"):
769 ref.setData(1,0x1325)
772 ref.setData(4,-286391716) # eeee025c
773 self.session.nav.playService(ref)
774 if getTuneInfo["color"]=="CVBS":
775 self.avswitch.setColorFormat(0)
776 elif getTuneInfo["color"]=="RGB":
777 self.avswitch.setColorFormat(1)
778 elif getTuneInfo["color"]=="YC":
779 self.avswitch.setColorFormat(2)
780 if getTuneInfo["ratio"] == "4:3":
781 self.avswitch.setAspectRatio(0)
782 elif getTuneInfo["ratio"] == "16:9":
783 self.avswitch.setAspectRatio(6)
784 self.tuningtimer.start(2000,True)
785 self.tunemsgtimer.start(3000, True)
788 current_index = self.currentindex
789 if self.camstep == 1:
791 state = eDVBCI_UI.getInstance().getState(slot)
792 print '-1-stat',state
795 self.camtimer.start(100,True)
797 self.session.nav.stopService()
798 self.session.open( MessageBox, _("CAM1_NOT_INSERTED\nPress exit!"), MessageBox.TYPE_ERROR)
799 self.rlist[current_index]="fail"
800 self.tunemsgtimer.stop()
801 elif self.camstep == 2:
803 appname = eDVBCI_UI.getInstance().getAppName(slot)
804 print 'appname',appname
806 self.session.nav.stopService()
807 self.session.open( MessageBox, _("NO_GET_APPNAME\nPress exit!"), MessageBox.TYPE_ERROR)
808 self.rlist[current_index]="fail"
809 self.tunemsgtimer.stop()
812 self.camtimer.start(100,True)
813 elif self.camstep==3:
815 state = eDVBCI_UI.getInstance().getState(slot)
816 print '-2-stat',state
819 self.camtimer.start(100,True)
821 self.session.nav.stopService()
822 self.session.open( MessageBox, _("CAM2_NOT_INSERTED\nPress exit!"), MessageBox.TYPE_ERROR)
823 self.rlist[current_index]="fail"
824 self.tunemsgtimer.stop()
825 elif self.camstep == 4:
827 appname = eDVBCI_UI.getInstance().getAppName(slot)
828 print 'appname',appname
830 self.session.nav.stopService()
831 self.session.open( MessageBox, _("NO_GET_APPNAME\nPress exit!"), MessageBox.TYPE_ERROR)
832 self.rlist[current_index]="fail"
833 self.tunemsgtimer.stop()
838 def updateStatus(self):
839 current_index = self.currentindex
840 if self.model == 0 or self.model == 1:
841 if current_index ==self.tuner1_1testIndex or current_index==self.tuner1_2testIndex:
843 result = eSctest.getInstance().getFrontendstatus(0)
846 result = eSctest.getInstance().getFrontendstatus(1)
847 if current_index == self.tuner1_2testIndex or current_index==self.tuner2_2testIndex:
852 elif self.model == 3 or self.model == 4:
853 getTuneInfo=self.tuneInfo[current_index]
854 result = eSctest.getInstance().getFrontendstatus(getTuneInfo["slot"])
855 tunno = getTuneInfo["slot"]+1
856 hv = getTuneInfo["pol"]
864 print "eSctest.getInstance().getFrontendstatus - %d"%result
867 self.tunemsgtimer.stop()
868 self.session.nav.stopService()
869 self.avswitch.setColorFormat(0)
870 self.session.open( MessageBox, _("Tune%d %s Locking Fail..."%(tunno,hv)), MessageBox.TYPE_ERROR)
871 self.rlist[current_index]="fail"
875 def tuneback(self,yesno):
876 current_index=self.currentindex
877 self.session.nav.stopService() # try to disable foreground service
878 if yesno and self.tunerlock == 1:
879 if current_index == self.tuner_test_last_index and self.camstep < 5: # need fix to depending about CAM exist
880 self.rlist[current_index]="fail"
882 self.rlist[current_index]="pass"
884 self.rlist[current_index]="fail"
885 if self.model == 0 and current_index == 6: # YC
886 self.avswitch.setColorFormat(0)
887 elif ( self.model == 3 or self.model == 4 ) and self.tuneInfo[current_index]["color"] == "YC":
888 self.avswitch.setColorFormat(0)
890 self["resultlist"].updateList(self.rlist)
893 self.tuningtimer.stop()
894 self.session.openWithCallback(self.tuneback, MessageBox, _("%s ok?" %(self["testlist"].getCurrent()[0])), MessageBox.TYPE_YESNO)
896 def setSourceVar(self):
900 elif self.model == 1:
904 self.input_pad_num=len(self.NimType)-1
905 if self.input_pad_num == 0:
907 elif self.input_pad_num == 1:
909 elif self.input_pad_num == 2:
912 # ikseong - for 22000 tp
915 inputname = ("/proc/stb/tsmux/input%d" % self.input_pad_num)
916 print "<setsource> inputname : ",inputname
917 fd=open(inputname,"w")
921 filename = ("/proc/stb/tsmux/ci0_input")
922 fd = open(filename,'w')
923 fd.write(self.setTuner)
924 print "setTuner(CI0) : ",self.setTuner
926 print "CI loop test!!!!!!!!!!!!!!"
928 def resetSource(self):
929 inputname = ("/proc/stb/tsmux/input%d" % self.input_pad_num)
930 print "<resetsource> inputname : ",inputname
931 fd=open(inputname,"w")
932 fd.write(self.setTuner)
934 print "CI loop test end!!!!!!!!!!!!!!"
937 self.avswitch.setInput("SCART")
939 self.session.openWithCallback(self.check6, MessageBox, _("Scart loop ok?"), MessageBox.TYPE_YESNO)
941 def check6(self,yesno):
943 self.rlist[self["testlist"].getCurrent()[1]]="pass"
945 self.rlist[self["testlist"].getCurrent()[1]]="fail"
946 self.avswitch.setInput("ENCODER")
951 self.rlist[self["testlist"].getCurrent()[1]]="pass"
953 self.rlist[self["testlist"].getCurrent()[1]]="fail"
956 self.session.openWithCallback(self.check7,RS232Test)
961 if self.oldref is None:
962 eref = eServiceReference("1:0:19:1324:3EF:1:C00000:0:0:0")
963 serviceHandler = eServiceCenter.getInstance()
964 servicelist = serviceHandler.list(eref)
965 if not servicelist is None:
966 ref = servicelist.getNext()
968 ref = self.getCurrentSelection()
969 print "servicelist none"
972 self.session.nav.stopService() # try to disable foreground service
973 if self.model == 0 or self.model == 1 or self.NimType[0]["type"].startswith("DVB-S"):
975 ref.setData(1,0x1325)
978 ref.setData(4,0x64af79)
979 elif self.NimType[0]["type"].startswith("DVB-C"):
981 ref.setData(1,0x1325)
984 ref.setData(4,-64870) # ffff029a
985 elif self.NimType[0]["type"].startswith("DVB-T"):
987 ref.setData(1,0x1325)
990 ref.setData(4,-286391716) # eeee025c
991 self.session.nav.playService(ref)
992 self.avswitch.setColorFormat(0)
993 self.avswitch.setAspectRatio(0)
994 self.agingtimer.start(2000,True)
996 def agingCheck(self):
997 result = eSctest.getInstance().getFrontendstatus(0)
999 print "eSctest.getInstance().getFrontendstatus - %d"%result
1001 self.session.nav.stopService()
1002 self.session.open( MessageBox, _("Tune 1 Ver Locking Fail..."), MessageBox.TYPE_ERROR)
1004 self.session.openWithCallback(self.agingResult,AgingTest)
1006 self.session.nav.stopService()
1007 self.session.open( MessageBox, _("Tune 1 Ver Error %d..."%result), MessageBox.TYPE_ERROR)
1009 def agingResult(self):
1011 if(Agingresult ==1):
1012 self["testlist"].moveToIndex(self.fdefaultIndex)
1014 self["testlist"].moveToIndex(self.shutdownIndex)
1018 self.usbtimer.start(100,True)
1021 if self.usbtry == 0:
1024 self.rlist[self["testlist"].getCurrent()[1]]="try %d"%self.usbtry
1025 self["resultlist"].updateList(self.rlist)
1029 if self.model==0 or self.model==3 or self.model==4:
1030 devices = [ "/autofs/sdc1", "/autofs/sdd1", "/autofs/sde1" ]
1032 devices = [ "/autofs/sda1", "/autofs/sdb1" ]
1034 devices = [ "/autofs/sdc1", "/autofs/sdd1" ]
1036 self.session.open( MessageBox, _("invalid model"), MessageBox.TYPE_ERROR)
1037 self.rlist[self["testlist"].getCurrent()[1]]="fail"
1045 if access(dev,F_OK|R_OK|W_OK):
1046 dummy=open(dev+"/dummy03","w")
1047 dummy.write("complete")
1049 dummy=open(dev+"/dummy03","r")
1050 if dummy.readline()=="complete":
1051 print dev," - complete"
1053 print dev," - readline error"
1057 system("rm "+dev+"/dummy03")
1059 print dev," - rw access error"
1063 print dev," - file not exist"
1066 print dev," - exceptional error"
1072 elif result == len(devices):
1073 self.session.open( MessageBox, _("USB test pass %d devices\nPress OK!"%result), MessageBox.TYPE_INFO)
1074 self.rlist[self["testlist"].getCurrent()[1]]="pass"
1076 if displayerror == 1:
1077 self.session.open( MessageBox, _("USB test error : Success-%d"%result+" Fail-%d\nPress EXIT!"%(len(devices)-result)), MessageBox.TYPE_ERROR)
1078 self.rlist[self["testlist"].getCurrent()[1]]="fail"
1080 self.usbtimer.start(1100,True)
1084 # system("/etc/init.d/networking stop")
1085 system("ifconfig eth0 192.168.0.10")
1086 # system("/etc/init.d/networking start")
1087 cmd1 = "ping -c 1 192.168.0.100"
1088 self.PingConsole = Console()
1089 self.PingConsole.ePopen(cmd1, self.checkNetworkStateFinished,self.NetworkStatedataAvail)
1091 def checkNetworkStateFinished(self, result, retval,extra_args):
1092 (statecallback) = extra_args
1093 if self.PingConsole is not None:
1095 self.PingConsole = None
1096 content = result.splitlines()
1097 # print 'content',content
1098 x = content[4].split()
1108 def NetworkStatedataAvail(self,data):
1113 self.session.openWithCallback(self.openMacConfig ,MessageBox, _("Ping test pass"), MessageBox.TYPE_INFO,2)
1118 self.session.open( MessageBox, _("Ping test fail\nPress exit"), MessageBox.TYPE_ERROR)
1124 def openMacConfig(self, ret=False):
1125 self.session.openWithCallback(self.macresult ,MacConfig,mactry=self.mactry)
1127 def macresult(self):
1130 self.rlist[self.ethernettestIndex]="pass"
1132 self.rlist[self.ethernettestIndex]="fail"
1136 def MemTest(self, which):
1140 result = eMemtest.getInstance().dramtest()
1142 result = eMemtest.getInstance().flashtest()
1145 result = eMemtest.getInstance().dramtest()
1146 result = eMemtest.getInstance().flashtest()
1152 print index,self.rlist[index]
1153 self.rlist[index]="pass"
1155 print index,self.rlist[index]
1156 self.rlist[index]="fail"
1157 self["resultlist"].updateList(self.rlist)
1159 def scciresult(self):
1160 global smartcardtest
1161 if smartcardtest == 1:
1162 self.rlist[self["testlist"].getCurrent()[1]]="pass"
1164 self.rlist[self["testlist"].getCurrent()[1]]="fail"
1167 self.session.openWithCallback(self.scciresult ,SmartCardTest,stbmodel=self.model)
1182 system("rm -R /etc/enigma2")
1184 system("cp -R /usr/share/enigma2/defaults /etc/enigma2")
1185 self.rlist[self["testlist"].getCurrent()[1]]="pass"
1186 self["resultlist"].updateList(self.rlist)
1188 print "test14 except"
1189 self.rlist[self["testlist"].getCurrent()[1]]="fail"
1190 self["resultlist"].updateList(self.rlist)
1191 self.session.open( MessageBox, _("Factory reset fail"), MessageBox.TYPE_ERROR)
1194 self.session.openWithCallback(self.shutdown ,MessageBox, _("Do you want to shut down?"), MessageBox.TYPE_YESNO)
1196 def shutdown(self, yesno):
1198 from os import _exit
1199 system("/usr/bin/showiframe /boot/backdrop.mvi")
1204 def keyCancel(self):
1209 # if self.oldref is not None:
1210 # self.session.nav.playService(self.oldref)
1213 class MacConfig(Screen):
1215 <screen position="100,250" size="520,100" title="Mac Config" >
1216 <eLabel text="Mac Address " position="10,15" size="200,40" font="Regular;30" />
1217 <widget name="text" position="230,15" size="230,40" font="Regular;30" />
1218 <widget name="text1" position="470,15" size="40,40" font="Regular;30" />
1219 <eLabel text=" " position="5,55" zPosition="-1" size="510,5" backgroundColor="#02e1e8e6" />
1220 <widget name="stattext" position="30,75" size="400,25" font="Regular;20" />
1223 def __init__(self, session, mactry = 1):
1224 self["actions"] = ActionMap(["DirectionActions","OkCancelActions"],
1227 "left": self.keyleft,
1228 "right": self.keyright,
1229 "cancel": self.keyCancel,
1232 Screen.__init__(self, session)
1234 self.mactry = mactry
1238 self.macaddr = "000000000000"
1239 self.ReadMacinfo = 0
1240 self["text"]=Label((self.macaddr))
1241 self["text1"]= Label(("< >"))
1242 self["stattext"]= Label((""))
1249 def getModelInfo(self):
1251 if fileExists("/proc/stb/info/vumodel"):
1252 info = open("/proc/stb/info/vumodel").read().strip()
1256 print "MacConfig, model : combo"
1257 elif info == "solo":
1260 print "MacConfig, model : solo"
1264 print "MacConfig, model : duo"
1268 print "getModelInfo : uno"
1269 elif info == "ultimo":
1272 print "getModelInfo : ultimo"
1275 if getmodel == 0 and fileExists("/proc/stb/info/version"):
1276 info = open("/proc/stb/info/version").read()
1277 # print info,info[:2]
1278 if info[:2] == "14":
1280 print "MacConfig, model : solo_"
1281 elif info[:2] == "12":
1283 print "MacConfig, model: duo_"
1285 def loadmacaddr(self):
1289 if self.model==0 or self.model==3 or self.model==4 :
1290 devices = ["/autofs/sdb1", "/autofs/sdc1", "/autofs/sdd1", "/autofs/sde1" ]
1292 devices = [ "/autofs/sda1", "/autofs/sdb1" ]
1294 devices = [ "/autofs/sdb1", "/autofs/sdc1", "/autofs/sdd1" ]
1298 if fileExists(dev+"/macinfo.txt"):
1299 print "<open>"+dev+"/macinfo.txt"
1300 self.macfd = open(dev+"/macinfo.txt","r+")
1304 self["text"].setText(("cannot read usb!!"))
1305 self["text1"].setText((" "))
1306 self["stattext"].setText((" Press Exit Key."))
1310 macaddr=self.macfd.readline().split(":")
1311 self.macaddr=macaddr[1]+macaddr[2]+macaddr[3]+macaddr[4]+macaddr[5]+macaddr[6]
1313 self.ReadMacinfo = 1
1315 self["text"].setText(("cannot read usb!!"))
1316 self["text1"].setText((" "))
1317 self["stattext"].setText((" Press Exit Key."))
1320 def getmacaddr(self):
1321 if self.ReadMacinfo==0:
1324 if self.model == 2 or self.model == 3 or self.model == 4:
1325 cmd = "nanddump -s 0x" + str((self.mactry-1)*2) + "0000 -b -o -l 64 -p /dev/mtd5"
1326 elif self.model == 0 or self.model == 1:
1327 cmd = "nanddump -s 0x" + str((self.mactry-1)*2) + "0000 -b -o -l 64 -p /dev/mtd4"
1328 self.macConsole = Console()
1329 self.macConsole.ePopen(cmd, self.readmac,self.checkReadmac)
1333 def readmac(self, result, retval,extra_args=None):
1334 (callback) = extra_args
1335 if self.macConsole is not None:
1337 self.macConsole = None
1339 content =result.splitlines()
1341 if x.startswith('0x000'+str((self.mactry-1)*2)+'0010:'):
1345 elif len(macline) < 10:
1348 mac = macline[5]+":"+macline[6]+":"+macline[7]+":"+macline[8]+":"+macline[9]+":"+macline[10]
1349 self["stattext"].setText(("now : "+mac))
1352 def checkReadmac(self,data):
1354 print "block %d is bad block" % self.mactry
1355 self.mactry = self.mactry + 1
1357 self.session.open(MessageBox, _("FLASH IS BROKEN"), type = MessageBox.TYPE_INFO, enable_input = False)
1362 print 'mac dump read error'
1365 print 'mac address read ok'
1370 if self.ReadMacinfo==0 :
1372 macaddress = long(self.macaddr,16)-1
1374 macaddress = 0xffffffffffff
1375 self.macaddr = "%012x"%macaddress
1379 if self.ReadMacinfo==0 :
1381 macaddress = long(self.macaddr,16)+1
1382 if macaddress > 0xffffffffffff:
1384 self.macaddr = "%012x"%macaddress
1387 def displaymac(self):
1388 macaddr= self.macaddr
1389 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))))
1392 if self.ReadMacinfo==0 :
1395 macaddr = self.macaddr
1396 #make_mac_sector 00-99-99-99-00-00 > /tmp/mac.sector
1397 #flash_eraseall /dev/mtd4
1398 #nandwrite /dev/mtd4 /tmp/mac.sector -p
1399 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))
1401 if self.model == 2 or self.model == 3 or self.model == 4:
1402 system("flash_eraseall /dev/mtd5")
1403 system("nandwrite /dev/mtd5 /tmp/mac.sector -p")
1404 elif self.model == 0 or self.model ==1 :
1405 system("flash_eraseall /dev/mtd4")
1406 system("nandwrite /dev/mtd4 /tmp/mac.sector -p")
1407 macaddress = long(macaddr,16)+1
1408 if macaddress > 0xffffffffffff:
1410 macaddr = "%012x"%macaddress
1411 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))
1413 self.macfd.write(macwritetext)
1416 self.macaddr = macaddr
1419 self.session.open( MessageBox, _("Mac address fail"), MessageBox.TYPE_ERROR)
1424 def keyCancel(self):
1432 class SmartCardTest(Screen):
1434 <screen position="300,240" size="160,120" title="SmartCard Test" >
1435 <widget name="text" position="10,10" size="140,100" font="Regular;22" />
1438 def __init__(self, session, stbmodel = 0):
1439 self["actions"] = ActionMap(["DirectionActions", "OkCancelActions"],
1441 "cancel": self.keyCancel,
1442 "ok" : self.keyCancel
1445 Screen.__init__(self, session)
1446 self["text"]=Label(("Testing Smartcard 1..."))
1448 self.smartcardtimer = eTimer()
1449 self.smartcardtimer.callback.append(self.check_smart_card)
1450 self.closetimer = eTimer()
1451 self.closetimer.callback.append(self.close)
1453 global smartcardtest
1455 self.model = stbmodel
1457 self.smartcardtimer.start(100,True)
1459 def check_smart_card(self):
1460 global smartcardtest
1461 index = self.smartcard
1464 if self.Testmode==0:
1465 result = eSctest.getInstance().check_smart_card("/dev/sci0")
1467 result = eSctest.getInstance().n_check_smart_card("/dev/sci0")
1469 if self.Testmode==0:
1470 result = eSctest.getInstance().check_smart_card("/dev/sci1")
1472 result = eSctest.getInstance().n_check_smart_card("/dev/sci1")
1480 if(index== 0 and ( self.model== 0 or self.model==2 or self.model == 3 or self.model == 4) ):
1482 self["text"].setText(_("Testing Smartcard 2..."))
1483 self.smartcardtimer.start(100,True)
1485 elif (index==1 or self.model==1):
1488 self["text"].setText(_("Smart Card OK!!"))
1489 self.closetimer.start(2000,True)
1490 self.smartcardtimer.stop()
1493 self["text"].setText(_("Smart Card model type error"))
1494 self.closetimer.start(2000,True)
1495 self.smartcardtimer.stop()
1498 # self.session.open( MessageBox, _("%d:NO_DEV_FOUND"%(index+1)), MessageBox.TYPE_ERROR)
1499 # elif result == -2:
1500 # self.session.open( MessageBox, _("%d:SC_NOT_INSERTED"%(index+1)), MessageBox.TYPE_ERROR)
1501 # elif result == -3:
1502 # self.session.open( MessageBox, _("%d:SC_NOT_VALID_ATR"%(index+1)), MessageBox.TYPE_ERROR)
1503 # elif result == -5:
1504 # self.session.open( MessageBox, _("%d:SC_READ_TIMEOUT"%(index+1)), MessageBox.TYPE_ERROR)
1506 self["text"].setText(_("Smart Card 1 Error!\nerrorcode=%d"%result))
1508 self["text"].setText(_("Smart Card 2 Error!\nerrorcode=%d"%result))
1509 self.closetimer.start(2000,True)
1510 self.smartcardtimer.stop()
1513 def keyCancel(self):
1520 class FrontTest(Screen):
1522 <screen position="260,240" size="200,180" title="Front Test" >
1523 <widget name="text" position="10,10" size="180,160" font="Regular;22" />
1526 def __init__(self, session):
1527 self["actions"] = ActionMap(["DirectionActions", "OkCancelActions"],
1531 "down":self.keyDown,
1532 "cancel": self.keyCancel,
1535 Screen.__init__(self, session)
1536 self["text"]=Label(("Wheel LEFT"))
1539 self.fronttimer= eTimer()
1540 self.fronttimer.callback.append(self.FrontAnimate)
1541 self.frontturnonoff = 0
1542 eSctest.getInstance().VFD_Open()
1543 self.keytimeout = eTimer()
1544 self.keytimeout.callback.append(self.KeyTimeOut)
1545 self.keytimeout.start(5000,True)
1547 def KeyTimeOut(self):
1549 self["text"].setText(("Wheel LEFT ERROR"))
1550 elif self.step ==2 :
1551 self["text"].setText(("Wheel RIGHT ERROR"))
1552 elif self.step == 3:
1553 self["text"].setText(("Wheel BUTTON ERROR"))
1557 def keyCancel(self):
1559 self.fronttimer.stop()
1560 eSctest.getInstance().VFD_Close()
1569 self.keytimeout.stop()
1570 self.keytimeout.start(5000,True)
1572 self["text"].setText(_("Press Front Wheel"))
1576 self.keytimeout.stop()
1577 self.keytimeout.start(5000,True)
1579 self["text"].setText(_("Wheel RIGHT"))
1583 self.keytimeout.stop()
1585 self.fronttimer.start(1000,True)
1586 self["text"].setText(("Front Test OK!\nPress Exit Key"))
1587 # elif self.step==4:
1589 # self.fronttimer.stop()
1590 # eSctest.getInstance().VFD_Close()
1594 def FrontAnimate(self):
1595 if (self.frontturnonoff==0):
1596 eSctest.getInstance().turnon_VFD()
1597 self.frontturnonoff = 1
1599 self.frontturnonoff = 0
1600 eSctest.getInstance().turnoff_VFD()
1601 self.fronttimer.start(1000,True)
1604 class FrontTest_solo(Screen):
1606 <screen position="260,240" size="200,180" title="Front Test" >
1607 <widget name="text" position="10,10" size="180,160" font="Regular;22" />
1610 def __init__(self, session):
1611 self["actions"] = ActionMap(["DirectionActions", "OkCancelActions","GlobalActions"],
1614 "cancel": self.keyCancel,
1615 "left": self.keyleft,
1616 "right": self.keyright,
1617 "power_down": self.keypower,
1618 "volumeUp": self.keyvolup,
1619 "volumeDown": self.keyvoldown,
1622 Screen.__init__(self, session)
1623 self["text"]=Label(("Press Front STANDBY"))
1626 self.fronttimer= eTimer()
1627 self.fronttimer.callback.append(self.FrontAnimate)
1628 self.frontturnonoff = 0
1629 eSctest.getInstance().VFD_Open()
1630 self.keytimeout = eTimer()
1631 self.keytimeout.callback.append(self.KeyTimeOut)
1632 self.keytimeout.start(5000,True)
1634 def KeyTimeOut(self):
1636 self["text"].setText(("Front STANDBY ERROR\nPress exit!"))
1637 elif self.step == 2 :
1638 self["text"].setText(("Front CH - ERROR\nPress exit!"))
1639 elif self.step == 3:
1640 self["text"].setText(("Front CH + ERROR\nPress exit!"))
1641 elif self.step == 4 :
1642 self["text"].setText(("Front VOL - ERROR\nPress exit!"))
1643 elif self.step == 5:
1644 self["text"].setText(("Front VOL + ERROR\nPress exit!"))
1651 self.keytimeout.stop()
1652 self.keytimeout.start(5000,True)
1654 self["text"].setText(_("Press Front CH -"))
1658 self.keytimeout.stop()
1659 self.keytimeout.start(5000,True)
1661 self["text"].setText(_("Press Front VOL -"))
1665 self.keytimeout.stop()
1666 self.keytimeout.start(5000,True)
1668 self["text"].setText(_("Press Front CH +"))
1672 self.keytimeout.stop()
1674 self.fronttimer.start(1000,True)
1675 self["text"].setText(_("Front LED OK?\n\nyes-ok\nno-exit"))
1676 # self["text"].setText(("Front Test OK!\nPress Exit Key"))
1678 def keyvoldown(self):
1680 self.keytimeout.stop()
1681 self.keytimeout.start(5000,True)
1683 self["text"].setText(_("Press Front VOL +"))
1685 def checkled(self, yesno):
1692 def keyCancel(self):
1694 self.fronttimer.stop()
1695 eSctest.getInstance().VFD_Close()
1701 self.fronttimer.stop()
1702 eSctest.getInstance().VFD_Close()
1707 def FrontAnimate(self):
1708 if (self.frontturnonoff==0):
1709 eSctest.getInstance().turnon_VFD()
1710 self.frontturnonoff = 1
1712 self.frontturnonoff = 0
1713 eSctest.getInstance().turnoff_VFD()
1714 self.fronttimer.start(1000,True)
1723 class RS232Test(Screen):
1725 <screen position="300,240" size="160,100" title="RS232 Test" >
1726 <widget name="text" position="10,10" size="140,80" font="Regular;22" />
1729 def __init__(self, session):
1730 self["actions"] = ActionMap(["DirectionActions", "OkCancelActions"],
1732 "cancel": self.keyCancel,
1735 Screen.__init__(self, session)
1736 self["text"]=Label(("Press \"Enter\" Key"))
1737 self.timer = eTimer()
1738 self.timer.callback.append(self.checkrs232)
1739 self.timer.start(100, True)
1741 def checkrs232(self):
1744 rs=open('/dev/ttyS0','r')
1746 r,w,e = select.select(rd, [], [], 10)
1760 def keyCancel(self):
1765 class AgingTest(Screen):
1767 <screen position="200,240" size="250,100" title="Aging Test" >
1768 <widget name="text1" position="10,10" size="230,40" font="Regular;22" />
1769 <widget name="text2" position="10,50" size="230,40" font="Regular;22" />
1772 def __init__(self, session):
1773 self["actions"] = ActionMap(["MediaPlayerActions","GlobalActions"],
1775 "pause": self.keyEnd,
1776 "stop": self.keyFinish,
1777 "volumeUp": self.nothing,
1778 "volumeDown": self.nothing,
1779 "volumeMute": self.nothing,
1782 Screen.__init__(self, session)
1783 self["text1"]=Label(("Exit - Press Pause Key"))
1784 self["text2"]=Label(("Reset - Press Stop Key"))
1785 # self.servicelist = ServiceList()
1786 # self.oldref = session.nav.getCurrentlyPlayingServiceReference()
1787 # print "oldref",self.oldref
1788 # session.nav.stopService() # try to disable foreground service
1791 self.tuningtimer = eTimer()
1792 self.tuningtimer.callback.append(self.updateStatus)
1793 # self.tuningtimer.start(200,True)
1796 def updateStatus(self):
1797 result = eSctest.getInstance().getFrontendstatus(0)
1800 print "eSctest.getInstance().getFrontendstatus - %d"%result
1803 self.session.nav.stopService()
1804 self.session.open( MessageBox, _("Tune 1 Ver Locking Fail..."), MessageBox.TYPE_ERROR)
1809 self.session.nav.stopService()
1810 self.session.open( MessageBox, _("Tune 1 Ver Error %d..."%result), MessageBox.TYPE_ERROR)
1817 if self.oldref is None:
1818 eref = eServiceReference("1:0:19:1324:3EF:1:C00000:0:0:0")
1819 serviceHandler = eServiceCenter.getInstance()
1820 servicelist = serviceHandler.list(eref)
1821 if not servicelist is None:
1822 ref = servicelist.getNext()
1824 ref = self.getCurrentSelection()
1825 print "servicelist none"
1828 self.session.nav.stopService() # try to disable foreground service
1833 ref.setData(4,0x640000)
1834 self.session.nav.playService(ref)
1839 self.session.nav.stopService() # try to disable foreground service
1842 def keyFinish(self):
1845 self.session.nav.stopService() # try to disable foreground service
1857 def main(session, servicelist, **kwargs):
1861 Servicelist = servicelist
1862 bouquets = Servicelist.getBouquetList()
1864 bouquetSel = Session.openWithCallback(cleanup, FactoryTest)
1866 #def Plugins(**kwargs):
1867 # return PluginDescriptor(name=_("Factory Test"), description="Test App for Factory", where = PluginDescriptor.WHERE_EXTENSIONSMENU, fnc=main)
1869 def Plugins(**kwargs):