FactoryTest : Remove overlap func..
[vuplus_dvbapp] / lib / python / Plugins / SystemPlugins / FactoryTest / plugin.py
index 20a9700..462b328 100755 (executable)
@@ -21,21 +21,9 @@ from enigma import eSctest
 from enigma import eDVBDB
 from Components.NimManager import nimmanager
 from enigma import eDVBCI_UI,eDVBCIInterfaces
+from Tools.Directories import resolveFilename, SCOPE_SYSETC
 
-class TestResultList(HTMLComponent, GUIComponent):
-       def __init__(self, list, enableWrapAround=False, content=eListboxPythonStringContent):
-               GUIComponent.__init__(self)
-               self.list = list
-               self.l = content()
-               self.l.setList(self.list)
-               self.onSelectionChanged = [ ]
-               self.enableWrapAround = enableWrapAround
-
-       def getCurrent(self):
-               return self.l.getCurrentSelection()
-
-       GUI_WIDGET = eListbox
-
+class TestResultList(MenuList):
        def postWidgetCreate(self, instance):
                self.instance.setSelectionEnable(0)
                instance.setContent(self.l)
@@ -43,52 +31,10 @@ class TestResultList(HTMLComponent, GUIComponent):
                if self.enableWrapAround:
                        self.instance.setWrapAround(True)
 
-       def preWidgetRemove(self, instance):
-               instance.setContent(None)
-               instance.selectionChanged.get().remove(self.selectionChanged)
-
-       def selectionChanged(self):
-               for f in self.onSelectionChanged:
-                       f()
-
-       def getSelectionIndex(self):
-               return self.l.getCurrentSelectionIndex()
-
-       def getSelectedIndex(self):
-               return self.l.getCurrentSelectionIndex()
-
-       def setList(self, list):
-               self.list = list
-               self.l.setList(self.list)
-
        def updateList(self, list):
                self.list = list
                self.l.setList(self.list)
 
-       def moveToIndex(self, idx):
-               if self.instance is not None:
-                       self.instance.moveSelectionTo(idx)
-
-       def pageUp(self):
-               if self.instance is not None:
-                       self.instance.moveSelection(self.instance.pageUp)
-
-       def pageDown(self):
-               if self.instance is not None:
-                       self.instance.moveSelection(self.instance.pageDown)
-
-       def up(self):
-               if self.instance is not None:
-                       self.instance.moveSelection(self.instance.moveUp)
-
-       def down(self):
-               if self.instance is not None:
-                       self.instance.moveSelection(self.instance.moveDown)
-
-       def selectionEnabled(self, enabled):
-               if self.instance is not None:
-                       self.instance.setSelectionEnable(enabled)
-
 class FactoryTest(Screen):
        skin = """
                <screen position="120,125" size="440,400" title="Test Menu" >
@@ -96,7 +42,7 @@ class FactoryTest(Screen):
                        <widget name="resultlist" position="370,0" size="60,350" />
                        <widget name="testdate" position="20,350" size="150,25" font="Regular;22" />
                        <widget name="testversion" position="20,375" size="150,25" font="Regular;22" />
-                       <widget name="mactext" position="180,350" size="230,25" font="Regular;22" />                    
+                       <widget name="mactext" position="180,350" size="230,25" font="Regular;22" />
                </screen>"""
        def __init__(self, session):
 
@@ -123,8 +69,8 @@ class FactoryTest(Screen):
                }, -2)
 
                Screen.__init__(self, session)
-               TESTPROGRAM_DATE = "2010-03-02"
-               TESTPROGRAM_VERSION = "Version 00.01"
+               TESTPROGRAM_DATE = self.getImageVersion() +" (v1.00)"
+               TESTPROGRAM_VERSION = "Version 01.10"
 
                self.model = 0
                self.getModelInfo()
@@ -204,18 +150,11 @@ class FactoryTest(Screen):
                self.rlist = []
                for x in range(self.menulength):
                        self.rlist.append((".."))
-#              self.rlist.append(("  "))
                self["resultlist"] = TestResultList(self.rlist)
 
-#              self.NetworkState = 0
-#              self.first = 0
-
                self.avswitch = AVSwitch()
-#              self.memTest = eMemtest()
                self.scTest= eSctest()
                
-#              self.feid=0
-#              self.agingmode=0
                self.testing = 0
 
                self.servicelist = ServiceList()
@@ -226,14 +165,6 @@ class FactoryTest(Screen):
                self.tunemsgtimer = eTimer()
                self.tunemsgtimer.callback.append(self.tunemsg)
 
-# chang : use "self.tuner_test_last_index" instead of cam_index 
-#              if self.model == 0:
-#                      self.cam_index = 7
-#              elif self.model == 1:
-#                      self.cam_index = 4
-#              elif self.model == 2:
-#                      self.cam_index = 6      
-
                self.camstep = 1
                self.camtimer = eTimer()
                self.camtimer.callback.append(self.cam_state)
