Merge pull request #43 from cuu/master

when the screen is off, the led1 flashes
This commit is contained in:
dphys 2018-07-05 17:25:09 +08:00 committed by GitHub
commit 90f0374403
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 89 additions and 30 deletions

View File

@ -37,14 +37,16 @@ class CounterScreen(FullScreen):
if self._Number == 0: if self._Number == 0:
self._Counting = False self._Counting = False
print("do the real shutdown") print("do the real shutdown")
if config.CurKeySet != "PC": if config.CurKeySet != "PC":
cmdpath = "feh --bg-center gameshell/wallpaper/seeyou.png;" cmdpath = "feh --bg-center gameshell/wallpaper/seeyou.png;"
cmdpath += "sleep 3;" cmdpath += "sleep 3;"
cmdpath += "sudo halt -p" cmdpath += "sudo halt -p"
pygame.event.post( pygame.event.Event(RUNSYS, message=cmdpath)) pygame.event.post( pygame.event.Event(RUNSYS, message=cmdpath))\
return False return False
if self._inter_counter >= 10: if self._inter_counter >=2:
self._Number -= 1 self._Number -= 1
if self._Number < 0: if self._Number < 0:
self._Number = 0 self._Number = 0
@ -54,14 +56,7 @@ class CounterScreen(FullScreen):
self.Draw() self.Draw()
self.SwapAndShow() 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 return self._Counting
@ -72,19 +67,20 @@ class CounterScreen(FullScreen):
self._Number = 10 self._Number = 10
self._Counting = True self._Counting = True
self._GobjectIntervalId = gobject.timeout_add(100,self.GObjectInterval) self._GobjectIntervalId = gobject.timeout_add(500,self.GObjectInterval)
def StopCounter(self): def StopCounter(self):
if self._Counting == False: if self._Counting == False:
return return
self._Counting = False self._Counting = False
self._Number = 10 self._Number = 10
commands.getstatusoutput("echo 0 > /proc/driver/led1")
if self._GobjectIntervalId != -1: if self._GobjectIntervalId != -1:
gobject.source_remove(self._GobjectIntervalId) gobject.source_remove(self._GobjectIntervalId)
self._GobjectIntervalId = -1 self._GobjectIntervalId = -1
return
def Init(self): def Init(self):
self._CanvasHWND = pygame.Surface((self._Width,self._Height)) self._CanvasHWND = pygame.Surface((self._Width,self._Height))
self._TopLabel = Label() self._TopLabel = Label()

View File

@ -125,7 +125,7 @@ class MainScreen(object):
_PosX = 0 _PosX = 0
_PosY = TitleBar._BarHeight+1 _PosY = TitleBar._BarHeight+1
_Width = Width _Width = Width
_Height = Height -FootBar._BarHeight -TitleBar._BarHeight-1 _Height = Height -FootBar._BarHeight -TitleBar._BarHeight
_MyPageStack = None _MyPageStack = None
_CurrentPage = None # pointer to the current displaying Page Class _CurrentPage = None # pointer to the current displaying Page Class
_CanvasHWND = None _CanvasHWND = None

View File

@ -59,7 +59,7 @@ class TitleBar:
self.SyncSoundVolume() self.SyncSoundVolume()
self.UpdateWifiStrength() self.UpdateWifiStrength()
SwapAndShow() SwapAndShow()
print("TitleBar Gobjectroundrobin") # print("TitleBar Gobjectroundrobin")
elif self._InLowBackLight >= 0: elif self._InLowBackLight >= 0:
self._InLowBackLight+=1 self._InLowBackLight+=1
if self._InLowBackLight > 10: if self._InLowBackLight > 10:
@ -122,7 +122,7 @@ class TitleBar:
f = open(Battery) f = open(Battery)
except IOError: except IOError:
self._Icons["battery"] = self._Icons["battery_unknown"] self._Icons["battery"] = self._Icons["battery_unknown"]
print("CheckBatteryStat open failed") # print("CheckBatteryStat open failed")
return False return False
else: else:
with f: with f:

