当前位置: 首页>>代码示例>>Python>>正文


Python uasyncio.get_event_loop方法代码示例

本文整理汇总了Python中uasyncio.get_event_loop方法的典型用法代码示例。如果您正苦于以下问题:Python uasyncio.get_event_loop方法的具体用法?Python uasyncio.get_event_loop怎么用?Python uasyncio.get_event_loop使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在uasyncio的用法示例。


在下文中一共展示了uasyncio.get_event_loop方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: launch

# 需要导入模块: import uasyncio [as 别名]
# 或者: from uasyncio import get_event_loop [as 别名]
def launch(func, tup_args):
    res = func(*tup_args)
    if isinstance(res, type_coro):
        loop = asyncio.get_event_loop()
        loop.create_task(res)


# To access a lockable resource a coro should issue
# async with lock_instance:
#    access the locked resource

# Alternatively:
# await lock.acquire()
# try:
#   do stuff with locked resource
# finally:
#   lock.release
# Uses normal scheduling on assumption that locks are held briefly. 
开发者ID:peterhinch,项目名称:micropython-mqtt,代码行数:20,代码来源:asyn.py

示例2: start

# 需要导入模块: import uasyncio [as 别名]
# 或者: from uasyncio import get_event_loop [as 别名]
def start(self, user_task=None, awaitable=None):
        loop = asyncio.get_event_loop()
        while True:
            if not self._running:   # Restarting
                self.lstrx = []     # Clear down queues
                self.lsttx = []
                self._synchronised = False
                loop.create_task(self._run())  # Reset target (if possible)
                while not self._synchronised:  # Wait for sync
                    await asyncio.sleep_ms(100)
                if user_task is None:
                    while self._running:
                        await asyncio.sleep_ms(100)
                else:
                    await user_task(self)  # User task must quit on timeout
                    # If it quit for other reasons force a t/o exception
                    self.stop()
            await asyncio.sleep_ms(0)
            if awaitable is not None:  # User code may use an ExitGate
                await awaitable  # to ensure all coros have quit

# Can be used to force a failure 
开发者ID:peterhinch,项目名称:micropython-mqtt,代码行数:24,代码来源:syncom.py

示例3: test_sw

# 需要导入模块: import uasyncio [as 别名]
# 或者: from uasyncio import get_event_loop [as 别名]
def test_sw():
    s = '''
close pulses green
open pulses red
'''
    print('Test of switch scheduling coroutines.')
    print(helptext)
    print(s)
    pin = Pin('X1', Pin.IN, Pin.PULL_UP)
    red = LED(1)
    green = LED(2)
    sw = Switch(pin)
    # Register coros to launch on contact close and open
    sw.close_func(pulse, (green, 1000))
    sw.open_func(pulse, (red, 1000))
    loop = asyncio.get_event_loop()
    loop.run_until_complete(killer())

# Test for the switch class with a callback 
开发者ID:peterhinch,项目名称:micropython-samples,代码行数:21,代码来源:switches.py

示例4: test_btncb

# 需要导入模块: import uasyncio [as 别名]
# 或者: from uasyncio import get_event_loop [as 别名]
def test_btncb():
    s = '''
press toggles red
release toggles green
double click toggles yellow
long press toggles blue
'''
    print('Test of pushbutton executing callbacks.')
    print(helptext)
    print(s)
    pin = Pin('X1', Pin.IN, Pin.PULL_UP)
    red = LED(1)
    green = LED(2)
    yellow = LED(3)
    blue = LED(4)
    pb = Pushbutton(pin)
    pb.press_func(toggle, (red,))
    pb.release_func(toggle, (green,))
    pb.double_func(toggle, (yellow,))
    pb.long_func(toggle, (blue,))
    loop = asyncio.get_event_loop()
    loop.run_until_complete(killer()) 
开发者ID:peterhinch,项目名称:micropython-samples,代码行数:24,代码来源:switches.py

示例5: event_test

# 需要导入模块: import uasyncio [as 别名]
# 或者: from uasyncio import get_event_loop [as 别名]
def event_test():
    printexp('''Test Lock class
Test Event class
waiting for event
run_lock 1 waiting for lock
run_lock 1 acquired lock
run_lock 2 waiting for lock
run_lock 3 waiting for lock
Waiting 5 secs before setting event
run_lock 1 released lock
run_lock 2 acquired lock
run_lock 2 released lock
run_lock 3 acquired lock
run_lock 3 released lock
event was set
got event
Event status OK
Tasks complete
''', 5)
    asyncio.get_event_loop().run_until_complete(run_event_test())

# ************ Barrier test ************ 
开发者ID:peterhinch,项目名称:micropython-samples,代码行数:24,代码来源:prim_test.py

