Merge branch 'vuplus_experimental' of code.vuplus.com:/opt/repository/dvbapp into...
authorhschang <chang@dev3>
Wed, 14 May 2014 10:43:42 +0000 (19:43 +0900)
committerhschang <chang@dev3>
Wed, 14 May 2014 10:43:42 +0000 (19:43 +0900)
32 files changed:
configure.ac
data/keymap.xml
data/rcpositions.xml
data/skin.xml
lib/dvb/dvb.cpp
lib/dvb/frontend.cpp
lib/gdi/glcddc.cpp
lib/gdi/lcd.cpp
lib/python/Components/AVSwitch.py
lib/python/Components/Harddisk.py
lib/python/Components/TunerInfo.py
lib/python/Plugins/Extensions/MediaPlayer/plugin.py
lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/plugin.py
lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/plugin.py
lib/python/Plugins/SystemPlugins/FactoryTest/Makefile.am [deleted file]
lib/python/Plugins/SystemPlugins/FactoryTest/__init__.py [deleted file]
lib/python/Plugins/SystemPlugins/FactoryTest/_sctest.so [deleted file]
lib/python/Plugins/SystemPlugins/FactoryTest/plugin.py [deleted file]
lib/python/Plugins/SystemPlugins/FactoryTest/sctest.py [deleted file]
lib/python/Plugins/SystemPlugins/FactoryTest/testdb [deleted file]
lib/python/Plugins/SystemPlugins/HDMICEC/components/HdmiCec.py
lib/python/Plugins/SystemPlugins/Makefile.am
lib/python/Plugins/SystemPlugins/TransCodingSetup/plugin.py
lib/python/Plugins/SystemPlugins/WirelessLanSetup/plugin.py
lib/python/Screens/InfoBar.py
lib/python/Screens/InfoBarGenerics.py
lib/python/Screens/LanguageSelection.py
lib/python/Screens/SleepTimerEdit.py
lib/python/Screens/Subtitles.py
lib/python/Screens/Wizard.py
lib/python/Tools/KeyBindings.py
main/bsod.cpp

index 27b8039..332fc7a 100644 (file)
@@ -240,7 +240,6 @@ lib/python/Plugins/SystemPlugins/Videomode/Makefile
 lib/python/Plugins/SystemPlugins/Videomode/meta/Makefile
 lib/python/Plugins/SystemPlugins/WirelessLan/Makefile
 lib/python/Plugins/SystemPlugins/WirelessLan/meta/Makefile
-lib/python/Plugins/SystemPlugins/FactoryTest/Makefile
 lib/python/Plugins/SystemPlugins/Fancontrol/Makefile
 lib/python/Plugins/SystemPlugins/Fancontrol/meta/Makefile
 lib/python/Plugins/SystemPlugins/FPGAUpgrade/Makefile
index 16bfaac..8395222 100755 (executable)
@@ -90,7 +90,6 @@
                        <key id="KEY_RECORD" mapto="instantRecord" flags="m" />
                </device>
                <device name="dreambox remote control (native)">
-<!--   ikseong insert KEY_RECORD action        -->
                        <key id="KEY_RECORD" mapto="instantRecord" flags="m" />
                        <key id="KEY_RED" mapto="instantRecord" flags="b" />
                </device>
                <key id="KEY_ENTER" mapto="ok" flags="m" />
                <key id="KEY_EXIT" mapto="back" flags="m" />
                <key id="KEY_ESC" mapto="back" flags="m" />
-<!--   ikseong for factory test        -->
-               <key id="KEY_SUBTITLE" mapto="test" flags="m" />
-               <key id="KEY_RADIO" mapto="testexit" flags="m" />
-               <key id="KEY_PAUSE" mapto="agingend" flags="m" />
-               <key id="KEY_STOP" mapto="agingfinish" flags="m" />             
-               <key id="KEY_GREEN" mapto="agingstart" flags="m" />
        </map>
        
        <map context="InfobarMenuActions">
                <key id="KEY_VIDEO" mapto="showMovies" flags="m" />
                <key id="KEY_RADIO" mapto="showRadio" flags="m" />
                <key id="KEY_TV" mapto="showTv" flags="m" />
-<!--   ikseong insert KEY_SUBTITLE action for subtitle hotkey  -->
                <key id="KEY_SUBTITLE" mapto="showSubtitle" flags="m" />
        </map>
 
                        <key id="KEY_BLUE" mapto="seekFwd" flags="b" />
                        <key id="KEY_RED" mapto="seekBackManual" flags="l" />
                        <key id="KEY_BLUE" mapto="seekFwdManual" flags="l" />
-<!--   ikseong insert KEY_PAUSE, KEY_PLAY      -->
                        <key id="KEY_PAUSE" mapto="pauseService" flags="m" />
                        <key id="KEY_PLAY" mapto="playpauseService" flags="m" />
                </device>
                <device name="dreambox remote control (native)">
                        <key id="KEY_YELLOW" mapto="timeshiftStart" flags="b" />
                        <key id="KEY_TV" mapto="timeshiftStop" flags="m" />
-<!--   ikseong insert KEY_PAUSE, KEY_PLAY, KEY_STOP    -->
                        <key id="KEY_PLAY" mapto="timeshiftStart" flags="m" />
                        <key id="KEY_PAUSE" mapto="timeshiftStart" flags="m" />
                        <key id="KEY_STOP" mapto="timeshiftStop" flags="m" />
                <device name="dreambox remote control (native)">
                        <key id="KEY_RED" mapto="timeshiftActivateEnd" flags="b" />
                        <key id="KEY_YELLOW" mapto="timeshiftActivateEndAndPause" flags="b" />
-<!--   ikseong insert KEY_PAUSE, KEY_PLAY, KEY_REWIND  -->
                        <key id="KEY_PLAY" mapto="timeshiftActivateEndAndPause" flags="m" />
                        <key id="KEY_PAUSE" mapto="timeshiftActivateEndAndPause" flags="m" />
                </device>
                <device name="dreambox remote control (native)">
                        <key id="KEY_TV" mapto="leavePlayer" flags="m" />
                        <key id="KEY_STOP" mapto="leavePlayer" flags="m" />
-<!--   ikseong insert KEY_SUBTITLE action for subtitle hotkey  -->
                        <key id="KEY_SUBTITLE" mapto="showSubtitle" flags="m" />                
                </device>
                <device name="dreambox advanced remote control (native)">
                        <key id="KEY_RADIO" mapto="shift_record" flags="l" />
                        <key id="KEY_PREVIOUS" mapto="previous" flags="m" />
                        <key id="KEY_NEXT" mapto="next" flags="m" />
-<!--   ikseong insert KEY_PAUSE, KEY_PLAY, KEY_STOP, KEY_RECORD, KEY_REWIND, KEY_FASTFORWARD   -->
                        <key id="KEY_PAUSE" mapto="pause" flags="m" />
                        <key id="KEY_PLAY" mapto="play" flags="m" />
                        <key id="KEY_STOP" mapto="stop" flags="b" />
index 3508025..c21a506 100755 (executable)
@@ -1,4 +1,3 @@
-<!--   ikseong modify position as 750S RCU     -->
 <rcs>
        <rc id="0">
                <button name="SHIFT" pos="58,21" />
index ccd8eb7..bbf4dd0 100755 (executable)
                        <convert type="ConditionalShowHide" />
                </widget>
                <!-- Crypt icon (encrypted service?) -->
-               <!-- ikseong
-               <ePixmap position="563,48" zPosition="0" size="107,15" pixmap="skin_default/icons/icons_off.png" />     -->
                <ePixmap position="563,48" zPosition="0" size="80,15" pixmap="skin_default/icons/icons_off.png" />              
                <widget source="session.CurrentService" render="Pixmap" pixmap="skin_default/icons/icon_crypt.png" position="563,48" zPosition="1" size="12,16" alphatest="on">
                        <convert type="ServiceInfo">IsCrypted</convert>
                        <convert type="ConditionalShowHide" />
                </widget>
                <!-- Audio icon (is there multichannel audio?) -->
-<!--   ikseong         
-               <widget source="session.CurrentService" render="Pixmap" pixmap="skin_default/icons/icon_dolby.png" position="645,48" zPosition="1" size="26,16" alphatest="on">
+<!--   <widget source="session.CurrentService" render="Pixmap" pixmap="skin_default/icons/icon_dolby.png" position="645,48" zPosition="1" size="26,16" alphatest="on">
                        <convert type="ServiceInfo">IsMultichannel</convert>
                        <convert type="ConditionalShowHide" />
                </widget>       -->
