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:
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()

View File

@ -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

View File

@ -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:

View File

@ -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)