コード例 #1
0
    def send(self, sms):
        #logger.info("Sending message to %s", sms.peer)
        yield Sleep(2)
        logger.info("Store message into messages")
        yield Service.get('Messages').add(sms)

        yield None
コード例 #2
0
def retry_on_sim_busy(method, *args):
    """Attempt a dbus call the the framework and retry if we get a sim
    busy error

    Every time we get a SIM busy error, we wait for the ReadyStatus
    signal, or 5 seconds, and we try again.

    If it fails 5 times, we give up and raise an Exception.
    """
    def is_busy_error(ex):
        """Check if an exception is due to a SIM busy error"""
        # There is a little hack to handle cases when the framework
        # fails to send the SIM.NotReady error.
        name = ex.get_dbus_name()
        msg = ex.get_dbus_message()
        return name == 'org.freesmartphone.GSM.SIM.NotReady' or \
            msg.endswith('SIM busy')

    bus = dbus.SystemBus(mainloop=tichy.mainloop.dbus_loop)
    gsm = bus.get_object('org.freesmartphone.ogsmd',
                         '/org/freesmartphone/GSM/Device',
                         follow_name_owner_changes=True)
    gsm_sim = dbus.Interface(gsm, 'org.freesmartphone.GSM.SIM')

    for i in range(5):
        try:
            ret = yield WaitDBus(method, *args)
            yield ret
        except dbus.exceptions.DBusException, ex:
            if not is_busy_error(ex):  # This is an other error
                raise
            logger.info("sim busy, retry in 5 seconds")
            yield WaitFirst(Sleep(5), WaitDBusSignal(gsm_sim, 'ReadyStatus'))
            continue
コード例 #3
0
ファイル: wifi.py プロジェクト: vmx/paroli
    def init(self):
        logger.info('wifi service init')
        try:
            self.config_service = Service.get("Config")
            yield self.config_service.wait_initialized()
            self.usage_service = Service.get('Usage')
            yield self.usage_service.wait_initialized()
            yield self.usage_service.request_resource('Wifi')
            bus = dbus.SystemBus(mainloop=mainloop.dbus_loop)

            ## power related
            power_obj = bus.get_object('org.freesmartphone.odeviced', 
                                       '/org/freesmartphone/Device/PowerControl/WiFi')
            self.power_iface = dbus.Interface(power_obj, 
                                              'org.freesmartphone.Device.PowerControl')
            try_num = 0
            obj = None
            ## devicing
            for i in range(5):
                    try:
                        obj = bus.get_object("org.moblin.connman", "/")
                        logger.info("moblin success")
                    except:
                        logger.info("moblin failed")
                        yield WaitFirst(Sleep(1))
                        continue
                    else:
                        break
                        #raise Exception("moblin not starting")
            if obj:
                self.devicing_iface = dbus.Interface(
                                           obj, 
                                           "org.moblin.connman.Manager")
                self.status_setting = tichy.settings.ToggleSetting(
                                            'wifi', 'power', 
                                            Text, value=self.get_power(), 
                                            setter=self.power, 
                                            options=['active','inactive'])
                self.NetworkList = List()
                self.ListLabel = [('title','name'),('subtitle','info')]
                self.scan_setting = tichy.settings.ListSetting('wifi', 
                                                               'scan', 
                                                               Text, 
                                                               value="Networks", 
                                                               setter=self.run_scan, 
                                                               options=['Networks'], 
                                                               model=self.NetworkList, 
                                                               ListLabel=self.ListLabel)
                if self.get_power():
                    self.get_device()
                self.devicing_iface.connect_to_signal('PropertyChanged', 
                                                      self.property_changed)
                self.connect("closing", self.closing)
            else: 
                logger.error("Moblin failed. Is Connman/moblin installed?")
        except Exception, e:
            logger.exception("can't use wifi service : %s", e)
            raise
コード例 #4
0
 def run(self, parent=None, standalone=False):
     logger.info('run starts')
     edje_file = pjoin(dirname(__file__), 'dummy.edj')
     window = ElementaryLayoutWindow(edje_file, "dummy", None, None, True)
     message = '<h1>I`m a dummy</h1><p><strong>Hihi bla fasel</strong></p>'
     for n in range(5):
         message += '<p><red>We are at step %d</red></p>' % n
         window.main_layout.elm_obj.edje_get().part_text_set(
             'dummy.textview', message)
         yield Sleep(1)
     window.delete()
     logger.info('run stops')
コード例 #5
0
 def _send_dtmf(self, call, code):
     logger.info("send dtmf %s to call %s", code, call.number)
     assert call.status == 'active'
     yield Sleep(1)
コード例 #6
0
 def _activate(self, call):
     logger.info("activate call")
     yield Sleep(1)
     call._active()
コード例 #7
0
 def _start_incoming(self):
     logger.info("simulate incoming call in 5 second")
     yield Sleep(5)
     call = self.create_call('01234567', direction='in')
     self.emit('incoming-call', call)