index f07a986..ee68253 100755 (executable)
@@ -1215,7 +1215,7 @@ void eDVBChannel::frontendStateChanged(iDVBFrontend*fe)
                }
        } else if (state == iDVBFrontend::stateFailed)
        {
-#ifdef BUILD_VUPLUS /* ikseong  */
+#ifdef BUILD_VUPLUS
                if (m_current_frontend_parameters)
                {
                        eDebug("OURSTATE: lost lock, trying to retune");
index d65efbd..a183e37 100755 (executable)
@@ -786,7 +786,7 @@ void eDVBFrontend::timeout()
        m_tuning = 0;
        if (m_state == stateTuning)
        {
-#ifdef BUILD_VUPLUS /* ikseong  */
+#ifdef BUILD_VUPLUS
                eDVBFrontend *sec_fe = this;
                sec_fe->m_data[CSW] = sec_fe->m_data[UCSW] = sec_fe->m_data[TONEBURST] = -1; // reset diseqc
 #endif
index 8ac8cd3..07bd910 100755 (executable)
@@ -36,7 +36,7 @@ void gLCDDC::exec(const gOpcode *o)
        {
        case gOpcode::flush:
 //             if (update)
-#ifndef BUILD_VUPLUS /* ikseong  */
+#ifndef BUILD_VUPLUS
                        lcd->update();
 #else
                        ;
index 794e9ab..04ed7e2 100755 (executable)
@@ -189,7 +189,7 @@ eDBoxLCD *eDBoxLCD::getInstance()
 
 void eDBoxLCD::update()
 {
-#ifdef BUILD_VUPLUS /* ikseong  */
+#ifdef BUILD_VUPLUS
        return ;
 #endif
        if (lcdfd >= 0)
index de12e00..8b7e8b7 100755 (executable)
@@ -74,7 +74,7 @@ def InitAVSwitch():
        # when YUV is not enabled, don't let the user select it
        if config.av.yuvenabled.value:
                colorformat_choices["yuv"] = _("YPbPr")
-#      ikseong
+
        config.av.colorformat = ConfigSelection(choices=colorformat_choices, default="cvbs")
        config.av.aspectratio = ConfigSelection(choices={
                        "4_3_letterbox": _("4:3 Letterbox"),
index 7500c33..16b904c 100755 (executable)
@@ -1,5 +1,5 @@
 from os import system, listdir, statvfs, popen, makedirs, stat, major, minor, path, access
-#      ikseong
+
 from Tools.Directories import SCOPE_HDD, resolveFilename, fileExists
 
 from Tools.CList import CList
@@ -97,7 +97,6 @@ class Harddisk:
                return ret
 
        def diskSize(self):
-               #       ikseong
                try:
                        line = readFile(self.sysfsPath('size'))
                except:
@@ -117,7 +116,6 @@ class Harddisk:
                return "%d.%03d GB" % (cap/1000, cap%1000)
 
        def model(self):
-               #       ikseong
                try:
                        if self.device[:2] == "hd":
                                return readFile('/proc/ide/' + self.device + '/model')
@@ -278,12 +276,11 @@ class Harddisk:
                return (res >> 8)
 
        def createMovieFolder(self):
-#      ikseong
                try:
                        if not fileExists("/hdd", 0):
                                print "not found /hdd"
                                system("ln -s /media/hdd /hdd")
-#                              
+       
                        makedirs(resolveFilename(SCOPE_HDD))
                except OSError:
                        return -1
@@ -392,7 +389,7 @@ class Harddisk:
                idle_time = t - self.last_access
 
                stats = self.readStats()
-               #       ikseong
+
                if stats == -1:
                        self.setIdleTime(0)
                        return
@@ -661,7 +658,6 @@ class HarddiskManager:
        def HDDList(self):
                list = [ ]
                for hd in self.hdd:
-                       #       ikseong
                        if hd.model() == -1:
                                continue
                        hdd = hd.model() + " - " + hd.bus()
index 68d5464..578a75c 100755 (executable)
@@ -60,8 +60,6 @@ class TunerInfo(GUIComponent):
                        value = self.getValue(self.LOCK)
 
                if self.type == self.SNR_DB:
-#      ikseong         
-#                      if value != 0x12345678:
                        if value is not None and value != 0x12345678:
                                self.setText("%3.02f dB" % (value / 100.0))
                        else:
index 3bf2a14..3fe66af 100755 (executable)
@@ -137,7 +137,6 @@ class MediaPlayer(Screen, InfoBarBase, InfoBarSeek, InfoBarAudioSelection, InfoB
 
                self.seek_target = None
 
-#      ikseong
 #              from Plugins.SystemPlugins.Hotplug.plugin import hotplugNotifier
 #              hotplugNotifier.append(self.hotplugCB)
 
@@ -169,7 +168,6 @@ class MediaPlayer(Screen, InfoBarBase, InfoBarSeek, InfoBarAudioSelection, InfoB
                                "prevBouquet": (self.switchToPlayList, _("switch to playlist")),
                                "nextBouquet": (self.switchToFileList, _("switch to filelist")),
                                "delete": (self.deletePlaylistEntry, _("delete playlist entry")),
-#ikseong                               
 #                              "shift_stop": (self.clear_playlist, _("clear playlist")),
 #                              "shift_record": (self.playlist.PlayListShuffle, _("shuffle playlist")),
                                "shift_stop": self.clear_playlist,
@@ -252,7 +250,6 @@ class MediaPlayer(Screen, InfoBarBase, InfoBarSeek, InfoBarAudioSelection, InfoB
                if config.mediaplayer.saveDirOnExit.getValue():
                        config.mediaplayer.defaultDir.setValue(self.filelist.getCurrentDirectory())
                        config.mediaplayer.defaultDir.save()
-#      ikseong                 
 #      from Plugins.SystemPlugins.Hotplug.plugin import hotplugNotifier
 #      hotplugNotifier.remove(self.hotplugCB)
                del self["coverArt"].picload
index 5f2f82a..22053b2 100644 (file)
@@ -57,10 +57,8 @@ class CIselectMainMenu(Screen):
                                        appname = _("Slot %d") %(slot+1) + " - " + _("init modules")
                                elif state == 2:
                                        appname = _("Slot %d") %(slot+1) + " - " + eDVBCI_UI.getInstance().getAppName(slot)
-                               #       ikseong                                 
                                else :
                                        appname = _("Slot %d") %(slot+1) + " - " + _("no module found")
-                               #
                                self.list.append( (appname, ConfigNothing(), 0, slot) )
                else:
                        self.list.append( (_("no CI slots found") , ConfigNothing(), 1, -1) )
index 25a06eb..e45778a 100644 (file)
@@ -333,7 +333,6 @@ def mxServerFound(mxServer,session):
                if crashlog.startswith("enigma2_crash_") and crashlog.endswith(".log"):
                        print "[CrashlogAutoSubmit] - found crashlog: ",os.path.basename(crashlog)
                        crashLogFilelist.append('/media/hdd/' + crashlog)
-#      ikseong
 #      if len(crashLogFilelist):
 #              if config.plugins.crashlogautosubmit.sendmail.value == "send":
 #                      session.openWithCallback(handleAnswer, ChoiceBox, title=_("Crashlogs found!\nSend them to Dream Multimedia ?"), list = list)
diff --git a/lib/python/Plugins/SystemPlugins/FactoryTest/Makefile.am b/lib/python/Plugins/SystemPlugins/FactoryTest/Makefile.am
deleted file mode 100755 (executable)
index f3b682d..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-installdir = $(pkglibdir)/python/Plugins/SystemPlugins/FactoryTest
-
-install_PYTHON =       \
-       __init__.py \
-       plugin.py \
-       testdb \
-       _sctest.so \
-       sctest.py
diff --git a/lib/python/Plugins/SystemPlugins/FactoryTest/__init__.py b/lib/python/Plugins/SystemPlugins/FactoryTest/__init__.py
deleted file mode 100755 (executable)
index e69de29..0000000
diff --git a/lib/python/Plugins/SystemPlugins/FactoryTest/_sctest.so b/lib/python/Plugins/SystemPlugins/FactoryTest/_sctest.so
deleted file mode 100755 (executable)
index fed9ddb..0000000
Binary files a/lib/python/Plugins/SystemPlugins/FactoryTest/_sctest.so and /dev/null differ
diff --git a/lib/python/Plugins/SystemPlugins/FactoryTest/plugin.py b/lib/python/Plugins/SystemPlugins/FactoryTest/plugin.py
deleted file mode 100755 (executable)
index 38ac2f5..0000000
+++ /dev/null
@@ -1,2936 +0,0 @@
-from Screens.Screen import Screen
-from Screens.MessageBox import MessageBox
-from Plugins.Plugin import PluginDescriptor
-from Components.MenuList import MenuList
-from Tools.Directories import fileExists
-from Components.ServiceList import ServiceList
-from Components.ActionMap import ActionMap,NumberActionMap
-from Components.config import config
-from os import system,access,F_OK,R_OK,W_OK
-from Components.Label import Label
-from Components.AVSwitch import AVSwitch
-from time import sleep
-from Components.Console import Console
-from enigma import eTimer
-from Components.HTMLComponent import HTMLComponent
-from Components.GUIComponent import GUIComponent
-from enigma import eListboxPythonStringContent, eListbox, gFont, eServiceCenter, eDVBResourceManager
-from enigma import eServiceReference
-from sctest import eSctest
-from enigma import eDVBDB
-from Components.NimManager import nimmanager
-from enigma import eDVBCI_UI,eDVBCIInterfaces
-from Tools.Directories import resolveFilename, SCOPE_SYSETC
-from Components.Sources.StaticText import StaticText
-
-class TestResultList(MenuList):
-       def postWidgetCreate(self, instance):
-               self.instance.setSelectionEnable(0)
-               instance.setContent(self.l)
-               instance.selectionChanged.get().append(self.selectionChanged)
-               if self.enableWrapAround:
-                       self.instance.setWrapAround(True)
-
-       def updateList(self, list):
-               self.list = list
-               self.l.setList(self.list)
-
-class TuneMessageBox(MessageBox):
-       skin = """
-               <screen position="center,center" size="600,10" title="Message">
-                       <widget name="text" position="65,8" size="420,0" font="Regular;22" />
-                       <widget name="ErrorPixmap" pixmap="Vu_HD/icons/input_error.png" position="5,5" size="53,53" alphatest="blend" />
-                       <widget name="QuestionPixmap" pixmap="Vu_HD/icons/input_question.png" position="5,5" size="53,53" alphatest="blend" />
-                       <widget name="InfoPixmap" pixmap="Vu_HD/icons/input_info.png" position="5,5" size="53,53" alphatest="blend" />
-                       <widget name="list" position="100,100" size="380,375" transparent="1" backgroundColor="darkgrey" />
-                       <!-- Signal Quality -->
-                       <eLabel text="SNR : " position="60,130" size="60,25" font="Regular;25" transparent="1" />
-                       <widget source="session.FrontendStatus" render="Label" position="120,130" size="60,25" font="Regular;25"  transparent="1">
-                               <convert type="FrontendInfo">SNRdB</convert>
-                       </widget>
-                       <!-- AGC -->
-                       <eLabel text="AGC : " position="200,130" size="60,25" font="Regular;25"  transparent="1" noWrap="1" />
-                       <widget source="session.FrontendStatus" render="Label" position="260,130" size="60,25" font="Regular;25"  transparent="1" noWrap="1">
-                               <convert type="FrontendInfo">AGC</convert>
-                       </widget>
-                       <applet type="onLayoutFinish">
-# this should be factored out into some helper code, but currently demonstrates applets.
-from enigma import eSize, ePoint
-
-orgwidth = self.instance.size().width()
-orgpos = self.instance.position()
-textsize = self[&quot;text&quot;].getSize()
-
-# y size still must be fixed in font stuff...
-textsize = (textsize[0] + 50, textsize[1] + 50)
-offset = 0
-if self.type == self.TYPE_YESNO:
-       offset = 60
-wsizex = textsize[0] + 60
-wsizey = textsize[1] + offset
-if (280 &gt; wsizex):
-       wsizex = 280
-wsizex = wsizex + 30
-wsizey = wsizey + 30
-wsize = (wsizex, wsizey)
-
-# resize
-self.instance.resize(eSize(*wsize))
-
-# resize label
-self[&quot;text&quot;].instance.resize(eSize(*textsize))
-
-# move list
-listsize = (wsizex, 50)
-self[&quot;list&quot;].instance.move(ePoint(0, textsize[1]))
-self[&quot;list&quot;].instance.resize(eSize(*listsize))
-
-# center window
-newwidth = wsize[0]
-self.instance.move(ePoint(orgpos.x() + (orgwidth - newwidth)/2, orgpos.y()))
-                       </applet>
-               </screen>"""
-       def __init__(self, session, text, type = MessageBox.TYPE_YESNO):
-               MessageBox.__init__(self, session, text, type)
-
-class FactoryTestSummary(Screen):
-       skin = """
-       <screen name="FactoryTestSummary" position="0,0" size="132,64" id="1">
-               <widget source="parent.Title" render="Label" position="6,0" size="132,64" font="Regular;18" halign="center" valign="center"/>
-       </screen>"""
-
-class FactoryTestSummary_VFD(Screen):
-       skin = """
-       <screen name="FactoryTestSummary" position="0,0" size="256,64" id="1">
-               <widget source="parent.Title" render="Label" position="0,0" size="256,64" font="VFD;24" halign="center" valign="center"/>
-       </screen>"""
-
-class FactoryTest(Screen):
-       skin = """
-               <screen name="FactoryTest" position="300,100" size="660,550" title="Test Menu" >
-                       <widget name="testlist" position="10,0" size="440,455" itemHeight="35" />
-                       <widget name="resultlist" position="470,0" size="60,455" itemHeight="35" />
-                       <widget name="testdate" position="20,470" size="250,35" font="Regular;30" />
-                       <widget name="testversion" position="20,505" size="250,35" font="Regular;30" />
-                       <widget name="mactext" position="320,470" size="340,35" font="Regular;30" />
-               </screen>"""
-
-       def createSummary(self):
-               if self.model == 4:
-                       return FactoryTestSummary_VFD
-               else:
-                       return FactoryTestSummary
-
-       def __init__(self, session):
-
-               self["actions"] = NumberActionMap(["OkCancelActions","WizardActions","NumberActions","ColorActions",],
-               {
-                       "left": self.nothing,
-                       "right":self.nothing,
-                       "ok": self.TestAction,
-                       "testexit": self.keyCancel,
-                       "agingstart": self.Agingmode,
-                       "up": self.keyup,
-                       "down": self.keydown,
-                       "0": self.numberaction,
-                       "1": self.numberaction, 
-                       "2": self.numberaction,                 
-                       "3": self.numberaction,                 
-                       "4": self.numberaction,                 
-                       "5": self.numberaction,                 
-                       "6": self.numberaction,                 
-                       "7": self.numberaction,                 
-                       "8": self.numberaction,                 
-                       "9": self.numberaction,                 
-                       "red": self.shutdownaction,
-                       "blue": self.Agingmode2,
-               }, -2)
-
-               Screen.__init__(self, session)
-               TESTPROGRAM_DATE = self.getImageVersion() +" (v1.20)"
-               TESTPROGRAM_VERSION = "Version 01.20"
-
-               self.model = 0
-               self.getModelInfo()
-               
-               self["testdate"]=Label((TESTPROGRAM_DATE))
-               self["testversion"]=Label(("Loading version..."))
-               self["mactext"]=Label(("Loading mac address..."))
-               if self.model == 0 or self.model == 1:
-                       nimConfig = nimmanager.getNimConfig(0)
-                       nimConfig.configMode.slot_id=0
-                       nimConfig.configMode.value= "simple"
-                       nimConfig.diseqcMode.value="diseqc_a_b"
-                       nimConfig.diseqcA.value="160"
-                       nimConfig.diseqcB.value="100"
-               if self.model == 0:
-                       nimConfig = nimmanager.getNimConfig(1)
-                       nimConfig.configMode.slot_id=1          
-                       nimConfig.configMode.value= "simple"
-                       nimConfig.diseqcMode.value="diseqc_a_b"
-                       nimConfig.diseqcA.value="130"
-                       nimConfig.diseqcB.value="192"
-               if self.model == 2:
-                       pass
-               if self.model == 3 or self.model == 4:
-                       self.NimType = {}
-                       sat_list = ["160","100","130","192","620","642","685","720"]
-#                                      ' sat ' : namespace , # satname
-#                                      '160' : '0xA00000', # Eutelsat W2
-#                                      '100' : '0x64af79', # Eutelsat
-#                                      '130' : '0x820000', # Hotbird
-#                                      '192' : '0xC00000', # Astra
-#                                      '620' : '0x26c0000', # Intelsat 902
-#                                      '642' : '0x282AF79' # Intelsat 906
-#                                      '685' : '02ad0000' # Panamsat 7,10 (68.5E)
-#                                      '720' : '02d0af79' # Panamsat 4 (72.0E)
-                       try:
-                               nimfile = open("/proc/bus/nim_sockets")
-                       except IOError:
-                               nimfile = None
-                       if nimfile is None:
-                               self.session.openWithCallback(self.close, MessageBox, _("File not Found!\n/proc/bus/nim_sockets"), MessageBox.TYPE_ERROR)
-                       for line in nimfile.readlines():
-                               print line
-                               if line == "":
-                                       break
-                               if line.strip().startswith("NIM Socket"):
-                                       parts = line.strip().split(" ")
-                                       current_slot = int(parts[2][:-1])
-                                       self.NimType[current_slot]={}
-                                       self.NimType[current_slot]["slot"] = current_slot
-                               elif line.strip().startswith("Type:"):
-                                       print str(line.strip())
-                                       self.NimType[current_slot]["type"] = str(line.strip()[6:])
-                                       if self.NimType[current_slot]["type"].startswith("DVB-S"):
-                                               self.NimType[current_slot]["sat1"] = sat_list.pop(0)
-                                               self.NimType[current_slot]["sat2"] = sat_list.pop(0)
-                                       else:
-                                               self.NimType[current_slot]["sat1"] = None
-                                               self.NimType[current_slot]["sat2"] = None
-                               elif line.strip().startswith("empty"):
-                                       self.NimType.pop(current_slot)  
-                       nimfile.close()
-                       if True:
-                               for (key, val) in self.NimType.items():
-                                       print key
-                                       print val
-                                       if val["type"].startswith("DVB-S"):
-                                               print "nimConfig (dvb-s): ",key
-                                               nimConfig = nimmanager.getNimConfig(key)
-                                               nimConfig.configMode.slot_id=key
-                                               nimConfig.configMode.value= "simple"
-                                               nimConfig.diseqcMode.value="diseqc_a_b"
-                                               nimConfig.diseqcA.value = val["sat1"]
-                                               nimConfig.diseqcB.value = val["sat2"]
-                                       else :
-                                               nimConfig = nimmanager.getNimConfig(key)
-                                               print "configMode check : ",nimConfig.configMode.value
-                       
-               nimmanager.sec.update()
-               
-               system("cp /usr/lib/enigma2/python/Plugins/SystemPlugins/FactoryTest/testdb /etc/enigma2/lamedb")
-               db = eDVBDB.getInstance()
-               db.reloadServicelist()
-               self.createConfig()
-               
-               self.rlist = []
-               for x in range(self.menulength-1):
-                       self.rlist.append((".."))
-               self.rlist.append((" "))
-               self["resultlist"] = TestResultList(self.rlist)
-
-               self.avswitch = AVSwitch()
-               self.scTest= eSctest()
-               
-               self.testing = 0
-
-               self.servicelist = ServiceList()
-               self.oldref = session.nav.getCurrentlyPlayingServiceReference()
-               print "oldref",self.oldref
-               session.nav.stopService() # try to disable foreground service
-               
-               self.tunemsgtimer = eTimer()
-               self.tunemsgtimer.callback.append(self.tunemsg)
-
-               self.camstep = 1
-               self.camtimer = eTimer()
-               self.camtimer.callback.append(self.cam_state)
-               self.mactry = 1
-               self.getmacaddr()
-               self.getversion()
-               
-               self.tunerlock = 0
-               self.tuningtimer = eTimer()
-               self.tuningtimer.callback.append(self.updateStatus)
-
-               self.satatry = 8
-               self.satatimer = eTimer()
-               self.satatimer.callback.append(self.sataCheck)
-
-               self.usbtimer = eTimer()
-               self.usbtimer.callback.append(self.usbCheck)
-
-               self.setSourceVar()
-               self.FanSpeedUp(255)
-
-       def FanSpeedUp(self,value):
-               if self.model in (3,4): # uno or ultimo
-                       if value <0:
-                               value = 0
-                       elif value >255:
-                               value = 255
-                       print "[FactoryTest, FanSpeedUp] setPWM to : %d"%value
-                       f = open("/proc/stb/fp/fan_pwm", "w")
-                       f.write("%x" % value)
-                       f.close()
-
-       def createConfig(self):
-               tlist = []
-               self.satetestIndex = -1
-               self.scarttestIndex = -1
-               if self.model == 0:
-                       self.satetestIndex=0
-                       tlist.append((" 0. Sata & extend hdd test",self.satetestIndex))
-                       self.usbtestIndex=1
-                       tlist.append((" 1. USB test",self.usbtestIndex))
-                       self.fronttestIndex=2
-                       tlist.append((" 2. Front test",self.fronttestIndex))
-                       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))
-                       self.tuner1_2testIndex=5
-                       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))
-                       self.tuner2_2testIndex=7
-                       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
-                       tlist.append((" 9. RS232 test",self.rs232testIndex))
-                       self.ethernettestIndex=10
-                       tlist.append(("10. Ethernet & mac test",self.ethernettestIndex))
-                       self.fdefaultIndex=11
-                       tlist.append(("11. Factory default",self.fdefaultIndex))
-                       self.shutdownIndex=12
-                       tlist.append(("12. Shutdown(Deep Standby)",self.shutdownIndex))
-                       self.tuner_test_first_index = 4
-                       self.tuner_test_last_index = 7
-                       
-               elif self.model == 1:
-                       self.usbtestIndex=0
-                       tlist.append((" 0. USB test",self.usbtestIndex))
-                       self.fronttestIndex=1
-                       tlist.append((" 1. Front test",self.fronttestIndex))
-                       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))
-                       self.tuner2_2testIndex = self.tuner1_2testIndex=4
-                       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
-                       tlist.append((" 6. Ethernet & mac test",self.ethernettestIndex))
-                       self.fdefaultIndex=7
-                       tlist.append((" 7. Factory default",self.fdefaultIndex))
-                       self.shutdownIndex=8
-                       tlist.append((" 8. Shutdown(Deep Standby)",self.shutdownIndex))
-                       self.tuner_test_first_index = 3
-                       self.tuner_test_last_index = 4
-
-               elif self.model == 2:
-                       self.satetestIndex=0
-                       tlist.append((" 0. Sata & extend hdd test",self.satetestIndex))
-                       self.usbtestIndex=1
-                       tlist.append((" 1. USB test",self.usbtestIndex))
-                       self.fronttestIndex=2
-                       tlist.append((" 2. Front test",self.fronttestIndex))
-                       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))
-                       self.tuner1_2testIndex=5
-                       tlist.append((" 5. T1 V 22k o 16:9 RGB",self.tuner1_2testIndex))
-                       self.tuner2_1testIndex = -1
-                       self.tuner2_2testIndex=6
-                       tlist.append((" 6. T2 DVB-C 4:3 YC CAM",self.tuner2_2testIndex))
-                       self.rs232testIndex=7
-                       tlist.append((" 7. RS232 test",self.rs232testIndex))
-                       self.ethernettestIndex=8
-                       tlist.append(("8. Ethernet & mac test",self.ethernettestIndex))
-                       self.fdefaultIndex=9
-                       tlist.append(("9. Factory default",self.fdefaultIndex))
-                       self.shutdownIndex=10
-                       tlist.append(("10. Shutdown",self.shutdownIndex))
-                       self.tuner_test_first_index = 4
-                       self.tuner_test_last_index = 6
-
-               elif self.model == 3 or self.model == 4:
-                       self.satetestIndex=0
-                       tlist.append((" 0. Sata & extend hdd test",self.satetestIndex))
-                       self.usbtestIndex=1
-                       tlist.append((" 1. USB test",self.usbtestIndex))
-                       self.fronttestIndex=2
-                       tlist.append((" 2. Front test",self.fronttestIndex))
-                       self.smarttestIndex=3
-                       tlist.append((" 3. Smartcard test",self.smarttestIndex))
-                       if self.model == 3:
-                               self.tuner_test_first_index = current_index = 4
-                       elif self.model == 4:
-                               self.tuner_test_first_index = 4
-                               current_index = 0
-                       AspectRatio=["4:3", "16:9"]
-                       ColorFormat=["CVBS","RGB","YC","CVBS","CVBS","CVBS","CVBS","CVBS"]      
-                       self.tuneInfo={}
-                       tunelist = []
-                       for (key, val) in self.NimType.items():
-                               if val["type"].startswith("DVB-S"):
-# Chang : DVB -S setting diseqc A
-                                       getRatio = AspectRatio.pop(0) # ratio
-                                       AspectRatio.append(getRatio)
-                                       getColorFormat=ColorFormat.pop(0) # colorFormat
-                                       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=False, ratio=getRatio, color=getColorFormat, cam=False) # setTuneInfo
-#                                              self.setTuneInfo(current_index, key, val["type"], val["sat1"], "H", True, getRatio, getColorFormat, False) # setTuneInfo
-                                       tunelist.append((menuname,current_index))
-                                       current_index+=1
-# Chang : DVB -S setting diseqc B
-                                       getRatio = AspectRatio.pop(0)
-                                       AspectRatio.append(getRatio)
-                                       getColorFormat=ColorFormat.pop(0)
-                                       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"
-                                               camtest = True
-                                       else:
-                                               camtest = False
-                                       self.setTuneInfo( index=current_index, slot=key, type=val["type"], sat=val["sat2"], pol="V", tone=True, ratio=getRatio, color=getColorFormat, cam=camtest)
-                                       tunelist.append((menuname,current_index))
-                                       current_index+=1
-# Chang : DVB -T or DVB-C
-                               elif val["type"].startswith("DVB-T") or val["type"].startswith("DVB-C"):
-                                       additionalMenu = None
-                                       menulen = 1
-                                       if len(self.NimType) == 1:
-                                               additionalMenu = True
-                                               menulen +=1
-                                       for x in range(menulen):
-                                               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)
-                                               if len(self.NimType) == key+1 and (additionalMenu is None or x != 0): # CAM test on/off
-                                                       menuname+=" CAM"
-                                                       camtest = True
-                                               else:
-                                                       camtest = False
-                                               self.setTuneInfo( index=current_index, slot=key, type=val["type"], sat=None, pol=None, tone=None, ratio=getRatio, color=getColorFormat, cam=camtest)
-                                               tunelist.append((menuname,current_index))
-                                               current_index+=1
-                       if self.model == 3:
-                               tlist.extend(tunelist)
-                               self.tuner_test_last_index = current_index-1
-                       elif self.model == 4:
-                               self.tunelist = tunelist
-                               self.tuner_test_last_index = 4
-                               current_index = self.tuner_test_last_index
-                               tlist.append((" %d. Tuning test" % current_index,self.tuner_test_last_index))
-                               current_index+=1
-                       self.rs232testIndex=current_index
-                       tlist.append((" %d. RS232 test" % current_index,self.rs232testIndex))
-                       current_index+=1
-                       self.ethernettestIndex=current_index
-                       tlist.append((" %d. Ethernet & mac test" % current_index,self.ethernettestIndex))
-                       current_index+=1
-                       self.fdefaultIndex=current_index
-                       tlist.append((" %d. Factory default" % current_index,self.fdefaultIndex))
-                       current_index+=1
-                       self.shutdownIndex=current_index
-                       tlist.append((" %d. Shutdown(Deep Standby)" % current_index,self.shutdownIndex))
-                       
-               self.menulength= len(tlist)
-               self["testlist"] = MenuList(tlist)
-       
-       def setTuneInfo(self,index=0,slot=0,type="DVB-S2",sat="160",pol="H",tone=True,ratio="4:3",color="CVBS",cam=False):
-               self.tuneInfo[index]={}
-               self.tuneInfo[index]["slot"]=slot
-               self.tuneInfo[index]["type"]=type
-               self.tuneInfo[index]["sat"]=sat
-               self.tuneInfo[index]["pol"]=pol
-               self.tuneInfo[index]["22k"]=tone
-               self.tuneInfo[index]["ratio"]=ratio
-               self.tuneInfo[index]["color"]=color
-               self.tuneInfo[index]["cam"]=cam
-
-       def getModelInfo(self):
-               getmodel = 0
-               if fileExists("/proc/stb/info/vumodel"):
-                       vumodel = open("/proc/stb/info/vumodel")
-                       info=vumodel.read().strip()
-                       vumodel.close()
-                       if info == "duo":
-                               self.model = 0
-                               getmodel = 1
-                               print "getModelInfo : duo"
-                       if info == "solo":
-                               self.model = 1
-                               getmodel = 1
-                               print "getModelInfo : solo"
-                       if info == "combo":
-                               self.model = 2
-                               getmodel = 1
-                               print "getModelInfo : combo"
-                       if info == "uno":
-                               self.model = 3
-                               getmodel = 1
-                               print "getModelInfo : uno"
-                       if info == "ultimo":
-                               self.model = 4
-                               getmodel = 1
-                               print "getModelInfo : ultimo"
-
-               if getmodel == 0 and fileExists("/proc/stb/info/version"):
-                       vesion = open("/proc/stb/info/version")
-                       info=version.read()
-                       version.close()
-                       if info[:2] == "14":
-                               self.model = 1
-                               print "getModelInfo : solo_"
-                       elif info[:2] == "12":
-                               self.model = 0
-                               print "getModelInfo : duo_"
-
-       def nothing(self):
-               print "nothing"
-
-       def keyup(self):
-               print "self.menulength = ",self.menulength
-               print "self[\"testlist\"].getCurrent()[1] = ",self["testlist"].getCurrent()[1]
-               if self.testing==1:
-                       return
-               if self["testlist"].getCurrent()[1]==0:
-                       self["testlist"].moveToIndex(self.menulength-1)
-                       self["resultlist"].moveToIndex(self.menulength-1)
-               else:
-                       self["testlist"].up()
-                       self["resultlist"].up()
-
-
-       def keydown(self):
-               print "self.menulength = ",self.menulength
-               print "self[\"testlist\"].getCurrent()[1] = ",self["testlist"].getCurrent()[1]
-               if self.testing==1:
-                       return
-               if self["testlist"].getCurrent()[1]==(self.menulength-1):
-                       self["testlist"].moveToIndex(0)
-                       self["resultlist"].moveToIndex(0)
-               else:
-                       self["testlist"].down()
-                       self["resultlist"].down()
-
-       def numberaction(self, number):
-               if self.testing==1:
-                       return
-               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"))
-                       
-
-       def getmacaddr(self):
-               try:
-                       if self.model == 2 or self.model == 3 or self.model == 4:
-                               cmd = "nanddump -s 0x" + str((self.mactry-1)*2) + "0000 -b -o -l 64 -p /dev/mtd5"
-                       elif self.model == 0 or self.model == 1:
-                               cmd = "nanddump -s 0x" + str((self.mactry-1)*2) + "0000 -b -o -l 64 -p /dev/mtd4"
-                       self.macConsole = Console()     
-                       self.macConsole.ePopen(cmd, self.readmac,self.checkReadmac)     
-               except:
-                       return
-
-       def readmac(self, result, retval,extra_args=None):
-               (callback) = extra_args
-               if self.macConsole is not None:
-                       if retval == 0:
-                               self.macConsole = None
-                               macline = None
-                               content =result.splitlines()
-                               for x in content:
-                                       if x.startswith('0x000'+str((self.mactry-1)*2)+'0010:'):
-                                               macline = x.split()
-                               if macline == None:
-                                       callback(0)
-                               elif len(macline) < 10: 
-                                       callback(1)
-                               else:   
-                                       mac = macline[5]+":"+macline[6]+":"+macline[7]+":"+macline[8]+":"+macline[9]+":"+macline[10]
-                                       self["mactext"].setText(("MAC : "+mac))
-                                       callback(2)
-
-       def checkReadmac(self,data):
-               if data == 0:
-                       print "block %d is bad block" % self.mactry
-                       self.mactry = self.mactry + 1
-                       if self.mactry > 4:
-                               self.session.open(MessageBox, _("FLASH IS BROKEN"), type = MessageBox.TYPE_INFO, enable_input = False)
-                               return
-                       else:
-                               self.getmacaddr()
-               elif data == 1:
-                       print 'mac dump read error'
-                       return
-               elif data == 2:
-                       print 'mac address read ok'
-                       return
-               
-       def TestAction(self):
-               if self.testing==1:
-                       return
-               print "line - ",self["testlist"].getCurrent()[1]
-               self.currentindex = index = self["testlist"].getCurrent()[1]
-               result = 0
-               if index==self.satetestIndex:
-                       self.Test0()
-               elif index==self.fronttestIndex:
-                       self.Test1()
-               elif index>=self.tuner_test_first_index and index<=self.tuner_test_last_index:
-                       if self.model == 0 or self.model == 1 or self.model == 2 or self.model == 3:
-                               self.TestTune(index)
-                       elif self.model == 4:
-                               self.openTestTuneMenu()
-               elif index==self.scarttestIndex:
-                       self.Test6()
-               elif index==self.rs232testIndex:
-                       self.Test7()
-               elif index==self.usbtestIndex:
-                       self.Test8()
-               elif index==self.ethernettestIndex:
-                       self.Test9()
-               elif index == self.smarttestIndex:
-                       self.Test10()
-#              elif index == 11:
-#                      self.Test11()
-#              elif index ==12:
-#                      self.Test12()
-#              elif index==13:
-#                      self.Test13()
-               elif index==self.fdefaultIndex:
-                       self.Test14()
-#              elif index==self.shutdownIndex:
-#                      self.Test15()
-               else:
-                       pass
-
-       def shutdownaction(self):
-               if self["testlist"].getCurrent()[1] == self.shutdownIndex:
-                       self.Test15()
-
-
-       def Test0(self):
-               self.satatry = 8
-               self.satatimer.start(100,True)
-
-       def sataCheck(self):
-#              print "try", self.satatry
-               if self.satatry == 0:
-                       displayerror = 1
-               else:
-                       self.rlist[self["testlist"].getCurrent()[1]]="try %d"%self.satatry
-                       self["resultlist"].updateList(self.rlist)
-                       self.satatry -= 1
-                       displayerror = 0
-               result =0
-               try:
-                       if fileExists("/autofs/sdb1"):
-                               if access("/autofs/sdb1",F_OK|R_OK|W_OK):
-                                       dummy=open("/autofs/sdb1/dummy03","w")
-                                       dummy.write("complete")
-                                       dummy.close()
-                                       dummy=open("/autofs/sdb1/dummy03","r")
-                                       if dummy.readline()=="complete":
-                                               print "/autofs/sdb1 - complete"
-                                       else:
-                                               print "/autofs/sdb1 - readline error"
-                                               result = 1
-                                               displayerror = 1
-                                       dummy.close()
-                                       system("rm /autofs/sdb1/dummy03")
-                               else:
-                                       print "/autofs/sdb1 - rw access error"
-                                       result = 1
-                                       displayerror = 1
-                       else:
-                               print "/autofs/sdb1 - file not exist"
-                               result = 1
-               except:
-                       print "/autofs/sdb1 - exceptional error"
-                       result = 1
-                       displayerror = 1
-               try:
-                       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("/autofs/sda1/dummy03","r")
-                                       if dummy.readline()=="complete":
-                                               print "/autofs/sda1 - complete"
-                                       else:
-                                               print "/autofs/sda1 - readline error"
-                                               result += 1
-                                               displayerror = 1
-                                       dummy.close()
-                                       system("rm /autofs/sda1/dummy03")
-                               else:
-                                       print "/autofs/sda1 - rw access error"
-                                       result += 1
-                                       displayerror = 1
-                       else:
-                               print "/autofs/sda1 - file not exist"
-                               result += 1
-               except:
-                       print "/autofs/sda1 - exceptional error"
-                       result += 1
-                       displayerror = 1
-               
-               if result == 0:
-                       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\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\nPress 'EXIT' button!"), MessageBox.TYPE_ERROR)
-                               self.rlist[self["testlist"].getCurrent()[1]]="fail"
-                       else:
-                               self.satatimer.start(1100,True)
-
-       def Test1(self):
-               if self.model== 0:
-                       self.session.openWithCallback(self.displayresult ,FrontTest)
-               elif self.model == 1:
-                       self.session.openWithCallback(self.displayresult ,FrontTest_solo)
-               elif self.model == 2 or self.model == 3:
-                       self.session.openWithCallback(self.displayresult ,FrontTest_uno)
-               elif  self.model == 4:
-                       self.session.openWithCallback(self.displayresult ,FrontTest_ultimo)
-
-       def displayresult(self):
-               global fronttest
-               if fronttest == 1:
-                       self.rlist[self["testlist"].getCurrent()[1]]="pass"
-               else:
-                       self.rlist[self["testlist"].getCurrent()[1]]="fail"
-
-       def openTestTuneMenu(self):
-               self.session.openWithCallback(self.TestTuneMenuResult ,TestTuneMenu, self.tuneInfo, self.tunelist, self.NimType)
-
-       def TestTuneMenuResult(self,result):
-               if result :
-                       self.rlist[self["testlist"].getCurrent()[1]]="pass"
-               else:
-                       self.rlist[self["testlist"].getCurrent()[1]]="fail"
-               self["resultlist"].updateList(self.rlist)
-
-       def TestTune(self,index):       
-               if self.oldref is None:
-                       eref = eServiceReference("1:0:19:1324:3EF:1:C00000:0:0:0")
-                       serviceHandler = eServiceCenter.getInstance()
-                       servicelist = serviceHandler.list(eref)
-                       if not servicelist is None:
-                               ref = servicelist.getNext()
-                       else:
-                               ref = self.getCurrentSelection() # raise error
-                               print "servicelist none"
-               else:
-                       ref = self.oldref
-               self.session.nav.stopService() # try to disable foreground service
-               if self.model == 0 or self.model == 1:
-                       if index==self.tuner1_1testIndex:
-                               ref.setData(0,1)
-                               ref.setData(1,0x6D3)
-                               ref.setData(2,0x3)
-                               ref.setData(3,0xA4)
-                               ref.setData(4,0xA00000)
-                               self.session.nav.playService(ref)
-                               self.avswitch.setColorFormat(0)
-                               self.avswitch.setAspectRatio(0)
-                       elif index==self.tuner1_2testIndex:
-                               if self.model == 1:
-                                       self.camstep = 1
-                                       self.camtimer.start(100,True)
-                               ref.setData(0,0x19)
-                               ref.setData(1,0x1325)
-                               ref.setData(2,0x3ef)
-                               ref.setData(3,0x1)
-                               ref.setData(4,0x64af79)
-                               self.session.nav.playService(ref)
-                               self.avswitch.setColorFormat(1)
-                               self.avswitch.setAspectRatio(6)                 
-                       elif index==self.tuner2_1testIndex:
-                               ref.setData(0,1)
-                               ref.setData(1,0x6D3)
-                               ref.setData(2,0x3)
-                               ref.setData(3,0xA4)
-                               ref.setData(4,0x820000)
-                               self.session.nav.playService(ref)
-                               self.avswitch.setColorFormat(2)                 
-                               self.avswitch.setAspectRatio(0)                 
-                       elif index==self.tuner2_2testIndex:
-                               self.camstep = 1
-                               self.camtimer.start(100,True)
-                               ref.setData(0,0x19)
-                               ref.setData(1,0x1325)
-                               ref.setData(2,0x3ef)
-                               ref.setData(3,0x1)
-                               ref.setData(4,0xC00000)
-                               self.session.nav.playService(ref)
-                               self.avswitch.setColorFormat(0)                 
-                               self.avswitch.setAspectRatio(6)
-                       self.tuningtimer.start(2000,True)
-                       self.tunemsgtimer.start(3000, True)
-               elif self.model == 3 or self.model == 4:
-                       getTuneInfo=self.tuneInfo[index]
-                       if getTuneInfo["cam"] is True:
-                               self.camstep = 1
-                               self.camtimer.start(100,True)
-                       if getTuneInfo["type"].startswith("DVB-S"):
-                               if getTuneInfo["pol"] == "H":
-                                       ref.setData(0,1)
-                                       ref.setData(1,0x6D3)
-                                       ref.setData(2,0x3)
-                                       ref.setData(3,0xA4)
-                               else:
-                                       ref.setData(0,0x19)
-                                       ref.setData(1,0x1325)
-                                       ref.setData(2,0x3ef)
-                                       ref.setData(3,0x1)
-                               if getTuneInfo["sat"] == "160": # Eutelsat W2
-                                       ref.setData(4,0xA00000)
-                               elif getTuneInfo["sat"] == "100": # Eutelsat
-                                       ref.setData(4,0x64af79)
-                               elif getTuneInfo["sat"] == "130": # Hotbird
-                                       ref.setData(4,0x820000)
-                               elif getTuneInfo["sat"] == "192": # Astra
-                                       ref.setData(4,0xC00000)
-                               elif getTuneInfo["sat"] == "620": # Intelsat 902
-                                       ref.setData(4,0x26c0000) 
-                               elif getTuneInfo["sat"] == "642": # Intelsat 906
-                                       ref.setData(4,0x282AF79) 
-                               elif getTuneInfo["sat"] == "685": # Panamsat 7,10 (68.5E)
-                                       ref.setData(4,0x02ad0000) 
-                               elif getTuneInfo["sat"] == "720": # Panamsat 4 (72.0E)
-                                       ref.setData(4,0x02d0af79) 
-                       elif getTuneInfo["type"].startswith("DVB-C"):
-                               ref.setData(0,0x19)
-                               ref.setData(1,0x1325)
-                               ref.setData(2,0x3ef)
-                               ref.setData(3,0x1)
-                               ref.setData(4,-64870) # ffff029a
-                       elif getTuneInfo["type"].startswith("DVB-T"):
-                               ref.setData(0,0x19)
-                               ref.setData(1,0x1325)
-                               ref.setData(2,0x3ef)
-                               ref.setData(3,0x1)
-                               ref.setData(4,-286391716) # eeee025c
-                       self.session.nav.playService(ref)
-                       if getTuneInfo["color"]=="CVBS":
-                               self.avswitch.setColorFormat(0)
-                       elif getTuneInfo["color"]=="RGB":
-                               self.avswitch.setColorFormat(1)
-                       elif getTuneInfo["color"]=="YC":
-                               self.avswitch.setColorFormat(2)
-                       if getTuneInfo["ratio"] == "4:3":
-                               self.avswitch.setAspectRatio(0)
-                       elif getTuneInfo["ratio"] == "16:9":
-                               self.avswitch.setAspectRatio(6)
-                       self.tuningtimer.start(2000,True)
-                       self.tunemsgtimer.start(3000, True) 
-               
-       def cam_state(self):
-               current_index = self.currentindex
-               if self.camstep == 1:
-                       slot = 0
-                       state = eDVBCI_UI.getInstance().getState(slot)
-                       print '-1-stat',state
-                       if state > 0:
-                               self.camstep=2
-                               self.camtimer.start(100,True)
-                       else:
-                               self.session.nav.stopService()
-                               self.session.open( MessageBox, _("CAM1_NOT_INSERTED\nPress exit!"), MessageBox.TYPE_ERROR)
-                               self.rlist[current_index]="fail"
-                               self.tunemsgtimer.stop()
-               elif self.camstep == 2:
-                       slot = 0
-                       appname = eDVBCI_UI.getInstance().getAppName(slot)
-                       print 'appname',appname
-                       if appname is None:
-                               self.session.nav.stopService()
-                               self.session.open( MessageBox, _("NO_GET_APPNAME\nPress exit!"), MessageBox.TYPE_ERROR)
-                               self.rlist[current_index]="fail"
-                               self.tunemsgtimer.stop()                                
-                       else:
-                               self.camstep=3
-                               self.camtimer.start(100,True)           
-               elif self.camstep==3:
-                       slot = 1
-                       state = eDVBCI_UI.getInstance().getState(slot)
-                       print '-2-stat',state
-                       if state > 0:
-                               self.camstep=4
-                               self.camtimer.start(100,True)
-                       else:
-                               self.session.nav.stopService()
-                               self.session.open( MessageBox, _("CAM2_NOT_INSERTED\nPress exit!"), MessageBox.TYPE_ERROR)
-                               self.rlist[current_index]="fail"
-                               self.tunemsgtimer.stop()                                
-               elif self.camstep == 4:
-                       slot = 1
-                       appname = eDVBCI_UI.getInstance().getAppName(slot)
-                       print 'appname',appname
-                       if appname is None:
-                               self.session.nav.stopService()
-                               self.session.open( MessageBox, _("NO_GET_APPNAME\nPress exit!"), MessageBox.TYPE_ERROR)
-                               self.rlist[current_index]="fail"
-                               self.tunemsgtimer.stop()                                
-                       else:
-                               self.setSource()
-                               self.camstep = 5
-
-       def updateStatus(self):
-               current_index = self.currentindex
-               if self.model == 0 or self.model == 1:
-                       if current_index ==self.tuner1_1testIndex or current_index==self.tuner1_2testIndex:
-                               tunno = 1
-                               result = eSctest.getInstance().getFrontendstatus(0)
-                       else:
-                               tunno = 2
-                               result = eSctest.getInstance().getFrontendstatus(1)
-                       if current_index == self.tuner1_2testIndex or current_index==self.tuner2_2testIndex:
-                               hv = "Ver"
-                       else:
-                               hv = "Hor"
-
-               elif self.model == 3 or self.model == 4:
-                       getTuneInfo=self.tuneInfo[current_index]
-                       result = eSctest.getInstance().getFrontendstatus(getTuneInfo["slot"])
-                       tunno = getTuneInfo["slot"]+1
-                       hv = getTuneInfo["pol"]
-                       if hv == "H":
-                               hv = "Hor"
-                       elif hv == "V":
-                               hv = "Ver"
-                       else :
-                               hv == ""
-                               
-               print "eSctest.getInstance().getFrontendstatus - %d"%result
-               if result == 0 or result == -1:
-                       self.tunerlock = 0
-                       self.tunemsgtimer.stop()
-                       self.session.nav.stopService()
-                       self.avswitch.setColorFormat(0)
-                       self.session.open( MessageBox, _("Tune%d %s Locking Fail..."%(tunno,hv)), MessageBox.TYPE_ERROR)
-                       self.rlist[current_index]="fail"
-               else : 
-                       self.tunerlock = 1
-
-       def tuneback(self,yesno):
-               current_index=self.currentindex
-               self.session.nav.stopService() # try to disable foreground service
-               if yesno and self.tunerlock == 1:
-                       if current_index == self.tuner_test_last_index and self.camstep < 5: # need fix to depending about CAM exist
-                               self.rlist[current_index]="fail"
-                       else :
-                               self.rlist[current_index]="pass"
-               else:
-                       self.rlist[current_index]="fail"
-               if self.model == 0 and current_index == 6: # YC
-                       self.avswitch.setColorFormat(0)
-               elif ( self.model == 3 or self.model == 4 ) and self.tuneInfo[current_index]["color"] == "YC":
-                       self.avswitch.setColorFormat(0)
-               self.resetSource()
-               self["resultlist"].updateList(self.rlist)
-
-       def tunemsg(self):
-               self.tuningtimer.stop()
-               self.session.openWithCallback(self.tuneback, TuneMessageBox, _("%s ok?" %(self["testlist"].getCurrent()[0])), MessageBox.TYPE_YESNO)
-
-       def setSourceVar(self):
-               if self.model == 0:
-                       self.input_pad_num=1
-                       self.setTuner = 'B'
-               elif self.model == 1:
-                       self.input_pad_num=0
-                       self.setTuner = 'A'
-               else:
-                       self.input_pad_num=len(self.NimType)-1
-                       if self.input_pad_num == 0:
-                               self.setTuner = 'A'
-                       elif self.input_pad_num == 1:
-                               self.setTuner = 'B'
-                       elif self.input_pad_num == 2:
-                               self.setTuner = 'C'
-
-#      ikseong - for 22000 tp
-       def setSource(self):
-# fix input source
-               inputname = ("/proc/stb/tsmux/input%d" % self.input_pad_num)
-               print "<setsource> inputname : ",inputname
-               fd=open(inputname,"w")
-               fd.write("CI0")
-               fd.close()
-# fix ci_input Tuner
-               filename = ("/proc/stb/tsmux/ci0_input")
-               fd = open(filename,'w')
-               fd.write(self.setTuner)
-               print "setTuner(CI0) : ",self.setTuner
-               fd.close()
-               print "CI loop test!!!!!!!!!!!!!!"
-                       
-       def resetSource(self):
-               inputname = ("/proc/stb/tsmux/input%d" % self.input_pad_num)
-               print "<resetsource> inputname : ",inputname
-               fd=open(inputname,"w")
-               fd.write(self.setTuner)
-               fd.close()
-               print "CI loop test end!!!!!!!!!!!!!!"
-                               
-       def Test6(self):
-               self.avswitch.setInput("SCART")
-               sleep(2)
-               self.session.openWithCallback(self.check6, MessageBox, _("Scart loop ok?"), MessageBox.TYPE_YESNO)
-
-       def check6(self,yesno):
-               if yesno:
-                       self.rlist[self["testlist"].getCurrent()[1]]="pass"
-               else:
-                       self.rlist[self["testlist"].getCurrent()[1]]="fail"
-               self.avswitch.setInput("ENCODER")
-
-       def check7(self):
-               global rstest
-               if rstest == 1:
-                       self.rlist[self["testlist"].getCurrent()[1]]="pass"
-               else:
-                       self.rlist[self["testlist"].getCurrent()[1]]="fail"
-
-       def Test7(self):
-               self.session.openWithCallback(self.check7,RS232Test)
-
-       def Agingmode(self):
-               self.session.openWithCallback(self.AgingmodeCallback,AgingTest, self.model)
-
-       def AgingmodeCallback(self,ret):
-               if ret == 1:
-                       self["testlist"].moveToIndex(self.fdefaultIndex)
-                       self.Test14()
-                       self["testlist"].moveToIndex(self.shutdownIndex)        
-
-       def Agingmode2(self):
-               self.session.openWithCallback(self.Agingmode2Callback,AgingTest_mode2, self.model)
-
-       def Agingmode2Callback(self):
-               self["testlist"].moveToIndex(self.fdefaultIndex)
-               self.Test14()
-               self["testlist"].moveToIndex(self.shutdownIndex)        
-       
-       def Test8(self):
-               self.usbtry = 9
-               self.usbtimer.start(100,True)
-
-       def usbCheck(self):
-               if self.usbtry == 0:
-                       displayerror = 1
-               else:
-                       self.rlist[self["testlist"].getCurrent()[1]]="try %d"%self.usbtry
-                       self["resultlist"].updateList(self.rlist)
-                       self.usbtry -= 1
-                       displayerror = 0
-
-               if self.model==0 or self.model==3 or self.model==4:
-                       devices = [ "/autofs/sdc1", "/autofs/sdd1", "/autofs/sde1" ]
-               elif self.model==1:
-                       devices = [ "/autofs/sda1", "/autofs/sdb1" ]
-               elif self.model==2:
-                       devices = [ "/autofs/sdc1", "/autofs/sdd1" ]
-               else :
-                       self.session.open( MessageBox, _("invalid model"), MessageBox.TYPE_ERROR)                       
-                       self.rlist[self["testlist"].getCurrent()[1]]="fail"
-                       return
-
-               result=len(devices)
-               
-               for dev in devices:
-                       try:
-                               if fileExists(dev):
-                                       if access(dev,F_OK|R_OK|W_OK):
-                                               dummy=open(dev+"/dummy03","w")
-                                               dummy.write("complete")
-                                               dummy.close()
-                                               dummy=open(dev+"/dummy03","r")
-                                               if dummy.readline()=="complete":
-                                                       print dev," - complete"
-                                               else:
-                                                       print dev," - readline error"
-                                                       result=result -1
-                                                       displayerror = 1
-                                               dummy.close()
-                                               system("rm "+dev+"/dummy03")
-                                       else:
-                                               print dev," - rw access error"
-                                               result=result -1
-                                               displayerror = 1
-                               else:
-                                       print dev," - file not exist"
-                                       result=result-1
-                       except:
-                               print dev," - exceptional error"
-                               result=result -1
-                               displayerror = 1
-       
-               if result < 0 :
-                       result = 0
-               elif result == len(devices):
-                       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' button!"%(len(devices)-result)), MessageBox.TYPE_ERROR)
-                               self.rlist[self["testlist"].getCurrent()[1]]="fail"
-                       else:
-                               self.usbtimer.start(1100,True)
-
-       def pingtest(self):
-               self.testing = 1
-#              system("/etc/init.d/networking stop")
-               system("ifconfig eth0 192.168.0.10")
-#              system("/etc/init.d/networking start")
-               cmd1 = "ping -c 1 192.168.0.100"
-               self.PingConsole = Console()
-               self.PingConsole.ePopen(cmd1, self.checkNetworkStateFinished,self.NetworkStatedataAvail)
-               
-       def checkNetworkStateFinished(self, result, retval,extra_args):
-               (statecallback) = extra_args
-               if self.PingConsole is not None:
-                       if retval == 0:
-                               self.PingConsole = None
-                               content = result.splitlines()
-#                              print 'content',content
-                               x = content[4].split()
-#                              print 'x',x
-                               if x[0]==x[3]:
-                                       statecallback(1)
-                               else:
-                                       statecallback(0)                                        
-                       else:
-                               statecallback(0)
-
-
-       def NetworkStatedataAvail(self,data):
-               global ethtest
-               if data == 1:
-                       ethtest = 1
-                       print "success"
-                       self.session.openWithCallback(self.openMacConfig ,MessageBox, _("Ping test pass"), MessageBox.TYPE_INFO,2)
-               
-               else:
-                       ethtest = 0
-                       print "fail"
-                       self.session.open( MessageBox, _("Ping test fail\nPress exit"), MessageBox.TYPE_ERROR)
-                       self.macresult()
-
-       def Test9(self):
-               self.pingtest()
-
-       def openMacConfig(self, ret=False):
-               self.session.openWithCallback(self.macresult ,MacConfig,mactry=self.mactry)     
-                       
-       def macresult(self):
-               global ethtest
-               if ethtest == 1:
-                       self.rlist[self.ethernettestIndex]="pass"               
-               else:
-                       self.rlist[self.ethernettestIndex]="fail"               
-               self.getmacaddr()
-               self.testing = 0                        
-       
-#      def MemTest(self, which):
-#              index = which
-#              result = 0
-#              if index==0:
-#                      result = eMemtest.getInstance().dramtest()
-#              elif index==1:
-#                      result = eMemtest.getInstance().flashtest()
-#                      result = 0      #       temp
-#              else:
-#                      result = eMemtest.getInstance().dramtest()
-#                      result = eMemtest.getInstance().flashtest()
-#                      result = 0      #       temp
-                       
-#              index = index+10
-               
-#              if result == 0:
-#                      print index,self.rlist[index]
-#                      self.rlist[index]="pass"
-#              else:
-#                      print index,self.rlist[index]
-#                      self.rlist[index]="fail"
-#              self["resultlist"].updateList(self.rlist)
-                       
-       def scciresult(self):
-               global smartcardtest
-               if smartcardtest == 1:
-                       self.rlist[self["testlist"].getCurrent()[1]]="pass"
-               else:
-                       self.rlist[self["testlist"].getCurrent()[1]]="fail"
-
-       def Test10(self):
-               self.session.openWithCallback(self.scciresult ,SmartCardTest,stbmodel=self.model)
-
-#      def Test11(self):
-#              self.MemTest(1)
-               
-#      def Test12(self):
-#              self.MemTest(2)
-
-#      def Test13(self):
-#              self.MemTest(3)
-
-       def Test14(self):
-               try:
-                       print "test14"
-                       system("rm -R /etc/enigma2")
-                       system("ls /")
-                       system("cp -R /usr/share/enigma2/defaults /etc/enigma2")
-                       self.rlist[self["testlist"].getCurrent()[1]]="pass"
-                       self["resultlist"].updateList(self.rlist)
-               except:
-                       print "test14 except"
-                       self.rlist[self["testlist"].getCurrent()[1]]="fail"
-                       self["resultlist"].updateList(self.rlist)
-                       self.session.open( MessageBox, _("Factory reset fail"), MessageBox.TYPE_ERROR)
-
-       def Test15(self):
-               self.session.openWithCallback(self.shutdown ,MessageBox, _("Do you want to shut down?"), MessageBox.TYPE_YESNO)
-
-       def shutdown(self, yesno):
-               if yesno :
-                       from os import _exit
-                       system("/usr/bin/showiframe /boot/backdrop.mvi")
-                       _exit(1)
-               else:
-                       return
-               
-       def keyCancel(self):
-               if self.testing==1:
-                       return
-               print "exit"
-               self.close()
-#              if self.oldref is not None:
-#                      self.session.nav.playService(self.oldref)
-
-ethtest = 0
-class MacConfig(Screen):
-       skin = """
-               <screen name="MacConfig" position="center,center" size="520,100" title="Mac Config" >
-                       <eLabel text="Mac Address " position="10,15" size="200,40" font="Regular;30" />         
-                       <widget name="text" position="230,15" size="230,40" font="Regular;30" halign="right"/>
-                       <widget name="text1" position="470,15" size="40,40" font="Regular;30" />                
-                       <eLabel text=" " position="5,55" zPosition="-1" size="510,5" backgroundColor="#02e1e8e6" />             
-                       <widget name="stattext" position="30,75" size="450,35" font="Regular;30" />
-               </screen>"""
-
-       def __init__(self, session, mactry = 1):
-               self["actions"] = ActionMap(["DirectionActions","OkCancelActions"],
-               {
-                       "ok": self.keyOk,
-                       "left": self.keyleft,
-                       "right": self.keyright,
-                       "cancel": self.keyCancel,
-               }, -2)
-
-               Screen.__init__(self, session)
-
-               self.mactry = mactry
-               self.model = 0
-               self.getModelInfo()
-               self.macfd = 0
-               self.macaddr = "000000000000"
-               self.ReadMacinfo = 0
-               self["text"]=Label((self.macaddr))
-               self["text1"]= Label(("< >"))
-               self["stattext"]= Label((""))
-               self.displaymac()
-               self.loadmacaddr()
-               self.getmacaddr()
-               global ethtest
-               ethtest = 1
-
-       def getModelInfo(self):
-               getmodel = 0
-               if fileExists("/proc/stb/info/vumodel"):
-                       vumodel = open("/proc/stb/info/vumodel")
-                       info=vumodel.read().strip()
-                       vumodel.close()
-                       if info == "combo":
-                               self.model = 2
-                               getmodel = 1
-                               print "MacConfig, model : combo"
-                       elif info == "solo":
-                               self.model = 1
-                               getmodel = 1
-                               print "MacConfig, model : solo"
-                       elif info == "duo":
-                               self.model = 0
-                               getmodel = 1
-                               print "MacConfig, model : duo"
-                       elif info == "uno":
-                               self.model = 3
-                               getmodel = 1
-                               print "getModelInfo : uno"
-                       elif info == "ultimo":
-                               self.model = 4
-                               getmodel = 1
-                               print "getModelInfo : ultimo"
-
-               if getmodel == 0 and fileExists("/proc/stb/info/version"):
-                       version = open("/proc/stb/info/version")
-                       info=version.read()
-                       version.close()
-#                      print info,info[:2]
-                       if info[:2] == "14":
-                               self.model = 1
-                               print "MacConfig, model : solo_"
-                       elif info[:2] == "12":
-                               self.model = 0
-                               print "MacConfig, model: duo_"
-
-       def loadmacaddr(self):
-               try:
-                       self.macfd = 0
-
-                       if self.model==0 or self.model==3 or self.model==4 :
-                               devices = ["/autofs/sdb1", "/autofs/sdc1", "/autofs/sdd1", "/autofs/sde1" ]
-                       elif self.model==1:
-                               devices = [ "/autofs/sda1", "/autofs/sdb1" ]
-                       elif self.model==2:
-                               devices = [ "/autofs/sdb1", "/autofs/sdc1", "/autofs/sdd1" ]
-
-                       for dev in devices:
-                               print 'try..',dev
-                               if  fileExists(dev+"/macinfo.txt"):
-                                       print "<open>"+dev+"/macinfo.txt"
-                                       self.macfd = open(dev+"/macinfo.txt","r+")
-                                       break
-
-                       if self.macfd == 0:
-                               self["text"].setText(("cannot read usb!!"))
-                               self["text1"].setText((" "))
-                               self["stattext"].setText((" Press Exit Key."))
-                               self.ReadMacinfo=0
-                               return
-                       
-                       macaddr=self.macfd.readline().split(":")
-                       self.macaddr=macaddr[1]+macaddr[2]+macaddr[3]+macaddr[4]+macaddr[5]+macaddr[6]
-                       self.displaymac()
-                       self.ReadMacinfo = 1
-               except:
-                       self["text"].setText(("cannot read usb!!"))
-                       self["text1"].setText((" "))
-                       self["stattext"].setText((" Press Exit Key."))
-                       self.ReadMacinfo=0
-       
-       def getmacaddr(self):
-               if self.ReadMacinfo==0:
-                       return
-               try:
-                       if self.model == 2 or self.model == 3 or self.model == 4:
-                               cmd = "nanddump -s 0x" + str((self.mactry-1)*2) + "0000 -b -o -l 64 -p /dev/mtd5"
-                       elif self.model == 0 or self.model == 1:
-                               cmd = "nanddump -s 0x" + str((self.mactry-1)*2) + "0000 -b -o -l 64 -p /dev/mtd4"
-                       self.macConsole = Console()     
-                       self.macConsole.ePopen(cmd, self.readmac,self.checkReadmac)
-               except:
-                       return
-
-       def readmac(self, result, retval,extra_args=None):
-               (callback) = extra_args
-               if self.macConsole is not None:
-                       if retval == 0:
-                               self.macConsole = None
-                               macline = None
-                               content =result.splitlines()
-                               for x in content:
-                                       if x.startswith('0x000'+str((self.mactry-1)*2)+'0010:'):
-                                               macline = x.split()
-                               if macline == None:
-                                       callback(0)
-                               elif len(macline) < 10: 
-                                       callback(1)
-                               else:   
-                                       mac = macline[5]+":"+macline[6]+":"+macline[7]+":"+macline[8]+":"+macline[9]+":"+macline[10]
-                                       self["stattext"].setText(("now : "+mac))
-                                       callback(2)
-
-       def checkReadmac(self,data):
-               if data == 0:
-                       print "block %d is bad block" % self.mactry
-                       self.mactry = self.mactry + 1
-                       if self.mactry > 4:
-                               self.session.open(MessageBox, _("FLASH IS BROKEN"), type = MessageBox.TYPE_INFO, enable_input = False)
-                               return
-                       else:
-                               self.getmacaddr()
-               elif data == 1:
-                       print 'mac dump read error'
-                       return
-               elif data == 2:
-                       print 'mac address read ok'
-                       return
-
-                       
-       def keyleft(self):
-               if self.ReadMacinfo==0 :
-                       return
-               macaddress = long(self.macaddr,16)-1
-               if macaddress < 0 :
-                       macaddress = 0xffffffffffff
-               self.macaddr = "%012x"%macaddress
-               self.displaymac()
-
-       def keyright(self):
-               if self.ReadMacinfo==0 :
-                       return
-               macaddress = long(self.macaddr,16)+1
-               if macaddress > 0xffffffffffff:
-                       macaddress = 0
-               self.macaddr = "%012x"%macaddress
-               self.displaymac()
-
-       def displaymac(self):
-               macaddr= self.macaddr
-               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))))
-
-       def keyOk(self):
-               if self.ReadMacinfo==0 :
-                       return
-               try:
-                       macaddr = self.macaddr
-#make_mac_sector 00-99-99-99-00-00 > /tmp/mac.sector
-#flash_eraseall /dev/mtd4
-#nandwrite /dev/mtd4 /tmp/mac.sector -p                        
-                       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))
-                       system(cmd)
-                       if self.model == 2 or self.model == 3 or self.model == 4:
-                               system("flash_eraseall /dev/mtd5")
-                               system("nandwrite /dev/mtd5 /tmp/mac.sector -p")
-                       elif self.model == 0 or self.model ==1 :
-                               system("flash_eraseall /dev/mtd4")
-                               system("nandwrite /dev/mtd4 /tmp/mac.sector -p")
-                       macaddress = long(macaddr,16)+1
-                       if macaddress > 0xffffffffffff:
-                               macaddress = 0
-                       macaddr = "%012x"%macaddress
-                       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))
-                       self.macfd.seek(0)
-                       self.macfd.write(macwritetext)
-                       self.macfd.close()
-                       system("sync")
-                       self.macaddr = macaddr
-                       self.close()
-               except:
-                       self.session.open( MessageBox, _("Mac address fail"), MessageBox.TYPE_ERROR)
-                       global ethtest
-                       ethtest = 0
-                       self.close()            
-
-       def keyCancel(self):
-               if self.macfd != 0:
-                       self.macfd.close()
-               global ethtest
-               ethtest = 0
-               self.close()
-
-smartcardtest = 0
-class SmartCardTest(Screen):
-       skin = """
-               <screen name="SmartCardTest" position="center,center" size="300,120" title="SmartCard Test" >
-                       <widget name="text" position="10,10" size="280,100" font="Regular;30" />
-               </screen>"""
-
-       def __init__(self, session, stbmodel = 0):
-               self["actions"] = ActionMap(["DirectionActions", "OkCancelActions"],
-               {
-                       "cancel": self.keyCancel,
-                       "ok" : self.keyOk
-               }, -2)
-
-               Screen.__init__(self, session)
-               self["text"]=Label(("Testing Smartcard 1..."))
-               self.testok = 0
-               self.smartcardtimer = eTimer()
-               self.smartcardtimer.callback.append(self.check_smart_card)
-               self.closetimer = eTimer()
-               self.closetimer.callback.append(self.close)
-               self.smartcard=0
-               global smartcardtest
-               smartcardtest = 0
-               self.model = stbmodel
-               self.smartcardtimer.start(100,True)
-
-       def check_smart_card(self):
-               global smartcardtest
-               index = self.smartcard
-               result  = 0
-               if index==0:
-                       result = eSctest.getInstance().check_smart_card("/dev/sci0")
-               elif index ==1:
-                       result = eSctest.getInstance().check_smart_card("/dev/sci1")
-               else:
-                       result = -1
-
-               print "check smartcard : ", result
-               
-               if result == 0:
-                       print 'pass'
-                       if(index== 0 and ( self.model== 0 or self.model==2 or self.model == 3 or self.model == 4) ):
-                               self.smartcard = 1
-                               self["text"].setText(_("Testing Smartcard 2..."))
-                               self.smartcardtimer.start(100,True)
-                               return
-                       elif (index==1 or self.model==1):
-                               smartcardtest = 1
-                               self.testok = 1
-                               self["text"].setText(_("Smart Card OK!!"))
-                               self.closetimer.start(2000,True)
-                               self.smartcardtimer.stop()
-                       else :
-                               
-                               self["text"].setText(_("Smart Card model type error"))
-                               self.closetimer.start(2000,True)
-                               self.smartcardtimer.stop()
-               else:
-#                      if result ==-1:
-#                              self.session.open( MessageBox, _("%d:NO_DEV_FOUND"%(index+1)), MessageBox.TYPE_ERROR)
-#                      elif result == -2:
-#                              self.session.open( MessageBox, _("%d:SC_NOT_INSERTED"%(index+1)), MessageBox.TYPE_ERROR)
-#                      elif result == -3:
-#                              self.session.open( MessageBox, _("%d:SC_NOT_VALID_ATR"%(index+1)), MessageBox.TYPE_ERROR)
-#                      elif result == -5:
-#                              self.session.open( MessageBox, _("%d:SC_READ_TIMEOUT"%(index+1)), MessageBox.TYPE_ERROR)
-                       if(index==0):
-                               self["text"].setText(_("Smart Card 1 Error!\nerrorcode=%d"%result))
-                       elif (index==1):
-                               self["text"].setText(_("Smart Card 2 Error!\nerrorcode=%d"%result))
-                       self.closetimer.start(2000,True)
-                       self.smartcardtimer.stop()
-
-                               
-       def keyCancel(self):
-               self.close()
-
-       def keyOk(self):
-               if self.testok == 1:
-                       self.close()
-
-       
-
-fronttest = 0
-
-class FrontTest(Screen):
-       skin = """
-               <screen name="FrontTest" 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"],
-               {
-                       "ok": self.keyOk,
-                       "up":self.keyUp,
-                       "down":self.keyDown,                    
-                       "cancel": self.keyCancel,
-               }, -2)
-
-               Screen.__init__(self, session)
-               self["text"]=Label(("Wheel LEFT"))
-               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(("Wheel LEFT ERROR"))
-               elif self.step ==2 :
-                       self["text"].setText(("Wheel RIGHT ERROR"))
-               elif self.step == 3:
-                       self["text"].setText(("Wheel BUTTON ERROR"))
-               self.step = 0
-#              self.keyCancel()
-                               
-       def keyCancel(self):
-               global fronttest
-               self.fronttimer.stop()
-               eSctest.getInstance().VFD_Close()
-               if self.step==4:
-                       fronttest = 1
-               else:
-                       fronttest = 0
-               self.close()
-
-       def keyDown(self):
-               if self.step==2:
-                       self.keytimeout.stop()
-                       self.keytimeout.start(5000,True)
-                       self.step = 3
-                       self["text"].setText(_("Press Front Wheel"))
-
-       def keyUp(self):
-               if self.step==1:
-                       self.keytimeout.stop()
-                       self.keytimeout.start(5000,True)
-                       self.step=2
-                       self["text"].setText(_("Wheel RIGHT"))
-
-       def keyOk(self):
-               if self.step == 3:
-                       self.keytimeout.stop()
-                       self.step =4
-                       self.fronttimer.start(1000,True)
-                       self["text"].setText(("Front Test OK!\nPress Exit Key"))
-#              elif self.step==4:
-#                      global fronttest
-#                      self.fronttimer.stop()
-#                      eSctest.getInstance().VFD_Close()
-#                      fronttest = 1
-#                      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)
-               
-
-class FrontTest_solo(Screen):
-       skin = """
-               <screen name="FrontTest_solo" 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,
-                       "power_down": self.keypower,
-                       "volumeUp": self.keyvolup,
-                       "volumeDown": self.keyvoldown,
-               }, -2)
-
-               Screen.__init__(self, session)
-               self["text"]=Label(("Press Front STANDBY"))
-               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 STANDBY ERROR\nPress exit!"))
-               elif self.step == 2 :
-                       self["text"].setText(("Front CH - ERROR\nPress exit!"))
-               elif self.step == 3:
-                       self["text"].setText(("Front CH + ERROR\nPress exit!"))
-               elif self.step == 4 :
-                       self["text"].setText(("Front VOL - ERROR\nPress exit!"))
-               elif self.step == 5:
-                       self["text"].setText(("Front VOL + ERROR\nPress exit!"))
-                       
-               self.step = 0
-#              self.keyCancel()
-
-       def keypower(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== 3:
-                       self.keytimeout.stop()
-                       self.keytimeout.start(5000,True)
-                       self.step = 4
-                       self["text"].setText(_("Press Front VOL -"))
-                       
-       def keyleft(self):
-               if self.step== 2:
-                       self.keytimeout.stop()
-                       self.keytimeout.start(5000,True)
-                       self.step = 3
-                       self["text"].setText(_("Press Front CH +"))
-
-       def keyvolup(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"))                     
-#                      self["text"].setText(("Front Test OK!\nPress Exit Key"))
-               
-       def keyvoldown(self):
-               if self.step== 4:
-                       self.keytimeout.stop()
-                       self.keytimeout.start(5000,True)
-                       self.step = 5
-                       self["text"].setText(_("Press Front VOL +"))
-
-       def checkled(self, yesno):
-               if yesno :
-                       self.step=6
-               else:
-                       self.step=0
-               self.keyCancel()
-                       
-       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)
-
-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)
-
-class FrontTest_ultimo_Summary(Screen):
-       skin = """
-       <screen name="FactoryTestSummary" position="0,0" size="256,64" id="1">
-               <widget source="parent.Title" render="Label" position="0,0" size="256,24" font="Regular;18" halign="center" valign="center"/>
-               <widget name="text" position="0,24" size="256,40" font="VFD;20" halign="center" valign="center"/>
-       </screen>"""
-
-       def __init__(self, session, parent):
-               Screen.__init__(self, session, parent = parent)
-               self["text"] = Label("Press Front STANDBY")
-
-       def setText(self, text = ""):
-               if not isinstance(text, str):
-                       text = str(text)
-               self["text"].setText(text)
-
-class FrontTest_ultimo(FrontTest_solo):
-       skin = """
-               <screen position="center,center" size="300,180" title="Front Test" >
-                <widget name="text" position="10,10" size="280,160" font="Regular;30" />
-               </screen>"""
-
-       def createSummary(self):
-               return FrontTest_ultimo_Summary
-
-       def KeyTimeOut(self):
-               if self.step == 1:
-                       self["text"].setText(("Front STANDBY ERROR\nPress exit!"))
-                       self.summaries.setText("Front STANDBY ERROR\nPress exit!")
-               elif self.step == 2 :
-                       self["text"].setText(("Front CH - ERROR\nPress exit!"))
-                       self.summaries.setText("Front CH - ERROR\nPress exit!")
-               elif self.step == 3:
-                       self["text"].setText(("Front CH + ERROR\nPress exit!"))
-                       self.summaries.setText("Front CH + ERROR\nPress exit!")
-               elif self.step == 4 :
-                       self["text"].setText(("Front VOL - ERROR\nPress exit!"))
-                       self.summaries.setText("Front VOL - ERROR\nPress exit!")
-               elif self.step == 5:
-                       self["text"].setText(("Front VOL + ERROR\nPress exit!"))
-                       self.summaries.setText("Front VOL + ERROR\nPress exit!")
-               self.step = 0
-
-       def keypower(self):
-               if self.step== 1:
-                       self.keytimeout.stop()
-                       self.keytimeout.start(5000,True)
-                       self.step = 2
-                       self["text"].setText(_("Press Front CH -"))
-                       self.summaries.setText(_("Press Front CH -"))
-
-       def keyright(self):
-               if self.step== 3:
-                       self.keytimeout.stop()
-                       self.keytimeout.start(5000,True)
-                       self.step = 4
-                       self["text"].setText(_("Press Front VOL -"))
-                       self.summaries.setText(_("Press Front VOL -"))
-
-       def keyleft(self):
-               if self.step== 2:
-                       self.keytimeout.stop()
-                       self.keytimeout.start(5000,True)
-                       self.step = 3
-                       self["text"].setText(_("Press Front CH +"))
-                       self.summaries.setText(_("Press Front CH +"))
-
-       def keyvolup(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"))
-                       self.summaries.setText(_("Front LED OK?"))
-
-       def keyvoldown(self):
-               if self.step== 4:
-                       self.keytimeout.stop()
-                       self.keytimeout.start(5000,True)
-                       self.step = 5
-                       self["text"].setText(_("Press Front VOL +"))
-                       self.summaries.setText(_("Press Front VOL +"))
-
-       def FrontAnimate(self):
-               if (self.frontturnonoff==0):
-                       eSctest.getInstance().turnon_VFD()
-                       self.frontturnonoff = 1
-                       self.fronttimer.start(1500,True)
-               else:
-                       self.frontturnonoff = 0
-                       eSctest.getInstance().turnoff_VFD()
-                       self.fronttimer.start(500,True)
-
-rstest = 0
-
-import select
-
-class RS232Test(Screen):
-       skin = """
-               <screen name="RS232Test" position="center,center" size="260,100" title="RS232 Test" >
-                       <widget name="text" position="10,10" size="240,80" font="Regular;30" />
-               </screen>"""
-       step=1
-       def __init__(self, session):
-               self["actions"] = ActionMap(["DirectionActions", "OkCancelActions"],
-               {
-                       "cancel": self.keyCancel,
-               }, -2)
-
-               Screen.__init__(self, session)
-               self["text"]=Label(("Press \"Enter\" Key"))
-               self.timer = eTimer()
-               self.timer.callback.append(self.checkrs232)
-               self.timer.start(100, True)
-
-       def checkrs232(self):
-               global rstest
-               try:
-                       rs=open('/dev/ttyS0','r')
-                       rd = [rs]
-                       r,w,e = select.select(rd, [], [], 10)
-                       if r:
-                               input = rs.read(1)
-                               if input == "\n":
-                                       rstest = 1
-                               else:
-                                       rstest = 0 
-                       else:
-                               rstest = 0
-                       rs.close()
-               except:
-                       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):
-               self.close()
-
-class AgingTestSummary(Screen):
-       skin = """
-               <screen name="AgingTestSummary" position="0,0" size="132,64" id="1">
-                       <widget source="parent.Title" render="Label" position="6,0" size="132,64" font="Regular;18" halign="center" valign="center"/>
-               </screen>"""
-
-class AgingTestSummaryVFD(Screen):
-       skin = """
-               <screen name="AgingTestSummaryVFD" position="0,0" size="256,64" id="1">
-                       <eLabel text="MODE: " position="0,0" size="50,16" font="VFD;14" />
-                       <widget name="zapmode" position="51,0" size="70,16" font="VFD;14" halign="left" valign="center"/>
-                       <widget name="timer" position="152,0" size="124,16" font="VFD;14" halign="left" valign="center"/>
-                       <eLabel text="TUNER: " position="0,16" size="50,16" font="VFD;14" />
-                       <widget name="curtuner" position="51,16" size="200,16" font="VFD;14" halign="left" valign="center"/>
-                       <!-- Signal Quality -->
-                       <eLabel text="SNR: " position="0,32" size="45,16" font="VFD;14" transparent="1" halign="left" valign="center"/>
-                       <widget source="session.FrontendStatus" render="Label" position="46,32" size="40,16" font="VFD;14"  transparent="1">
-                               <convert type="FrontendInfo">SNRdB</convert>
-                       </widget>
-                       <!-- AGC -->
-                       <eLabel text="AGC: " position="0,48" size="45,16" font="VFD;14"  transparent="1" noWrap="1" />
-                       <widget source="session.FrontendStatus" render="Label" position="46,48" size="40,16" font="VFD;14"  transparent="1" noWrap="1">
-                               <convert type="FrontendInfo">AGC</convert>
-                       </widget>
-                       <widget name="error" position="90,32" size="166,32" font="VFD;18" halign="center" valign="center"/>
-               </screen>"""
-
-       def __init__(self, session, parent):
-               Screen.__init__(self, session)
-               self["zapmode"] = Label("")
-               self["timer"] = Label("")
-               self["curtuner"] = Label("")
-               self["error"] = Label("")
-
-       def setText(self, label = "zapmode",text = ""):
-               if not isinstance(text,str):
-                       text = str(text)
-               self[label].setText(text)
-
-class AgingTest(Screen):
-       skin = """
-               <screen position="center,center" size="350,220" title="Aging Test" >
-                       <widget name="text1" position="10,10" size="340,40" font="Regular;30" halign = "center" valign = "center"/>
-                       <widget name="text2" position="10,60" size="340,40" font="Regular;30" halign = "center" valign = "center"/>
-                       <!-- Signal Quality -->
-                       <eLabel text="SNR : " position="40,120" size="60,25" font="Regular;25" transparent="1" />
-                       <widget source="session.FrontendStatus" render="Label" position="100,120" size="60,25" font="Regular;25"  transparent="1">
-                               <convert type="FrontendInfo">SNRdB</convert>
-                       </widget>
-                       <!-- AGC -->
-                       <eLabel text="AGC : " position="180,120" size="60,25" font="Regular;25"  transparent="1" noWrap="1" />
-                       <widget source="session.FrontendStatus" render="Label" position="240,120" size="60,25" font="Regular;25"  transparent="1" noWrap="1">
-                               <convert type="FrontendInfo">AGC</convert>
-                       </widget>
-                       <widget name="text3" position="10,150" size="330,35" font="Regular;28" halign = "center" valign = "center"/>
-                       <widget name="text4" position="10,185" size="330,35" font="Regular;20" halign = "center" valign = "center"/>
-               </screen>"""
-       step=1
-       def __init__(self, session, model):
-               Screen.__init__(self, session)
-               self["actions"] = ActionMap(["MediaPlayerActions","GlobalActions", "MediaPlayerSeekActions", "ChannelSelectBaseActions"],
-               {
-                       "pause": self.keyEnd,
-                       "stop": self.keyFinish,
-                       "volumeUp": self.keyVolumeup,
-                       "volumeDown": self.keyVolumedown,
-                       "volumeMute": self.nothing,
-                       "seekFwd" : self.keyFFW,
-               }, -2)
-               self.model = model
-               self["text1"]=Label(("Exit - Press Pause Key"))
-               self["text2"]=Label(("Reset - Press Stop Key"))
-               self["text3"]=Label(("Manual zapping"))
-               self["text4"]=Label((" "))
-               self.avswitch = AVSwitch()
-               self.curzappingmode = 'manual'
-               self.zapping_interval = 300
-               self.error = 0
-               self.timeout = self.zapping_interval
-               self.tunelist = []
-               self.zappinglist = {
-                                       'DVB-S2' : [
-                                                               ('S-1','1:0:19:1325:3EF:1:0x64af79:0:0:0:'), # astra hd
-                                                               ('S-2','1:0:19:1324:3EF:1:0x64af79:0:0:0:'), # anixe hd
-                                                               ('S-3','1:0:19:1331:3EF:1:0x64af79:0:0:0:') # servus hd
-                                                       ],
-                                       'DVB-C': [
-                                                               ('C-1','1:0:19:1325:3EF:1:FFFF029A:0:0:0:'), # astra hd (DVB-C)
-                                                               ('C-2','1:0:19:1324:3EF:1:FFFF029A:0:0:0:') # anixe hd (DVB-C)
-                                                       ]
-               }
-               self.LockCheckTimer = eTimer()
-               self.LockCheckTimer.callback.append(self.LockCheck)
-               self.nextzappingtimer = eTimer()
-               self.nextzappingtimer.callback.append(self.checktimeout)
-               self.checkTunerType()
-               self.makeTunelList()
-               self.playservice(service = self.tunelist[0][1])
-#              self.logmessage("AGING TEST START")
-
-       def createSummary(self):
-               if self.model == 4:
-                       self.onShown.append(self.VFDinit)
-                       return AgingTestSummaryVFD
-               else:
-                       return AgingTestSummary
-
-       def setTextVFD(self, name ,text):
-               if self.model == 4:
-                       self.summaries.setText(name ,text)
-
-       def VFDinit(self):
-               if self.curzappingmode == 'manual' :
-                       self.summaries.setText("zapmode", 'MANUAL')
-               else:
-                       self.summaries.setText("zapmode", 'AUTO')
-                       self.summaries.setText("timer", "Timer %d sec"%self.timeout)
-               self.summaries.setText("curtuner", "%s,  CHANNEL - %s)"%(self.NimType[0], self.tunelist[0][0]))
-
-       def checkTunerType(self):
-               self.NimType={}
-               nimfile = open("/proc/bus/nim_sockets")
-               for line in nimfile.readlines():
-                       print line
-                       if line == "":
-                               break
-                       if line.strip().startswith("NIM Socket"):
-                               parts = line.strip().split(" ")
-                               current_slot = int(parts[2][:-1])
-                       elif line.strip().startswith("Type:"):
-                               self.NimType[current_slot]= str(line.strip()[6:])
-                       elif line.strip().startswith("empty"):
-                               self.NimType.pop(current_slot)
-               nimfile.close()
-
-       def makeTunelList(self):
-               if self.NimType[0].startswith("DVB-S"):
-                       tunetype = "DVB-S2"
-               elif self.NimType[0].startswith("DVB-C"):
-                       tunetype = "DVB-C"
-               elif self.NimType[0].startswith("DVB-T"):
-#                      tunetype = "DVB-T"
-                       pass # fix later..
-               try :
-                       self.tunelist = self.zappinglist[tunetype]
-               except:
-                       print "[FactoryTest] ERROR, index error (%s)"%tunetype
-
-       def nextZapping(self, zap_rev = False):
-               if zap_rev:
-                       tunelistlen = len(self.tunelist)
-                       nextservice = self.tunelist.pop(tunelistlen-1)
-                       self.tunelist.insert(0,nextservice)
-               else:
-                       currentservice = self.tunelist.pop(0)
-                       self.tunelist.append(currentservice)
-               self.playservice(service=self.tunelist[0][1])
-               if self.curzappingmode == 'auto':
-                       self.timeout = self.zapping_interval
-               self.setTextVFD("curtuner", "%s,  CHANNEL - %s)"%(self.NimType[0], self.tunelist[0][0]))
-
-       def checktimeout(self):
-               if self.timeout == 0:
-                       self.nextZapping()
-               else:
-                       self.timeout -=1
-               self["text4"].setText("remain %d sec for next tuning" %self.timeout)
-               self.setTextVFD("timer", "Timer %d sec"%self.timeout)
-
-       def playservice(self,service = '1:0:19:1325:3EF:1:0x64af79:0:0:0:'):
-               ref = eServiceReference(service)
-               self.session.nav.playService(ref)
-               self.avswitch.setAspectRatio(6)
-               self.avswitch.setColorFormat(0)
-               self.LockCheckTimer.start(2000,True)
-
-       def LockCheck(self):
-               result = eSctest.getInstance().getFrontendstatus(0)
-               if result == 0 or result == -1:
-                       if self.model == 4:
-                               self.error +=1
-                               print "AGINGTEST - LOCK FAIL(%d)"%self.error
-                               self.setTextVFD("error", "LOCK FAIL(%d)"%self.error)
-       #                       logmsg = "[LOCKFAIL][%d] TYPE : %s, CH : %s, ZAPMODE: %s"%(self.error,self.NimType[0],self.tunelist[0][0],self.curzappingmode)
-       #                       self.logmessage(logmsg)
-                       else:
-                               self.session.open( MessageBox, _("Locking Fail Error"), MessageBox.TYPE_ERROR)
-
-       def logmessage(self,msg):
-               pass
-
-       def nothing(self):
-               print "nothing"
-
-       def keyFFW(self):
-               if self.curzappingmode == 'auto':
-                       self.curzappingmode = 'manual'
-                       self.nextzappingtimer.stop()
-                       self.timeout = self.zapping_interval
-                       self["text3"].setText("Manual zapping")
-                       self["text4"].setText("")
-                       self.setTextVFD("zapmode", 'MANUAL')
-                       self.setTextVFD("timer", "")
-
-               elif self.curzappingmode == 'manual':
-                       self.curzappingmode = 'auto'
-                       self["text3"].setText("Auto zapping")
-                       self["text4"].setText("remain %d sec for next tuning" %self.timeout)
-                       self.setTextVFD("zapmode", 'AUTO')
-                       self.setTextVFD("timer", "Timer %d sec"%self.timeout)
-#                      self.timeout = self.zapping_interval
-                       self.nextzappingtimer.start(1000)
-
-       def keyVolumeup(self):
-               self.nextZapping(zap_rev = False)
-
-       def keyVolumedown(self):
-               self.nextZapping(zap_rev = True)
-
-       def nothing(self):
-               print "nothing"
-
-       def keyEnd(self):
-               self.session.nav.stopService()
-               self.close(0) # exit
-
-       def keyFinish(self):
-               self.session.nav.stopService()
-               self.close(1) # exit and reset
-
-class AgingTest_mode2_Summary(Screen):
-       skin = """
-               <screen name="AgingTest_mode2_Summary" position="0,0" size="132,64" id="1">
-                       <widget source="parent.Title" render="Label" position="6,0" size="132,64" font="Regular;18" halign="center" valign="center"/>
-               </screen>"""
-
-class AgingTest_mode2_Summary_VFD(Screen):
-       skin = """
-               <screen name="AgingTest_mode2_Summary_VFD" position="0,0" size="256,64" id="1">
-                       <eLabel text="MODE: " position="0,0" size="50,16" font="VFD;14" />
-                       <widget name="zapmode" position="51,0" size="70,16" font="VFD;14" halign="left" valign="center"/>
-                       <widget name="timer" position="152,0" size="124,16" font="VFD;14" halign="left" valign="center"/>
-                       <eLabel text="TUNER: " position="0,16" size="50,16" font="VFD;14" />
-                       <widget name="curtuner" position="51,16" size="200,16" font="VFD;14" halign="left" valign="center"/>
-                       <!-- Signal Quality -->
-                       <eLabel text="SNR: " position="0,32" size="45,16" font="VFD;14" transparent="1" halign="left" valign="center"/>
-                       <widget source="session.FrontendStatus" render="Label" position="46,32" size="40,16" font="VFD;14"  transparent="1">
-                               <convert type="FrontendInfo">SNRdB</convert>
-                       </widget>
-                       <!-- AGC -->
-                       <eLabel text="AGC: " position="0,48" size="45,16" font="VFD;14"  transparent="1" noWrap="1" />
-                       <widget source="session.FrontendStatus" render="Label" position="46,48" size="40,16" font="VFD;14"  transparent="1" noWrap="1">
-                               <convert type="FrontendInfo">AGC</convert>
-                       </widget>
-                       <widget name="error" position="90,32" size="166,32" font="VFD;18" halign="center" valign="center"/>
-               </screen>"""
-
-       def __init__(self, session, parent):
-               Screen.__init__(self, session)
-               self["zapmode"] = Label("")
-               self["timer"] = Label("")
-               self["curtuner"] = Label("")
-               self["error"] = Label("")
-
-       def setText(self, label = "zapmode",text = ""):
-               if not isinstance(text,str):
-                       text = str(text)
-               self[label].setText(text)
-
-from Components.Input import Input
-from Screens.InputBox import InputBox
-class AgingTest_mode2(Screen):
-       skin = """
-               <screen position="center,center" size="370,190" title="Aging Test 2" >
-                       <widget name="text1" position="10,10" size="350,40" font="Regular;30" halign="center" valign="center"/>
-                       <widget name="text2" position="10,60" size="350,30" font="Regular;25" halign="center" valign="center"/>
-                       <!-- Signal Quality -->
-                       <eLabel text="SNR : " position="50,100" size="60,25" font="Regular;25" transparent="1" />
-                       <widget source="session.FrontendStatus" render="Label" position="110,100" size="60,25" font="Regular;25"  transparent="1">
-                               <convert type="FrontendInfo">SNRdB</convert>
-                       </widget>
-                       <!-- AGC -->
-                       <eLabel text="AGC : " position="190,100" size="60,25" font="Regular;25"  transparent="1" noWrap="1" />
-                       <widget source="session.FrontendStatus" render="Label" position="250,100" size="60,25" font="Regular;25"  transparent="1" noWrap="1">
-                               <convert type="FrontendInfo">AGC</convert>
-                       </widget>
-                       <widget name="text3" position="10,130" size="350,25" font="Regular;18" halign="center" valign="center"/>
-                       <widget name="text4" position="10,155" size="350,25" font="Regular;18" halign="center" valign="center"/>
-               </screen>"""
-       step=1
-       def __init__(self, session,model = 4):
-               self["actions"] = ActionMap(["MediaPlayerActions","GlobalActions","InfobarMenuActions","ChannelSelectBaseActions"],
-               {
-                       "pause": self.keyEnd,
-                       "stop": self.keyFinish,
-                       "volumeUp": self.keyVolumeup,
-                       "volumeDown": self.keyVolumedown,
-                       "volumeMute": self.nothing,
-                       "mainMenu" : self.keyMenu,
-                       "nextBouquet" : self.keyChannelup,
-                       "prevBouquet" : self.keyChannelDown,
-                       "showFavourites" : self.keyBlue,
-               }, -2)
-
-               Screen.__init__(self, session)
-               self.model = model
-               self.slotindex = { 0 : 'A', 1 : 'B', 2 : 'C', 3: 'D'}
-               self.curtuner = 0
-               self.isChangeTuner = True
-               self.isChangeChannel = False
-               self.zapping_interval = 300
-               self.timeout = self.zapping_interval
-               self.avswitch = AVSwitch()
-               self.error = 0
-               self.LockCheckTimer = eTimer()
-               self.LockCheckTimer.callback.append(self.LockCheck)
-               self.nextzappingtimer = eTimer()
-               self.nextzappingtimer.callback.append(self.checktimeout)
-               self.tunelist_db = {
-                                       'DVB-S2' : [
-                                                               [
-                                                                       ('1-1','1:0:19:1325:3EF:1:0x64af79:0:0:0:'), # astra hd
-                                                                       ('1-2','1:0:19:1324:3EF:1:0x64af79:0:0:0:'), # anixe hd
-                                                                       ('1-3','1:0:19:1331:3EF:1:0x64af79:0:0:0:') # servus hd
-                                                               ],
-                                                               [
-                                                                       ('2-1','1:0:19:1325:3EF:1:0xC00000:0:0:0:'), # astra hd
-                                                                       ('2-2','1:0:19:1324:3EF:1:0xC00000:0:0:0:'), # anixe hd
-                                                                       ('2-3','1:0:19:1331:3EF:1:0xC00000:0:0:0:') # servus hd
-                                                               ],
-                                                               [
-                                                                       ('3-1','1:0:19:1325:3EF:1:0x282AF79:0:0:0:'), # astra hd
-                                                                       ('3-2','1:0:19:1324:3EF:1:0x282AF79:0:0:0:'), # anixe hd
-                                                                       ('3-3','1:0:19:1331:3EF:1:0x282AF79:0:0:0:') # servus hd
-                                                               ],
-                                                               [
-                                                                       ('4-1','1:0:19:1325:3EF:1:0x02d0af79:0:0:0:'), # astra hd, Panamsat 4 (72.0E) 
-                                                                       ('4-2','1:0:19:1324:3EF:1:0x02d0af79:0:0:0:'), # anixe hd
-                                                                       ('4-3','1:0:19:1331:3EF:1:0x02d0af79:0:0:0:') # servus hd
-                                                               ]
-#                                                              namespace : 0x02d0af79, 720 # Panamsat 7,10 (68.5E) 
-                                                       ],
-                                       'DVB-C': [
-                                                               [
-                                                                       ('C-1','1:0:19:1325:3EF:1:FFFF029A:0:0:0:'), # astra hd (DVB-C)
-                                                                       ('C-2','1:0:19:1324:3EF:1:FFFF029A:0:0:0:') # anixe hd (DVB-C)
-                                                               ]
-                                                       ]
-               }
-               self.tunelist = {}
-               self.NimType={}
-               self.checkTunerType()
-               self.makeTunelList()
-               self.playservice(service = self.tunelist[self.curtuner][0][1])
-               self.curzappingmode = 'auto'
-               self["text1"]=Label("ZAPPING MODE : AUTO")
-               self["text2"]=Label("CURRENT TUNER : %s (%s)"%(self.slotindex[self.curtuner], self.NimType[self.curtuner]))
-               self["text3"]=Label("remain %d sec for next tuning" %self.timeout)
-               self["text4"]=Label("Press 'stop' key for exit")
-               self.nextzappingtimer.start(1000)
-               self.logmessage("AGING TEST START")
-
-       def createSummary(self):
-               if self.model == 4:
-                       self.onShown.append(self.VFDinit)
-                       return AgingTest_mode2_Summary_VFD
-               else:
-                       return AgingTest_mode2_Summary
-
-       def VFDinit(self):
-               if self.curzappingmode == 'manual' :
-                       self.summaries.setText("zapmode", 'MANUAL')
-               else:
-                       self.summaries.setText("zapmode", 'AUTO')
-                       self.summaries.setText("timer", "Timer %d sec"%self.timeout)
-               self.summaries.setText("curtuner", "%s (%s,  CHANNEL - %s)"%(self.slotindex[self.curtuner], self.NimType[self.curtuner], self.tunelist[self.curtuner][0][0]))
-
-       def setTextVFD(self,name ,text):
-               if self.model == 4:
-                       self.summaries.setText(name, text)
-
-       def checkTunerType(self):
-               nimfile = open("/proc/bus/nim_sockets")
-               for line in nimfile.readlines():
-                       print line
-                       if line == "":
-                               break
-                       if line.strip().startswith("NIM Socket"):
-                               parts = line.strip().split(" ")
-                               current_slot = int(parts[2][:-1])
-                       elif line.strip().startswith("Type:"):
-                               self.NimType[current_slot]= str(line.strip()[6:])
-                       elif line.strip().startswith("empty"):
-                               self.NimType.pop(current_slot)
-               nimfile.close()
-
-       def makeTunelList(self):
-               for slot, type in self.NimType.items():
-                       if type.startswith('DVB-S'):
-                               tunelist_type = 'DVB-S2'
-                       elif type.startswith('DVB-C'):
-                               tunelist_type = 'DVB-C'
-                       elif type.startswith('DVB-T'):
-                               tunelist_type = 'DVB-T'
-                       try :
-                               self.tunelist[slot] = self.tunelist_db[tunelist_type].pop(0)
-                       except:
-                               print "[FactoryTest] ERROR, pop from empty list (%s)"%tunelist_type
-               print "tunelist : "
-               print self.tunelist
-
-       def nextZapping(self, mode = 'auto', changeTuner = True, changeService = False, reverse_tuner = False, reverse_service = False):
-               if mode == 'manual' and changeTuner or mode == 'auto' and self.isChangeTuner:
-                       if reverse_tuner:
-                               self.curtuner -=1
-                       else:
-                               self.curtuner +=1
-                       if self.curtuner >= len(self.tunelist):
-                               self.curtuner = 0
-                       if self.curtuner < 0:
-                               self.curtuner = len(self.tunelist)-1
-               if mode == 'manual' and changeService or mode == 'auto' and self.isChangeChannel:
-                       if reverse_service:
-                               tunelistlen = len(self.tunelist[self.curtuner])
-                               nextservice = self.tunelist[self.curtuner].pop(tunelistlen-1)
-                               self.tunelist[self.curtuner].insert(0,nextservice)
-                       else:
-                               currentservice = self.tunelist[self.curtuner].pop(0)
-                               self.tunelist[self.curtuner].append(currentservice)
-               self.playservice(service=self.tunelist[self.curtuner][0][1])
-               if self.curzappingmode == 'auto':
-                       self.timeout = self.zapping_interval
-               self["text2"].setText("CURRENT TUNER : %s (%s)"%(self.slotindex[self.curtuner], self.NimType[self.curtuner]))
-               self.setTextVFD("curtuner", "%s (%s,  CHANNEL - %s)"%(self.slotindex[self.curtuner], self.NimType[self.curtuner], self.tunelist[self.curtuner][0][0]))
-
-
-       def checktimeout(self):
-               if self.timeout == 0:
-                       self.nextZapping(mode = 'auto')
-               else:
-                       self.timeout -=1
-               self["text3"].setText("remain %d sec for next tuning" %self.timeout)
-               self.setTextVFD("timer", "Timer %d sec"%self.timeout)
-
-       def playservice(self,service = '1:0:19:1325:3EF:1:0x64af79:0:0:0:'):
-               ref = eServiceReference(service)
-               self.session.nav.playService(ref)
-               self.avswitch.setAspectRatio(6)
-               self.avswitch.setColorFormat(0)
-               self.LockCheckTimer.start(2000,True)
-
-       def LockCheck(self):
-               result = eSctest.getInstance().getFrontendstatus(self.curtuner)
-               if result == 0 or result == -1:
-                       if self.model == 4:
-                               self.error +=1
-                               print "AGINGTEST - LOCK FAIL(%d)"%self.error
-                               self.summaries.setText("error", "LOCK FAIL(%d)"%self.error)
-                               logmsg = "[LOCKFAIL][%d] SLOT : %d, TYPE : %s, CH : %s, ZAPMODE: %s"%(self.error,self.curtuner,self.NimType[self.curtuner],self.tunelist[self.curtuner][0][0],self.curzappingmode)
-                               self.logmessage(logmsg)
-                       else:
-                               self.error +=1
-                               print "AGINGTEST - LOCK FAIL(%d)"%self.error
-                               logmsg = "[LOCKFAIL][%d] SLOT : %d, TYPE : %s, CH : %s, ZAPMODE: %s"%(self.error,self.curtuner,self.NimType[self.curtuner],self.tunelist[self.curtuner][0][0],self.curzappingmode)
-                               self.logmessage(logmsg)
-                               self.session.open( MessageBox, _("Locking Fail Error"), MessageBox.TYPE_ERROR)
-
-       def logmessage(self,msg):
-               print "[logmessage]",msg
-               devpath = None
-               checklist = ["/autofs/sda1", "/autofs/sdb1", "/autofs/sdc1", "/autofs/sdd1", "/autofs/sde1"]
-               for dev in checklist:
-                       try:
-                               if fileExists(dev):
-                                       if access(dev,F_OK|R_OK|W_OK):
-                                               dummy=open(dev+"/dummy03","w")
-                                               dummy.write("check")
-                                               dummy.close()
-                                               dummy=open(dev+"/dummy03","r")
-                                               if dummy.readline()=="check":
-                                                       print dev," - rw check ok"
-                                                       devpath = dev
-                                                       break
-                                               else:
-                                                       print dev," - read check error"
-                                               dummy.close()
-                                               system("rm "+dev+"/dummy03")
-                                       else:
-                                               print dev," - rw access error"
-                               else:
-                                       pass
-                       except:
-                               print dev," - exceptional error"
-               if devpath:
-                       cmd = "echo %s >> %s/agingTest.log" % (msg,devpath)
-                       print "[logmessage] %s(%s)"%(cmd,devpath)
-                       system(cmd)
-
-       def nothing(self):
-               print "nothing"
-
-       def keyBlue(self):
-               if self.curzappingmode == 'auto':
-                       self.curzappingmode = 'manual'
-                       self["text1"].setText("ZAPPING MODE : MANUAL")
-                       self["text3"].setText("Press 'stop' key for exit")
-                       self["text4"].setText("")
-                       self.setTextVFD("zapmode", 'MANUAL')
-                       self.setTextVFD("timer", "")
-                       self.nextzappingtimer.stop()
-                       self.timeout = self.zapping_interval
-               elif self.curzappingmode == 'manual':
-                       self.curzappingmode = 'auto'
-                       self["text1"].setText("ZAPPING MODE : AUTO")
-                       self["text3"].setText("remain %d sec for next tuning" %self.timeout)
-                       self["text4"].setText("Press 'stop' key for exit")
-                       self.setTextVFD("zapmode", 'AUTO')
-                       self.setTextVFD("timer", "Timer %d sec"%self.timeout)
-                       self.timeout = self.zapping_interval
-                       self.nextzappingtimer.start(1000)
-
-       def keyVolumeup(self):  
-               self.nextZapping(mode = 'manual', changeTuner = False, changeService = True)
-
-       def keyVolumedown(self):
-               self.nextZapping(mode = 'manual', changeTuner = False, changeService = True, reverse_service = True)
-
-       def keyChannelup(self):
-               self.nextZapping(mode = 'manual', changeTuner = True, changeService = False)
-
-       def keyChannelDown(self):
-               self.nextZapping(mode = 'manual', changeTuner = True, changeService = False, reverse_tuner = True)
-
-       def keyMenu(self):
-               self.session.openWithCallback(self.menuCallback, AgingTest_mode2_setmenu, tuner = self.isChangeTuner, channel = self.isChangeChannel, interval = self.zapping_interval)
-
-       def menuCallback(self, tuner, channel, interval):
-               if tuner is not None:
-                       self.isChangeTuner = tuner
-               if channel is not None:
-                       self.isChangeChannel = channel
-               if interval is not None:
-                       self.zapping_interval = interval
-                       self.timeout = self.zapping_interval
-
-       def keyEnd(self):
-               self.session.nav.stopService()
-               self.close()
-
-       def keyFinish(self):
-               self.session.nav.stopService()
-               self.close()
-
-from Components.ConfigList import ConfigListScreen
-from Components.config import ConfigInteger, ConfigYesNo, getConfigListEntry, NoSave
-class AgingTest_mode2_setmenu(Screen,ConfigListScreen):
-       skin = """
-               <screen position="center,center" size="370,190" title="Aging Test - settings" >
-                       <widget name="config" zPosition="2" position="10,10" size="360,180" scrollbarMode="showOnDemand" transparent="1" />
-                       <ePixmap pixmap="Vu_HD/buttons/green.png" position="50,135" size="25,25" alphatest="on" />
-                       <ePixmap pixmap="Vu_HD/buttons/red.png" position="215,135" size="25,25" alphatest="on" />
-                       <widget source="key_red" render="Label" position="75,135" zPosition="1" size="90,25" font="Regular;20" halign="center" valign="center" transparent="1" />
-                       <widget source="key_green" render="Label" position="240,135" zPosition="1" size="90,25" font="Regular;20" halign="center" valign="center" transparent="1" />
-               </screen>"""
-       def __init__(self,session, tuner = True, channel = False, interval = 300):
-               Screen.__init__(self,session)
-               self.session = session
-               self.tuner = tuner
-               self.channel = channel
-               self.zap_interval = interval
-               self["key_red"] = StaticText(_("Save"))
-               self["key_green"] = StaticText(_("Cancel"))
-               self["shortcuts"] = ActionMap(["ShortcutActions", "SetupActions" ],
-               {
-                       "ok": self.keySave,
-                       "cancel": self.keyCancel,
-                       "red": self.keyCancel,
-                       "green": self.keySave,
-               }, -2)
-               self.list = []
-               ConfigListScreen.__init__(self, self.list,session = self.session)
-               self.config_tuner = NoSave(ConfigYesNo(default = self.tuner))
-               self.config_channel = NoSave(ConfigYesNo(default = self.channel))
-               self.config_zap_interval = NoSave(ConfigInteger(default = self.zap_interval, limits=(5, 9999) ) )
-               self.configSetup()
-
-       def configSetup(self):
-               self.list = []
-               self.setupEntryTuner = getConfigListEntry(_("change tuner on timeout"), self.config_tuner )
-               self.setupEntryChannel = getConfigListEntry(_("change channel on timeout"), self.config_channel )
-               self.setupEntryZapInterval = getConfigListEntry(_("zapping interval (sec) "), self.config_zap_interval )
-               self.list.append( self.setupEntryTuner )
-               self.list.append( self.setupEntryChannel )
-               self.list.append( self.setupEntryZapInterval )
-               self["config"].list = self.list
-               self["config"].l.setList(self.list)
-
-       def keySave(self):
-               self.close(self.config_tuner.value, self.config_channel.value, self.config_zap_interval.value)
-
-       def keyCancel(self):
-               self.close(None, None, None)
-
-class TestTuneMenu(Screen):
-       skin = """
-       <screen position="350,230" size="550,300" title="Tuning Test" >
-               <widget name="testlist" position="10,0" size="440,250" itemHeight="35"/>
-               <widget name="resultlist" position="470,0" size="60,250" itemHeight="35"/>
-               <widget source="text" render="Label" position="100,270" size="450,30" font="Regular;22" />
-       </screen>"""
-
-       def __init__(self ,session ,tuneInfo, tunelist,NimType):
-               self.session = session
-               self.NimType = NimType
-               self.tuneInfo = tuneInfo
-               self.tunelist = tunelist
-               self.model = 4
-               self["actions"] = NumberActionMap(["OkCancelActions","WizardActions","NumberActions"],
-               {
-                       "left": self.nothing,
-                       "right":self.nothing,
-                       "ok": self.TestAction,
-                       "cancel": self.keyCancel,
-                       "up": self.keyup,
-                       "down": self.keydown,
-                       "0": self.numberaction,
-                       "1": self.numberaction,
-                       "2": self.numberaction,
-                       "3": self.numberaction,
-                       "4": self.numberaction,
-                       "5": self.numberaction,
-                       "6": self.numberaction,
-                       "7": self.numberaction,
-                       "8": self.numberaction,
-                       "9": self.numberaction,
-
-               }, -2)
-               Screen.__init__(self, session)
-               self.text = _("Press 'EXIT' key to finish tune test.")
-               self["text"] = StaticText(self.text)
-               self.createConfig()
-               session.nav.stopService() # try to disable foreground service
-
-               self.tunemsgtimer = eTimer()
-               self.tunemsgtimer.callback.append(self.tunemsg)
-
-               self.camstep = 1
-               self.camtimer = eTimer()
-               self.camtimer.callback.append(self.cam_state)
-
-               self.tunerlock = 0
-               self.tuningtimer = eTimer()
-               self.tuningtimer.callback.append(self.updateStatus)
-               self.setSourceVar()
-               self.avswitch = AVSwitch()
-
-       def createConfig(self):
-               self.menulength= len(self.tunelist)
-               self["testlist"] = MenuList(self.tunelist)
-               self.rlist = []
-               for x in range(self.menulength):
-                       self.rlist.append((".."))
-               self["resultlist"] = TestResultList(self.rlist)
-
-       def TestAction(self):
-               print "line - ",self["testlist"].getCurrent()[1]
-               self.currentindex = index = self["testlist"].getCurrent()[1]
-               result = 0
-               self.TestTune(index)
-
-       def nothing(self):
-               print "nothing"
-
-       def keyup(self):
-               print "self.menulength = ",self.menulength
-               print "self[\"testlist\"].getCurrent()[1] = ",self["testlist"].getCurrent()[1]
-               if self["testlist"].getCurrent()[1]==0:
-                       self["testlist"].moveToIndex(self.menulength-1)
-                       self["resultlist"].moveToIndex(self.menulength-1)
-               else:
-                       self["testlist"].up()
-                       self["resultlist"].up()
-
-
-       def keydown(self):
-               print "self.menulength = ",self.menulength
-               print "self[\"testlist\"].getCurrent()[1] = ",self["testlist"].getCurrent()[1]
-               if self["testlist"].getCurrent()[1]==(self.menulength-1):
-                       self["testlist"].moveToIndex(0)
-                       self["resultlist"].moveToIndex(0)
-               else:
-                       self["testlist"].down()
-                       self["resultlist"].down()
-
-       def numberaction(self, number):
-               if number >= self.menulength:
-                       return
-               index = int(number)
-               self["testlist"].moveToIndex(index)
-               self["resultlist"].moveToIndex(index)
-
-       def keyCancel(self):
-               print "testtunemenu exit"
-               if not '..' in self.rlist and not 'fail' in self.rlist:
-                       self.close(True)
-               else:
-                       self.close(False)
-#              if self.oldref is not None:
-#                      self.session.nav.playService(self.oldref)
-
-       def TestTune(self,index):
-               ref = eServiceReference("1:0:19:1324:3EF:1:C00000:0:0:0")
-               self.session.nav.stopService() # try to disable foreground service
-               getTuneInfo=self.tuneInfo[index]
-               if getTuneInfo["cam"] is True:
-                       self.camstep = 1
-                       self.camtimer.start(100,True)
-               if getTuneInfo["type"].startswith("DVB-S"):
-                       if getTuneInfo["pol"] == "H":
-                               ref.setData(0,1)
-                               ref.setData(1,0x6D3)
-                               ref.setData(2,0x3)
-                               ref.setData(3,0xA4)
-                       else:
-                               ref.setData(0,0x19)
-                               ref.setData(1,0x1325)
-                               ref.setData(2,0x3ef)
-                               ref.setData(3,0x1)
-                       if getTuneInfo["sat"] == "160": # Eutelsat W2
-                               ref.setData(4,0xA00000)
-                       elif getTuneInfo["sat"] == "100": # Eutelsat
-                               ref.setData(4,0x64af79)
-                       elif getTuneInfo["sat"] == "130": # Hotbird
-                               ref.setData(4,0x820000)
-                       elif getTuneInfo["sat"] == "192": # Astra
-                               ref.setData(4,0xC00000)
-                       elif getTuneInfo["sat"] == "620": # Intelsat 902
-                               ref.setData(4,0x26c0000) # need to fix later
-                       elif getTuneInfo["sat"] == "642": # Intelsat 906
-                               ref.setData(4,0x282AF79) # need to fix later
-               elif getTuneInfo["type"].startswith("DVB-C"):
-                       ref.setData(0,0x19)
-                       ref.setData(1,0x1325)
-                       ref.setData(2,0x3ef)
-                       ref.setData(3,0x1)
-                       ref.setData(4,-64870) # ffff029a
-               elif getTuneInfo["type"].startswith("DVB-T"):
-                       ref.setData(0,0x19)
-                       ref.setData(1,0x1325)
-                       ref.setData(2,0x3ef)
-                       ref.setData(3,0x1)
-                       ref.setData(4,-286391716) # eeee025c
-               self.session.nav.playService(ref)
-               if getTuneInfo["color"]=="CVBS":
-                       self.avswitch.setColorFormat(0)
-               elif getTuneInfo["color"]=="RGB":
-                       self.avswitch.setColorFormat(1)
-               elif getTuneInfo["color"]=="YC":
-                       self.avswitch.setColorFormat(2)
-               if getTuneInfo["ratio"] == "4:3":
-                       self.avswitch.setAspectRatio(0)
-               elif getTuneInfo["ratio"] == "16:9":
-                       self.avswitch.setAspectRatio(6)
-               self.tuningtimer.start(2000,True)
-               self.tunemsgtimer.start(3000, True)
-
-       def cam_state(self):
-               current_index = self.currentindex
-               if self.camstep == 1:
-                       slot = 0
-                       state = eDVBCI_UI.getInstance().getState(slot)
-                       print '-1-stat',state
-                       if state > 0:
-                               self.camstep=2
-                               self.camtimer.start(100,True)
-                       else:
-                               self.session.nav.stopService()
-                               self.session.open( MessageBox, _("CAM1_NOT_INSERTED\nPress exit!"), MessageBox.TYPE_ERROR)
-                               self.rlist[current_index]="fail"
-                               self.tunemsgtimer.stop()
-               elif self.camstep == 2:
-                       slot = 0
-                       appname = eDVBCI_UI.getInstance().getAppName(slot)
-                       print 'appname',appname
-                       if appname is None:
-                               self.session.nav.stopService()
-                               self.session.open( MessageBox, _("NO_GET_APPNAME\nPress exit!"), MessageBox.TYPE_ERROR)
-                               self.rlist[current_index]="fail"
-                               self.tunemsgtimer.stop()
-                       else:
-                               self.camstep=3
-                               self.camtimer.start(100,True)
-               elif self.camstep==3:
-                       slot = 1
-                       state = eDVBCI_UI.getInstance().getState(slot)
-                       print '-2-stat',state
-                       if state > 0:
-                               self.camstep=4
-                               self.camtimer.start(100,True)
-                       else:
-                               self.session.nav.stopService()
-                               self.session.open( MessageBox, _("CAM2_NOT_INSERTED\nPress exit!"), MessageBox.TYPE_ERROR)
-                               self.rlist[current_index]="fail"
-                               self.tunemsgtimer.stop()
-               elif self.camstep == 4:
-                       slot = 1
-                       appname = eDVBCI_UI.getInstance().getAppName(slot)
-                       print 'appname',appname
-                       if appname is None:
-                               self.session.nav.stopService()
-                               self.session.open( MessageBox, _("NO_GET_APPNAME\nPress exit!"), MessageBox.TYPE_ERROR)
-                               self.rlist[current_index]="fail"
-                               self.tunemsgtimer.stop()
-                       else:
-                               self.setSource()
-                               self.camstep = 5
-
-       def updateStatus(self):
-               current_index = self.currentindex
-               getTuneInfo=self.tuneInfo[current_index]
-               result = eSctest.getInstance().getFrontendstatus(getTuneInfo["slot"])
-               tunno = getTuneInfo["slot"]+1
-               hv = getTuneInfo["pol"]
-               if hv == "H":
-                       hv = "Hor"
-               elif hv == "V":
-                       hv = "Ver"
-               else :
-                       hv == ""
-
-               print "eSctest.getInstance().getFrontendstatus - %d"%result
-               if result == 0 or result == -1:
-                       self.tunerlock = 0
-                       self.tunemsgtimer.stop()
-                       self.session.nav.stopService()
-                       self.avswitch.setColorFormat(0)
-                       self.session.open( MessageBox, _("Tune%d %s Locking Fail..."%(tunno,hv)), MessageBox.TYPE_ERROR)
-                       self.rlist[current_index]="fail"
-               else :
-                       self.tunerlock = 1
-
-       def tuneback(self,yesno):
-               current_index=self.currentindex
-               self.session.nav.stopService() # try to disable foreground service
-               if yesno and self.tunerlock == 1:
-                       getTuneInfo=self.tuneInfo[current_index]
-                       if getTuneInfo["cam"] and self.camstep < 5: # need fix to depending about CAM exist
-                               self.rlist[current_index]="fail"
-                       else :
-                               self.rlist[current_index]="pass"
-               else:
-                       self.rlist[current_index]="fail"
-               if self.tuneInfo[current_index]["color"] == "YC":
-                       self.avswitch.setColorFormat(0)
-               self.resetSource()
-               self["resultlist"].updateList(self.rlist)
-
-       def tunemsg(self):
-               self.tuningtimer.stop()
-               self.session.openWithCallback(self.tuneback, TuneMessageBox, _("%s ok?" %(self["testlist"].getCurrent()[0])), MessageBox.TYPE_YESNO)
-
-       def setSourceVar(self):
-               self.input_pad_num=len(self.NimType)-1
-               if self.input_pad_num == 0:
-                       self.setTuner = 'A'
-               elif self.input_pad_num == 1:
-                       self.setTuner = 'B'
-               elif self.input_pad_num == 2:
-                       self.setTuner = 'C'
-
-#      ikseong - for 22000 tp
-       def setSource(self):
-# fix input source
-               inputname = ("/proc/stb/tsmux/input%d" % self.input_pad_num)
-               print "<setsource> inputname : ",inputname
-               fd=open(inputname,"w")
-               fd.write("CI0")
-               fd.close()
-# fix ci_input Tuner
-               filename = ("/proc/stb/tsmux/ci0_input")
-               fd = open(filename,'w')
-               fd.write(self.setTuner)
-               print "setTuner(CI0) : ",self.setTuner
-               fd.close()
-               print "CI loop test!!!!!!!!!!!!!!"
-
-       def resetSource(self):
-               inputname = ("/proc/stb/tsmux/input%d" % self.input_pad_num)
-               print "<resetsource> inputname : ",inputname
-               fd=open(inputname,"w")
-               fd.write(self.setTuner)
-               fd.close()
-               print "CI loop test end!!!!!!!!!!!!!!"
-               
-session = None
-
-       
-def cleanup():
-       global Session
-       Session = None
-       global Servicelist
-       Servicelist = None
-
-def main(session, servicelist, **kwargs):
-       global Session
-       Session = session
-       global Servicelist
-       Servicelist = servicelist
-       bouquets = Servicelist.getBouquetList()
-       global bouquetSel
-       bouquetSel = Session.openWithCallback(cleanup, FactoryTest)
-
-#def Plugins(**kwargs):
-#      return PluginDescriptor(name=_("Factory Test"), description="Test App for Factory", where = PluginDescriptor.WHERE_EXTENSIONSMENU, fnc=main)
-
-def Plugins(**kwargs):
-       return []
diff --git a/lib/python/Plugins/SystemPlugins/FactoryTest/sctest.py b/lib/python/Plugins/SystemPlugins/FactoryTest/sctest.py
deleted file mode 100755 (executable)
index 6afa81d..0000000
+++ /dev/null
@@ -1,232 +0,0 @@
-# This file was automatically generated by SWIG (http://www.swig.org).
-# Version 1.3.39
-#
-# Do not make changes to this file unless you know what you are doing--modify
-# the SWIG interface file instead.
-# This file is compatible with both classic and new-style classes.
-
-from sys import version_info
-if version_info >= (2,6,0):
-    def swig_import_helper():
-        from os.path import dirname
-        import imp
-        fp = None
-        try:
-            fp, pathname, description = imp.find_module('_sctest', [dirname(__file__)])
-        except ImportError:
-            import _sctest
-            return _sctest
-        if fp is not None:
-            try:
-                _mod = imp.load_module('_sctest', fp, pathname, description)
-            finally:
-                fp.close()
-                return _mod
-    _sctest = swig_import_helper()
-    del swig_import_helper
-else:
-    import _sctest
-del version_info
-try:
-    _swig_property = property
-except NameError:
-    pass # Python < 2.2 doesn't have 'property'.
-def _swig_setattr_nondynamic(self,class_type,name,value,static=1):
-    if (name == "thisown"): return self.this.own(value)
-    if (name == "this"):
-        if type(value).__name__ == 'SwigPyObject':
-            self.__dict__[name] = value
-            return
-    method = class_type.__swig_setmethods__.get(name,None)
-    if method: return method(self,value)
-    if (not static) or hasattr(self,name):
-        self.__dict__[name] = value
-    else:
-        raise AttributeError("You cannot add attributes to %s" % self)
-
-def _swig_setattr(self,class_type,name,value):
-    return _swig_setattr_nondynamic(self,class_type,name,value,0)
-
-def _swig_getattr(self,class_type,name):
-    if (name == "thisown"): return self.this.own()
-    method = class_type.__swig_getmethods__.get(name,None)
-    if method: return method(self)
-    raise AttributeError(name)
-
-def _swig_repr(self):
-    try: strthis = "proxy of " + self.this.__repr__()
-    except: strthis = ""
-    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)
-
-try:
-    _object = object
-    _newclass = 1
-except AttributeError:
-    class _object : pass
-    _newclass = 0
-
-
-FE_HAS_SIGNAL = _sctest.FE_HAS_SIGNAL
-FE_HAS_CARRIER = _sctest.FE_HAS_CARRIER
-FE_HAS_VITERBI = _sctest.FE_HAS_VITERBI
-FE_HAS_SYNC = _sctest.FE_HAS_SYNC
-FE_HAS_LOCK = _sctest.FE_HAS_LOCK
-FE_TIMEDOUT = _sctest.FE_TIMEDOUT
-FE_REINIT = _sctest.FE_REINIT
-class eSctest(_object):
-    __swig_setmethods__ = {}
-    __setattr__ = lambda self, name, value: _swig_setattr(self, eSctest, name, value)
-    __swig_getmethods__ = {}
-    __getattr__ = lambda self, name: _swig_getattr(self, eSctest, name)
-    __repr__ = _swig_repr
-    def __init__(self): 
-        this = _sctest.new_eSctest()
-        try: self.this.append(this)
-        except: self.this = this
-    __swig_destroy__ = _sctest.delete_eSctest
-    __del__ = lambda self : None;
-    def check_smart_card(self, *args): return _sctest.eSctest_check_smart_card(self, *args)
-    def VFD_Open(self): return _sctest.eSctest_VFD_Open(self)
-    def VFD_Close(self): return _sctest.eSctest_VFD_Close(self)
-    def turnon_VFD(self): return _sctest.eSctest_turnon_VFD(self)
-    def turnoff_VFD(self): return _sctest.eSctest_turnoff_VFD(self)
-    def getFrontendstatus(self, *args): return _sctest.eSctest_getFrontendstatus(self, *args)
-    __swig_getmethods__["getInstance"] = lambda x: _sctest.eSctest_getInstance
-    if _newclass:getInstance = staticmethod(_sctest.eSctest_getInstance)
-eSctest_swigregister = _sctest.eSctest_swigregister
-eSctest_swigregister(eSctest)
-
-def eSctest_getInstance():
-  return _sctest.eSctest_getInstance()
-eSctest_getInstance = _sctest.eSctest_getInstance
-
-SCI_CLASS_A = _sctest.SCI_CLASS_A
-SCI_CLASS_B = _sctest.SCI_CLASS_B
-SCI_CLASS_AB = _sctest.SCI_CLASS_AB
-SCI_NUMBER_OF_CONTROLLERS = _sctest.SCI_NUMBER_OF_CONTROLLERS
-SCI_BUFFER_SIZE = _sctest.SCI_BUFFER_SIZE
-SCI_CLOCK_STOP_DISABLED = _sctest.SCI_CLOCK_STOP_DISABLED
-SCI_CLOCK_STOP_LOW = _sctest.SCI_CLOCK_STOP_LOW
-SCI_CLOCK_STOP_HIGH = _sctest.SCI_CLOCK_STOP_HIGH
-SCI_MAX_ATR_SIZE = _sctest.SCI_MAX_ATR_SIZE
-SCI_MAX_F = _sctest.SCI_MAX_F
-SCI_MAX_ETU = _sctest.SCI_MAX_ETU
-SCI_MAX_WWT = _sctest.SCI_MAX_WWT
-SCI_MAX_CWT = _sctest.SCI_MAX_CWT
-SCI_MAX_BWT = _sctest.SCI_MAX_BWT
-SCI_MAX_EGT = _sctest.SCI_MAX_EGT
-SCI_MIN_F = _sctest.SCI_MIN_F
-SCI_MIN_ETU = _sctest.SCI_MIN_ETU
-SCI_MIN_WWT = _sctest.SCI_MIN_WWT
-SCI_MIN_CWT = _sctest.SCI_MIN_CWT
-SCI_MIN_BWT = _sctest.SCI_MIN_BWT
-SCI_MIN_EGT = _sctest.SCI_MIN_EGT
-SCI_SYNC = _sctest.SCI_SYNC
-SCI_DATA_ANY = _sctest.SCI_DATA_ANY
-RFU = _sctest.RFU
-SCI_ERROR_OK = _sctest.SCI_ERROR_OK
-SCI_ERROR_DRIVER_NOT_INITIALIZED = _sctest.SCI_ERROR_DRIVER_NOT_INITIALIZED
-SCI_ERROR_FAIL = _sctest.SCI_ERROR_FAIL
-SCI_ERROR_KERNEL_FAIL = _sctest.SCI_ERROR_KERNEL_FAIL
-SCI_ERROR_NO_ATR = _sctest.SCI_ERROR_NO_ATR
-SCI_ERROR_TS_CHARACTER_INVALID = _sctest.SCI_ERROR_TS_CHARACTER_INVALID
-SCI_ERROR_LRC_FAIL = _sctest.SCI_ERROR_LRC_FAIL
-SCI_ERROR_CRC_FAIL = _sctest.SCI_ERROR_CRC_FAIL
-SCI_ERROR_LENGTH_FAIL = _sctest.SCI_ERROR_LENGTH_FAIL
-SCI_ERROR_PARITY_FAIL = _sctest.SCI_ERROR_PARITY_FAIL
-SCI_ERROR_RX_OVERFLOW_FAIL = _sctest.SCI_ERROR_RX_OVERFLOW_FAIL
-SCI_ERROR_TX_OVERFLOW_FAIL = _sctest.SCI_ERROR_TX_OVERFLOW_FAIL
-SCI_ERROR_TX_UNDERRUN_FAIL = _sctest.SCI_ERROR_TX_UNDERRUN_FAIL
-SCI_ERROR_CARD_NOT_PRESENT = _sctest.SCI_ERROR_CARD_NOT_PRESENT
-SCI_ERROR_CARD_NOT_ACTIVATED = _sctest.SCI_ERROR_CARD_NOT_ACTIVATED
-SCI_ERROR_AWT_TIMEOUT = _sctest.SCI_ERROR_AWT_TIMEOUT
-SCI_ERROR_WWT_TIMEOUT = _sctest.SCI_ERROR_WWT_TIMEOUT
-SCI_ERROR_CWT_TIMEOUT = _sctest.SCI_ERROR_CWT_TIMEOUT
-SCI_ERROR_BWT_TIMEOUT = _sctest.SCI_ERROR_BWT_TIMEOUT
-SCI_ERROR_PARAMETER_OUT_OF_RANGE = _sctest.SCI_ERROR_PARAMETER_OUT_OF_RANGE
-SCI_ERROR_TRANSACTION_ABORTED = _sctest.SCI_ERROR_TRANSACTION_ABORTED
-SCI_ERROR_CLOCK_STOP_DISABLED = _sctest.SCI_ERROR_CLOCK_STOP_DISABLED
-SCI_ERROR_TX_PENDING = _sctest.SCI_ERROR_TX_PENDING
-SCI_ERROR_ATR_PENDING = _sctest.SCI_ERROR_ATR_PENDING
-class SCI_MODES(_object):
-    __swig_setmethods__ = {}
-    __setattr__ = lambda self, name, value: _swig_setattr(self, SCI_MODES, name, value)
-    __swig_getmethods__ = {}
-    __getattr__ = lambda self, name: _swig_getattr(self, SCI_MODES, name)
-    __repr__ = _swig_repr
-    __swig_setmethods__["emv2000"] = _sctest.SCI_MODES_emv2000_set
-    __swig_getmethods__["emv2000"] = _sctest.SCI_MODES_emv2000_get
-    if _newclass:emv2000 = _swig_property(_sctest.SCI_MODES_emv2000_get, _sctest.SCI_MODES_emv2000_set)
-    __swig_setmethods__["dma"] = _sctest.SCI_MODES_dma_set
-    __swig_getmethods__["dma"] = _sctest.SCI_MODES_dma_get
-    if _newclass:dma = _swig_property(_sctest.SCI_MODES_dma_get, _sctest.SCI_MODES_dma_set)
-    __swig_setmethods__["man_act"] = _sctest.SCI_MODES_man_act_set
-    __swig_getmethods__["man_act"] = _sctest.SCI_MODES_man_act_get
-    if _newclass:man_act = _swig_property(_sctest.SCI_MODES_man_act_get, _sctest.SCI_MODES_man_act_set)
-    __swig_setmethods__["rw_mode"] = _sctest.SCI_MODES_rw_mode_set
-    __swig_getmethods__["rw_mode"] = _sctest.SCI_MODES_rw_mode_get
-    if _newclass:rw_mode = _swig_property(_sctest.SCI_MODES_rw_mode_get, _sctest.SCI_MODES_rw_mode_set)
-    def __init__(self): 
-        this = _sctest.new_SCI_MODES()
-        try: self.this.append(this)
-        except: self.this = this
-    __swig_destroy__ = _sctest.delete_SCI_MODES
-    __del__ = lambda self : None;
-SCI_MODES_swigregister = _sctest.SCI_MODES_swigregister
-SCI_MODES_swigregister(SCI_MODES)
-
-class SCI_PARAMETERS(_object):
-    __swig_setmethods__ = {}
-    __setattr__ = lambda self, name, value: _swig_setattr(self, SCI_PARAMETERS, name, value)
-    __swig_getmethods__ = {}
-    __getattr__ = lambda self, name: _swig_getattr(self, SCI_PARAMETERS, name)
-    __repr__ = _swig_repr
-    __swig_setmethods__["T"] = _sctest.SCI_PARAMETERS_T_set
-    __swig_getmethods__["T"] = _sctest.SCI_PARAMETERS_T_get
-    if _newclass:T = _swig_property(_sctest.SCI_PARAMETERS_T_get, _sctest.SCI_PARAMETERS_T_set)
-    __swig_setmethods__["FI"] = _sctest.SCI_PARAMETERS_FI_set
-    __swig_getmethods__["FI"] = _sctest.SCI_PARAMETERS_FI_get
-    if _newclass:FI = _swig_property(_sctest.SCI_PARAMETERS_FI_get, _sctest.SCI_PARAMETERS_FI_set)
-    __swig_setmethods__["ETU"] = _sctest.SCI_PARAMETERS_ETU_set
-    __swig_getmethods__["ETU"] = _sctest.SCI_PARAMETERS_ETU_get
-    if _newclass:ETU = _swig_property(_sctest.SCI_PARAMETERS_ETU_get, _sctest.SCI_PARAMETERS_ETU_set)
-    __swig_setmethods__["WWT"] = _sctest.SCI_PARAMETERS_WWT_set
-    __swig_getmethods__["WWT"] = _sctest.SCI_PARAMETERS_WWT_get
-    if _newclass:WWT = _swig_property(_sctest.SCI_PARAMETERS_WWT_get, _sctest.SCI_PARAMETERS_WWT_set)
-    __swig_setmethods__["CWT"] = _sctest.SCI_PARAMETERS_CWT_set
-    __swig_getmethods__["CWT"] = _sctest.SCI_PARAMETERS_CWT_get
-    if _newclass:CWT = _swig_property(_sctest.SCI_PARAMETERS_CWT_get, _sctest.SCI_PARAMETERS_CWT_set)
-    __swig_setmethods__["BWT"] = _sctest.SCI_PARAMETERS_BWT_set
-    __swig_getmethods__["BWT"] = _sctest.SCI_PARAMETERS_BWT_get
-    if _newclass:BWT = _swig_property(_sctest.SCI_PARAMETERS_BWT_get, _sctest.SCI_PARAMETERS_BWT_set)
-    __swig_setmethods__["EGT"] = _sctest.SCI_PARAMETERS_EGT_set
-    __swig_getmethods__["EGT"] = _sctest.SCI_PARAMETERS_EGT_get
-    if _newclass:EGT = _swig_property(_sctest.SCI_PARAMETERS_EGT_get, _sctest.SCI_PARAMETERS_EGT_set)
-    __swig_setmethods__["clock_stop_polarity"] = _sctest.SCI_PARAMETERS_clock_stop_polarity_set
-    __swig_getmethods__["clock_stop_polarity"] = _sctest.SCI_PARAMETERS_clock_stop_polarity_get
-    if _newclass:clock_stop_polarity = _swig_property(_sctest.SCI_PARAMETERS_clock_stop_polarity_get, _sctest.SCI_PARAMETERS_clock_stop_polarity_set)
-    __swig_setmethods__["check"] = _sctest.SCI_PARAMETERS_check_set
-    __swig_getmethods__["check"] = _sctest.SCI_PARAMETERS_check_get
-    if _newclass:check = _swig_property(_sctest.SCI_PARAMETERS_check_get, _sctest.SCI_PARAMETERS_check_set)
-    __swig_setmethods__["P"] = _sctest.SCI_PARAMETERS_P_set
-    __swig_getmethods__["P"] = _sctest.SCI_PARAMETERS_P_get
-    if _newclass:P = _swig_property(_sctest.SCI_PARAMETERS_P_get, _sctest.SCI_PARAMETERS_P_set)
-    __swig_setmethods__["I"] = _sctest.SCI_PARAMETERS_I_set
-    __swig_getmethods__["I"] = _sctest.SCI_PARAMETERS_I_get
-    if _newclass:I = _swig_property(_sctest.SCI_PARAMETERS_I_get, _sctest.SCI_PARAMETERS_I_set)
-    __swig_setmethods__["U"] = _sctest.SCI_PARAMETERS_U_set
-    __swig_getmethods__["U"] = _sctest.SCI_PARAMETERS_U_get
-    if _newclass:U = _swig_property(_sctest.SCI_PARAMETERS_U_get, _sctest.SCI_PARAMETERS_U_set)
-    def __init__(self): 
-        this = _sctest.new_SCI_PARAMETERS()
-        try: self.this.append(this)
-        except: self.this = this
-    __swig_destroy__ = _sctest.delete_SCI_PARAMETERS
-    __del__ = lambda self : None;
-SCI_PARAMETERS_swigregister = _sctest.SCI_PARAMETERS_swigregister
-SCI_PARAMETERS_swigregister(SCI_PARAMETERS)
-
-SCI_WITHOUT_ATR = _sctest.SCI_WITHOUT_ATR
-SCI_ATR_READY = _sctest.SCI_ATR_READY
-
-
diff --git a/lib/python/Plugins/SystemPlugins/FactoryTest/testdb b/lib/python/Plugins/SystemPlugins/FactoryTest/testdb
deleted file mode 100755 (executable)
index 3ad1cdd..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-eDVB services /4/
-transponders
-0064af79:03ef:0001
-       s 12153000:22000000:1:2:100:2:0:1:2:0:2
-/
-00820000:0003:00a4
-       s 10900000:26850000:0:0:130:2:0
-/
-00a00000:0003:00a4
-       s 10900000:26850000:0:0:160:2:0
-/
-00c00000:03ef:0001
-       s 12153000:22000000:1:2:192:2:0:1:2:0:2
-/
-ffff029a:03ef:0001
-       c 666000:6900000:2:4:0:0
-/
-eeee025c:03ef:0001
-       t 604000000:1:5:5:3:2:4:4:2:0
-/
-026c0000:0003:00a4
-       s 10900000:26850000:0:0:620:2:0
-/
-0282af79:03ef:0001
-       s 12153000:22000000:1:2:642:2:0:1:2:0:2
-/
-end
-services
-06d3:00820000:0003:00a4:1:0
-747 Channel [V] China
-p:STAR,c:000203,c:01028c,c:031ffe,f:40
-06d3:00a00000:0003:00a4:1:0
-747 Channel [V] China
-p:STAR,c:000203,c:01028c,c:031ffe,f:40
-1325:00c00000:03ef:0001:25:0
-ASTRA HD
-p:BetaDigital,f:40
-1325:0064af79:03ef:0001:25:0
-ASTRA HD
-p:BetaDigital,f:40
-1325:ffff029a:03ef:0001:25:0
-ASTRA HD+
-p:BetaDigital,f:40
-1324:ffff029a:03ef:0001:25:0
-ANIXE HD+
-p:BetaDigital,f:40
-06d3:026c0000:0003:00a4:1:0
-747 Channel [V] China
-p:STAR,c:000203,c:01028c,c:031ffe,f:40
-1325:0282af79:03ef:0001:25:0
-ASTRA HD
-p:BetaDigital,c:0001ff,c:0301ff,c:040203,c:050001,f:40
-1325:eeee025c:03ef:0001:25:0
-ASTRA HD+
-p:BetaDigital,f:40
-1324:eeee025c:03ef:0001:25:0
-ANIXE HD
-p:BetaDigital,f:40
-end
-Have a lot of bugs!
index e73d9a2..149b973 100755 (executable)
@@ -83,6 +83,9 @@ class HdmiCec:
                        "solo": "VU+ Solo",
                        "uno": "VU+ Uno",
                        "ultimo": "VU+ Ultimo",
