From 94fe3586e6f67b83bc67293b81e787d224cda3b8 Mon Sep 17 00:00:00 2001 From: cuu Date: Thu, 5 Jul 2018 16:04:24 +0800 Subject: [PATCH 1/9] flash led1 when screen down --- sys.py/UI/counter_screen.py | 9 +++++--- sys.py/UI/main_screen.py | 2 +- sys.py/run.py | 43 +++++++++++++++++++++++++++++-------- 3 files changed, 41 insertions(+), 13 deletions(-) diff --git a/sys.py/UI/counter_screen.py b/sys.py/UI/counter_screen.py index 5e8cce1..d14d9cb 100644 --- a/sys.py/UI/counter_screen.py +++ b/sys.py/UI/counter_screen.py @@ -54,7 +54,8 @@ class CounterScreen(FullScreen): self.Draw() self.SwapAndShow() - + + """ if self._inter_counter == 2: commands.getstatusoutput("echo 0 > /proc/driver/led1") #turn off @@ -62,6 +63,7 @@ class CounterScreen(FullScreen): elif self._inter_counter == 7: commands.getstatusoutput("echo 1 > /proc/driver/led1") #turn on + """ return self._Counting @@ -72,7 +74,7 @@ class CounterScreen(FullScreen): self._Number = 10 self._Counting = True - self._GobjectIntervalId = gobject.timeout_add(100,self.GObjectInterval) +# self._GobjectIntervalId = gobject.timeout_add(100,self.GObjectInterval) def StopCounter(self): if self._Counting == False: @@ -81,10 +83,11 @@ class CounterScreen(FullScreen): self._Number = 10 commands.getstatusoutput("echo 0 > /proc/driver/led1") + """ if self._GobjectIntervalId != -1: gobject.source_remove(self._GobjectIntervalId) self._GobjectIntervalId = -1 - + """ 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/run.py b/sys.py/run.py index 1d04191..b335135 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,18 +77,35 @@ def gobject_loop(): gobject_main_loop.quit() exit(-1) +def GobjectFlashLed1(main_screen): + gobject_flash_led1_counter+=1 + if gobject_flash_led1_counter == 2: + commands.getstatusoutput("echo 0 > /proc/driver/led1") + #turn off + + elif gobject_flash_led1_counter == 7: + commands.getstatusoutput("echo 1 > /proc/driver/led1") + + return True + + def RestoreLastBackLightBrightness(main_screen): global last_brt,passout_time_stage - - main_screen._CounterScreen.StopCounter() - - passout_time_stage = 0 - main_screen._TitleBar._InLowBackLight = -1 - if last_brt == -1: return + if gobject_flash_led1 != -1: + gobject.source_remove(GobjectFlashLed1) + gobject_flash_led1 = -1 + + main_screen._CounterScreen.StopCounter() + main_screen.Draw() + main_screen.SwapAndShow() + + passout_time_stage = 0 + main_screen._TitleBar._InLowBackLight = -1 + try: f = open(config.BackLight,"r+") except IOError: @@ -106,7 +127,7 @@ def RestoreLastBackLightBrightness(main_screen): return 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 +163,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 +175,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(100,GobjectFlashLed1,main_screen) + everytime_keydown = cur_time elif cur_time - everytime_keydown > time_3 and passout_time_stage == 2: From 98c95c14cedf9b0c82fa26212d3934eeb56420c3 Mon Sep 17 00:00:00 2001 From: cuu Date: Thu, 5 Jul 2018 16:05:42 +0800 Subject: [PATCH 2/9] ... --- sys.py/run.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sys.py/run.py b/sys.py/run.py index b335135..b4af71d 100644 --- a/sys.py/run.py +++ b/sys.py/run.py @@ -92,6 +92,10 @@ def GobjectFlashLed1(main_screen): def RestoreLastBackLightBrightness(main_screen): global last_brt,passout_time_stage + + passout_time_stage = 0 + main_screen._TitleBar._InLowBackLight = -1 + if last_brt == -1: return @@ -103,8 +107,6 @@ def RestoreLastBackLightBrightness(main_screen): main_screen.Draw() main_screen.SwapAndShow() - passout_time_stage = 0 - main_screen._TitleBar._InLowBackLight = -1 try: f = open(config.BackLight,"r+") From 7b58c79293a0702bf1b30b933ecf305b61831ccb Mon Sep 17 00:00:00 2001 From: cuu Date: Thu, 5 Jul 2018 16:33:40 +0800 Subject: [PATCH 3/9] counter down bug fix --- sys.py/UI/counter_screen.py | 12 +++++++----- sys.py/UI/title_bar.py | 4 ++-- sys.py/run.py | 37 ++++++++++++++++++++----------------- 3 files changed, 29 insertions(+), 24 deletions(-) diff --git a/sys.py/UI/counter_screen.py b/sys.py/UI/counter_screen.py index d14d9cb..6321b66 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 @@ -74,7 +76,7 @@ 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: @@ -83,11 +85,11 @@ class CounterScreen(FullScreen): self._Number = 10 commands.getstatusoutput("echo 0 > /proc/driver/led1") - """ + if self._GobjectIntervalId != -1: gobject.source_remove(self._GobjectIntervalId) self._GobjectIntervalId = -1 - """ + def Init(self): self._CanvasHWND = pygame.Surface((self._Width,self._Height)) self._TopLabel = Label() 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 b4af71d..6a4bcb0 100644 --- a/sys.py/run.py +++ b/sys.py/run.py @@ -78,6 +78,7 @@ def gobject_loop(): exit(-1) def GobjectFlashLed1(main_screen): + global gobject_flash_led1_counter gobject_flash_led1_counter+=1 if gobject_flash_led1_counter == 2: @@ -87,26 +88,30 @@ def GobjectFlashLed1(main_screen): elif gobject_flash_led1_counter == 7: commands.getstatusoutput("echo 1 > /proc/driver/led1") + if gobject_flash_led1_counter == 10: + gobject_flash_led1_counter = 0 + return True def RestoreLastBackLightBrightness(main_screen): - global last_brt,passout_time_stage + global last_brt,passout_time_stage,gobject_flash_led1 passout_time_stage = 0 main_screen._TitleBar._InLowBackLight = -1 - if last_brt == -1: - return - if gobject_flash_led1 != -1: - gobject.source_remove(GobjectFlashLed1) + gobject.source_remove(gobject_flash_led1) gobject_flash_led1 = -1 + + if main_screen._CounterScreen._Counting==True: + main_screen._CounterScreen.StopCounter() + main_screen.Draw() + main_screen.SwapAndShow() + return False - main_screen._CounterScreen.StopCounter() - main_screen.Draw() - main_screen.SwapAndShow() - + if last_brt == -1: + return True try: f = open(config.BackLight,"r+") @@ -126,7 +131,9 @@ def RestoreLastBackLightBrightness(main_screen): last_brt = -1 else: f.close() - return + return True + + return True def InspectionTeam(main_screen): global everytime_keydown,last_brt,passout_time_stage,gobject_flash_led1 @@ -229,10 +236,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) @@ -255,8 +259,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) @@ -282,7 +284,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) From e087845724839be5bcc39a8ddc4c32c75542b1cc Mon Sep 17 00:00:00 2001 From: cuu Date: Thu, 5 Jul 2018 16:40:32 +0800 Subject: [PATCH 4/9] turn off led1 after stop counter --- sys.py/UI/counter_screen.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sys.py/UI/counter_screen.py b/sys.py/UI/counter_screen.py index 6321b66..9a768b0 100644 --- a/sys.py/UI/counter_screen.py +++ b/sys.py/UI/counter_screen.py @@ -85,10 +85,12 @@ class CounterScreen(FullScreen): self._Number = 10 commands.getstatusoutput("echo 0 > /proc/driver/led1") - if self._GobjectIntervalId != -1: gobject.source_remove(self._GobjectIntervalId) self._GobjectIntervalId = -1 + + commands.getstatusoutput("echo 0 > /proc/driver/led1") + commands.getstatusoutput("echo 0 > /proc/driver/led1") def Init(self): self._CanvasHWND = pygame.Surface((self._Width,self._Height)) From a9e87bb1dc4f56a264bd185f20574d5be2938641 Mon Sep 17 00:00:00 2001 From: cuu Date: Thu, 5 Jul 2018 16:43:09 +0800 Subject: [PATCH 5/9] slow down freq of led1 --- sys.py/run.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys.py/run.py b/sys.py/run.py index 6a4bcb0..4d85e86 100644 --- a/sys.py/run.py +++ b/sys.py/run.py @@ -191,7 +191,7 @@ def InspectionTeam(main_screen): if time_3 != 0: passout_time_stage = 2 # next - gobject_flash_led1 = gobject.timeout_add(100,GobjectFlashLed1,main_screen) + gobject_flash_led1 = gobject.timeout_add(200,GobjectFlashLed1,main_screen) everytime_keydown = cur_time From 6d0190aa15342fa4b164a65f2243293f7ae566ff Mon Sep 17 00:00:00 2001 From: cuu Date: Thu, 5 Jul 2018 16:48:34 +0800 Subject: [PATCH 6/9] reduce light time --- sys.py/run.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sys.py/run.py b/sys.py/run.py index 4d85e86..a0757e2 100644 --- a/sys.py/run.py +++ b/sys.py/run.py @@ -82,11 +82,11 @@ def GobjectFlashLed1(main_screen): gobject_flash_led1_counter+=1 if gobject_flash_led1_counter == 2: - commands.getstatusoutput("echo 0 > /proc/driver/led1") + commands.getstatusoutput("echo 1 > /proc/driver/led1") #turn off - elif gobject_flash_led1_counter == 7: - commands.getstatusoutput("echo 1 > /proc/driver/led1") + elif gobject_flash_led1_counter == 4: + commands.getstatusoutput("echo 0 > /proc/driver/led1") if gobject_flash_led1_counter == 10: gobject_flash_led1_counter = 0 From bf58f36be93f509def7c387e960fc7fa02242ad3 Mon Sep 17 00:00:00 2001 From: cuu Date: Thu, 5 Jul 2018 16:50:54 +0800 Subject: [PATCH 7/9] ... --- sys.py/UI/counter_screen.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys.py/UI/counter_screen.py b/sys.py/UI/counter_screen.py index 9a768b0..c6cd867 100644 --- a/sys.py/UI/counter_screen.py +++ b/sys.py/UI/counter_screen.py @@ -89,7 +89,8 @@ class CounterScreen(FullScreen): gobject.source_remove(self._GobjectIntervalId) self._GobjectIntervalId = -1 - commands.getstatusoutput("echo 0 > /proc/driver/led1") + commands.getstatusoutput("echo 0 > /proc/driver/led1") + pygame.time.delay(800) commands.getstatusoutput("echo 0 > /proc/driver/led1") def Init(self): From 15f4839a4577e65cbc16460723b6ee24117a481d Mon Sep 17 00:00:00 2001 From: cuu Date: Thu, 5 Jul 2018 17:08:07 +0800 Subject: [PATCH 8/9] ... --- sys.py/UI/counter_screen.py | 15 ++++++++++++++- sys.py/run.py | 12 ++++++------ 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/sys.py/UI/counter_screen.py b/sys.py/UI/counter_screen.py index c6cd867..335d6ff 100644 --- a/sys.py/UI/counter_screen.py +++ b/sys.py/UI/counter_screen.py @@ -91,8 +91,21 @@ class CounterScreen(FullScreen): commands.getstatusoutput("echo 0 > /proc/driver/led1") pygame.time.delay(800) - commands.getstatusoutput("echo 0 > /proc/driver/led1") + commands.getstatusoutput("echo 0 > /proc/driver/led1") + try: + f = open("/proc/driver/led1","w") + except IOError: + print( "RestoreLastBackLightBrightness open %s failed, try to adjust brightness in Settings" % config.BackLight) + pass + else: + with f: + f.seek(0) + f.write("0") + f.truncate() + f.close() + + def Init(self): self._CanvasHWND = pygame.Surface((self._Width,self._Height)) self._TopLabel = Label() diff --git a/sys.py/run.py b/sys.py/run.py index a0757e2..da525b7 100644 --- a/sys.py/run.py +++ b/sys.py/run.py @@ -104,11 +104,6 @@ def RestoreLastBackLightBrightness(main_screen): gobject.source_remove(gobject_flash_led1) gobject_flash_led1 = -1 - if main_screen._CounterScreen._Counting==True: - main_screen._CounterScreen.StopCounter() - main_screen.Draw() - main_screen.SwapAndShow() - return False if last_brt == -1: return True @@ -131,8 +126,13 @@ def RestoreLastBackLightBrightness(main_screen): last_brt = -1 else: f.close() - return True + if main_screen._CounterScreen._Counting==True: + main_screen._CounterScreen.StopCounter() + main_screen.Draw() + main_screen.SwapAndShow() + return False + return True def InspectionTeam(main_screen): From 2a482252d6f4ee6a5f14e5914d9e9a181ad7ded7 Mon Sep 17 00:00:00 2001 From: cuu Date: Thu, 5 Jul 2018 17:14:03 +0800 Subject: [PATCH 9/9] ... --- sys.py/UI/counter_screen.py | 27 +----------------------- sys.py/run.py | 41 +++++++++++++++++++++++++++++++++---- 2 files changed, 38 insertions(+), 30 deletions(-) diff --git a/sys.py/UI/counter_screen.py b/sys.py/UI/counter_screen.py index 335d6ff..623168f 100644 --- a/sys.py/UI/counter_screen.py +++ b/sys.py/UI/counter_screen.py @@ -57,15 +57,6 @@ class CounterScreen(FullScreen): 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 @@ -83,28 +74,12 @@ class CounterScreen(FullScreen): 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 - - commands.getstatusoutput("echo 0 > /proc/driver/led1") - pygame.time.delay(800) - commands.getstatusoutput("echo 0 > /proc/driver/led1") - try: - f = open("/proc/driver/led1","w") - except IOError: - print( "RestoreLastBackLightBrightness open %s failed, try to adjust brightness in Settings" % config.BackLight) - pass - else: - with f: - f.seek(0) - f.write("0") - f.truncate() - f.close() - + return def Init(self): self._CanvasHWND = pygame.Surface((self._Width,self._Height)) diff --git a/sys.py/run.py b/sys.py/run.py index da525b7..e252cdf 100644 --- a/sys.py/run.py +++ b/sys.py/run.py @@ -82,12 +82,32 @@ def GobjectFlashLed1(main_screen): gobject_flash_led1_counter+=1 if gobject_flash_led1_counter == 2: - commands.getstatusoutput("echo 1 > /proc/driver/led1") - #turn off + 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: - commands.getstatusoutput("echo 0 > /proc/driver/led1") - + 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 @@ -127,6 +147,19 @@ def RestoreLastBackLightBrightness(main_screen): else: f.close() + 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()