@@ -270,13 +201,13 @@ class FactoryTest(Screen):
                        self.smarttestIndex=3
                        tlist.append((" 3. Smartcard test",self.smarttestIndex))
                        self.tuner1_1testIndex=4
-                       tlist.append((" 4. T1 H 22K x 4:3 CVBS",self.tuner1_1testIndex))
+                       tlist.append((" 4. T1/H/22K x /4:3/CVBS",self.tuner1_1testIndex))
                        self.tuner1_2testIndex=5
-                       tlist.append((" 5. T1 V 22k o 16:9 RGB",self.tuner1_2testIndex))
+                       tlist.append((" 5. T1/V/22k o/16:9/RGB",self.tuner1_2testIndex))
                        self.tuner2_1testIndex=6
-                       tlist.append((" 6. T2 H 22k x 4:3 YC",self.tuner2_1testIndex))
+                       tlist.append((" 6. T2/H/22k x/4:3/YC",self.tuner2_1testIndex))
                        self.tuner2_2testIndex=7
-                       tlist.append((" 7. T2 V 22k o 16:9 CVBS CAM",self.tuner2_2testIndex))
+                       tlist.append((" 7. T2/V/22k o/16:9/CVBS/CAM",self.tuner2_2testIndex))
                        self.scarttestIndex=8
                        tlist.append((" 8. VCR Scart loop",self.scarttestIndex))
                        self.rs232testIndex=9
@@ -286,7 +217,7 @@ class FactoryTest(Screen):
                        self.fdefaultIndex=11
                        tlist.append(("11. Factory default",self.fdefaultIndex))
                        self.shutdownIndex=12
-                       tlist.append(("12. Shutdown",self.shutdownIndex))
+                       tlist.append(("12. Shutdown(Deep Standby)",self.shutdownIndex))
                        self.tuner_test_first_index = 4
                        self.tuner_test_last_index = 7
                        
@@ -298,9 +229,9 @@ class FactoryTest(Screen):
                        self.smarttestIndex=2
                        tlist.append((" 2. Smartcard test",self.smarttestIndex))
                        self.tuner1_1testIndex=3
-                       tlist.append((" 3. T1 H 22K x 4:3 CVBS",self.tuner1_1testIndex))
+                       tlist.append((" 3. T1/H/22K x/4:3/CVBS",self.tuner1_1testIndex))
                        self.tuner2_2testIndex = self.tuner1_2testIndex=4
-                       tlist.append((" 4. T1 V 22k o 16:9 RGB CAM",self.tuner1_2testIndex))
+                       tlist.append((" 4. T1/V/22k o/16:9/RGB/CAM",self.tuner1_2testIndex))
                        self.rs232testIndex=5
                        tlist.append((" 5. RS232 test",self.rs232testIndex))
                        self.ethernettestIndex=6
@@ -308,7 +239,7 @@ class FactoryTest(Screen):
                        self.fdefaultIndex=7
                        tlist.append((" 7. Factory default",self.fdefaultIndex))
                        self.shutdownIndex=8
-                       tlist.append((" 8. Shutdown",self.shutdownIndex))
+                       tlist.append((" 8. Shutdown(Deep Standby)",self.shutdownIndex))
                        self.tuner_test_first_index = 3
                        self.tuner_test_last_index = 4
 
@@ -358,10 +289,10 @@ class FactoryTest(Screen):
                                        getRatio = AspectRatio.pop(0) # ratio
                                        AspectRatio.append(getRatio)
                                        getColorFormat=ColorFormat.pop(0) # colorFormat
-                                       menuname=" %d. T%d %s H 22k 0 %s %s" % (current_index, key+1, val["type"], getRatio, getColorFormat)    #menuname
+                                       menuname=" %d. T%d/%s/H/22k x/%s/%s" % (current_index, key+1, val["type"], getRatio, getColorFormat)    #menuname
                                        print current_index
 #                                              current_index=4
-                                       self.setTuneInfo(index=current_index, slot=key, type=val["type"], sat=val["sat1"], pol="H", tone=True, ratio=getRatio, color=getColorFormat, cam=False) # setTuneInfo
+                                       self.setTuneInfo(index=current_index, slot=key, type=val["type"], sat=val["sat1"], pol="H", tone=False, ratio=getRatio, color=getColorFormat, cam=False) # setTuneInfo
 #                                              self.setTuneInfo(current_index, key, val["type"], val["sat1"], "H", True, getRatio, getColorFormat, False) # setTuneInfo
                                        tlist.append((menuname,current_index))
                                        current_index+=1
@@ -369,13 +300,13 @@ class FactoryTest(Screen):
                                        getRatio = AspectRatio.pop(0)
                                        AspectRatio.append(getRatio)
                                        getColorFormat=ColorFormat.pop(0)
-                                       menuname=" %d. T%d %s V 22k x %s %s" % (current_index, key+1, val["type"], getRatio, getColorFormat)
+                                       menuname=" %d. T%d/%s/V/22k o/%s/%s" % (current_index, key+1, val["type"], getRatio, getColorFormat)
                                        if len(self.NimType) == key+1: # CAM test on/off