View File

@ -3,6 +3,7 @@
import dbus import dbus
import dbus.service import dbus.service
import sys import sys
import commands
from wicd import misc from wicd import misc
##misc.to_bool ##misc.to_bool
##misc.misc.noneToString ##misc.misc.noneToString
@ -63,6 +64,9 @@ passout_time_stage = 0
last_brt = -1 last_brt = -1
gobject_flash_led1 = -1
gobject_flash_led1_counter = 0
def gobject_loop(): def gobject_loop():
""" """
here to receive dbus signal here to receive dbus signal
@ -73,17 +77,56 @@ def gobject_loop():
gobject_main_loop.quit() gobject_main_loop.quit()
exit(-1) 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): def RestoreLastBackLightBrightness(main_screen):
global last_brt,passout_time_stage global last_brt,passout_time_stage,gobject_flash_led1
main_screen._CounterScreen.StopCounter()
passout_time_stage = 0 passout_time_stage = 0
main_screen._TitleBar._InLowBackLight = -1 main_screen._TitleBar._InLowBackLight = -1
if gobject_flash_led1 != -1:
gobject.source_remove(gobject_flash_led1)
gobject_flash_led1 = -1
if last_brt == -1: if last_brt == -1:
return return True
try: try:
f = open(config.BackLight,"r+") f = open(config.BackLight,"r+")
@ -103,10 +146,30 @@ def RestoreLastBackLightBrightness(main_screen):
last_brt = -1 last_brt = -1
else: else:
f.close() 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): 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() cur_time = time.time()
time_1 = config.PowerLevels[config.PowerLevel][0] 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: elif cur_time - everytime_keydown > time_2 and passout_time_stage == 1:
print("timeout, close screen %d" % int(cur_time - everytime_keydown)) print("timeout, close screen %d" % int(cur_time - everytime_keydown))
try: try:
f = open(config.BackLight,"r+") f = open(config.BackLight,"r+")
except IOError: except IOError:
@ -154,11 +217,15 @@ def InspectionTeam(main_screen):
f.write(str(brt)) f.write(str(brt))
f.truncate() f.truncate()
f.close() f.close()
main_screen._TitleBar._InLowBackLight = 0 main_screen._TitleBar._InLowBackLight = 0
if time_3 != 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 everytime_keydown = cur_time
elif cur_time - everytime_keydown > time_3 and passout_time_stage == 2: 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() main_screen.SwapAndShow()
pygame.event.clear(GMEVT) pygame.event.clear(GMEVT)
return return
if event.type == RUNEVT: if event.type == RUNEVT:
everytime_keydown = time.time()
RestoreLastBackLightBrightness(main_screen)
if config.DontLeave==True: if config.DontLeave==True:
os.chdir(GetExePath()) os.chdir(GetExePath())
os.system( "/bin/sh -c "+event.message) os.system( "/bin/sh -c "+event.message)
@ -228,8 +292,6 @@ def event_process(event,main_screen):
return return
if event.type == RUNSYS: if event.type == RUNSYS:
everytime_keydown = time.time()
RestoreLastBackLightBrightness(main_screen)
if config.DontLeave==True: if config.DontLeave==True:
os.chdir(GetExePath()) os.chdir(GetExePath())
os.system( "/bin/sh -c "+event.message) os.system( "/bin/sh -c "+event.message)
@ -255,7 +317,8 @@ def event_process(event,main_screen):
return return
if event.type == pygame.KEYDOWN: if event.type == pygame.KEYDOWN:
everytime_keydown = time.time() everytime_keydown = time.time()
RestoreLastBackLightBrightness(main_screen) if RestoreLastBackLightBrightness(main_screen) == False:
return
########################################################### ###########################################################
if event.key == pygame.K_q: if event.key == pygame.K_q:
on_exit_cb = getattr(main_screen,"OnExitCb",None) on_exit_cb = getattr(main_screen,"OnExitCb",None)