Rework SIM D-Bus object intialization, placing it in its own method so it can have its own try-again-timer
Make debug output a little more descriptive git-svn-id: http://www.neo1973-germany.de/svn@120 46df4e5c-bc4e-4628-a0fc-830ba316316d
This commit is contained in:
parent
2a739e1378
commit
ce0260dbc1
1 changed files with 27 additions and 14 deletions
|
@ -127,6 +127,7 @@ class MainScreen(EdjeGroup):
|
||||||
class PyneoController(object):
|
class PyneoController(object):
|
||||||
_dbus_timer = None
|
_dbus_timer = None
|
||||||
_gsm_timer = None
|
_gsm_timer = None
|
||||||
|
_keyring_timer = None
|
||||||
_callbacks = {}
|
_callbacks = {}
|
||||||
|
|
||||||
gsm = None
|
gsm = None
|
||||||
|
@ -162,7 +163,7 @@ class PyneoController(object):
|
||||||
class_.gsm_wireless = object_by_url(class_.gsm.GetDevice('wireless'))
|
class_.gsm_wireless = object_by_url(class_.gsm.GetDevice('wireless'))
|
||||||
|
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
print "XXXXXXX1 " + str(e)
|
print "Pyneo error: " + str(e)
|
||||||
if not class_._dbus_timer:
|
if not class_._dbus_timer:
|
||||||
class_._dbus_timer = ecore.timer_add(5, class_.init)
|
class_._dbus_timer = ecore.timer_add(5, class_.init)
|
||||||
|
|
||||||
|
@ -177,18 +178,6 @@ class PyneoController(object):
|
||||||
|
|
||||||
# D-Bus is ready, let's power up GSM
|
# D-Bus is ready, let's power up GSM
|
||||||
class_.power_up_gsm()
|
class_.power_up_gsm()
|
||||||
|
|
||||||
try:
|
|
||||||
class_.gsm_keyring = object_by_url(class_.gsm_wireless.GetKeyring())
|
|
||||||
|
|
||||||
except Exception, e:
|
|
||||||
print "XXXSIM " + str(e)
|
|
||||||
|
|
||||||
class_.gsm_keyring.connect_to_signal("Opened", class_.on_gsm_keyring_status, dbus_interface=DIN_KEYRING)
|
|
||||||
|
|
||||||
# Inquire SIM status and act accordingly to the initial state
|
|
||||||
status = class_.gsm_keyring.GetOpened(dbus_interface=DIN_KEYRING)
|
|
||||||
class_.on_gsm_keyring_status(status)
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def power_up_gsm(class_):
|
def power_up_gsm(class_):
|
||||||
|
@ -200,7 +189,7 @@ class PyneoController(object):
|
||||||
print '---', 'switching device on'
|
print '---', 'switching device on'
|
||||||
|
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
print "XXXXXXX2 " + str(e)
|
print "GSM error: " + str(e)
|
||||||
if not class_._gsm_timer:
|
if not class_._gsm_timer:
|
||||||
class_._gsm_timer = ecore.timer_add(5, class_.power_up_gsm)
|
class_._gsm_timer = ecore.timer_add(5, class_.power_up_gsm)
|
||||||
|
|
||||||
|
@ -210,6 +199,30 @@ class PyneoController(object):
|
||||||
# No error (anymore)
|
# No error (anymore)
|
||||||
if class_._gsm_timer: class_._gsm_timer.stop()
|
if class_._gsm_timer: class_._gsm_timer.stop()
|
||||||
|
|
||||||
|
# Now we can request the keyring object for the SIM, it didn't exist before powering up
|
||||||
|
class_.get_gsm_keyring()
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get_gsm_keyring(class_):
|
||||||
|
try:
|
||||||
|
class_.gsm_keyring = object_by_url(class_.gsm_wireless.GetKeyring())
|
||||||
|
|
||||||
|
except Exception, e:
|
||||||
|
print "SIM error: " + str(e)
|
||||||
|
if not class_._keyring_timer:
|
||||||
|
class_._keyring_timer = ecore.timer_add(5, class_.get_gsm_keyring)
|
||||||
|
|
||||||
|
# We had an error, keep the timer running if we were called by ecore
|
||||||
|
return True
|
||||||
|
|
||||||
|
# No error (anymore)
|
||||||
|
if class_._keyring_timer: class_._keyring_timer.stop()
|
||||||
|
|
||||||
|
class_.gsm_keyring.connect_to_signal("Opened", class_.on_gsm_keyring_status, dbus_interface=DIN_KEYRING)
|
||||||
|
|
||||||
|
# Inquire SIM status and act accordingly to the initial state
|
||||||
|
status = class_.gsm_keyring.GetOpened(dbus_interface=DIN_KEYRING)
|
||||||
|
class_.on_gsm_keyring_status(status)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def gsm_sim_locked(class_):
|
def gsm_sim_locked(class_):
|
||||||
|
|
Loading…
Reference in a new issue