-                                               menuname+=" CAM"
+                                               menuname+="/CAM"
                                                camtest = True
                                        else:
                                                camtest = False
-                                       self.setTuneInfo( index=current_index, slot=key, type=val["type"], sat=val["sat2"], pol="V", tone=False, ratio=getRatio, color=getColorFormat, cam=camtest)
+                                       self.setTuneInfo( index=current_index, slot=key, type=val["type"], sat=val["sat2"], pol="V", tone=True, ratio=getRatio, color=getColorFormat, cam=camtest)
                                        tlist.append((menuname,current_index))
                                        current_index+=1
 # Chang : DVB -T or DVB-C
@@ -389,9 +320,8 @@ class FactoryTest(Screen):
                                                getRatio = AspectRatio.pop(0)
                                                AspectRatio.append(getRatio)
                                                getColorFormat=ColorFormat.pop(0)
-                                               menuname=" %d. T%d %s %s %s" % (current_index, key+1, val["type"], getRatio, getColorFormat)
+                                               menuname=" %d. T%d/%s/%s/%s" % (current_index, key+1, val["type"], getRatio, getColorFormat)
                                                if len(self.NimType) == key+1 and (additionalMenu is None or x != 0): # CAM test on/off
-#                                              if 1 == key+1: # CAM test on/off
                                                        menuname+=" CAM"
                                                        camtest = True
                                                else:
@@ -410,7 +340,7 @@ class FactoryTest(Screen):
                        tlist.append((" %d. Factory default" % current_index,self.fdefaultIndex))
                        current_index+=1
                        self.shutdownIndex=current_index
-                       tlist.append((" %d. Shutdown" % current_index,self.shutdownIndex))
+                       tlist.append((" %d. Shutdown(Deep Standby)" % current_index,self.shutdownIndex))
                        
                self.menulength= len(tlist)
                self["testlist"] = MenuList(tlist)
@@ -429,7 +359,9 @@ class FactoryTest(Screen):
        def getModelInfo(self):
                getmodel = 0
                if fileExists("/proc/stb/info/vumodel"):
-                       info = open("/proc/stb/info/vumodel").read().strip()
+                       vumodel = open("/proc/stb/info/vumodel")
+                       info=vumodel.read().strip()
+                       vumodel.close()
                        if info == "duo":
                                self.model = 0
                                getmodel = 1
@@ -450,9 +382,11 @@ class FactoryTest(Screen):
                                self.model = 4
                                getmodel = 1
                                print "getModelInfo : ultimo"
+
                if getmodel == 0 and fileExists("/proc/stb/info/version"):
-                       info = open("/proc/stb/info/version").read()
-#                      print info,info[:2]
+                       vesion = open("/proc/stb/info/version")
+                       info=version.read()
+                       version.close()
                        if info[:2] == "14":
                                self.model = 1
                                print "getModelInfo : solo_"
@@ -491,16 +425,36 @@ class FactoryTest(Screen):
        def numberaction(self, number):
                if self.testing==1:
                        return
-               if number > self.menulength:
+               if number >= self.menulength:
                        return
                index = int(number)
                self["testlist"].moveToIndex(index)
                self["resultlist"].moveToIndex(index)
 
+       def getImageVersion(self):
+               date = 'xxxx-xx-xx'
+               file = open(resolveFilename(SCOPE_SYSETC, 'image-version'), 'r')
+               lines = file.readlines()
+               for x in lines:
+                       splitted = x.split('=')
+                       if splitted[0] == "version":
+                       #     YYYY MM DD hh mm
+                               #0120 2005 11 29 01 16
+                               #0123 4567 89 01 23 45
+                               version = splitted[1]
+                               year = version[4:8]
+                               month = version[8:10]
+                               day = version[10:12]
+                               date = '-'.join((year, month, day))
+                               break;
+               file.close()
+               return date
+
        def getversion(self):
                try:
                        fd = open("/proc/stb/info/version","r")
                        version = fd.read()
+                       fd.close()
                        self["testversion"].setText(("Version %s"%version))
                except:
                        self["testversion"].setText(("Version no load"))
@@ -633,44 +587,44 @@ class FactoryTest(Screen):
                        result = 1
                        displayerror = 1
                try:
-                       if fileExists("/media/hdd"):
-                               if access("/media/hdd",F_OK|R_OK|W_OK):
-                                       dummy=open("/media/hdd/dummy03","w")
+                       if fileExists("/autofs/sda1"):
+                               if access("/autofs/sda1",F_OK|R_OK|W_OK):
+                                       dummy=open("/autofs/sda1/dummy03","w")
                                        dummy.write("complete")
                                        dummy.close()
-                                       dummy=open("/media/hdd/dummy03","r")
+                                       dummy=open("/autofs/sda1/dummy03","r")
                                        if dummy.readline()=="complete":