示例6: run

# 需要导入模块: import uasyncio [as 别名]
# 或者: from uasyncio import get_event_loop [as 别名]
def run(self, host="127.0.0.1", port=8081, debug=False, lazy_init=False, log=None):
        if log is None and debug >= 0:
            import ulogging
            log = ulogging.getLogger("picoweb")
            if debug > 0:
                log.setLevel(ulogging.DEBUG)
        self.log = log
        gc.collect()
        self.debug = int(debug)
        self.init()
        if not lazy_init:
            for app in self.mounts:
                app.init()
        loop = asyncio.get_event_loop()
        if debug > 0:
            print("* Running on http://%s:%s/" % (host, port))
        loop.create_task(asyncio.start_server(self._handle, host, port))
        loop.run_forever()
        loop.close() 
开发者ID:peterhinch,项目名称:micropython-samples,代码行数:21,代码来源:__init__.py

示例7: __init__

# 需要导入模块: import uasyncio [as 别名]
# 或者: from uasyncio import get_event_loop [as 别名]
def __init__(self, adc, adc_multi, voltage_calibration_0, pH_calibration_value_0,
                 voltage_calibration_1, pH_calibration_value_1,
                 precision=2, interval=None, mqtt_topic=None,
                 friendly_name=None, discover=True):
        # This makes it possible to use multiple instances of MySensor
        global _unit_index
        _unit_index += 1
        super().__init__(COMPONENT_NAME, __version__, _unit_index, discover)
        self._interval = interval or config.INTERVAL_SENSOR_PUBLISH
        self._topic = mqtt_topic
        self._frn = friendly_name
        self._adc = ADC(adc)
        self._adc_multi = adc_multi

        self.__ph = None

        self._prec = int(precision)

        self._v0 = voltage_calibration_0
        self._v1 = voltage_calibration_1
        self._ph0 = pH_calibration_value_0
        self._ph1 = pH_calibration_value_1
        gc.collect()
        if self._interval > 0:  # if interval==-1 no loop will be started
            asyncio.get_event_loop().create_task(self._loop()) 
开发者ID:kevinkk525,项目名称:pysmartnode,代码行数:27,代码来源:phSensor.py

示例8: changeMode

# 需要导入模块: import uasyncio [as 别名]
# 或者: from uasyncio import get_event_loop [as 别名]
def changeMode(self, topic, msg, retain):
        print("changeMode", topic, msg, retain, self._repeating_mode)
        if msg not in _mqtt.payload_on and msg not in _mqtt.payload_off:
            raise ValueError("unsupported payload {!r}".format(msg))
        if msg in _mqtt.payload_on:
            if self._repeating_mode is True:
                # already on
                return True
            elif self._repeating_mode is False:
                await super().on_message(self._topic, "OFF", retain)
                self._off_coro = self._repeating()
                asyncio.get_event_loop().create_task(self._off_coro)
        elif msg in _mqtt.payload_off:
            if self._off_coro is not None:
                asyncio.cancel(self._off_coro)  # will shut down pump
                self._off_coro = None
            if self._repeating_mode is True:
                return True
            elif self._repeating_mode is False:
                await super().on_message(self._topic, "OFF", retain)
                return True
        return True 
开发者ID:kevinkk525,项目名称:pysmartnode,代码行数:24,代码来源:rfpump.py

示例9: _connected_handler

# 需要导入模块: import uasyncio [as 别名]
# 或者: from uasyncio import get_event_loop [as 别名]
def _connected_handler(self, client):
        try:
            await self.publish(self.getDeviceTopic(config.MQTT_AVAILABILITY_SUBTOPIC), "online",
                               qos=1, retain=True)
            # if it hangs here because connection is lost, it will get canceled when reconnected.
            if self.__first_connect is True:
                # only log on first connection, not on reconnect as nothing has changed here
                await _log.asyncLog("info", str(os.name if platform == "linux" else os.uname()))
                await _log.asyncLog("info", "Client version: {!s}".format(config.VERSION))
                self.__first_connect = False
            elif self.__first_connect is False:
                await _log.asyncLog("debug", "Reconnected")
                # resubscribe topics because clean session is used
                if self._sub_coro is not None:
                    asyncio.cancel(self._sub_coro)
                self._sub_coro = self._subscribeTopics()
                asyncio.get_event_loop().create_task(self._sub_coro)
            for cb in self._reconnected_subs:
                res = cb(client)
                if type(res) == type_gen:
                    await res
            self._connected_coro = None
        except asyncio.CancelledError:
            if self._sub_coro is not None:
                asyncio.cancel(self._sub_coro) 
