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
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
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
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')
def _send_dtmf(self, call, code): logger.info("send dtmf %s to call %s", code, call.number) assert call.status == 'active' yield Sleep(1)
def _activate(self, call): logger.info("activate call") yield Sleep(1) call._active()
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)