[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 fef37dc8c1085f24ba95a3ef5e375d7ca962a86c
Author: Michael 'Mickey' Lauer <mickey at vanille-media.de>
Date: Sat Dec 6 03:36:50 2008 +0100
ogsmd: Add 'cid' and 'lac' to result for org.freesmartphone.GSM.Network.GetStatus()
diff --git a/ChangeLog b/ChangeLog
index 913c567..261e2c6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2008-12-06 Michael Lauer <mickey at openmoko.org>
+
+ * [ogsmd] Added 'cid' and 'lac' results to org.freesmartphone.GSM.Network.GetStatus()
+
2008-12-05 Michael Lauer <mickey at openmoko.org>
* [odeviced] Implemented org.freesmartphone.Device.LED.SetNetworking(s,s) -> ()
diff --git a/framework/subsystems/ogsmd/modems/abstract/mediator.py b/framework/subsystems/ogsmd/modems/abstract/mediator.py
index 7dd22bc..f11f0c3 100644
--- a/framework/subsystems/ogsmd/modems/abstract/mediator.py
+++ b/framework/subsystems/ogsmd/modems/abstract/mediator.py
@@ -21,7 +21,7 @@ TODO:
* refactor parameter validation
"""
-__version__ = "0.9.10.2"
+__version__ = "0.9.10.3"
MODULE_NAME = "ogsmd.modems.abstract.mediator"
from .calling import CallHandler
@@ -967,6 +967,8 @@ class NetworkUnregister( NetworkMediator ):
class NetworkGetStatus( NetworkMediator ):
#=========================================================================#
def trigger( self ):
+
+ # query strength
request, response, error = yield( "+CSQ" )
result = {}
if error is not None:
@@ -977,23 +979,42 @@ class NetworkGetStatus( NetworkMediator ):
else:
result["strength"] = const.signalQualityToPercentage( int(safesplit( self._rightHandSide( response[0] ), ',' )[0]) ) # +CSQ: 22,99
- request, response, error = yield( "+CREG?;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?" )
+ # query registration status and lac/cid
+ request, response, error = yield( "+CREG?" )
if error is not None:
self.errorFromChannel( request, error )
+ elif response[-1] != "OK" or len( response ) == 1:
+ pass
else:
- if response[-1] != "OK" or len( response ) == 1:
+ oldreg = safesplit( self._rightHandSide( response[-2] ), ',' )[0]
+ request, response, error = yield( "+CREG=2;+CREG?;+CREG=%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[0] ), ',' )[1])] # +CREG: 0,1
- if len( response ) > 2:
- values = safesplit( self._rightHandSide( response[1] ), ',' )
- if len( values ) < 3:
- result["mode"] = const.REGISTER_MODE[int(values[0])]
- else:
- result["mode"] = const.REGISTER_MODE[int(values[0])]
- result["provider"] = values[2].strip( '"' )
- if len( response ) > 3:
- values = safesplit( self._rightHandSide( response[2] ), ',' )
+ 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( '"' )
+
+ # query operator name and numerical code
+ request, response, error = yield( "+COPS=3,0;+COPS?;+COPS=3,2;+COPS?" )
+ if error is not None:
+ self.errorFromChannel( request, error )
+ else:
+ if response[-1] != "OK" or len( response ) != 3:
+ pass
+ else:
+ values = safesplit( self._rightHandSide( response[-3] ), ',' )
+ if len( values ) < 3:
+ result["mode"] = const.REGISTER_MODE[int(values[0])]
+ else:
+ result["mode"] = const.REGISTER_MODE[int(values[0])]
+ result["provider"] = values[2].strip( '"' )
+ values = safesplit( self._rightHandSide( response[-2] ), ',' )
if len( values ) > 2:
result["code"] = int( values[2].strip( '"' ) )
# UGLY special check for some modems, which return a strength of 0, if you
--
FSO frameworkd Debian packaging
More information about the pkg-fso-commits
mailing list