+                       "solo2": "VU+ Solo2",
+                       "duo2": "VU+ Duo2",
+                       "solose": "VU+ SoloSE",
                }
                if fileExists("/proc/stb/info/vumodel"):
                        vumodel = open("/proc/stb/info/vumodel")
index d67cb62..c7109e4 100755 (executable)
@@ -4,7 +4,7 @@ SUBDIRS = SoftwareManager FrontprocessorUpgrade PositionerSetup Satfinder \
        SkinSelector SatelliteEquipmentControl Videomode VideoTune Hotplug \
        DefaultServicesScanner NFIFlash DiseqcTester CommonInterfaceAssignment \
        CrashlogAutoSubmit CleanupWizard VideoEnhancement WirelessLan NetworkWizard \
-       TempFanControl FactoryTest Fancontrol FPGAUpgrade WirelessLanSetup ManualFancontrol \
+       TempFanControl Fancontrol FPGAUpgrade WirelessLanSetup ManualFancontrol \
        Blindscan RemoteControlCode UI3DSetup UIPositionSetup HDMICEC LEDBrightnessSetup \
        FirmwareUpgrade CrashReport 3GModemManager WirelessAccessPoint ZappingModeSelection \
        DeviceManager TransCodingSetup WOLSetup NetDrive AudioEffect