-                                               print "/media/hdd - complete"
+                                               print "/autofs/sda1 - complete"
                                        else:
-                                               print "/media/hdd - readline error"
+                                               print "/autofs/sda1 - readline error"
                                                result += 1
                                                displayerror = 1
                                        dummy.close()
-                                       system("rm /media/hdd/dummy03")
+                                       system("rm /autofs/sda1/dummy03")
                                else:
-                                       print "/media/hdd - rw access error"
+                                       print "/autofs/sda1 - rw access error"
                                        result += 1
                                        displayerror = 1
                        else:
-                               print "/media/hdd - file not exist"
+                               print "/autofs/sda1 - file not exist"
                                result += 1
                except:
-                       print "/media/hdd - exceptional error"
+                       print "/autofs/sda1 - exceptional error"
                        result += 1
                        displayerror = 1
                
                if result == 0:
-                       self.session.open( MessageBox, _("Sata & extend hdd test pass"), MessageBox.TYPE_INFO)
+                       self.session.open( MessageBox, _("Sata & extend hdd test pass\nPress 'OK' button!"), MessageBox.TYPE_INFO)
                        self.rlist[self["testlist"].getCurrent()[1]]="pass"
                elif result == 1:
                        if displayerror==1:
-                               self.session.open( MessageBox, _("One hdd test error"), MessageBox.TYPE_ERROR)
+                               self.session.open( MessageBox, _("One hdd test error\nPress 'EXIT' button!"), MessageBox.TYPE_ERROR)
                                self.rlist[self["testlist"].getCurrent()[1]]="fail"
                        else:
                                self.satatimer.start(1100,True)
                else:
                        if displayerror==1:
-                               self.session.open( MessageBox, _("Sata & extend hdd test error"), MessageBox.TYPE_ERROR)
+                               self.session.open( MessageBox, _("Sata & extend hdd test error\nPress 'EXIT' button!"), MessageBox.TYPE_ERROR)
                                self.rlist[self["testlist"].getCurrent()[1]]="fail"
                        else:
                                self.satatimer.start(1100,True)
@@ -681,7 +635,7 @@ class FactoryTest(Screen):
                elif self.model == 1:
                        self.session.openWithCallback(self.displayresult ,FrontTest_solo)
                elif self.model == 2 or self.model == 3 or self.model == 4:
-                       self.session.openWithCallback(self.displayresult ,FrontTest_solo)
+                       self.session.openWithCallback(self.displayresult ,FrontTest_uno)
 
        def displayresult(self):
                global fronttest
@@ -815,8 +769,6 @@ class FactoryTest(Screen):
                                self.session.open( MessageBox, _("CAM1_NOT_INSERTED\nPress exit!"), MessageBox.TYPE_ERROR)
                                self.rlist[current_index]="fail"
                                self.tunemsgtimer.stop()
-#                              self.rlist[index]="fail"
-#                              self["resultlist"].updateList(self.rlist)
                elif self.camstep == 2:
                        slot = 0
                        appname = eDVBCI_UI.getInstance().getAppName(slot)
@@ -841,8 +793,6 @@ class FactoryTest(Screen):
                                self.session.open( MessageBox, _("CAM2_NOT_INSERTED\nPress exit!"), MessageBox.TYPE_ERROR)
                                self.rlist[current_index]="fail"
                                self.tunemsgtimer.stop()                                
-#                              self.rlist[index]="fail"
-#                              self["resultlist"].updateList(self.rlist)
                elif self.camstep == 4:
                        slot = 1
                        appname = eDVBCI_UI.getInstance().getAppName(slot)
@@ -855,7 +805,6 @@ class FactoryTest(Screen):
                        else:
                                self.setSource()
                                self.camstep = 5
-#                              self.session.open( MessageBox, _("CAM OK!"), MessageBox.TYPE_INFO,2)
 
        def updateStatus(self):
                current_index = self.currentindex
@@ -951,7 +900,6 @@ class FactoryTest(Screen):
                inputname = ("/proc/stb/tsmux/input%d" % self.input_pad_num)
                print "<resetsource> inputname : ",inputname
                fd=open(inputname,"w")
-#              fd=open("/proc/stb/tsmux/input1","w")
                fd.write(self.setTuner)
                fd.close()
                print "CI loop test end!!!!!!!!!!!!!!"
@@ -1093,11 +1041,11 @@ class FactoryTest(Screen):
                if result < 0 :
                        result = 0
                elif result == len(devices):
-                       self.session.open( MessageBox, _("USB test pass %d devices\nPress OK!"%result), MessageBox.TYPE_INFO)                   
+                       self.session.open( MessageBox, _("USB test pass %d devices\nPress 'OK' button!"%result), MessageBox.TYPE_INFO)
                        self.rlist[self["testlist"].getCurrent()[1]]="pass"
                else:
                        if displayerror == 1:
