[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:33 UTC 2009
The following commit has been merged in the master branch:
commit 4735afd9ef48bcc75541849316d141c9747b0c5f
Author: Michael 'Mickey' Lauer <mickey at vanille-media.de>
Date: Thu Dec 11 15:55:17 2008 +0100
ogsmd: implement org.freesmartphone.GSM.PDP.GetNetworkStatus()
diff --git a/ChangeLog b/ChangeLog
index 2454195..6f4d29f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,7 @@
2008-12-11 Michael Lauer <mickey at openmoko.org>
* [ogsmd] Implemented org.freesmartphone.GSM.PDP.NetworkStatus()
+ * [ogsmd] Implemented org.freesmartphone.GSM.PDP.GetNetworkStatus()
2008-12-06 Michael Lauer <mickey at openmoko.org>
diff --git a/framework/subsystems/ogsmd/device.py b/framework/subsystems/ogsmd/device.py
index 88cbd29..772e9f1 100644
--- a/framework/subsystems/ogsmd/device.py
+++ b/framework/subsystems/ogsmd/device.py
@@ -557,6 +557,12 @@ class Device( resource.Resource ):
def SetCurrentGprsClass( self, class_, dbus_ok, dbus_error ):
mediator.PdpSetCurrentGprsClass( self, dbus_ok, dbus_error, class_=class_ )
+ @dbus.service.method( DBUS_INTERFACE_PDP, "", "a{sv}",
+ async_callbacks=( "dbus_ok", "dbus_error" ) )
+ @resource.checkedmethod
+ def GetNetworkStatus( self, dbus_ok, dbus_error ):
+ mediator.PdpGetNetworkStatus( self, dbus_ok, dbus_error )
+
@dbus.service.method( DBUS_INTERFACE_PDP, "sss", "",
async_callbacks=( "dbus_ok", "dbus_error" ) )
@resource.checkedmethod
diff --git a/framework/subsystems/ogsmd/modems/abstract/mediator.py b/framework/subsystems/ogsmd/modems/abstract/mediator.py
index 8c7791a..ff9b0d9 100644
--- a/framework/subsystems/ogsmd/modems/abstract/mediator.py
+++ b/framework/subsystems/ogsmd/modems/abstract/mediator.py
@@ -1400,6 +1400,33 @@ class PdpSetCurrentGprsClass( PdpMediator ):
self._commchannel.enqueue( '+CGCLASS="%s"' % self.class_, self.responseFromChannel, self.errorFromChannel )
#=========================================================================#
+class PdpGetNetworkStatus( PdpMediator ):
+#=========================================================================#
+ def trigger( self ):
+ result = {}
+ # query registration status and lac/cid
+ request, response, error = yield( "+CGREG?" )
+ if error is not None:
+ self.errorFromChannel( request, error )
+ elif response[-1] != "OK" or len( response ) == 1:
+ pass
+ else:
+ oldreg = safesplit( self._rightHandSide( response[-2] ), ',' )[0]
+ request, response, error = yield( "+CGREG=2;+CGREG?;+CGREG=%s" % oldreg )
+
+ if error is not None:
+ self.errorFromChannel( request, error )
+ elif response[-1] != "OK" or len( response ) == 1:
+ pass
+ else:
+ result[ "registration"] = const.REGISTER_STATUS[int(safesplit( self._rightHandSide( response[-2] ), ',' )[1])]
+ values = safesplit( self._rightHandSide( response[-2] ), ',' )
+ if len( values ) == 4: # have lac and cid now
+ result["lac"] = values[2].strip( '"' )
+ result["cid"] = values[3].strip( '"' )
+ self._ok( result )
+
+#=========================================================================#
class PdpActivateContext( PdpMediator ):
#=========================================================================#
def trigger( self ):
--
FSO frameworkd Debian packaging
More information about the pkg-fso-commits
mailing list