index e6c79d5..6694035 100755 (executable)
@@ -76,7 +76,8 @@ def setAttr(attr, encoder, value):
 
 def createTransCodingConfig(encoder):
        if fileExists( getProcPath(encoder ,"bitrate") ):
-               if getModel() == "solo2":
+               vumodel = getModel()
+               if vumodel in ("solo2", "solose"):
                        choice = TconfigInteger(encoder, default = 400000, limits = (50000, 1000000))
                else:
                        choice = TconfigInteger(encoder, default = 2000000, limits = (100000, 10000000))
index fdd1d53..1331a69 100755 (executable)
@@ -23,12 +23,12 @@ from Tools.Directories import resolveFilename, SCOPE_PLUGINS, SCOPE_CURRENT_SKIN
 from Tools.LoadPixmap import LoadPixmap
 from Plugins.Plugin import PluginDescriptor
 from enigma import eTimer, ePoint, eSize, RT_HALIGN_LEFT, eListboxPythonMultiContent, gFont
-from os import path as os_path, system as os_system, unlink,listdir
+from os import path as os_path, system as os_system, unlink, listdir, access, R_OK, popen
 from re import compile as re_compile, search as re_search
 from Tools.Directories import fileExists
 import time
 from pythonwifi.iwlibs import Wireless