-                               self.session.open( MessageBox, _("USB test error : Success-%d"%result+" Fail-%d\nPress EXIT!"%(len(devices)-result)), MessageBox.TYPE_ERROR)
+                               self.session.open( MessageBox, _("USB test error : Success-%d"%result+" Fail-%d\nPress 'EXIT' button!"%(len(devices)-result)), MessageBox.TYPE_ERROR)
                                self.rlist[self["testlist"].getCurrent()[1]]="fail"
                        else:
                                self.usbtimer.start(1100,True)
@@ -1133,7 +1081,6 @@ class FactoryTest(Screen):
                if data == 1:
                        ethtest = 1
                        print "success"
-#                      self.session.open( MessageBox, _("Ping test pass"), MessageBox.TYPE_INFO,2)
                        self.session.openWithCallback(self.openMacConfig ,MessageBox, _("Ping test pass"), MessageBox.TYPE_INFO,2)
                
                else:
@@ -1152,10 +1099,8 @@ class FactoryTest(Screen):
                global ethtest
                if ethtest == 1:
                        self.rlist[self.ethernettestIndex]="pass"               
-#                      self.rlist[self["testlist"].getCurrent()[1]]="pass"
                else:
                        self.rlist[self.ethernettestIndex]="fail"               
-#                      self.rlist[self["testlist"].getCurrent()[1]]="fail"
                self.getmacaddr()
                self.testing = 0                        
        
@@ -1260,7 +1205,6 @@ class MacConfig(Screen):
                self.mactry = mactry
                self.model = 0
                self.getModelInfo()
-#              self.result = 0
                self.macfd = 0
                self.macaddr = "000000000000"
                self.ReadMacinfo = 0
@@ -1276,7 +1220,9 @@ class MacConfig(Screen):
        def getModelInfo(self):
                getmodel = 0
                if fileExists("/proc/stb/info/vumodel"):
-                       info = open("/proc/stb/info/vumodel").read().strip()
+                       vumodel = open("/proc/stb/info/vumodel")
+                       info=vumodel.read().strip()
+                       vumodel.close()
                        if info == "combo":
                                self.model = 2
                                getmodel = 1
@@ -1298,9 +1244,10 @@ class MacConfig(Screen):
                                getmodel = 1
                                print "getModelInfo : ultimo"
 
-
                if getmodel == 0 and fileExists("/proc/stb/info/version"):
-                       info = open("/proc/stb/info/version").read()
+                       version = open("/proc/stb/info/version")
+                       info=version.read()
+                       version.close()
 #                      print info,info[:2]
                        if info[:2] == "14":
                                self.model = 1
@@ -1455,249 +1402,7 @@ class MacConfig(Screen):
                ethtest = 0
                self.close()
 
