[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:31 UTC 2009
The following commit has been merged in the master branch:
commit 3d4244fcd3445c3f18af51da8829df48a9ebe69d
Author: Michael 'Mickey' Lauer <mickey at vanille-media.de>
Date: Fri Dec 5 17:12:49 2008 +0100
odeviced: implement org.freesmartphone.Device.LED.SetNetworking(s,s)->()
* add parameter validation to .SetBlinking
diff --git a/ChangeLog b/ChangeLog
index 8438a11..913c567 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2008-12-05 Michael Lauer <mickey at openmoko.org>
+
+ * [odeviced] Implemented org.freesmartphone.Device.LED.SetNetworking(s,s) -> ()
+
2008-12-04 Michael Lauer <mickey at openmoko.org>
* Added necessary methods for a clean system -> subsystems -> objects shutdown.
diff --git a/framework/subsystems/odeviced/kernel26.py b/framework/subsystems/odeviced/kernel26.py
index a2b9a15..cbe1265 100644
--- a/framework/subsystems/odeviced/kernel26.py
+++ b/framework/subsystems/odeviced/kernel26.py
@@ -8,7 +8,7 @@ GPLv2 or later
"""
MODULE_NAME = "odeviced.kernel26"
-__version__ = "0.9.8.1"
+__version__ = "0.9.9.0"
from helpers import DBUS_INTERFACE_PREFIX, DBUS_PATH_PREFIX, readFromFile, writeToFile, cleanObjectName
from framework.config import config
@@ -28,6 +28,16 @@ FB_BLANK_UNBLANK = 0
FB_BLANK_POWERDOWN = 4
#----------------------------------------------------------------------------#
+class UnsupportedTrigger( dbus.DBusException ):
+#----------------------------------------------------------------------------#
+ _dbus_error_name = "org.freesmartphone.Device.Display.UnsupportedTrigger"
+
+#----------------------------------------------------------------------------#
+class InvalidParameter( dbus.DBusException ):
+#----------------------------------------------------------------------------#
+ _dbus_error_name = "org.freesmartphone.InvalidParameter"
+
+#----------------------------------------------------------------------------#
class Display( dbus.service.Object ):
#----------------------------------------------------------------------------#
"""A Dbus Object implementing org.freesmartphone.Device.Display
@@ -125,10 +135,11 @@ class LED( dbus.service.Object ):
dbus.service.Object.__init__( self, bus, self.path )
logger.info( "%s %s initialized. Serving %s at %s" % ( self.__class__.__name__, __version__, self.interface, self.path ) )
self.node = node
- self.triggers = readFromFile( "%s/trigger" % self.node ).split()
- logger.debug( "available triggers %s" % self.triggers )
# initial status = off
self.SetBrightness( 0 )
+ # store available triggers for later
+ self.triggers = readFromFile( "%s/trigger" % self.node ).split()
+ logger.debug( "available triggers %s" % self.triggers )
def shutdown( self ):
"""
@@ -156,14 +167,31 @@ class LED( dbus.service.Object ):
@dbus.service.method( DBUS_INTERFACE, "ii", "" )
def SetBlinking( self, delay_on, delay_off ):
- # FIXME: raise exception if blinking is not supported
- # FIXME: do we want to implement it manually in that case?
- #if "trigger" in self.triggers:
+ # validate parameters
+ if "timer" not in self.triggers:
+ raise UnsupportedTrigger( "Timer trigger not available. Available triggers are %s" % self.triggers )
+ # do it
+ else:
writeToFile( "%s/trigger" % self.node, "timer" )
writeToFile( "%s/delay_on" % self.node, str( abs( delay_on ) ) )
writeToFile( "%s/delay_off" % self.node, str( abs( delay_off ) ) )
- #else:
- # raise Exception
+
+ @dbus.service.method( DBUS_INTERFACE, "ss", "" )
+ def SetNetworking( self, interface, mode ):
+ # validate parameters
+ if "netdev" not in self.triggers:
+ raise UnsupportedTrigger( "Netdev trigger not available. Available triggers are %s" % self.triggers )
+ interfaces = os.listdir( "/sys/class/net" )
+ if interface not in interfaces:
+ raise InvalidParameter( "Interface %s not known. Available interfaces are %s" % ( interface, interfaces ) )
+ modes = mode.strip().split()
+ for m in modes:
+ if m not in "link rx tx".split():
+ raise InvalidParameter( "Mode element %s not known. Available elements are 'link rx tx'" % m )
+ # do it
+ writeToFile( "%s/trigger" % self.node, "netdev" )
+ writeToFile( "%s/device_name" % self.node, str( interface.strip() ) )
+ writeToFile( "%s/mode" % self.node, str( mode.strip() ) )
#----------------------------------------------------------------------------#
class PowerSupply( dbus.service.Object ):
--
FSO frameworkd Debian packaging
More information about the pkg-fso-commits
mailing list