-import pythonwifi.flags
+from pythonwifi import flags as wifi_flags
 
 class WlanSelection(Screen,HelpableScreen):
        skin =  """
@@ -130,6 +130,8 @@ class WlanSelection(Screen,HelpableScreen):
                                        return _("Ralink")+ " " + _("WLAN adapter.")
                                elif os_path.realpath(driverdir).endswith('rt73usb'):
                                        return _("Ralink")+ " " + _("WLAN adapter.")
+                               elif self.isRalinkModule(iface):
+                                       return _("Ralink")+ " " + _("WLAN adapter.")
                                else:
                                        return str(os_path.basename(os_path.realpath(driverdir))) + " " + _("WLAN adapter")
                        else:
@@ -137,6 +139,33 @@ class WlanSelection(Screen,HelpableScreen):
                else:
                        return _("Unknown network adapter")
 
+       def isRalinkModule(self, iface):
+# check vendor ID for lagacy driver
+               vendorID = "148f" # ralink vendor ID
+               idVendorPath = "/sys/class/net/%s/device/idVendor" % iface
+               if access(idVendorPath, R_OK):
+                       fd = open(idVendorPath, "r")
+                       data = fd.read().strip()
+                       fd.close()
+
+#                      print "Vendor ID : %s" % data
+
+                       if data == vendorID:
+                               return True
+
+# check sys driver path for kernel driver
+               ralinkKmod = "rt2800usb" # ralink kernel driver name
+               driverPath = "/sys/class/net/%s/device/driver/" % iface
+               if os_path.exists(driverPath):
+                       driverName = os_path.basename(os_path.realpath(driverPath))
+
+#                      print "driverName : %s" % driverName
+
+                       if driverName == ralinkKmod:
+                               return True
+
+               return False
+
        def cleanup(self):
                iNetwork.stopGetInterfacesConsole()
 
@@ -170,9 +199,6 @@ class WlanSetup(Screen,HelpableScreen):
                self["description"] = StaticText()
                self["IFtext"] = StaticText()
                self["IF"] = StaticText()
-               self["Statustext"] = StaticText()
-               self["statuspic"] = MultiPixmap()
-               self["statuspic"].hide()
                self.onLayoutFinish.append(self.loadDescription)
                
                self.oktext = _("Press OK on your remote control to continue.")
@@ -271,7 +297,7 @@ class WlanSetup(Screen,HelpableScreen):
 
        def WlanScanApCallback(self, essid = None):
                if essid is not None:
-                       self.session.openWithCallback(self.checklist, WlanConfig, self.iface, essid)
+                       self.session.openWithCallback(self.checklist, WlanConfig, self.iface)
 
        def restartLan(self, ret = False):
                if (ret == True):
@@ -294,26 +320,9 @@ class WlanSetup(Screen,HelpableScreen):
                iNetwork.stopRestartConsole()
                iNetwork.stopGetInterfacesConsole()
 
-wlanconfig = ConfigSubsection()
-wlanconfig.usedevice = ConfigSelection(default = "off", choices = [
-       ("off", _("off")), ("on", _("on"))])
-wlanconfig.usedhcp = ConfigSelection(default = "off", choices = [
-       ("off", _("no")), ("on", _("yes"))])
-wlanconfig.essid = ConfigSelection(default = "none", choices = ["none"])
-wlanconfig.encrypt = ConfigSelection(default = "off", choices = [
-       ("off", _("no")), ("on", _("yes"))])
-wlanconfig.method = ConfigSelection(default = "wep", choices = [
-       ("wep", _("WEP")), ("wpa", _("WPA")), ("wpa2", _("WPA2")),("wpa/wpa2", _("WPA/WPA2"))])
-wlanconfig.keytype = ConfigSelection(default = "ascii", choices = [
-       ("ascii", _("ASCII")), ("hex", _("HEX"))])
-wlanconfig.key = ConfigPassword(default = "XXXXXXXX", visible_width = 50, fixed_size = False)
-wlanconfig.usegateway = ConfigSelection(default = "off", choices = [
-       ("off", _("no")), ("on", _("yes"))])
-wlanconfig.ip   = ConfigIP([0,0,0,0])
-wlanconfig.netmask = ConfigIP([0,0,0,0])
-wlanconfig.gateway = ConfigIP([0,0,0,0])
-
-selectap = None        
+ESSID_SELECTED_IN_APLIST = None
+CHECK_NETWORK_SHARE = False
+
 class WlanConfig(Screen, ConfigListScreen, HelpableScreen):
        skin =  """
                <screen position="center,center" size="510,400" title="Wireless Network Configuration..." >
