Changeset 4555


Ignore:
Timestamp:
07/25/08 10:23:02 (5 years ago)
Author:
john_lee
Message:

Register() is async. wait for the signal from network interface to
change the registration status.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • developers/john_lee/pyfso/dialer.py

    r4539 r4555  
    8080        self.fso = fso 
    8181        self.fso.onCallStatus.append(self.on_call_status) 
     82        self.fso.onNetworkStatus.append(self.on_network_status) 
    8283        self._set_state('release') 
    8384        from threading import Thread 
     
    8586 
    8687    def _init(self): 
     88        if not self.fso.gsm_device_iface.GetAntennaPower(): 
     89            self.fso.gsm_device_iface.SetAntennaPower(True) 
    8790        if self.fso.gsm_network_iface.GetStatus()['registration'] == 'unregistered': 
    8891            try: 
    89                 self.fso.gsm_device_iface.SetAntennaPower(True) 
    9092                self.fso.gsm_network_iface.Register() 
    91                 print 'registered' 
    92                 self.registered = True 
    9393            except DBusException, e: 
    9494                # FIXME pin number? 
    9595                print e 
    96                 self.registered = False 
    9796 
    9897    @need_registered 
     
    108107        self.fso.gsm_call_iface.Activate(self.callid) 
    109108 
    110     @need_registered 
    111109    def on_call_status(self, id, status, properties): 
    112110        self._set_state(status) 
    113111        self.callid = id 
     112 
     113    def on_network_status(self, status): 
     114        print 'signal network status:', status 
     115        if status['registration'] == 'home': 
     116            self.registered = True 
     117        elif status['registration'] == 'roaming': 
     118            self.registered = True 
    114119 
    115120 
     
    117122    from dbus.mainloop.glib import DBusGMainLoop 
    118123    from fso_backend import FSOObject 
    119     try: 
     124pp    try: 
    120125        dialer = FSODialer(FSOObject(SystemBus(mainloop=DBusGMainLoop()))) 
    121126    except DBusException: 
     
    127132        return 
    128133 
     134 
    129135if __name__ == "__main__": 
    130136    _test_fso() 
Note: See TracChangeset for help on using the changeset viewer.