-
-sccitest = 0
-
-class ScCiTest(Screen):
-       skin = """
-               <screen position="120,225" size="440,200" title="CI Smartcard Test" >
-                       <widget name="testlist" position="10,0" size="340,120" />
-                       <widget name="resultlist" position="370,0" size="60,120" />
-                       <eLabel text=" " position="5,125" zPosition="-1" size="430,5" backgroundColor="#02e1e8e6" />            
-                       <widget name="text" position="10,140" size="420,50" font="Regular;25" />
-               </screen>"""
-       step=1
-       def __init__(self, session):
-               self["actions"] = ActionMap(["DirectionActions","OkCancelActions"],
-               {
-                       "ok": self.keyOk,
-                       "up": self.up,
-                       "down":self.down,
-                       "cancel": self.keyCancel,
-               }, -2)
-
-               Screen.__init__(self, session)
-               tlist = []
-               tlist.append(("Smartcard 1 Test",0))
-               tlist.append(("Smartcard 2 Test",1))
-               tlist.append(("CI 1 Test",2))
-               tlist.append(("CI 2 Test",3))
-               self["testlist"] = MenuList(tlist)
-               self.rlist = []
-               for x in range(4):
-                       self.rlist.append((".."))
-               self["resultlist"] = TestResultList(self.rlist)
-               self.result = 0
-               self.removecard = eTimer()
-               self.removecard.callback.append(self.remove_card)
-               self["text"]=Label(("Press OK Key"))
-               self.camstate= eTimer()
-               self.camstate.callback.append(self.cam_state)
-               self.camtry = 5
-               self.camstep = 0
-
-       def keyCancel(self):
-               global sccitest
-               print "result ", self.result
-               if self.result==15:
-                       sccitest=1
-               self.resetSource()
-               self.close()
-
-       def up(self):
-               self["text"].setText(_("Press OK Key"))
-               self["testlist"].instance.moveSelection(self["testlist"].instance.moveUp)
-               
-       def down(self):
-               self["text"].setText(_("Press OK Key"))
-               self["testlist"].instance.moveSelection(self["testlist"].instance.moveDown)
-               
-       def keyOk(self):
-               print "line - ",self["testlist"].getCurrent()[1]
-               index = self["testlist"].getCurrent()[1]
-               result = 0
-               if index==0 or index==1:                
-                       self["text"].setText(_("Insert Card?"))
-                       self.ScTest(True)
-               elif index ==2 or index==3:
-                       self["text"].setText(_("Insert Cam"))
-                       self.CamTest()
-
-       def CamTest(self):
-               self.camtry = 10
-               self.camstep = 1
-               self.camstate.start(1000,True)          
-
-       def setSource(self, cislot):
-               filename = ("/proc/stb/tsmux/ci%d_input"%cislot)
-               fd = open(filename,'w')
-               fd.write('A')
-               fd.close()
-
-       def setInputSource(self, cislot):
-               fd=open("/proc/stb/tsmux/input0","w")
-               if cislot==0:
-                       fd.write("CI0")
-               else:
-                       fd.write("CI1")
-               fd.close()
-                       
-       def resetSource(self):
-               fd=open("/proc/stb/tsmux/input0","w")
-               fd.write("A")
-               fd.close()
-#              fd = open("/proc/stb/tsmux/ci0_input","w")
-#              fd.write("CI0")
-#              fd.close()
-#              fd = open("/proc/stb/tsmux/ci1_input","w")
-#              fd.write("CI1")
-#              fd.close()
-
-       def channelstart(self):
-               ref = eServiceReference("1:0:19:1324:3EF:1:C00000:0:0:0")
-               ref.setData(0,0x19)
-               ref.setData(1,0x83)
-               ref.setData(2,0x6)
-               ref.setData(3,0x85)
-               ref.setData(4,0x640000)
-               self.session.nav.playService(ref)
-
-       def channelstop(self):
-               self.session.nav.stopService() # try to disable foreground service              
-       
-       def cam_state(self):
-               index = self["testlist"].getCurrent()[1] 
-               if (index-2)==0:
-                       slot = 1
-               else:
-                       slot = 0
-               print 'cam_state', self.camstep,self.camtry
-               if self.camstep == 1:
-                       state = eDVBCI_UI.getInstance().getState(slot)
-                       print 'stat',state
-                       if state == 1:
-                               self.camstep=2
-                               self.camtry=10
-                               self["text"].setText(_("Getting Cam name...."))
-                               self.camstate.start(5000,True)
-                       else:
-                               self.camtry-=1
-                               if self.camtry>0:
-                                       self.camstate.start(1000,True)
-                               else:
-                                       self.session.open( MessageBox, _("NO_NOT_INSERTED"), MessageBox.TYPE_ERROR)
-                                       self.rlist[index]="fail"
-                                       self["resultlist"].updateList(self.rlist)
-
-               elif self.camstep == 2:
-                       appname = eDVBCI_UI.getInstance().getAppName(slot)
-                       print 'appname',appname
-                       if appname is None:
-                               self.camtry-=1
-                               if self.camtry>0:
-                                       self.camstate.start(1000,True)
-                               else:
-                                       self.session.open( MessageBox, _("NO_GET_APPNAME"), MessageBox.TYPE_ERROR)
-                                       self.rlist[index]="fail"
-                                       self["resultlist"].updateList(self.rlist)
-                       else:
-                               self["text"].setText(_("Get Cam name : %s"%appname+". \n Remove Cam!"))
-                               self.channelstart()
-                               self.setInputSource(slot)
-                               self.setSource(slot)
-                               self.camstep=3
-                               self.camtry=30
-                               self.camstate.start(1000,True)          
-               elif self.camstep==3:
-                       state = eDVBCI_UI.getInstance().getState(slot)
-                       print 'stat', state
-                       if state == 0:
-                               self.channelstop()
-                               self.result += (1<<index)
-                               print self.result
-                               self.rlist[index]="pass"
-                               self["text"].setText(_("Press OK Key"))
-                               self["resultlist"].updateList(self.rlist)                               
-                               if index==2:
-                                       self.down()
-                               elif index == 3:
-                                       self.keyCancel()
-                       else:
-                               self.camtry-=1
-                               if self.camtry>0:
-                                       self.camstate.start(1000,True)
-                               else:
-                                       self.channelstop()
-                                       self.session.open( MessageBox, _("NO_REMOVE_CAM"), MessageBox.TYPE_ERROR)
-                                       self.rlist[index]="fail"
-                                       self["resultlist"].updateList(self.rlist)
-
-       def check_smart_card(self,which):
-               index = which
-               result  = 0
-               if which==0:
-                       result = eSctest.getInstance().check_smart_card("/dev/sci0")
-               elif which ==1:
-                       result = eSctest.getInstance().check_smart_card("/dev/sci1")
-               else:
-                       result = -1
-
-               print result                    
-               
-               if result == 0:
-                       print 'pass'
-               else:
-                       if result ==-1:
-                               self.session.open( MessageBox, _("1:NO_DEV_FOUND"), MessageBox.TYPE_ERROR)
-                       elif result == -2:
-                               self.session.open( MessageBox, _("1:SC_NOT_INSERTED"), MessageBox.TYPE_ERROR)
-                       elif result == -3:
-                               self.session.open( MessageBox, _("1:SC_NOT_VALID_ATR"), MessageBox.TYPE_ERROR)
-                       elif result == -5:
-                               self.session.open( MessageBox, _("1:SC_READ_TIMEOUT"), MessageBox.TYPE_ERROR)
-                       self.rlist[which]="fail"
-                       self["resultlist"].updateList(self.rlist)
-               return result
-               
-       def remove_card(self):
-               index = self["testlist"].getCurrent()[1]
-               if index==0:
-                       result = eSctest.getInstance().eject_smart_card("/dev/sci0")    
-               elif index==1:
-                       result = eSctest.getInstance().eject_smart_card("/dev/sci1")    
-               print 'remove result' ,result
-               if result == 0:
-                       self.rlist[index]="pass"
-                       self.result += (1<<index)
-               else:
-                       if result ==-1:
-                               self.session.open( MessageBox, _("2:NO_DEV_FOUND"), MessageBox.TYPE_ERROR)
-                       elif result == -2:
-                               self.session.open( MessageBox, _("2:SC_NOT_INSERTED"), MessageBox.TYPE_ERROR)
-                       elif result == -3:
-                               self.session.open( MessageBox, _("2:SC_NOT_VALID_ATR"), MessageBox.TYPE_ERROR)
-                       elif result == -4:
-                               self.session.open( MessageBox, _("2:SC_NOT_REMOVED"), MessageBox.TYPE_ERROR)
-                       self.rlist[index]="fail"
-               self["resultlist"].updateList(self.rlist)
-               self["text"].setText(_("Press OK Key"))
-               self.down()
-               return result
-       
-
-       def ScTest(self, yesno):
-               if yesno==False:
-                       return
-               index = self["testlist"].getCurrent()[1]
-               result = self.check_smart_card(index)
-               if result==0:
-                       self.removecard.start(100,True)
-                       self["text"].setText(_("Read Ok. Remove Card!"))
-               else:
-                       return
-
 smartcardtest = 0