@@ -339,7 +348,7 @@ class WlanConfig(Screen, ConfigListScreen, HelpableScreen):
                        <widget name="HelpWindow" pixmap="skin_default/buttons/key_text.png" position="383,420" zPosition="1" size="1,1" transparent="1" alphatest="on" />
                </screen>
                """
-       def __init__(self, session, iface, essidSelected = None):
+       def __init__(self, session, iface):
                Screen.__init__(self,session)
                self.session = session
                self["key_red"] = StaticText(_("Close"))
@@ -366,26 +375,12 @@ class WlanConfig(Screen, ConfigListScreen, HelpableScreen):
                self["VKeyIcon"] = Pixmap()
                self["VKeyIcon"].hide()
                self.iface = iface
-               self.essidSelected = essidSelected
-               self.ssid = None
-               self.ap_scan = None
-               self.scan_ssid = None
-               self.key_mgmt = None
-               self.proto = None
-               self.key_type = None
-               self.encryption_key = None
-               self.wlanscanap = None
-               self.wpaphraseconsole = None
+
                self.list = []
-               ConfigListScreen.__init__(self, self.list,session = self.session)
+               ConfigListScreen.__init__(self, self.list, session = self.session)
                self.oldInterfaceState = iNetwork.getAdapterAttribute(self.iface, "up")
-               self.readWpaSupplicantConf()
-               self.scanAplistTimer = eTimer()
-               self.scanAplistTimer.callback.append(self.scanApList)
-               self.emptyListMsgTimer = eTimer()
-               self.emptyListMsgTimer.callback.append(self.emptyListMsg)
-               self.Console = Console()
-               self.updateInterfaces(self.readWlanSettings)
+
+               self.updateInterfaces(self.updateInterfaceCB)
                self.onClose.append(self.cleanup)
 
        def updateInterfaces(self,callback = None):
@@ -393,179 +388,221 @@ class WlanConfig(Screen, ConfigListScreen, HelpableScreen):
                iNetwork.msgPlugins()
                iNetwork.getInterfaces(callback)
 
-       def readWlanSettings(self,ret=None):
+       def updateInterfaceCB(self, ret=None):
                if ret is not True:
                        print "getInterfaces Fail... "
-               if iNetwork.getAdapterAttribute(self.iface, "up") == True:
-                       default_tmp = "on"
-               else:
-                       default_tmp = "off"
-               wlanconfig.usedevice = ConfigSelection(default=default_tmp, choices = [("off", _("off")), ("on", _("on"))])
 
-               if iNetwork.getAdapterAttribute(self.iface, "dhcp"):
-                       default_tmp = "on"
-               else:
-                       default_tmp = "off"
-               wlanconfig.usedhcp = ConfigSelection(default=default_tmp, choices = [("off", _("no")), ("on", _("yes"))])
+               self.createConfig()
+               self.createSetup()
 
-               if iNetwork.getAdapterAttribute(self.iface, "dns-nameservers"):
-                       self.dnsconfigdefault="on"
+       def getWpaSupplicantName(self, iface):
+               return "/etc/wpa_supplicant.conf.%s" % iface
+
+       def readWpaSupplicantConf(self):
+               wpaSupplicantName = self.getWpaSupplicantName(self.iface)
+               wsconf = {}
+               try:
+                       if fileExists(wpaSupplicantName):
+                               wpafd = open(wpaSupplicantName, "r")
+                               lines = wpafd.readlines()
+                               wpafd.close()
+                               data = {}
+                               for line in lines:
+                                       try:
+                                               (key, value) = line.strip().split('=',1)
+                                       except:
+                                               continue
+
+#                                      if key not in ('ssid', 'ap_scan', 'scan_ssid', 'key_mgmt', 'proto', 'wep_key0', 'psk', '#psk'):
+                                       if key not in ('ssid', 'scan_ssid', 'key_mgmt', 'proto', 'wep_key0', 'psk', '#psk'):
+                                               continue
+
+                                       elif key == 'ssid':
+                                               data[key] = value.strip('"')
+
+                                       else:
+                                               data[key] = value.strip()
+
+                               wsconf["ssid"] = data.get("ssid", "INPUTSSID")
+                               wsconf["hidden_ssid"] = data.get("scan_ssid") == '1' and True or False
+
+                               key_mgmt = data.get("key_mgmt")
+                               if key_mgmt == "NONE":
+                                       wep_key = data.get("wep_key0")
+
+                                       if wep_key is None:
+                                               wsconf["encrypt_mothod"] = "None"
+                                       else:
+                                               wsconf["encrypt_mothod"] = "wep"
+
+                                               if wep_key.startswith('"') and wep_key.endswith('"'):
+                                                       wsconf["wep_keytype"] = "ascii"
+                                                       wsconf["key"] = wep_key.strip('"')
+                                               else:
+                                                       wsconf["wep_keytype"] = "hex"
+                                                       wsconf["key"] = wep_key
+
+                               elif key_mgmt == "WPA-PSK":
+                                       proto = data.get("proto")
+
+                                       if proto == "WPA":
+                                               wsconf["encrypt_mothod"] = "wpa"
+
+                                       elif proto == "RSN":
+                                               wsconf["encrypt_mothod"] = "wpa2"
+
+                                       elif proto in ( "WPA RSN", "WPA WPA2"):
+                                               wsconf["encrypt_mothod"] = "wpa/wpa2"
+
+                                       else:
+                                               wsconf["encrypt_mothod"] = "wpa2"
+
+                                       psk = data.get("#psk")
+                                       if psk:
+                                               wsconf["key"] = psk.strip('"')
+                                       else:
+                                               wsconf["key"] = data.get("psk")
+                               else:
+                                       wsconf["encrypt_mothod"] = "wpa2"
+               except:
+                       pass
+
+               if wsconf.get("ssid") is None:
+                       wsconf["ssid"] = "INPUTSSID"
+               if wsconf.get("hidden_ssid") is None:
+                       wsconf["hidden_ssid"] = False
+               if wsconf.get("encrypt_mothod") is None:
+                       wsconf["encrypt_mothod"] = "wpa2"
+               if wsconf.get("wep_keytype") is None:
+                       wsconf["wep_keytype"] = "ascii"
+               if wsconf.get("key") is None:
+                       wsconf["key"] = "XXXXXXXX"
+
+#              print ""
+#              for (k,v) in wsconf.items():
+#                      print "[wsconf][%s] %s" % (k , v)
+
+               return wsconf
+
+       def displayIP(self, domain, entry):
+               text = entry.getText()
+               if text is not None and text != "0.0.0.0":
+                       self[domain].setText(entry.getText())
                else:
-                       self.dnsconfigdefault="off"
-               wlanconfig.hasdnsconfigentry = ConfigSelection(default=self.dnsconfigdefault, choices = [("off", _("no")), ("on", _("yes"))])
+                       self[domain].setText(_("N/A"))
 
-               wlanconfig.ip = ConfigIP(default=iNetwork.getAdapterAttribute(self.iface, "ip")) or [0,0,0,0]
+       def createConfig(self):
+# activate Interface setup
+               self.activateInterfaceEntry = NoSave(ConfigYesNo(default=iNetwork.getAdapterAttribute(self.iface, "up") or False))
+# dhcp setup
+               self.usedhcpConfigEntry = NoSave(ConfigYesNo(default=iNetwork.getAdapterAttribute(self.iface, "dhcp") or False))
 
-               wlanconfig.netmask = ConfigIP(default=iNetwork.getAdapterAttribute(self.iface, "netmask") or [255,0,0,0])
+# gateway setup
                if iNetwork.getAdapterAttribute(self.iface, "gateway"):
-                       default_tmp = "on"
+                       usegatewayDefault=True
                else:
-                       default_tmp = "off"
-               wlanconfig.usegateway = ConfigSelection(default = default_tmp, choices = [("off", _("no")), ("on", _("yes"))])
+                       usegatewayDefault=False
+               self.usegatewayConfigEntry = NoSave(ConfigYesNo(default=usegatewayDefault))
+
+               self.gatewayConfigEntry = NoSave(ConfigIP(default=iNetwork.getAdapterAttribute(self.iface, "gateway") or [0,0,0,0]))
 
-               wlanconfig.gateway = ConfigIP(default=iNetwork.getAdapterAttribute(self.iface, "gateway") or [0,0,0,0])
+# IP, Netmask setup
+               self.IPConfigEntry = NoSave(ConfigIP(default=iNetwork.getAdapterAttribute(self.iface, "ip") or [0,0,0,0]))
+               self.netmaskConfigEntry = NoSave(ConfigIP(default=iNetwork.getAdapterAttribute(self.iface, "netmask") or [255,0,0,0]))
 
-               self["ipaddress"].setText(_(self.formatip(iNetwork.getAdapterAttribute(self.iface, "ip"))))
-               self["netmask"].setText(_(self.formatip(iNetwork.getAdapterAttribute(self.iface, "netmask"))))
-               self["gateway"].setText(_(self.formatip(iNetwork.getAdapterAttribute(self.iface, "gateway"))))
+# DNS setup
+               if iNetwork.getAdapterAttribute(self.iface, "dns-nameservers"):
+                       dnsDefault = True
+               else:
+                       dnsDefault = False
+               self.useDNSConfigEntry = NoSave(ConfigYesNo(default=dnsDefault or False))
 
                nameserver = (iNetwork.getNameserverList() + [[0,0,0,0]] * 2)[0:2]
                self.primaryDNS = NoSave(ConfigIP(default=nameserver[0]))
                self.secondaryDNS = NoSave(ConfigIP(default=nameserver[1]))
-               self["DNS1"].setText(self.primaryDNS.getText())
-               self["DNS2"].setText(self.secondaryDNS.getText())
 
-               if self.encryption_key is not None:
-                       default_tmp = "on"
-               else:
-                       default_tmp = "off"
-               wlanconfig.encrypt = ConfigSelection(default = default_tmp, choices = [("off", _("no")), ("on", _("yes"))])
-
-               if self.key_mgmt=="NONE":
-                       default_tmp = "wep"
-               elif self.key_mgmt == "WPA-PSK":
-                       if self.proto == "WPA":
-                               default_tmp = "wpa"
-                       elif self.proto == "RSN":
-                               default_tmp = "wpa2"
-                       elif self.proto in ( "WPA RSN", "WPA WPA2"):
-                               default_tmp = "wpa/wpa2"
-                       else:
-                               default_tmp = "wpa"
-               else:
-                       default_tmp = "wep"
+               self.displayIP("ipaddress", self.IPConfigEntry)
+               self.displayIP("netmask", self.netmaskConfigEntry)
+               self.displayIP("gateway", self.gatewayConfigEntry)
+               self.displayIP("DNS1", self.primaryDNS)
+               self.displayIP("DNS2", self.secondaryDNS)
+
+# readWPASupplicantConf
+               wsconf = self.readWpaSupplicantConf()
+
+# method setup
+               encryptionChoices = [("wep", _("WEP")), ("wpa", _("WPA")), ("wpa2", _("WPA2")), ("wpa/wpa2", _("WPA/WPA2")), ("None", _("No Encrypt"))  ]
+               self.methodConfigEntry = NoSave(ConfigSelection(default = wsconf["encrypt_mothod"], choices = encryptionChoices))
+
+# key type setup
+               keytypeChoices = [("ascii", _("ASCII")), ("hex", _("HEX"))]
+               self.keytypeConfigEntry = NoSave(ConfigSelection(default = wsconf["wep_keytype"], choices = keytypeChoices))
 
-               wlanconfig.method = ConfigSelection(default = default_tmp, choices = [
-                       ("wep", _("WEP")), ("wpa", _("WPA")), ("wpa2", _("WPA2")),("wpa/wpa2", _("WPA/WPA2"))])
+# key setup
+               self.keyConfigEntry = NoSave(ConfigPassword(default = wsconf["key"], visible_width = 50, fixed_size = False))
 
-               if self.key_type == 0:
-                       default_tmp = "hex"
+# hidden ssid setup
+               self.hiddenssidConfigEntry = NoSave(ConfigYesNo(default = wsconf["hidden_ssid"]))
+
+# ssid setup
+
+               global ESSID_SELECTED_IN_APLIST
+               if ESSID_SELECTED_IN_APLIST:
+                       essidDefault = ESSID_SELECTED_IN_APLIST
                else:
-                       default_tmp = "ascii"
-               wlanconfig.keytype = ConfigSelection(default = default_tmp, choices = [
-                       ("ascii", _("ASCII")), ("hex", _("HEX"))])
-               default_tmp = self.encryption_key or "XXXXXXXX"
-               wlanconfig.key = ConfigPassword(default = default_tmp, visible_width = 50, fixed_size = False)
-               self.getApList()
+                       essidDefault = wsconf["ssid"]
 
-       def readWpaSupplicantConf(self):
-               try:
-                       if fileExists("/etc/wpa_supplicant.conf"):
-                               wpafd = open("/etc/wpa_supplicant.conf","r")
-                               if wpafd >0:
-                                       data = wpafd.readline()
-                                       while len(data) > 0:
-#                                              print "####readWpaSupplicantConf, data : ",data
-                                               data = data.lstrip()
-                                               if len(data) == 0:
-                                                       data = wpafd.readline()
-                                                       continue
-                                               if data.startswith('ssid=') and len(data) > 6:
-                                                       self.ssid = data[6:-2]
-                                               elif data.startswith('ap_scan=') :
-                                                       self.ap_scan = data[8:]
-#                                                      print "####readWpaSupplicantConf, ap_scan : ",self.ap_scan
-                                               elif data.startswith('scan_ssid=') and len(data) > 10:
-                                                       self.scan_ssid = data[10:-1]
-                                               elif data.startswith('key_mgmt=') and len(data) > 9:
-                                                       self.key_mgmt = data[9:-1]
-                                               elif data.startswith('proto=') and len(data) > 6:
-                                                       self.proto = data[6:-1]
-                                               elif data.startswith('wep_key0="') and len(data) > 11:
-                                                       self.key_type = 1 # ascii
-                                                       self.encryption_key = data[10:-2]
-                                               elif data.startswith('wep_key0=') and len(data) > 9:
-                                                       self.key_type = 0 # hex
-                                                       self.encryption_key = data[9:-1]
-                                               elif data.startswith('psk="') and len(data) > 6:
-                                                       self.key_type = 1 # ascii
-                                                       self.encryption_key = data[5:-2]
-                                               elif data.startswith('#psk="') and len(data) > 6:
-                                                       self.key_type = 0 # hex
-                                                       self.encryption_key = data[6:-2]
-                                               elif not self.encryption_key and data.startswith('psk=') and len(data) > 4:
-                                                       self.key_type = 0 # hex
-                                                       self.encryption_key = data[4:-1]
-                                               data = wpafd.readline()
-#                                      print self.ssid,self.scan_ssid,self.key_mgmt,self.proto,self.key_type,self.encryption_key
-                                       wpafd.close()
-                               else:
-                                       print 'read error'
-                       else:
-                               pass
-               except:
-                       print 'failed loading wpasupplicant.conf'
+               self.ssidConfigEntry = NoSave(ConfigText(default = essidDefault, visible_width = 50, fixed_size = False))
 
-       def createConfig(self):
+       def createSetup(self):
                self.configList=[]
-               self.usedeviceEntry = getConfigListEntry(_("Use Device"), wlanconfig.usedevice)
-               self.usedhcpEntry = getConfigListEntry(_("Use DHCP"), wlanconfig.usedhcp)
-               self.essidEntry = getConfigListEntry(_("ESSID"), wlanconfig.essid)
-               self.hiddenessidEntry = getConfigListEntry(_("Input Hidden ESSID"), wlanconfig.hiddenessid)
-               self.encryptEntry = getConfigListEntry(_("Encrypt"), wlanconfig.encrypt)
-               self.methodEntry = getConfigListEntry(_("Method"), wlanconfig.method)
-               self.keytypeEntry = getConfigListEntry(_("Key Type"), wlanconfig.keytype)
-               self.keyEntry = getConfigListEntry(_("KEY"), wlanconfig.key)
+               self.usedeviceEntry = getConfigListEntry(_("Use Device"), self.activateInterfaceEntry)
+               self.usedhcpEntry = getConfigListEntry(_("Use DHCP"), self.usedhcpConfigEntry)
+               self.essidEntry = getConfigListEntry(_("SSID"), self.ssidConfigEntry)
+               self.hiddenessidEntry = getConfigListEntry(_("Hidden Network"), self.hiddenssidConfigEntry)
+               self.methodEntry = getConfigListEntry(_("Encrypt Method"), self.methodConfigEntry)
+               self.keytypeEntry = getConfigListEntry(_("Key Type"), self.keytypeConfigEntry)
+               self.keyEntry = getConfigListEntry(_("KEY"), self.keyConfigEntry)
 
-               self.ipEntry = getConfigListEntry(_("IP"), wlanconfig.ip)
-               self.netmaskEntry = getConfigListEntry(_("NetMask"), wlanconfig.netmask)
+               self.ipEntry = getConfigListEntry(_("IP"), self.IPConfigEntry)
+               self.netmaskEntry = getConfigListEntry(_("NetMask"), self.netmaskConfigEntry)
 
-               self.usegatewayEntry = getConfigListEntry(_("Use Gateway"), wlanconfig.usegateway)
-               self.gatewayEntry = getConfigListEntry(_("Gateway"), wlanconfig.gateway)
+               self.usegatewayEntry = getConfigListEntry(_("Use Gateway"), self.usegatewayConfigEntry)
+               self.gatewayEntry = getConfigListEntry(_("Gateway"), self.gatewayConfigEntry)
 
                manualNameservers = (iNetwork.getInterfacesNameserverList(self.iface) + [[0,0,0,0]] * 2)[0:2]
                self.manualPrimaryDNS = NoSave(ConfigIP(default=manualNameservers[0]))
                self.manualSecondaryDNS = NoSave(ConfigIP(default=manualNameservers[1]))
-               nameserver = (iNetwork.getNameserverList() + [[0,0,0,0]] * 2)[0:2]
-               self.primaryDNS = NoSave(ConfigIP(default=nameserver[0]))
-               self.secondaryDNS = NoSave(ConfigIP(default=nameserver[1]))
-               self.DNSConfigEntry =  getConfigListEntry(_("Use Manual dns-nameserver"), wlanconfig.hasdnsconfigentry)
+
+               self.usednsEntry =  getConfigListEntry(_("Use Manual dns-nameserver"), self.useDNSConfigEntry)
                self.primaryDNSConfigEntry = getConfigListEntry(_('Primary DNS'), self.manualPrimaryDNS)
                self.secondaryDNSConfigEntry = getConfigListEntry(_('Secondary DNS'), self.manualSecondaryDNS)
 
                self.configList.append( self.usedeviceEntry )
-               if wlanconfig.usedevice.value is "on":
+               if self.activateInterfaceEntry.value is True:
                        self.configList.append( self.usedhcpEntry )
-                       if wlanconfig.usedhcp.value is "off":
+
+                       if self.usedhcpConfigEntry.value is True:
+                               self.configList.append(self.usednsEntry)
+                       else:
                                self.configList.append(self.ipEntry)
                                self.configList.append(self.netmaskEntry)
                                self.configList.append(self.usegatewayEntry)
-                               if wlanconfig.usegateway.value is "on":
+
+                               if self.usegatewayConfigEntry.value is True:
                                        self.configList.append(self.gatewayEntry)
-                       if wlanconfig.usedhcp.value is "on":
-                               self.configList.append(self.DNSConfigEntry)
-                       if wlanconfig.hasdnsconfigentry.value is "on" or wlanconfig.usedhcp.value is "off":
+
+                       if self.useDNSConfigEntry.value is True or self.usedhcpConfigEntry.value is False:
                                self.configList.append(self.primaryDNSConfigEntry)
                                self.configList.append(self.secondaryDNSConfigEntry)
 
+                       self.configList.append( self.hiddenessidEntry )
                        self.configList.append( self.essidEntry )
-                       if wlanconfig.essid.value == 'Input hidden ESSID':
-                               self.configList.append( self.hiddenessidEntry )
-                       self.configList.append( self.encryptEntry )
-                       if wlanconfig.encrypt.value is "on" :
-                               self.configList.append( self.methodEntry )
-                               if wlanconfig.method.value =="wep":
-                                       self.configList.append( self.keytypeEntry )
+                       self.configList.append( self.methodEntry )
+
+                       if self.methodConfigEntry.value =="wep":
+                               self.configList.append( self.keytypeEntry )
+                       if self.methodConfigEntry.value != "None":
                                self.configList.append( self.keyEntry )
 
                self["config"].list = self.configList
@@ -579,65 +616,13 @@ class WlanConfig(Screen, ConfigListScreen, HelpableScreen):
                else:
                        self["VKeyIcon"].hide()
 
-       def getApList(self):
-               if self.essidSelected is None:
-                       self.apList = []
-                       self.configurationmsg = self.session.open(MessageBox, _("Please wait for scanning AP..."), type = MessageBox.TYPE_INFO, enable_input = False)
-                       self.scanAplistTimer.start(100,True)
-               else:
-                       self.apList = [self.essidSelected]
-                       wlanconfig.essid = ConfigSelection(choices = self.apList)
-                       if self.ssid is not None:
-                               wlanconfig.hiddenessid = ConfigText(default = self.ssid, visible_width = 50, fixed_size = False)
-                       else:
-                               wlanconfig.hiddenessid = ConfigText(default = "<Input ESSID>", visible_width = 50, fixed_size = False)
-                       self.createConfig()
-
-       def getScanResult(self, wirelessObj):
-               Iwscanresult  = None
-               try:
-                       Iwscanresult  = wirelessObj.scan()
-               except IOError:
-                       print "%s Interface doesn't support scanning.."%self.iface
-               return Iwscanresult
-
-       def scanApList(self):
-               if self.oldInterfaceState is not True:
-                       os_system("ifconfig "+self.iface+" up")
-                       iNetwork.setAdapterAttribute(self.iface, "up", True)
-               wirelessObj = Wireless(self.iface)
-               Iwscanresult=self.getScanResult(wirelessObj)
-               if Iwscanresult is None or len(Iwscanresult.aplist) == 0 :
-                       import time
-                       time.sleep(1.5)
-                       Iwscanresult=self.getScanResult(wirelessObj)
-               self.configurationmsg.close(True)
-               if Iwscanresult is None or len( Iwscanresult.aplist) == 0:
-                       self.emptyListMsgTimer.start(100,True)
-               else:
-                       for ap in Iwscanresult:
-                               if ap.essid is not None and ap.essid not in self.apList and len(ap.essid) > 0:
-                                       self.apList.append(ap.essid)
-               self.apList.append('Input hidden ESSID')
-               if selectap is not None and selectap in self.apList:
-                       wlanconfig.essid = ConfigSelection(default=selectap,choices = self.apList)
-               elif self.scan_ssid is not None and self.scan_ssid.strip() == '1':
-                       wlanconfig.essid = ConfigSelection(default='Input hidden ESSID',choices = self.apList)
-               elif self.ssid is not None and self.ssid in self.apList:
-                       wlanconfig.essid = ConfigSelection(default=self.ssid, choices = self.apList)
-               else:
-                       try:
-                               wlanconfig.essid = ConfigSelection(defalut = self.apList[0], choices = self.apList)
-                       except:
-                               wlanconfig.essid = ConfigSelection(choices = self.apList)
-               if self.ssid is not None:
-                       wlanconfig.hiddenessid = ConfigText(default = self.ssid, visible_width = 50, fixed_size = False)
-               else:
-                       wlanconfig.hiddenessid = ConfigText(default = "<Input ESSID>", visible_width = 50, fixed_size = False)
-               self.createConfig()
+       def onSelectHelpWindow(self, ret = False):
+               if isinstance(self["config"].getCurrent()[1], ConfigText) or isinstance(self["config"].getCurrent()[1], ConfigPassword):
+                       self["config"].getCurrent()[1].onSelect(self.session)
 
-       def emptyListMsg(self):
-               self.session.open(MessageBox, _("No AP detected."), type = MessageBox.TYPE_INFO, timeout = 10)
+       def onDeselectHelpWindow(self, ret = False):
+               if isinstance(self["config"].getCurrent()[1], ConfigText) or isinstance(self["config"].getCurrent()[1], ConfigPassword):
+                       self["config"].getCurrent()[1].onDeselect(self.session)
 
        def keyLeft(self):
                ConfigListScreen.keyLeft(self)
@@ -648,16 +633,15 @@ class WlanConfig(Screen, ConfigListScreen, HelpableScreen):
                self.newConfig()
 
        def newConfig(self):
-               if self["config"].getCurrent() == self.usedeviceEntry or self["config"].getCurrent() == self.encryptEntry \
-                       or self["config"].getCurrent() == self.usedhcpEntry or self["config"].getCurrent() == self.usegatewayEntry \
-                       or self["config"].getCurrent() == self.essidEntry or self["config"].getCurrent() == self.methodEntry \
-                       or self["config"].getCurrent() == self.DNSConfigEntry:
-                       self.createConfig()
+               if self["config"].getCurrent() == self.usedeviceEntry or self["config"].getCurrent() == self.usedhcpEntry \
+                       or self["config"].getCurrent() == self.usegatewayEntry or self["config"].getCurrent() == self.methodEntry \
+                       or self["config"].getCurrent() == self.methodEntry or self["config"].getCurrent() == self.usednsEntry:
+                       self.createSetup()
 
        def saveWlanConfig(self):
                try:
-                       if self["config"].getCurrent() == self.keyEntry or self["config"].getCurrent() == self.hiddenessidEntry :
-                               self["config"].getCurrent()[1].onDeselect(self.session)
+                       self.onDeselectHelpWindow()
+
                        if self["config"].isChanged():
                                self.session.openWithCallback(self.checkNetworkConfig, MessageBox, (_("Are you sure you want to restart your network interfaces?\n") ) )
                        else:
@@ -667,52 +651,49 @@ class WlanConfig(Screen, ConfigListScreen, HelpableScreen):
 
        def checkNetworkConfig(self, ret = False):
                if ret == False:
-                       if self["config"].getCurrent() == self.keyEntry or self["config"].getCurrent() == self.hiddenessidEntry :
-                               self["config"].getCurrent()[1].onSelect(self.session)
-                       return
-               if wlanconfig.essid.value == 'Input hidden ESSID':
-                       if len(wlanconfig.hiddenessid.value) == 0:
-                               self.session.open(MessageBox, ("PLEASE INPUT HIDDEN ESSID"), type = MessageBox.TYPE_ERROR, timeout = 10)
-                               return
-               if len(wlanconfig.key.value) == 0:
-                       self.session.open(MessageBox, ("PLEASE INPUT NETWORK KEY"), type = MessageBox.TYPE_ERROR, timeout = 10)
-                       return
-               self.checkNetworkShares()
+                       self.onSelectHelpWindow()
 
-       def checkNetworkShares(self):
-               if not self.Console:
-                       self.Console = Console()
-               cmd = "cat /proc/mounts"
-               self.Console.ePopen(cmd, self.checkSharesFinished, self.confirmAnotherIfaces)
+               elif len(self.ssidConfigEntry.value) == 0:
+                       self.session.open(MessageBox, ("PLEASE INPUT SSID"), type = MessageBox.TYPE_ERROR, timeout = 10)
+
+               elif len(self.keyConfigEntry.value) == 0:
+                       self.session.open(MessageBox, ("PLEASE INPUT ENCRYPT KEY"), type = MessageBox.TYPE_ERROR, timeout = 10)
 
-       def checkSharesFinished(self, result, retval, extra_args):
-               callback = extra_args
-#              print "checkMountsFinished : result : \n",result
+               else:
+                       global CHECK_NETWORK_SHARE
+                       if CHECK_NETWORK_SHARE:
+                               self.checkNetworkShares(self.confirmAnotherIfaces)
+                       else:
+                               self.confirmAnotherIfaces()
+
+       def checkNetworkShares(self, callback):
+               cmd = "cat /proc/mounts"
+               data = popen(cmd).readlines()
                networks = ['nfs','smbfs','ncp','coda']
-               for line in result.splitlines():
+               for line in data:
                        split = line.strip().split(' ',3)
                        if split[2] in networks:
-                               self.session.open(MessageBox, ("NOT deconfiguring network interfaces :\n network shares still mounted\n"), type = MessageBox.TYPE_ERROR, timeout = 10)
-                               callback(False)
-                               if self["config"].getCurrent() == self.keyEntry or self["config"].getCurrent() == self.hiddenessidEntry :
-                                       self["config"].getCurrent()[1].onSelect(self.session)
+                               self.session.openWithCallback(self.onSelectHelpWindow, MessageBox, ("NOT deconfiguring network interfaces :\n network shares still mounted\n"), type = MessageBox.TYPE_ERROR, timeout = 10)
                                return
-               callback(True)
+               callback()
 
-       def confirmAnotherIfaces(self, ret = False):
-               if ret == False:
-                       return
-               else:
-                       num_configured_if = len(iNetwork.getConfiguredAdapters())
-                       if num_configured_if >= 1:
-                               if num_configured_if == 1 and self.iface in iNetwork.getConfiguredAdapters():
-                                       self.getWpaPhrase(False)
-                               else:
-                                       self.session.openWithCallback(self.getWpaPhrase, MessageBox, _("A second configured interface has been found.\n\nDo you want to disable the second network interface?"), default = True)
+       def confirmAnotherIfaces(self):
+               num_configured_if = len(iNetwork.getConfiguredAdapters())
+               if num_configured_if >= 1:
+                       if num_configured_if == 1 and self.iface in iNetwork.getConfiguredAdapters():
+                               self.confirmAnotherIfacesCB(False)
                        else:
-                               self.getWpaPhrase(False)
+                               self.session.openWithCallback(self.confirmAnotherIfacesCB, MessageBox, _("A second configured interface has been found.\n\nDo you want to disable the second network interface?"), default = True)
+               else:
+                       self.confirmAnotherIfacesCB(False)
+
+       def isWPAMethod(self, method):
+               if method in ("wep", "None"):
+                       return False
+               else:
+                       return True
 
-       def getWpaPhrase(self,ret):
+       def confirmAnotherIfacesCB(self, ret):
                if ret == True:
                        configuredInterfaces = iNetwork.getConfiguredAdapters()
                        for interface in configuredInterfaces:
@@ -720,108 +701,107 @@ class WlanConfig(Screen, ConfigListScreen, HelpableScreen):
                                        continue
                                iNetwork.setAdapterAttribute(interface, "up", False)
                                iNetwork.deactivateInterface(interface)
-               if wlanconfig.method.value =="wep":
-                       self.writeWpasupplicantConf("wep") # passphrasekey is not None
+
+               if not self.isWPAMethod(self.methodConfigEntry.value):
+                       self.writeWpasupplicantConf()
                else:
-                       if wlanconfig.essid.value == 'Input hidden ESSID':
-                               cmd = "wpa_passphrase '%s' %s" % (wlanconfig.hiddenessid.value,wlanconfig.key.value)
-                       else :
-                               cmd = "wpa_passphrase '%s' %s" % (wlanconfig.essid.value,wlanconfig.key.value)
-                       print cmd
-                       self.wpaphraseconsole = Console()
-                       self.wpaphraseconsole.ePopen(cmd, self.parseWpaPhrase, self.writeWpasupplicantConf)
-
-       def parseWpaPhrase(self, result, retval, extra_args):
-               (writewlanconfig) = extra_args
-               if self.wpaphraseconsole is not None:
-                       if retval == 0:
-                               self.wpaphraseconsole.killAll()
-                               self.wpaphraseconsole = None
-#                              print "parseWpaPhrase result : "
-#                              print result
-                               psk = None
-                               for line in result.splitlines():
-                                       if line.find('ssid') == -1 and line.find('#psk=') != -1:
-                                               plainpwd        = line
-                                       elif line.find('psk=') != -1:
-                                               psk = line
-                               if psk:
-                                       writewlanconfig(psk,plainpwd)
-                               else:
-                                       writewlanconfig(None)
+                       self.getWpaPhrase()
+
+       def getWpaPhrase(self):
+               cmd = "wpa_passphrase '%s' %s" % (self.ssidConfigEntry.value, self.keyConfigEntry.value)
+#              print cmd
+               data = popen(cmd).readlines()
+               plainpwd = None
+               psk = None
+               for line in data:
+#                      print line,
+                       try:
+                               (key, value) = line.strip().split('=',1)
+                       except:
+                               continue
+
+                       if key == '#psk':
+                               plainpwd = line
+                       elif key == 'psk':
+                               psk = line
+               self.writeWpasupplicantConf(psk, plainpwd)
+
+       def writeWpasupplicantConf(self, passphrasekey=None, plainpwd=None):
+               wpaSupplicantName = self.getWpaSupplicantName(self.iface)
+               try:
+                       wpafd = open(wpaSupplicantName, "w")
+               except:
+                       self.session.open(MessageBox, _("%s open error." % wpaSupplicantName ), type = MessageBox.TYPE_ERROR, timeout = 10)
+                       return
+
+               contents = "#WPA Supplicant Configuration by STB\n"
+               contents += "ctrl_interface=/var/run/wpa_supplicant\n"
+               contents += "eapol_version=1\n"
+               contents += "fast_reauth=1\n"
+               contents += "ap_scan=1\n"
+               contents += "network={\n"
+# ssid
+               contents += "\tssid=\""+self.ssidConfigEntry.value+"\"\n"
+# hidden ssid
+               if self.hiddenssidConfigEntry.value is True:
+                       contents += "\tscan_ssid=1\n"
+               else:
+                       contents += "\tscan_ssid=0\n"
+
+               if self.methodConfigEntry.value == "None":
+                       contents += "\tkey_mgmt=NONE\n"
+
+               elif self.methodConfigEntry.value == "wep":
+                       contents += "\tkey_mgmt=NONE\n"
+                       contents += "\twep_key0="
+                       if self.keytypeConfigEntry.value == "ascii":
+                               contents += "\""+self.keyConfigEntry.value+"\"\n"
                        else:
-                               writewlanconfig(None)
-
-       def writeWpasupplicantConf(self, passphrasekey=None,plainpwd=None):
-               if passphrasekey:
-                       wpafd = open("/etc/wpa_supplicant.conf","w")
-                       if wpafd > 0:
-                               contents = "#WPA Supplicant Configuration by STB\n"
-                               contents += "ctrl_interface=/var/run/wpa_supplicant\n"
-                               contents += "eapol_version=1\n"
-                               contents += "fast_reauth=1\n"
-                               contents += "ap_scan=1\n"
-                               contents += "network={\n"
-                               if wlanconfig.essid.value == 'Input hidden ESSID':
-                                       contents += "\tssid=\""+wlanconfig.hiddenessid.value+"\"\n"
-                                       contents += "\tscan_ssid=1\n"
-                               else :
-                                       contents += "\tssid=\""+wlanconfig.essid.value+"\"\n"
-                                       contents += "\tscan_ssid=0\n"
-                               if wlanconfig.encrypt.value == "on":
-                                       if wlanconfig.method.value =="wep":
-                                               contents += "\tkey_mgmt=NONE\n"
-                                               contents += "\twep_key0="
-                                               if wlanconfig.keytype.value == "ascii":
-                                                       contents += "\""+wlanconfig.key.value+"\"\n"
-                                               else:
-                                                       contents += wlanconfig.key.value+"\n"
-                                       else:
-#                                              print "plainpwd : ",plainpwd
-#                                              print "passphrasekey : ",passphrasekey
-                                               if wlanconfig.method.value == "wpa":
-                                                       contents += "\tkey_mgmt=WPA-PSK\n"
-                                                       contents += "\tproto=WPA\n"
-                                                       contents += "\tpairwise=CCMP TKIP\n"
-                                                       contents += "\tgroup=CCMP TKIP\n"       
-                                               elif wlanconfig.method.value == "wpa2":
-                                                       contents += "\tkey_mgmt=WPA-PSK\n"
-                                                       contents += "\tproto=RSN\n"
-                                                       contents += "\tpairwise=CCMP TKIP\n"
-                                                       contents += "\tgroup=CCMP TKIP\n"
-                                               else:
-                                                       contents += "\tkey_mgmt=WPA-PSK\n"
-                                                       contents += "\tproto=WPA RSN\n"
-                                                       contents += "\tpairwise=CCMP TKIP\n"
-                                                       contents += "\tgroup=CCMP TKIP\n"
-                                               contents += plainpwd+"\n"
-                                               contents += passphrasekey+"\n"
-                               else:
-                                       contents += "\tkey_mgmt=NONE\n"
-                               contents += "}\n"
-                               print "content = \n"+contents
-                               wpafd.write(contents)
-                               wpafd.close()
-                               self.writeNetConfig()
-                       else :
-                               self.session.open(MessageBox, _("wpa_supplicant.conf open error."), type = MessageBox.TYPE_ERROR, timeout = 10)
-                               return
+                               contents += self.keyConfigEntry.value+"\n"
+
                else:
-                       self.session.open(MessageBox, _("Can NOT generate passphrase"), type = MessageBox.TYPE_ERROR, timeout = 10)
-                       return
+                       if self.methodConfigEntry.value == "wpa":
+                               contents += "\tkey_mgmt=WPA-PSK\n"
+                               contents += "\tproto=WPA\n"
+                               contents += "\tpairwise=CCMP TKIP\n"
+                               contents += "\tgroup=CCMP TKIP\n"
+                       elif self.methodConfigEntry.value == "wpa2":
+                               contents += "\tkey_mgmt=WPA-PSK\n"
+                               contents += "\tproto=RSN\n"
+                               contents += "\tpairwise=CCMP TKIP\n"
+                               contents += "\tgroup=CCMP TKIP\n"
+                       else:
+                               contents += "\tkey_mgmt=WPA-PSK\n"
+                               contents += "\tproto=WPA RSN\n"
+                               contents += "\tpairwise=CCMP TKIP\n"
+                               contents += "\tgroup=CCMP TKIP\n"
+
+#                              print "plainpwd : ",plainpwd
+#                              print "passphrasekey : ",passphrasekey
+                       if plainpwd is not None and passphrasekey is not None:
+                               contents += plainpwd
+                               contents += passphrasekey
+                       else:
+                               contents += "\tpsk=%s\n" % self.keyConfigEntry.value
+
+               contents += "}\n"
+#              print "content = \n"+contents
+               wpafd.write(contents)
+               wpafd.close()
+               self.writeNetConfig()
 
        def writeNetConfig(self):
-               if wlanconfig.usedevice.value=="on":
+               if self.activateInterfaceEntry.value is True:
                        iNetwork.setAdapterAttribute(self.iface, "up", True)
-                       if wlanconfig.usedhcp.value =="on":
+                       if self.usedhcpConfigEntry.value is True:
                                iNetwork.setAdapterAttribute(self.iface, "dhcp", True)
                        else:
                                iNetwork.setAdapterAttribute(self.iface, "dhcp", False)
-                               iNetwork.setAdapterAttribute(self.iface, "ip", wlanconfig.ip.value)
-                               iNetwork.setAdapterAttribute(self.iface, "netmask", wlanconfig.netmask.value)
-                               if wlanconfig.usegateway.value == "on":
-                                       iNetwork.setAdapterAttribute(self.iface, "gateway", wlanconfig.gateway.value)
-                       if wlanconfig.hasdnsconfigentry.value == "on" or wlanconfig.usedhcp.value == "off":
+                               iNetwork.setAdapterAttribute(self.iface, "ip", self.IPConfigEntry.value)
+                               iNetwork.setAdapterAttribute(self.iface, "netmask", self.netmaskConfigEntry.value)
+                               if self.usegatewayConfigEntry.value is True:
+                                       iNetwork.setAdapterAttribute(self.iface, "gateway", self.gatewayConfigEntry.value)
+                       if self.useDNSConfigEntry.value is True or self.usedhcpConfigEntry.value is False:
                                interfacesDnsLines = self.makeLineDnsNameservers([self.manualPrimaryDNS.value, self.manualSecondaryDNS.value])
                                if interfacesDnsLines == "" :
                                        interfacesDnsLines = False
@@ -831,7 +811,9 @@ class WlanConfig(Screen, ConfigListScreen, HelpableScreen):
                else:
                        iNetwork.setAdapterAttribute(self.iface, "up", False)
                        iNetwork.deactivateInterface(self.iface)
-               contents = "\tpre-up wpa_supplicant -i"+self.iface+" -c/etc/wpa_supplicant.conf -B -D"+iNetwork.detectWlanModule(self.iface)+"\n"
+
+               wpaSupplicantName = self.getWpaSupplicantName(self.iface)
+               contents = "\tpre-up wpa_supplicant -i"+self.iface+" -c%s -B -D" % (wpaSupplicantName)  +iNetwork.detectWlanModule(self.iface)+"\n"
                contents += "\tpost-down wpa_cli terminate\n"
                iNetwork.setAdapterAttribute(self.iface, "configStrings", contents)
                iNetwork.writeNetworkConfig()
@@ -846,85 +828,58 @@ class WlanConfig(Screen, ConfigListScreen, HelpableScreen):
                        line+="\tdns-nameservers %s\n" % entry
                return line
 
-       def updateCurrentInterfaces(self,ret):
+       def updateCurrentInterfaces(self, ret):
                if ret is True:
                        iNetwork.getInterfaces(self.configurationMsgClose)
+               elif self.configurationmsg is not None:
+                       self.configurationmsg.close(False)
 
        def configurationMsgClose(self,ret):
-               if ret is True and self.configurationmsg is not None:
-                       self.configurationmsg.close(True)
+               if self.configurationmsg is not None:
+                       if ret is True:
+                               self.configurationmsg.close(True)
+                       else:
+                               self.configurationmsg.close(False)
 
        def configFinished(self,data):
-               global selectap
                if data is True:
                        self.session.openWithCallback(self.configFinishedCB, MessageBox, _("Your network configuration has been activated."), type = MessageBox.TYPE_INFO, timeout = 10)
-                       selectap = wlanconfig.essid.value
+                       global ESSID_SELECTED_IN_APLIST
+                       ESSID_SELECTED_IN_APLIST = None
+               else:
+                       self.session.openWithCallback(self.configFinishedCB, MessageBox, _("Network configuration is failed."), type = MessageBox.TYPE_INFO, timeout = 10)
 
-       def configFinishedCB(self,data):
-               if data is not None:
-                       if data is True:
-                               self.close()
-       
-       def formatip(self, iplist):
-               list = []
-               list = iplist
-#              print "iplist : ",iplist
-               try:
-                       if len(iplist) == 4:
-                               result = str(iplist[0])+"."+str(iplist[1])+"."+str(iplist[2])+"."+str(iplist[3])
-                       else:
-                               result ="0.0.0.0"
-#                      print "result : ",result
-                       return result
-               except:
-                       return "[N/A]"
+       def configFinishedCB(self, data):
+               if data is True:
+                       self.close()
                        
        def keyCancelConfirm(self, result):
                if not result:
+                       self.onSelectHelpWindow()
                        return
+
                if self.oldInterfaceState is False:
-                       iNetwork.setAdapterAttribute(self.iface, "up", False)
-                       iNetwork.deactivateInterface(self.iface,self.keyCancelCB)
+                       iNetwork.deactivateInterface(self.iface, self.keyCancelCB)
                else:
                        self.close()
 
        def keyCancel(self,yesno = True):
                if self["config"].isChanged():
+                       self.onDeselectHelpWindow()
                        self.session.openWithCallback(self.keyCancelConfirm, MessageBox, _("Really close without saving settings?"))
                else:
-                       self.keyCancelConfirm(True)
+                       self.close()
 
        def keyCancelCB(self,data):
-               if data is not None:
-                       if data is True:
-                               self.close()
+               if data is True:
+                       self.close()
 
        def cleanup(self):
                iNetwork.stopRestartConsole()
                iNetwork.stopGetInterfacesConsole()
                iNetwork.stopDeactivateInterfaceConsole()
-               self.stopwlanscanapConsole()
-               self.stopCheckNetworkSharesConsole()
-               self.stopWpaPhraseConsole()
-
-       def stopwlanscanapConsole(self):
-               if self.wlanscanap is not None:
-                       if len(self.wlanscanap.appContainers):
-                               for name in self.wlanscanap.appContainers.keys():
-                                       self.wlanscanap.kill(name)
-
-       def stopCheckNetworkSharesConsole(self):
-               if self.Console is not None:
-                       if len(self.Console.appContainers):
-                               for name in self.Console.appContainers.keys():
-                                       self.Console.kill(name)
-
-       def stopWpaPhraseConsole(self):
-               if self.wpaphraseconsole is not None:
-                       if len(self.wpaphraseconsole.appContainers):
-                                       for name in self.wpaphraseconsole.appContainers.keys():
-                                               self.wpaphraseconsole.kill(name)
 
+SHOW_HIDDEN_NETWORK = False
 class WlanScanAp(Screen,HelpableScreen):
        skin =  """
                <screen position="center,center" size="510,400" title="Wireless Network AP Scan..." >
