[pkg-fso-commits] [SCM] FSO frameworkd Debian packaging branch, master, updated. milestone4-368-g700ab82

Michael 'Mickey' Lauer mickey at vanille-media.de
Mon Feb 2 18:51:42 UTC 2009


The following commit has been merged in the master branch:
commit d0ce96e0b1ebabb7891baa6be41267da881616e0
Author: Michael 'Mickey' Lauer <mickey at vanille-media.de>
Date:   Fri Dec 19 02:01:38 2008 +0100

    ousaged: check if we woke up due to battery low; trigger emergency shutdown if so

diff --git a/framework/subsystems/ousaged/generic.py b/framework/subsystems/ousaged/generic.py
index b51943c..c1b103a 100644
--- a/framework/subsystems/ousaged/generic.py
+++ b/framework/subsystems/ousaged/generic.py
@@ -13,12 +13,13 @@ Module: generic
 """
 
 MODULE_NAME = "ousaged"
-__version__ = "0.6.0"
+__version__ = "0.7.0"
 
 DBUS_INTERFACE_PREFIX = "org.freesmartphone.Usage"
 DBUS_PATH_PREFIX = "/org/freesmartphone/Usage"
 
 from .resources import ClientResource
+from .lowlevel import resumeReason
 
 import framework.patterns.tasklet as tasklet
 
@@ -114,19 +115,28 @@ class GenericUsageControl( dbus.service.Object ):
         """
         The actual resuming tasklet.
         """
-        # FIXME might want to traverse /etc/apm.d/... and launch them scripts
 
+        # FIXME might want to traverse /etc/apm.d/... and launch them scripts
         logger.info( "triggering kernel suspend" )
-        subprocess.call( "echo apm -s", shell=True )
         open( "/sys/power/state", "w" ).write( "mem\n" )
+        # ---------------> Good Night!
+        reason = resumeReason()
+        # ---------------< Good Morning!
+        logger.info( "kernel has resumed - reason = %s" % reason )
+
+        if reason == "LowBattery":
+            logger.info( "kernel resumed because of low battery. Emergency Shutdown!" )
+            subprocess.call( "shutdown -h now &", shell=True )
+            # FIXME trigger shutdown quit
+            yield None
+        else:
+            logger.info( "resuming resources..." )
+            for resource in self.resources.values():
+                logger.debug( "resuming %s", resource.name )
+                yield resource._resume()
+            logger.info( "...completed." )
 
-        logger.info( "kernel has resumed - resuming resources..." )
-        for resource in self.resources.values():
-            logger.debug( "resuming %s", resource.name )
-            yield resource._resume()
-        logger.info( "...completed." )
-
-        gobject.idle_add( lambda self=self:self.SystemAction( "resume" ) and False ) # send as late as possible
+            gobject.idle_add( lambda self=self:self.SystemAction( "resume" ) and False ) # send as late as possible
 
     def _nameOwnerChangedHandler( self, name, old_owner, new_owner ):
         if old_owner and not new_owner:
diff --git a/framework/subsystems/ousaged/lowlevel.py b/framework/subsystems/ousaged/lowlevel.py
index 1798b61..f8e497e 100644
--- a/framework/subsystems/ousaged/lowlevel.py
+++ b/framework/subsystems/ousaged/lowlevel.py
@@ -37,7 +37,7 @@ class OpenmokoResumeReason( object ):
     Resume reason class for Openmoko GTA01 (Neo 1973) and GTA02 (Neo FreeRunner).
     """
     SYSFS_RESUME_REASON_PATH = "/sys/bus/platform/devices/neo1973-resume.0/resume_reason"
-    SYSFS_RESUME_SUBREASON_PATH = "/class/i2c-adapter/i2c-0/0-0073/resume_reason"
+    SYSFS_RESUME_SUBREASON_PATH = "/sys/class/i2c-adapter/i2c-0/0-0073/resume_reason"
 
     def __init__( self ):
 

-- 
FSO frameworkd Debian packaging



More information about the pkg-fso-commits mailing list