开发者ID:kevinkk525,项目名称:pysmartnode,代码行数:27,代码来源:mqtt.py

示例10: log

# 需要导入模块: import uasyncio [as 别名]
# 或者: from uasyncio import get_event_loop [as 别名]
def log(name, level, *message, local_only=False, return_only=False, timeout=None):
    if level == "debug" and not config.DEBUG:  # ignore debug messages if debug is disabled
        return
    if hasattr(config, "RTC_SYNC_ACTIVE") and config.RTC_SYNC_ACTIVE:
        if hasattr(time, "strftime"):
            print("[{}]".format(time.strftime("%Y-%m-%d %H:%M:%S")), "[{}]".format(name),
                  "[{}]".format(level), *message)
        else:
            t = time.localtime()
            print("[{}-{:02d}-{:02d} {:02d}:{:02d}:{:02d}]".format(*t), "[{}]".format(name),
                  "[{}]".format(level), *message)
    else:
        print("[{!s}] [{!s}]".format(name, level), *message)
    if return_only:
        return
    if not local_only:
        asyncio.get_event_loop().create_task(asyncLog(name, level, *message, timeout=timeout,
                                                      await_connection=True)) 
开发者ID:kevinkk525,项目名称:pysmartnode,代码行数:20,代码来源:logging_full.py

示例11: __init__

# 需要导入模块: import uasyncio [as 别名]
# 或者: from uasyncio import get_event_loop [as 别名]
def __init__(self, component_name, version, unit_index: int, discover=True):
        self._next_component = None  # needed to keep a list of registered components
        global _components
        if _components is None:
            _components = self
        else:
            c = _components
            while c is not None:
                if c._next_component is None:
                    c._next_component = self
                    break
                c = c._next_component
        # Workaround to prevent every component object from creating a new asyncio task for
        # network oriented initialization as this would lead to an asyncio queue overflow.
        global _init_queue_start
        if _init_queue_start is None:
            _init_queue_start = self
            asyncio.get_event_loop().create_task(self.__initNetworkProcess())
        self.COMPONENT_NAME = component_name
        self.VERSION = version
        self._count = unit_index
        self.__discover = discover 
开发者ID:kevinkk525,项目名称:pysmartnode,代码行数:24,代码来源:__init__.py

示例12: cbgreen

# 需要导入模块: import uasyncio [as 别名]
# 或者: from uasyncio import get_event_loop [as 别名]
def cbgreen(command, text):
    loop = asyncio.get_event_loop()
    loop.create_task(pulse(green, 500))

# The user_start callback. See docs 2.3.5. 
开发者ID:peterhinch,项目名称:micropython-mqtt,代码行数:7,代码来源:pb_status.py

示例13: start

# 需要导入模块: import uasyncio [as 别名]
# 或者: from uasyncio import get_event_loop [as 别名]
def start(mqtt_link):
    global reset_count
    mqtt_link.subscribe('green', qos, cbgreen)    # LED control qos 1
    loop = asyncio.get_event_loop()
    loop.create_task(asyn.Cancellable(publish, mqtt_link, 10)()) # Publish a count every 10 seconds
    loop.create_task(pulse(blue))  # Flash blue LED each time we restart ESP8266
    reset_count += 1 
开发者ID:peterhinch,项目名称:micropython-mqtt,代码行数:9,代码来源:pb_status.py

示例14: start

# 需要导入模块: import uasyncio [as 别名]
# 或者: from uasyncio import get_event_loop [as 别名]
def start(mqtt_link):
    global reset_count
    mqtt_link.subscribe('green', qos, cbgreen)    # LED control qos 1
    mqtt_link.wifi_handler(cbnet, mqtt_link)  # Detect WiFi changes
    loop = asyncio.get_event_loop()
    loop.create_task(asyn.Cancellable(publish, mqtt_link, 10)()) # Publish a count every 10 seconds
    loop.create_task(pulse(blue))  # Flash blue LED each time we restart ESP8266
    reset_count += 1 
开发者ID:peterhinch,项目名称:micropython-mqtt,代码行数:10,代码来源:pbrange.py

示例15: _reconnect

# 需要导入模块: import uasyncio [as 别名]
# 或者: from uasyncio import get_event_loop [as 别名]
def _reconnect(self):  # Schedule a reconnection if not underway.
        if self._isconnected:
            self._isconnected = False
            self.close()
            loop = asyncio.get_event_loop()
            loop.create_task(self._wifi_handler(False))  # User handler.

    # Await broker connection. 
开发者ID:peterhinch,项目名称:micropython-mqtt,代码行数:10,代码来源:mqtt_as.py


注:本文中的uasyncio.get_event_loop方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。