@@ -939,16 +894,19 @@ class WlanScanAp(Screen,HelpableScreen):
                        <widget source="key_green" render="Label" position="185,360" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#1f771f" foregroundColor="#ffffff" transparent="1" />
                        <widget source="key_blue" render="Label" position="360,360" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#18188b" foregroundColor="#ffffff" transparent="1" />
 
-                       <widget name="menulist" position="20,20" size="230,260" backgroundColor="#371e1c1a" transparent="1" zPosition="10" scrollbarMode="showOnDemand" />
+                       <widget name="aplist" position="20,20" size="230,275" backgroundColor="#371e1c1a" transparent="1" zPosition="10" scrollbarMode="showOnDemand" />
 
-                       <widget source="Address" render="Label" position="265,70" zPosition="1" size="240,30" font="Regular;18" halign="center" valign="center" />
-                       <widget source="ESSID" render="Label" position="265,100" zPosition="1" size="240,30" font="Regular;18" halign="center" valign="center" />
+                       <widget source="ESSID" render="Label" position="265,70" zPosition="1" size="240,30" font="Regular;18" halign="center" valign="center" />
+                       <widget source="Address" render="Label" position="265,100" zPosition="1" size="240,30" font="Regular;18" halign="center" valign="center" />
                        <widget source="Protocol" render="Label" position="265,130" zPosition="1" size="240,30" font="Regular;18" halign="center" valign="center" />
