[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:25 UTC 2009


The following commit has been merged in the master branch:
commit de2f5ce2f83712b8e8230a05b5480628fb0fcb87
Merge: 458c30317a69ab51d8e8674f20f9c8083b050ff1 beadf3939ddde571c8c77ef820154bee179300f8
Author: Michael 'Mickey' Lauer <mickey at vanille-media.de>
Date:   Thu Nov 27 18:34:08 2008 +0100

    Merge commit 'origin/stabilization/milestone4'
    
    Conflicts:
    	framework/subsystems/ogsmd/device.py
    	framework/subsystems/ogsmd/modems/abstract/mediator.py

diff --combined framework/subsystems/ogsmd/device.py
index fff3900,b5f5755..ece8c76
--- a/framework/subsystems/ogsmd/device.py
+++ b/framework/subsystems/ogsmd/device.py
@@@ -7,17 -7,29 +7,17 @@@ The Open Device Daemon - Python Impleme
  GPLv2 or later
  
  Package: ogsmd
 -Module: objects
 -
 -Implementation of the dbus objects.
 -
 -Attributes:
 -    * server = server dbus object singleton
 -    * device = device dbus object singleton
 +Module: device
  """
  
 -MODULE_NAME = "ogsmd.objects"
 +MODULE_NAME = "ogsmd.device"
- __version__ = "0.9.4"
+ __version__ = "0.9.5"
  
  from framework import resource
  
  import dbus
  import dbus.service
 -from dbus import DBusException
 -
 -from gobject import timeout_add, idle_add
 -import weakref
 -import math
 -import sys, os
 -import types
 +import sys, os, types
  
  import logging
  logger = logging.getLogger( MODULE_NAME )
@@@ -31,11 -43,118 +31,11 @@@ DBUS_INTERFACE_PDP = "org.freesmartphon
  DBUS_INTERFACE_CB = "org.freesmartphone.GSM.CB"
  DBUS_INTERFACE_RESOURCE = "org.freesmartphone.Resource"
  
  DBUS_INTERFACE_DEBUG = "org.freesmartphone.GSM.Debug"
  
  DBUS_BUS_NAME_DEVICE = "org.freesmartphone.ogsmd"
 -DBUS_BUS_NAME_SERVER = "org.freesmartphone.ogsmd"
  
  DBUS_OBJECT_PATH_DEVICE = "/org/freesmartphone/GSM/Device"
 -DBUS_OBJECT_PATH_SERVER = "/org/freesmartphone/GSM/Server"
 -
 -HOMEZONE_DEBUG = False
 -
 -#=========================================================================#
 -class Server( dbus.service.Object ):
 -#=========================================================================#
 -    """
 -    Open Phone Server aggregated functions:
 -    - HomeZone
 -
 -    Ideas:
 -    - watch for clients on bus and send coldplug status
 -    - monitor device aliveness and restart, if necessary
 -    """
 -
 -    def __init__( self, bus, device ):
 -        server = weakref.proxy( self )
 -        self.interface = DBUS_INTERFACE_SERVER
 -        self.path = DBUS_OBJECT_PATH_SERVER
 -        dbus.service.Object.__init__( self, bus, self.path )
 -        logger.info( "%s initialized. Serving %s at %s", self.__class__.__name__, self.interface, self.path )
 -        self.bus = bus
 -        self.homezones = None
 -        self.zone = "unknown"
 -        self.setupSignals()
 -
 -    def setupSignals( self ):
 -        device = self.bus.get_object( DBUS_BUS_NAME_DEVICE, DBUS_OBJECT_PATH_DEVICE )
 -        self.fso_cb = dbus.Interface( device, DBUS_INTERFACE_CB )
 -        self.fso_cb.connect_to_signal( "IncomingCellBroadcast", self.onIncomingCellBroadcast )
 -        self.fso_sim = dbus.Interface( device, DBUS_INTERFACE_SIM )
 -
 -    def __del__( self ):
 -        server = None
 -
 -    #
 -    # Callbacks
 -    #
 -    def onIncomingCellBroadcast( self, channel, data ):
 -
 -        def gotHomezones( homezones, self=self ):
 -            logger.info( "got SIM homezones: %s", homezones )
 -            self.homezones = homezones
 -            # debug code, if you have no homezones on your SIM. To test, use:
 -            # gsm.DebugInjectString("UNSOL","+CBM: 16,221,0,1,1\r\n347747555093\r\r\r\n")
 -            if HOMEZONE_DEBUG: self.homezones = [ ( "city", 347747, 555093, 1000 ), ( "home", 400000, 500000, 1000 ) ]
 -            self.checkInHomezones()
 -
 -        if channel == 221: # home zone cell broadcast
 -            if len( data ) != 12:
 -                return
 -            self.x, self.y = int( data[:6] ), int( data[6:] )
 -            logger.info( "home zone cell broadcast detected: %s %s", self.x, self.y )
 -            if self.homezones is None: # never tried to read them
 -                logger.info( "trying to read home zones from SIM" )
 -                self.fso_sim.GetHomeZones( reply_handler=gotHomezones, error_handler=lambda error:None )
 -            else:
 -                self.checkInHomezones()
 -
 -    def checkInHomezones( self ):
 -        status = ""
 -        for zname, zx, zy, zr in self.homezones:
 -            if self.checkInHomezone( self.x, self.y, zx, zy, zr ):
 -                status = zname
 -                break
 -        self.HomeZoneStatus( status )
 -
 -    def checkInHomezone( self, x, y, zx, zy, zr ):
 -        logger.info( "matching whether %s %s is in ( %s, %s, %s )" % ( x, y, zx, zy, zr ) )
 -        dist = math.sqrt( math.pow( x-zx, 2 ) + math.pow( y-zy, 2 ) ) * 10
 -        maxdist = math.sqrt( zr ) * 10
 -        return dist < maxdist
 -
 -    #
 -    # dbus
 -    #
 -    @dbus.service.method( DBUS_INTERFACE_HZ, "", "s",
 -                          async_callbacks=( "dbus_ok", "dbus_error" ) )
 -    def GetHomeZoneStatus( self, dbus_ok, dbus_error ):
 -        dbus_ok( self.zone )
 -
 -    @dbus.service.signal( DBUS_INTERFACE_HZ, "s" )
 -    def HomeZoneStatus( self, zone ):
 -        self.zone = zone
 -        logger.info( "home zone status now %s" % zone )
 -
 -    @dbus.service.method( DBUS_INTERFACE_HZ, "", "as",
 -                          async_callbacks=( "dbus_ok", "dbus_error" ) )
 -    def GetKnownHomeZones( self, dbus_ok, dbus_error ):
 -
 -        def gotHomezones( homezones, self=self, dbus_ok=dbus_ok ):
 -            logger.info( "got SIM homezones: %s", homezones )
 -            self.homezones = homezones
 -            # debug code, if you have no homezones on your SIM. To test, use:
 -            # gsm.DebugInjectString("UNSOL","+CBM: 16,221,0,1,1\r\n347747555093\r\r\r\n")
 -            if HOMEZONE_DEBUG: self.homezones = [ ( "city", 347747, 555093, 1000 ), ( "home", 400000, 500000, 1000 ) ]
 -            dbus_ok( [ zone[0] for zone in self.homezones ] )
 -
 -        self.fso_sim.GetHomeZones( reply_handler=gotHomezones, error_handler=lambda error:None )
 -
 -    # Send Diffs only
 -    # Caching strategy
  
  #=========================================================================#
  class Device( resource.Resource ):
@@@ -49,12 -168,13 +49,12 @@@
          Init.
          """
          self.bus = bus
 -        self.interface = DBUS_INTERFACE_DEVICE
          self.path = DBUS_OBJECT_PATH_DEVICE
          self.modemtype = modemtype
          self.modem = None
          dbus.service.Object.__init__( self, bus, self.path )
          resource.Resource.__init__( self, bus, "GSM" )
 -        logger.info( "%s initialized. Serving %s at %s", self.__class__.__name__, self.interface, self.path )
 +        logger.info( "%s %s initialized." % ( self.__class__.__name__, __version__ ) )
  
      def __del__( self ):
          """
@@@ -314,8 -434,8 +314,8 @@@
      @dbus.service.method( DBUS_INTERFACE_SIM, "ssa{sv}", "i",
                            async_callbacks=( "dbus_ok", "dbus_error" ) )
      @resource.checkedmethod
 -    def StoreMessage( self, number, contents, featuremap, dbus_ok, dbus_error ):
 -        mediator.SimStoreMessage( self, dbus_ok, dbus_error, number=number, contents=contents, featuremap=featuremap )
 +    def StoreMessage( self, number, contents, properties, dbus_ok, dbus_error ):
 +        mediator.SimStoreMessage( self, dbus_ok, dbus_error, number=number, contents=contents, properties=properties )
  
      @dbus.service.method( DBUS_INTERFACE_SIM, "i", "i",
                            async_callbacks=( "dbus_ok", "dbus_error" ) )
@@@ -343,8 -463,8 +343,8 @@@
      @dbus.service.method( DBUS_INTERFACE_SMS, "ssa{sv}", "i",
                            async_callbacks=( "dbus_ok", "dbus_error" ) )
      @resource.checkedmethod
 -    def SendMessage( self, number, contents, featuremap, dbus_ok, dbus_error ):
 -        mediator.SmsSendMessage( self, dbus_ok, dbus_error, number=number, contents=contents, featuremap=featuremap )
 +    def SendMessage( self, number, contents, properties, dbus_ok, dbus_error ):
 +        mediator.SmsSendMessage( self, dbus_ok, dbus_error, number=number, contents=contents, properties=properties )
  
      @dbus.service.signal( DBUS_INTERFACE_SMS, "ssa{sv}" )
      def IncomingMessage( self, address, text, features ):
@@@ -400,7 -520,7 +400,7 @@@
      @dbus.service.method( DBUS_INTERFACE_NETWORK, "", "ss",
                            async_callbacks=( "dbus_ok", "dbus_error" ) )
      @resource.checkedmethod
 -    def GetNetworkCountryCode( self, dbus_ok, dbus_error ):
 +    def GetCountryCode( self, dbus_ok, dbus_error ):
          mediator.NetworkGetCountryCode( self, dbus_ok, dbus_error )
  
      @dbus.service.method( DBUS_INTERFACE_NETWORK, "s", "a{sv}",
@@@ -442,10 -562,6 +442,10 @@@
      @dbus.service.signal( DBUS_INTERFACE_NETWORK, "ss" )
      def IncomingUssd( self, mode, message ):
          logger.info( "org.freesmartphone.GSM.Network.IncomingUssd: %s: %s", mode, message )
 +
 +    @dbus.service.signal( DBUS_INTERFACE_NETWORK, "ss" )
 +    def CipherStatus( self, gsm, gprs ):
 +        logger.info( "org.freesmartphone.GSM.Network.CypherStatus: %s: %s", gsm, gprs )
      #
      # dbus org.freesmartphone.GSM.Call
      #
@@@ -620,9 -736,58 +620,9 @@@ def factory( prefix, controller )
      sys.path.append( os.path.dirname( os.path.dirname( __file__ ) ) )
      modemtype = controller.config.get( "ogsmd", "modemtype" )
      device = Device( controller.bus, modemtype )
 -    server = Server( controller.bus, device )
 -    return device, server
 +    return [ device ]
  
  #=========================================================================#
  if __name__ == "__main__":
  #=========================================================================#
 -    import dbus, sys, thread, atexit
 -    from gobject import threads_init, MainLoop
 -
 -    def handler( *args, **kwargs ):
 -        print "="*78
 -        print "got a signal from '%s' (via %s):" % ( kwargs["path"], kwargs["sender"] )
 -        print "=> SIGNAL: %s.%s (" % ( kwargs["interface"], kwargs["member"] ),
 -        for arg in args[:-1]:
 -            print "%s, " % arg,
 -        print "%s )" % args[-1]
 -        print "="*78
 -
 -    def run( *args ):
 -        print "entering mainloop"
 -        mainloop.run()
 -        print "exit from mainloop"
 -
 -    import dbus.mainloop.glib
 -    dbus.mainloop.glib.DBusGMainLoop( set_as_default=True )
 -    mainloop = MainLoop()
 -
 -    bus = dbus.SystemBus()
 -
 -    # server
 -    proxy = bus.get_object( config.DBUS_BUS_NAME, config.DBUS_PATH_PREFIX+"/Server", follow_name_owner_changes=True )
 -    print( proxy.Introspect( dbus_interface = "org.freedesktop.DBus.Introspectable" ) )
 -    server = dbus.Interface(proxy, DBUS_INTERFACE_SERVER )
 -
 -    # device
 -    proxy = bus.get_object( config.DBUS_BUS_NAME, config.DBUS_PATH_PREFIX+"/Device", follow_name_owner_changes=True )
 -    print( proxy.Introspect( dbus_interface = "org.freedesktop.DBus.Introspectable" ) )
 -    device = dbus.Interface( proxy, DBUS_INTERFACE_DEVICE )
 -    sim = dbus.Interface( proxy, DBUS_INTERFACE_SIM )
 -    network = dbus.Interface( proxy, DBUS_INTERFACE_NETWORK )
 -    call = dbus.Interface( proxy, DBUS_INTERFACE_CALL )
 -    test = dbus.Interface( proxy, DBUS_INTERFACE_TEST )
 -
 -    peer = dbus.Interface( proxy, "org.freedesktop.DBus.Peer" )
 -
 -    bus.add_signal_receiver( handler, None, None, config.DBUS_BUS_NAME, None,
 -        sender_keyword = "sender",
 -        destination_keyword = "destination",
 -        interface_keyword = "interface",
 -        member_keyword = "member",
 -        path_keyword = "path" )
 -
 -    threads_init()
 -    thread.start_new_thread( run, () )
 -
 +    pass
diff --combined framework/subsystems/ogsmd/modems/abstract/mediator.py
index 5d84ad5,08ee8b5..1e3ab9c
--- a/framework/subsystems/ogsmd/modems/abstract/mediator.py
+++ b/framework/subsystems/ogsmd/modems/abstract/mediator.py
@@@ -1,4 -1,4 +1,4 @@@
- #!/usr/bin/env python
+ ##!/usr/bin/env python
  """
  The Open Device Daemon - Python Implementation
  
@@@ -21,7 -21,7 +21,7 @@@ TODO
   * refactor parameter validation
  """
  
- __version__ = "0.9.10.0"
+ __version__ = "0.9.10.1"
  
  from ogsmd.gsm import error, const, convert
  from ogsmd.gsm.decor import logged
@@@ -770,15 -770,15 +770,15 @@@ class SimRetrieveMessagebook( SimMediat
                      index = int(header.groupdict()["index"])
                      status = const.SMS_PDU_STATUS_OUT[int(header.groupdict()["status"])]
                      if "read" in status:
 -                      dir = "MT"
 +                      direction = "MT"
                      else:
 -                      dir = "MO"
 +                      direction = "MO"
                      length = int(header.groupdict()["pdulen"])
                  else:
                      # Now we decode the actual PDU
  
 -                    sms = ogsmd.gsm.sms.decodeSMS( line, dir)
 -                    result.append( ( index, status, str(sms.oa), sms.ud, sms.featureMap ) )
 +                    sms = ogsmd.gsm.sms.SMS.decode( line, direction )
 +                    result.append( ( index, status, str(sms.oa), sms.ud, sms.properties ) )
              self._ok( result )
          else:
              SimMediator.responseFromChannel( self, request, response )
@@@ -801,14 -801,14 +801,14 @@@ class SimRetrieveMessage( SimMediator )
                      header = const.PAT_SMS_PDU_HEADER_SINGLE.match( self._rightHandSide(line) )
                      status = const.SMS_PDU_STATUS_OUT[int(header.groupdict()["status"])]
                      if "read" in status:
 -                      dir = "MT"
 +                      direction = "MT"
                      else:
 -                      dir = "MO"
 +                      direction = "MO"
                      length = int(header.groupdict()["pdulen"])
                  else:
                      # Now we decode the actual PDU
 -                    sms = ogsmd.gsm.sms.decodeSMS( line, dir )
 -                    result = ( status, str(sms.oa), sms.ud, sms.featureMap )
 +                    sms = ogsmd.gsm.sms.SMS.decode( line, direction )
 +                    result = ( status, str(sms.oa), sms.ud, sms.properties )
  
              self._ok( *result )
  
@@@ -824,14 -824,14 +824,14 @@@ class SimSetServiceCenterNumber( SimMed
  class SimStoreMessage( SimMediator ):
  #=========================================================================#
      def trigger( self ):
 -        sms = ogsmd.gsm.sms.AbstractSMS("MO")
 +        sms = ogsmd.gsm.sms.SMS("MO")
          sms.pdu_mti = 1
          sms.pid = 0
          sms.dcs = 0
          # Use PDUAddress
          sms.oa = ogsmd.gsm.sms.PDUAddress.guess( self.number )
          sms.ud = self.contents
 -        sms.featureMap = self.featuremap
 +        sms.properties = self.properties
          pdu = sms.pdu()
          self._commchannel.enqueue( '+CMGW=%i\r%s' % ( len(pdu)/2-1, pdu), self.responseFromChannel, self.errorFromChannel, timeout=const.TIMEOUT["SIMACCESS"])
  
@@@ -872,14 -872,14 +872,14 @@@ class SimDeleteMessage( SimMediator )
  class SmsSendMessage( SmsMediator ):
  #=========================================================================#
      def trigger( self ):
 -        sms = ogsmd.gsm.sms.AbstractSMS("MO")
 +        sms = ogsmd.gsm.sms.SMS("MO")
          sms.pdu_mti = 1
          sms.pid = 0
          sms.dcs = 0
          # Use PDUAddress
          sms.oa = ogsmd.gsm.sms.PDUAddress.guess( self.number )
          sms.ud = self.contents
 -        sms.featureMap = self.featuremap
 +        sms.properties = self.properties
          pdu = sms.pdu()
          self._commchannel.enqueue( '+CMGS=%i\r%s' % ( len(pdu)/2-1, pdu), self.responseFromChannel, self.errorFromChannel, timeout=const.TIMEOUT["NETWORK"])
  
@@@ -1004,17 -1004,19 +1004,17 @@@ class NetworkRegisterWithProvider( Netw
  class NetworkGetCountryCode( NetworkMediator ):
  #=========================================================================#
      def trigger( self ):
 -        self._commchannel.enqueue( "+COPS=3,2;+COPS?", self.responseFromChannel, self.errorFromChannel )
 +        self._commchannel.enqueue( "+COPS=3,2;+COPS?;+COPS=3,0", self.responseFromChannel, self.errorFromChannel )
  
      def responseFromChannel( self, request, response ):
 -        if response[-1] != "OK":
 -            NetworkMediator.responseFromChannel( self, request, response )
 -        else:
 -            values = safesplit( self._rightHandSide( response[0] ), ',' )
 -            if len( values ) > 2:
 +        if response[-1] == "OK" and len( response ) > 1:
 +            values = self._rightHandSide( response[0] ).split( ',' )
 +            if len( values ) != 3:
-                 self._error( error.NetworkNotFound( "Not registered to an operator" ) )
++                self._error( error.NetworkNotFound( "Not registered to any provider" ) )
 +            else:
                  mcc = int( values[2].strip( '"' )[:3] )
                  code, name = const.mccToCountryCode( mcc )
                  self._ok( code, name )
 -            else:
 -                self._error( error.NetworkNotFound( "Not registered to any provider." ) )
  
  #=========================================================================#
  class NetworkGetCallForwarding( NetworkMediator ): # a{sv}
diff --combined tests/test.py
index cb467ef,b9beb50..dd10553
--- a/tests/test.py
+++ b/tests/test.py
@@@ -131,16 -131,22 +131,22 @@@ class TestTest(unittest.TestCase)
          yield True
  
  #=========================================================================#
+ def testDbusError( error, expected ):
+ #=========================================================================#
+     ename = error.get_dbus_name()
+     assert ename == expected, "expected error '%s', got '%s' instead" % ( expected, ename )
+ 
+ #=========================================================================#
  def testDbusType( value, type_ ):
  #=========================================================================#
-         assert type( value ) == type_, "expected %s type, got '%s' instead" % ( type_, type( value ) )
+     assert type( value ) == type_, "expected %s type, got '%s' instead" % ( type_, type( value ) )
  
  #=========================================================================#
  def testDbusValueIsInteger( value ):
  #=========================================================================#
-         assert type( value ) == dbus.Int16 or \
-                type( value ) == dbus.Int32 or \
-                type( value ) == dbus.Int64, "expected integer value type, got '%s' instead" % type( value )
+     assert type( value ) == dbus.Int16 or \
+             type( value ) == dbus.Int32 or \
+             type( value ) == dbus.Int64, "expected integer value type, got '%s' instead" % type( value )
  
  #=========================================================================#
  def testDbusDictionaryWithStringValues( result ):
@@@ -197,7 -203,7 +203,7 @@@ if __name__ == '__main__'
  #=========================================================================#
      # This list all the modules containing the tests we want to run
      # TODO: provide command line arguments like in Mikey ogsmd test script
 -    modules = ['test', 'opreferencesd', 'sim', 'opimd', 'ogsmd2']
 +    modules = ['test', 'opreferencesd', 'sim', 'opimd', 'ogsmd2', 'oevents']
  
      for module in modules:
          module = __import__(module)

-- 
FSO frameworkd Debian packaging



More information about the pkg-fso-commits mailing list