-
 class SmartCardTest(Screen):
        skin = """
                <screen position="300,240" size="160,120" title="SmartCard Test" >
@@ -1708,13 +1413,12 @@ class SmartCardTest(Screen):
                self["actions"] = ActionMap(["DirectionActions", "OkCancelActions"],
                {
                        "cancel": self.keyCancel,
-                       "ok" : self.keyCancel
+                       "ok" : self.keyOk
                }, -2)
 
                Screen.__init__(self, session)
-#              self["text"]=Label(("Press Key LEFT"))
                self["text"]=Label(("Testing Smartcard 1..."))
-               self.step = 0
+               self.testok = 0
                self.smartcardtimer = eTimer()
                self.smartcardtimer.callback.append(self.check_smart_card)
                self.closetimer = eTimer()
@@ -1754,8 +1458,7 @@ class SmartCardTest(Screen):
                                return
                        elif (index==1 or self.model==1):
                                smartcardtest = 1
-#                              self.session.open( MessageBox, _("Smart Card OK!!"), MessageBox.TYPE_INFO,2)
-                               self.step = 1
+                               self.testok = 1
                                self["text"].setText(_("Smart Card OK!!"))
                                self.closetimer.start(2000,True)
                                self.smartcardtimer.stop()
@@ -1764,7 +1467,6 @@ class SmartCardTest(Screen):
                                self["text"].setText(_("Smart Card model type error"))
                                self.closetimer.start(2000,True)
                                self.smartcardtimer.stop()
-#                      self.session.openWithCallback(self.check6, MessageBox, _("Scart loop ok?"), MessageBox.TYPE_INFO)
                else:
 #                      if result ==-1:
 #                              self.session.open( MessageBox, _("%d:NO_DEV_FOUND"%(index+1)), MessageBox.TYPE_ERROR)
@@ -1785,6 +1487,10 @@ class SmartCardTest(Screen):
        def keyCancel(self):
                self.close()
 
+       def keyOk(self):
+               if self.testok == 1:
+                       self.close()
+
        
 
 fronttest = 0
@@ -1849,8 +1555,6 @@ class FrontTest(Screen):
                        self.keytimeout.start(5000,True)
                        self.step=2
                        self["text"].setText(_("Wheel RIGHT"))
-#              else:
-#                      print ""
 
        def keyOk(self):
                if self.step == 3:
@@ -1972,11 +1676,11 @@ class FrontTest_solo(Screen):
 
        def keyOk(self):
                global fronttest
-               self.fronttimer.stop()
-               eSctest.getInstance().VFD_Close()
                if self.step == 6:
                        fronttest = 1
-               self.close()
+                       self.fronttimer.stop()
+                       eSctest.getInstance().VFD_Close()
+                       self.close()
 
        def FrontAnimate(self):
                if (self.frontturnonoff==0):
@@ -1987,7 +1691,105 @@ class FrontTest_solo(Screen):
                        eSctest.getInstance().turnoff_VFD()
                self.fronttimer.start(1000,True)
 
+class FrontTest_uno(Screen):
+       skin = """
+               <screen name="FrontTest_uno" position="center,center" size="300,180" title="Front Test" >
+                       <widget name="text" position="10,10" size="280,160" font="Regular;30" />
+               </screen>"""
 
+       def __init__(self, session):
+               self["actions"] = ActionMap(["DirectionActions", "OkCancelActions","GlobalActions"],
+               {
+                       "ok": self.keyOk,
+                       "cancel": self.keyCancel,
+                       "left": self.keyleft,
+                       "right": self.keyright,
+                       "volumeUp": self.keyvolup,
+                       "volumeDown": self.keyvoldown,
+                       "power_down": self.keypower,
+               }, -2)
+
+               Screen.__init__(self, session)
+               self["text"]=Label(("Press Front CH -"))
+               self.step = 1
+               self.fronttimer= eTimer()
+               self.fronttimer.callback.append(self.FrontAnimate)
+               self.frontturnonoff = 0
+               eSctest.getInstance().VFD_Open()
+               self.keytimeout = eTimer()
+               self.keytimeout.callback.append(self.KeyTimeOut)
+               self.keytimeout.start(5000,True)
+
+       def KeyTimeOut(self):
+               if self.step == 1:
+                       self["text"].setText(("Front CH - ERROR\nPress exit!"))
+               elif self.step == 2:
+                       self["text"].setText(("Front CH + ERROR\nPress exit!"))
+               elif self.step == 3 :
+                       self["text"].setText(("Front VOL - ERROR\nPress exit!"))
+               elif self.step == 4:
+                       self["text"].setText(("Front VOL + ERROR\nPress exit!"))
+               elif self.step == 5:
+                       self["text"].setText(("Front STANDBY ERROR\nPress exit!"))
+               self.step = 0
+
+       def keyleft(self):
+               if self.step== 1:
+                       self.keytimeout.stop()
+                       self.keytimeout.start(5000,True)
+                       self.step = 2
+                       self["text"].setText(_("Press Front CH +"))
+       def keyright(self):
+               if self.step== 2:
+                       self.keytimeout.stop()
+                       self.keytimeout.start(5000,True)
+                       self.step = 3
+                       self["text"].setText(_("Press Front VOL -"))
+
+       def keyvoldown(self):
+               if self.step== 3:
+                       self.keytimeout.stop()
+                       self.keytimeout.start(5000,True)
+                       self.step = 4
+                       self["text"].setText(_("Press Front VOL +"))
+
+       def keyvolup(self):
+               if self.step== 4:
+                       self.keytimeout.stop()
+                       self.keytimeout.start(5000,True)
+                       self.step = 5
+                       self["text"].setText(_("Press Front STANDBY"))
+
+       def keypower(self):
+               if self.step== 5:
+                       self.keytimeout.stop()
+                       self.step = 6
+                       self.fronttimer.start(1000,True)
+                       self["text"].setText(_("Front LED OK?\n\nyes-ok\nno-exit"))
+
+       def keyCancel(self):
+               global fronttest
+               self.fronttimer.stop()
+               eSctest.getInstance().VFD_Close()
+               fronttest = 0
+               self.close()
+
+       def keyOk(self):
+               global fronttest
+               if self.step == 6:
+                       fronttest = 1
+                       self.fronttimer.stop()
+                       eSctest.getInstance().VFD_Close()
+                       self.close()
+
+       def FrontAnimate(self):
+               if (self.frontturnonoff==0):
+                       eSctest.getInstance().turnon_VFD()
+                       self.frontturnonoff = 1
+               else:
+                       self.frontturnonoff = 0
+                       eSctest.getInstance().turnoff_VFD()
+               self.fronttimer.start(1000,True)
        
 
 rstest = 0
@@ -2021,15 +1823,22 @@ class RS232Test(Screen):
                        if r:
                                input = rs.read(1)
                                if input == "\n":
-#                              if input == "m":
                                        rstest = 1
                                else:
                                        rstest = 0 
                        else:
                                rstest = 0
+                       rs.close()
                except:
-                       print 'error'
+                       try:
+                               if rs:
+                                       rs.close()
+                       except:
+                               pass
+                       print 'except error'
                        rstest = 0
+               if rstest == 0:
+                       self.session.open( MessageBox, _("RS232 Test Failed!\nPress 'EXIT' button!"), MessageBox.TYPE_ERROR)
                self.close()
 
        def keyCancel(self):
@@ -2045,10 +1854,10 @@ class AgingTest(Screen):
                </screen>"""
        step=1
        def __init__(self, session):
-               self["actions"] = ActionMap(["WizardActions","GlobalActions"],
+               self["actions"] = ActionMap(["MediaPlayerActions","GlobalActions"],
                {
-                       "agingend": self.keyEnd,
-                       "agingfinish": self.keyFinish,
+                       "pause": self.keyEnd,
+                       "stop": self.keyFinish,
                        "volumeUp": self.nothing,
                        "volumeDown": self.nothing,
                        "volumeMute": self.nothing,