-                       <widget source="Frequency" render="Label" position="265,160" zPosition="1" size="240,40" font="Regular;18" halign="center" valign="center" />
-                       <widget source="Encryption key" render="Label" position="265,200" zPosition="1" size="240,30" font="Regular;18" halign="center" valign="center" />
-                       <widget source="BitRate" render="Label" position="265,220" zPosition="1" size="240,60" font="Regular;18" halign="center" valign="center" />
+                       <widget source="Frequency" render="Label" position="265,160" zPosition="1" size="240,30" font="Regular;18" halign="center" valign="center" />
+                       <widget source="Channel" render="Label" position="265,190" zPosition="1" size="240,30" font="Regular;18" halign="center" valign="center" />
+                       <widget source="Encryption key" render="Label" position="265,220" zPosition="1" size="240,30" font="Regular;18" halign="center" valign="center" />
+                       <widget source="BitRate" render="Label" position="265,250" zPosition="1" size="240,30" font="Regular;18" halign="center" valign="center" />
+                       <widget source="Status" render="Label" position="115,310" zPosition="1" size="300,30" font="Regular;18" halign="center" valign="center" />
                </screen>
                """
+
        def __init__(self, session, iface):
                Screen.__init__(self,session)
                HelpableScreen.__init__(self)
@@ -976,64 +934,88 @@ class WlanScanAp(Screen,HelpableScreen):
                {
                        "red": (self.close, _("exit")),
                        "green": (self.ok, "select AP"),
-                       "yellow": (self.restartScanAP, "restart scan AP"),
                        "blue": (self.startWlanConfig, "Edit Wireless settings"),
                })
 
-               self["menulist"] = MenuList(self.setApList)
+               self["aplist"] = MenuList(self.setApList)
                self["key_red"] = StaticText(_("Close"))
                self["key_green"] = StaticText(_("Select"))
                self["key_blue"] = StaticText(_("EditSetting"))
-               self["Address"] = StaticText(_("Scanning AP List.."))
-               self["ESSID"] = StaticText(_("Wait a moment"))
+               self["Status"] = StaticText(_(" "))
+               self["ESSID"] = StaticText(" ")
+               self["Address"] = StaticText(" ")
                self["Protocol"] = StaticText(" ")
                self["Frequency"] = StaticText(" ")
+               self["Channel"] = StaticText(" ")
                self["Encryption key"] = StaticText(" ")
                self["BitRate"] = StaticText(" ")
                self.oldInterfaceState = iNetwork.getAdapterAttribute(self.iface, "up")
-               self.getAplistTimer = eTimer()
-               self.getAplistTimer.callback.append(self.getApList)
+
+               self.startupTimer = eTimer()
+               self.startupTimer.callback.append(self.startup)
+
+               self.activateIfaceTimer = eTimer()
+               self.activateIfaceTimer.callback.append(self.activateIface)
+
+               self.updateStatusTimer = eTimer()
+               self.updateStatusTimer.callback.append(self.updateStatus)
+               
                self.scanAplistTimer = eTimer()
                self.scanAplistTimer.callback.append(self.scanApList)
-               self.emptyListMsgTimer = eTimer()
-               self.emptyListMsgTimer.callback.append(self.emptyListMsg)
+               
                self.apList = {}
                self.onClose.append(self.__onClose)
-               self.getAplistTimer.start(100,True)
+               self.onShown.append(lambda: self.startupTimer.start(10, True))
+
+       def startup(self):
+               if self.oldInterfaceState is not True:
+                       self["Status"].setText(("Please wait for activating interface..."))
+                       self.activateIfaceTimer.start(10, True)
+               else:
+                       self.updateStatusTimer.start(10, True)
+
+       def activateIface(self):
+               os_system("ifconfig "+self.iface+" up")
+               iNetwork.setAdapterAttribute(self.iface, "up", True)
+               self.updateStatusTimer.start(2000, True)
                
+
+       def updateStatus(self):
+               self["Status"].setText(("Please wait for scanning AP..."))
+               self.scanAplistTimer.stop()
+               self.scanAplistTimer.start(10, True)
+
+       def updateAPList(self):
+               self.updateStatusTimer.stop()
+               self.updateStatusTimer.start(8000, True)
+
        def left(self):
-               self["menulist"].pageUp()
+               self["aplist"].pageUp()
                self.displayApInfo()
        
        def right(self):
-               self["menulist"].pageDown()
+               self["aplist"].pageDown()
                self.displayApInfo()
 
        def up(self):
-               self["menulist"].up()
+               self["aplist"].up()
                self.displayApInfo()
                
        def down(self):
-               self["menulist"].down()
+               self["aplist"].down()
                self.displayApInfo()
 
        def ok(self):
-               global selectap
-               if self["menulist"].getCurrent() is not None:
-                       selectAp=self["menulist"].getCurrent()[0]
-                       selectap = selectAp
+               global ESSID_SELECTED_IN_APLIST
+               if self["aplist"].getCurrent() is not None:
+                       ESSID_SELECTED_IN_APLIST = self["aplist"].getCurrent()[0]
                self.close()
 
-       def startWlanConfig(self):
-               if self["menulist"].getCurrent() is not None:
-                       selectAp=self["menulist"].getCurrent()[0]
-                       self.close(selectAp)
-
-       def getApList(self):
-               self.apList = {}
-               self.setApList = []
-               self.configurationmsg = self.session.open(MessageBox, _("Please wait for scanning AP..."), type = MessageBox.TYPE_INFO, enable_input = False)
-               self.scanAplistTimer.start(100,True)
+       def startWlanConfig(self): # key blue
+               global ESSID_SELECTED_IN_APLIST
+               if self["aplist"].getCurrent() is not None:
+                       ESSID_SELECTED_IN_APLIST = self["aplist"].getCurrent()[0]
+                       self.close(True)
 
        def getScanResult(self, wirelessObj):
                Iwscanresult  = None
@@ -1044,80 +1026,96 @@ class WlanScanAp(Screen,HelpableScreen):
                return Iwscanresult
 
        def scanApList(self):
-               if self.oldInterfaceState is not True:
-                       os_system("ifconfig "+self.iface+" up")
-                       iNetwork.setAdapterAttribute(self.iface, "up", True)
+               self.apList = {}
+               self.setApList = []
+
                wirelessObj = Wireless(self.iface)
                Iwscanresult=self.getScanResult(wirelessObj)
-               if Iwscanresult is None or len(Iwscanresult.aplist) == 0 :
-                       import time
-                       time.sleep(1.5)
-                       Iwscanresult=self.getScanResult(wirelessObj)
-               self.configurationmsg.close(True)
-               if Iwscanresult is not None and len(Iwscanresult.aplist) != 0:
+
+               if Iwscanresult is None or len(Iwscanresult.aplist) == 0:
+                       self["Status"].setText(("NO AP detected"))
+                       return
+
+               try:
                        (num_channels, frequencies) = wirelessObj.getChannelInfo()
-                       index = 1
-                       for ap in Iwscanresult:
-                               self.apList[index] = {}
-                               self.apList[index]["Address"] = ap.bssid
-                               if len(ap.essid) == 0:
-                                       self.apList[index]["ESSID"] = "<hidden ESSID>"
-                               else:
-                                       self.apList[index]["ESSID"] = ap.essid
-                                       self.setApList.append( (self.apList[index]["ESSID"], index) )
-                               self.apList[index]["Protocol"] = ap.protocol
-                               self.apList[index]["Frequency"] = wirelessObj._formatFrequency(ap.frequency.getFrequency())
-                               try:
-                                       self.apList[index]["Channel"] = frequencies.index(self.apList[index]["Frequency"] + 1)
-                               except:
-                                       self.apList[index]["Channel"] = "Unknown"
-
-                               self.apList[index]["Quality"] = "%s/%s" % \
-                                       ( ap.quality.quality, wirelessObj.getQualityMax().quality )
-                               self.apList[index]["Signal Level"] = "%s/%s" % \
-                                       ( ap.quality.getSignallevel(), "100" )
-                               self.apList[index]["Noise Level"] = "%s/%s" % \
-                                       ( ap.quality.getNoiselevel(), "100" )
+               except:
+                       pass
+
+               index = 1
+               for ap in Iwscanresult:
+                       self.apList[index] = {}
+                       self.apList[index]["Address"] = ap.bssid
+                       if len(ap.essid) == 0:
+                               self.apList[index]["ESSID"] = None
+                       else:
+                               self.apList[index]["ESSID"] = ap.essid
+
+                       self.apList[index]["Protocol"] = ap.protocol
+                       self.apList[index]["Frequency"] = wirelessObj._formatFrequency(ap.frequency.getFrequency())
+                       try:
+                               self.apList[index]["Channel"] = frequencies.index(self.apList[index]["Frequency"]) + 1
+                       except:
+                               self.apList[index]["Channel"] = "Unknown"
+
+                       self.apList[index]["Quality"] = "%s/%s" % \
+                               ( ap.quality.quality, wirelessObj.getQualityMax().quality )
+                       self.apList[index]["Signal Level"] = "%s/%s" % \
+                               ( ap.quality.getSignallevel(), "100" )
+                       self.apList[index]["Noise Level"] = "%s/%s" % \
+                               ( ap.quality.getNoiselevel(), "100" )
 
 # get encryption key on/off
-                               key_status = "Unknown"
-                               if (ap.encode.flags & pythonwifi.flags.IW_ENCODE_DISABLED):
-                                       key_status = "off"
-                               elif (ap.encode.flags & pythonwifi.flags.IW_ENCODE_NOKEY):
-                                       if (ap.encode.length <= 0):
-                                               key_status = "on"
-                               self.apList[index]["Encryption key"] = key_status
-                               self.apList[index]["BitRate"] = wirelessObj._formatBitrate(ap.rate[-1][-1])
-                               index += 1
+                       key_status = "Unknown"
+                       if (ap.encode.flags & wifi_flags.IW_ENCODE_DISABLED):
+                               key_status = "off"
+                       elif (ap.encode.flags & wifi_flags.IW_ENCODE_NOKEY):
+                               if (ap.encode.length <= 0):
+                                       key_status = "on"
+                       self.apList[index]["Encryption key"] = key_status
+
+# get bitrate
+                       if len(ap.rate) > 0:
+                               if len(ap.rate[0]) > 0:
+                                       self.apList[index]["BitRate"] = wirelessObj._formatBitrate(ap.rate[0][0])
+                       else:
+                               self.apList[index]["BitRate"] = ""
+                       index += 1
+
 #              print self.apList
-#              print self.setApList
-               self.displayApInfo()
-               if len(self.apList) == 0:
-                       self.emptyListMsgTimer.start(100,True)
 
-       def displayApInfo(self):
-               if len(self.apList) >0:
-                       self["menulist"].setList(self.setApList)
-                       if self["menulist"].getCurrent() is not None:
-                               index = self["menulist"].getCurrent()[1]
-                               for key in ["Address", "ESSID", "Protocol", "Frequency", "Encryption key", "BitRate"]:
-                                       if self.apList[index].has_key(key) and self.apList[index][key] is not None:
-                                               self[key].setText((key+":  "+self.apList[index][key]))
-                                       else:
-                                               self[key].setText((key+": None"))
+               # update menu list
+               ap_index = 0
+               for (ap_index, ap_info) in self.apList.items():
+                       essid = ap_info.get("ESSID", None)
+                       if essid is None:
+                               global SHOW_HIDDEN_NETWORK
+                               if SHOW_HIDDEN_NETWORK:
+                                       essid = "# Hidden Network"
+                               else:
+                                       continue
+                       self.setApList.append( (essid, int(ap_index)) )
+
+               self["aplist"].setList(self.setApList)
+#              print "menu aplist : ", self.setApList
+               self["Status"].setText(("%d AP detected" % len(self.setApList)))
+               self.displayApInfo()
 
-       def emptyListMsg(self):
-               self.session.open(MessageBox, _("No AP detected."), type = MessageBox.TYPE_INFO, timeout = 10)
-               self["Address"].setText(_("No AP detected."))
-               self["ESSID"].setText(_(""))
+               self.updateAPList()
 
-       def restartScanAP(self):
-               self.getAplistTimer.start(100,True)
+       def displayApInfo(self):
+               if self["aplist"].getCurrent() is not None:
+                       index = self["aplist"].getCurrent()[1]
+                       for key in ["Address", "ESSID", "Protocol", "Frequency", "Encryption key", "BitRate", "Channel"]:
+                               if self.apList[index].has_key(key) and self.apList[index][key] is not None:
+                                       value = str(self.apList[index][key])
+                               else:
+                                       value = "None"
+                               self[key].setText(( "%s:  %s" % (key, value) )) 
 
        def __onClose(self):
-               if self.oldInterfaceState is False:
+               if self.oldInterfaceState is not True:
+                       os_system("ifconfig "+self.iface+" down")
                        iNetwork.setAdapterAttribute(self.iface, "up", False)
-                       iNetwork.deactivateInterface(self.iface)
 
 class NetworkAdapterTest(Screen):
        def __init__(self, session,iface):
@@ -1377,7 +1375,7 @@ class NetworkAdapterTest(Screen):
                        self["key_red"].setText(_("Back"))
                if self.activebutton == 6: # Edit Settings
                        self.cleanup()
-                       self.session.open(WlanConfig,self.iface)
+                       self.session.open(WlanConfig, self.iface)
                        self["shortcuts"].setEnabled(True)              
                        self["infoshortcuts"].setEnabled(False)
 
index ed8acf6..4145722 100755 (executable)
@@ -45,7 +45,6 @@ class InfoBar(InfoBarBase, InfoBarShowHide,
                                "showMovies": (self.showMovies, _("Play recorded movies...")),
                                "showRadio": (self.showRadio, _("Show the radio player...")),
                                "showTv": (self.showTv, _("Show the tv player...")),
-                               #       ikseong action for subtitle hotkey
                                "showSubtitle":(self.showSubtitle, _("Show the Subtitle...")),
                        }, prio=2)
                
@@ -125,7 +124,6 @@ class InfoBar(InfoBarBase, InfoBarShowHide,
                if service is not None:
                        self.session.open(MoviePlayer, service)
 
-       #       ikseong action for subtitle hotkey
        def showSubtitle(self):
                from Screens.Subtitles import Subtitles
                self.session.open(Subtitles)
@@ -145,7 +143,6 @@ class MoviePlayer(InfoBarBase, InfoBarShowHide, \
                
                self["actions"] = HelpableActionMap(self, "MoviePlayerActions",
                        {
-                               #       ikseong action for subtitle hotkey
                                "showSubtitle":(self.showSubtitle, _("Show the Subtitle...")),
                                "leavePlayer": (self.leavePlayer, _("leave movie player..."))
                        })
@@ -251,8 +248,7 @@ class MoviePlayer(InfoBarBase, InfoBarShowHide, \
                        self.returning = False
                elif self.returning:
                        self.close()
-                       
-       #       ikseong action for subtitle hotkey
+
        def showSubtitle(self):
                from Screens.Subtitles import Subtitles
                self.session.open(Subtitles)
index 3d78d6b..80cc196 100755 (executable)
@@ -1654,7 +1654,7 @@ class InfoBarInstantRecord:
                dir = preferredInstantRecordPath()
                if not dir or not fileExists(dir, 'w'):
                        dir = defaultMoviePath()
-#      ikseong
+
                if not fileExists("/hdd", 0):
                        print "not found /hdd"
                        system("ln -s /media/hdd /hdd")
index c85bf42..f60852e 100755 (executable)
@@ -1,7 +1,6 @@
 from Screen import Screen
 
-#      ikseong
-from Components.ActionMap import ActionMap,NumberActionMap
+from Components.ActionMap import ActionMap
 from Components.Language import language
 from Components.config import config
 from Components.Sources.List import List
@@ -24,8 +23,6 @@ def LanguageEntryComponent(file, name, index):
                png = LoadPixmap(resolveFilename(SCOPE_CURRENT_SKIN, "countries/missing.png"))
        res = (index, name, png)
        return res
-#      ikseong
-from Plugins.SystemPlugins.FactoryTest.plugin import FactoryTest
 
 class LanguageSelection(Screen):
        def __init__(self, session):
@@ -39,32 +36,11 @@ class LanguageSelection(Screen):
 
                self.updateList()
                self.onLayoutFinish.append(self.selectActiveLanguage)
-#      ikseong
-               self["actions"] = NumberActionMap(["OkCancelActions","NumberActions"], 
+               self["actions"] = ActionMap(["OkCancelActions"],
                {
                        "ok": self.save,
                        "cancel": self.cancel,
-                       "1": self.keyNumberGlobal,
-                       "2": self.keyNumberGlobal,
-                       "3": self.keyNumberGlobal,
-                       "4": self.keyNumberGlobal,
-                       "5": self.keyNumberGlobal,
-                       "6": self.keyNumberGlobal,
-                       "7": self.keyNumberGlobal,
-                       "8": self.keyNumberGlobal,
-                       "9": self.keyNumberGlobal,
-                       "0": self.keyNumberGlobal,
                }, -1)
-               self.testkey=0
-               
-#      ikseong
-       def keyNumberGlobal(self, number):
-               self.testkey = self.testkey * 10 + number
-               if self.testkey > 10000:
-                       self.testkey = self.testkey%10000
-               if self.testkey == 4599:
-                       self.session.open(FactoryTest)
-               print "testkey", self.testkey
 
        def selectActiveLanguage(self):
                activeLanguage = language.getActiveLanguage()
index 1305b62..4945df8 100755 (executable)
@@ -99,7 +99,6 @@ class SleepTimerEdit(Screen):
 
        def select(self):
                if self.status:
-#      ikseong
                        if self["input"].getText()=='':
                                self.session.nav.SleepTimer.clear()
                                self.session.openWithCallback(self.close, MessageBox, _("The sleep timer is invalid."), MessageBox.TYPE_INFO)
@@ -116,7 +115,6 @@ class SleepTimerEdit(Screen):
                        self.session.openWithCallback(self.close, MessageBox, _("The sleep timer has been disabled."), MessageBox.TYPE_INFO)
 
        def keyNumberGlobal(self, number):
-#      ikseong
                if self["input"].getText() == '' :
                        inputtime=0
                else:
index 8cabac4..e8cad4f 100755 (executable)
@@ -7,7 +7,6 @@ from enigma import iPlayableService
 
 from Tools.ISO639 import LanguageCodes
 
-#      ikseong for subtitle hotkey
 from Screens.InfoBar import InfoBar
 
 class Subtitles(Screen, ConfigListScreen):
@@ -22,13 +21,12 @@ class Subtitles(Screen, ConfigListScreen):
 
                self.list = []
                ConfigListScreen.__init__(self, self.list)
-#      ikseong for subtitle hotkey
                if self.session.infobar is None:        
                        if InfoBar.instance:
                                self.infobar = InfoBar.instance
                else:
                        self.infobar = self.session.infobar
-#
+
                self.fillList()
 
                self.__event_tracker = ServiceEventTracker(screen=self, eventmap=
index c06626e..40cceb9 100755 (executable)
@@ -15,9 +15,6 @@ from enigma import eTimer, eEnv
 from xml.sax import make_parser
 from xml.sax.handler import ContentHandler
 
-#      ikseong
-from Plugins.SystemPlugins.FactoryTest.plugin import FactoryTest
-
 class WizardSummary(Screen):
        skin = """
        <screen position="0,0" size="132,64">
@@ -196,10 +193,6 @@ class Wizard(Screen):
                self.timeoutTimer = eTimer()
                self.timeoutTimer.callback.append(self.timeoutCounterFired)
 
-               #       ikseong - for memory test
-               self.memorytestmode = 0
-               self.testkey = 0
-
                self["text"] = Label()
 
                if showConfig:
@@ -251,8 +244,6 @@ class Wizard(Screen):
                        "8": self.keyNumberGlobal,
                        "9": self.keyNumberGlobal,
                        "0": self.keyNumberGlobal,
-#      ikseong
-                       "test":self.testmode
                }, -1)
 
                self["VirtualKB"] = NumberActionMap(["VirtualKeyboardActions"],
@@ -393,23 +384,7 @@ class Wizard(Screen):
                                        self.configInstance.run()
                self.finished()
 
-#      ikseong
-       def testmode(self):
-               print "testmode ",self.memorytestmode
-               if self.memorytestmode == 0:
-                       self.memorytestmode = 1
-               else:
-                       self.memorytestmode = 0
-
        def keyNumberGlobal(self, number):
-               if self.memorytestmode == 1:
-                       self.testkey = self.testkey * 10 + number
-                       if self.testkey > 10000:
-                               self.testkey = self.testkey%10000
-                       if self.testkey == 4599:
-                               self.session.open(FactoryTest)
-                       print "testkey", self.testkey
-                       return
                if (self.wizard[self.currStep]["config"]["screen"] != None):
                        self.configInstance.keyNumberGlobal(number)
                elif (self.wizard[self.currStep]["config"]["type"] == "dynamic"):
index 00e0b4c..d51c21e 100755 (executable)
@@ -45,7 +45,6 @@ keyDescriptions = [{
                KEYIDS["KEY_EXIT"]: ("EXIT",),
                KEYIDS["KEY_STOP"]: ("TV", "SHIFT"),
                KEYIDS["KEY_RECORD"]: ("RECORD",),
-#      ikseong for subtitle hotkey
                KEYIDS["KEY_SUBTITLE"]: ("SUBTITLE",)
        },
        {
@@ -88,10 +87,7 @@ keyDescriptions = [{
                KEYIDS["KEY_9"]: ("9",),
                KEYIDS["KEY_EXIT"]: ("EXIT",),
                KEYIDS["KEY_STOP"]: ("TV", "SHIFT"),
-#      ikseong
-#              KEYIDS["KEY_RECORD"]: ("RADIO", "SHIFT"),
                KEYIDS["KEY_RECORD"]: ("RECORD",),
-#      ikseong for subtitle hotkey
                KEYIDS["KEY_SUBTITLE"]: ("SUBTITLE",)
        }
 ]
index f55939e..82bd73d 100644 (file)
@@ -18,7 +18,7 @@
 
 /************************************************/
 
-#ifdef BUILD_VUPLUS /* ikseong  */
+#ifdef BUILD_VUPLUS
 #define CRASH_EMAILADDR "crashlog"
 #else
 #define CRASH_EMAILADDR "crashlog@dream-multimedia-tv.de"