diff --git a/sys.py/UI/counter_screen.py b/sys.py/UI/counter_screen.py index 5e8cce1..623168f 100644 --- a/sys.py/UI/counter_screen.py +++ b/sys.py/UI/counter_screen.py @@ -37,14 +37,16 @@ class CounterScreen(FullScreen): if self._Number == 0: self._Counting = False print("do the real shutdown") + if config.CurKeySet != "PC": cmdpath = "feh --bg-center gameshell/wallpaper/seeyou.png;" cmdpath += "sleep 3;" cmdpath += "sudo halt -p" - pygame.event.post( pygame.event.Event(RUNSYS, message=cmdpath)) + pygame.event.post( pygame.event.Event(RUNSYS, message=cmdpath))\ + return False - if self._inter_counter >= 10: + if self._inter_counter >=2: self._Number -= 1 if self._Number < 0: self._Number = 0 @@ -54,14 +56,7 @@ class CounterScreen(FullScreen): self.Draw() self.SwapAndShow() - - if self._inter_counter == 2: - commands.getstatusoutput("echo 0 > /proc/driver/led1") - #turn off - elif self._inter_counter == 7: - commands.getstatusoutput("echo 1 > /proc/driver/led1") - #turn on return self._Counting @@ -72,19 +67,20 @@ class CounterScreen(FullScreen): self._Number = 10 self._Counting = True - self._GobjectIntervalId = gobject.timeout_add(100,self.GObjectInterval) + self._GobjectIntervalId = gobject.timeout_add(500,self.GObjectInterval) def StopCounter(self): if self._Counting == False: return self._Counting = False self._Number = 10 - commands.getstatusoutput("echo 0 > /proc/driver/led1") if self._GobjectIntervalId != -1: gobject.source_remove(self._GobjectIntervalId) self._GobjectIntervalId = -1 - + + return + def Init(self): self._CanvasHWND = pygame.Surface((self._Width,self._Height)) self._TopLabel = Label() diff --git a/sys.py/UI/main_screen.py b/sys.py/UI/main_screen.py index 8c4e60d..a94b980 100644 --- a/sys.py/UI/main_screen.py +++ b/sys.py/UI/main_screen.py @@ -125,7 +125,7 @@ class MainScreen(object): _PosX = 0 _PosY = TitleBar._BarHeight+1 _Width = Width - _Height = Height -FootBar._BarHeight -TitleBar._BarHeight-1 + _Height = Height -FootBar._BarHeight -TitleBar._BarHeight _MyPageStack = None _CurrentPage = None # pointer to the current displaying Page Class _CanvasHWND = None diff --git a/sys.py/UI/title_bar.py b/sys.py/UI/title_bar.py index db61ba2..d8233aa 100644 --- a/sys.py/UI/title_bar.py +++ b/sys.py/UI/title_bar.py @@ -59,7 +59,7 @@ class TitleBar: self.SyncSoundVolume() self.UpdateWifiStrength() SwapAndShow() - print("TitleBar Gobjectroundrobin") +# print("TitleBar Gobjectroundrobin") elif self._InLowBackLight >= 0: self._InLowBackLight+=1 if self._InLowBackLight > 10: @@ -122,7 +122,7 @@ class TitleBar: f = open(Battery) except IOError: self._Icons["battery"] = self._Icons["battery_unknown"] - print("CheckBatteryStat open failed") +# print("CheckBatteryStat open failed") return False else: with f: diff --git a/sys.py/run.py b/sys.py/run.py index 1d04191..e252cdf 100644 --- a/sys.py/run.py +++ b/sys.py/run.py @@ -3,6 +3,7 @@ import dbus import dbus.service import sys +import commands from wicd import misc ##misc.to_bool ##misc.misc.noneToString @@ -63,6 +64,9 @@ passout_time_stage = 0 last_brt = -1 +gobject_flash_led1 = -1 +gobject_flash_led1_counter = 0 + def gobject_loop(): """ here to receive dbus signal @@ -73,17 +77,56 @@ def gobject_loop(): gobject_main_loop.quit() exit(-1) +def GobjectFlashLed1(main_screen): + global gobject_flash_led1_counter + gobject_flash_led1_counter+=1 + if gobject_flash_led1_counter == 2: + try: + f = open("/proc/driver/led1","w") + except IOError: + print( "open /proc/driver/led1 IOError") + pass + else: + with f: + f.seek(0) + f.write("1") + f.truncate() + f.close() + + + elif gobject_flash_led1_counter == 4: + try: + f = open("/proc/driver/led1","w") + except IOError: + print( "open /proc/driver/led1 IOError") + pass + else: + with f: + f.seek(0) + f.write("0") + f.truncate() + f.close() + + if gobject_flash_led1_counter == 10: + gobject_flash_led1_counter = 0 + + return True + + def RestoreLastBackLightBrightness(main_screen): - global last_brt,passout_time_stage - - main_screen._CounterScreen.StopCounter() + global last_brt,passout_time_stage,gobject_flash_led1 passout_time_stage = 0 main_screen._TitleBar._InLowBackLight = -1 + + if gobject_flash_led1 != -1: + gobject.source_remove(gobject_flash_led1) + gobject_flash_led1 = -1 + if last_brt == -1: - return + return True try: f = open(config.BackLight,"r+") @@ -103,10 +146,30 @@ def RestoreLastBackLightBrightness(main_screen): last_brt = -1 else: f.close() - return + + try: + f = open("/proc/driver/led1","w") + except IOError: + print( "open /proc/driver/led1 IOError") + pass + else: + with f: + f.seek(0) + f.write("0") + f.truncate() + f.close() + + + if main_screen._CounterScreen._Counting==True: + main_screen._CounterScreen.StopCounter() + main_screen.Draw() + main_screen.SwapAndShow() + return False + + return True def InspectionTeam(main_screen): - global everytime_keydown,last_brt,passout_time_stage + global everytime_keydown,last_brt,passout_time_stage,gobject_flash_led1 cur_time = time.time() time_1 = config.PowerLevels[config.PowerLevel][0] @@ -142,7 +205,7 @@ def InspectionTeam(main_screen): elif cur_time - everytime_keydown > time_2 and passout_time_stage == 1: print("timeout, close screen %d" % int(cur_time - everytime_keydown)) - + try: f = open(config.BackLight,"r+") except IOError: @@ -154,11 +217,15 @@ def InspectionTeam(main_screen): f.write(str(brt)) f.truncate() f.close() + main_screen._TitleBar._InLowBackLight = 0 if time_3 != 0: - passout_time_stage = 2 # next + passout_time_stage = 2 # next + + gobject_flash_led1 = gobject.timeout_add(200,GobjectFlashLed1,main_screen) + everytime_keydown = cur_time elif cur_time - everytime_keydown > time_3 and passout_time_stage == 2: @@ -202,10 +269,7 @@ def event_process(event,main_screen): main_screen.SwapAndShow() pygame.event.clear(GMEVT) return - if event.type == RUNEVT: - everytime_keydown = time.time() - RestoreLastBackLightBrightness(main_screen) - + if event.type == RUNEVT: if config.DontLeave==True: os.chdir(GetExePath()) os.system( "/bin/sh -c "+event.message) @@ -228,8 +292,6 @@ def event_process(event,main_screen): return if event.type == RUNSYS: - everytime_keydown = time.time() - RestoreLastBackLightBrightness(main_screen) if config.DontLeave==True: os.chdir(GetExePath()) os.system( "/bin/sh -c "+event.message) @@ -255,7 +317,8 @@ def event_process(event,main_screen): return if event.type == pygame.KEYDOWN: everytime_keydown = time.time() - RestoreLastBackLightBrightness(main_screen) + if RestoreLastBackLightBrightness(main_screen) == False: + return ########################################################### if event.key == pygame.K_q: on_exit_cb = getattr(main_screen,"OnExitCb",None)