本文整理汇总了Python中tinkerforge.ip_connection.IPConnection.get_connection_state方法的典型用法代码示例。如果您正苦于以下问题:Python IPConnection.get_connection_state方法的具体用法?Python IPConnection.get_connection_state怎么用?Python IPConnection.get_connection_state使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类tinkerforge.ip_connection.IPConnection
的用法示例。
在下文中一共展示了IPConnection.get_connection_state方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: from tinkerforge.ip_connection import IPConnection [as 别名]
# 或者: from tinkerforge.ip_connection.IPConnection import get_connection_state [as 别名]
class ClimateSensors:
def __init__(self, host, port):
self.hum = None
self.hum_value = 0.0
self.temp = None
self.temp_value = 0.0
self.lcd = None
self.port = port
self.host = host
self.conn = IPConnection()
self.conn.register_callback(IPConnection.CALLBACK_ENUMERATE, self.cb_enumerate)
self.conn.register_callback(IPConnection.CALLBACK_CONNECTED, self.cb_connected)
def update_display(self):
if self.lcd is not None:
self.lcd.write_line(1, 2, 'Temp: {:3.2f} C'.format(self.temp_value))
self.lcd.write_line(2, 2, 'RelHum: {:3.2f} %'.format(self.hum_value))
def connect(self):
if self.conn.get_connection_state() == self.conn.CONNECTION_STATE_DISCONNECTED:
self.conn.connect(self.host, self.port)
self.conn.enumerate()
def disconnect(self):
if self.conn.get_connection_state() != self.conn.CONNECTION_STATE_DISCONNECTED:
if self.lcd is not None:
self.lcd.backlight_off()
self.lcd.clear_display()
self.conn.disconnect()
def cb_connected(self, connected_reason):
self.conn.enumerate()
def cb_enumerate(self, uid, connected_uid, position, hardware_version, firmware_version, device_identifier, enumeration_type):
if enumeration_type == IPConnection.ENUMERATION_TYPE_DISCONNECTED:
# print("DISCONNECTED")
return
if device_identifier == Temperature.DEVICE_IDENTIFIER:
self.temp = Temperature(uid, self.conn)
self.temp.register_callback(self.temp.CALLBACK_TEMPERATURE, self.cb_temperature)
self.update_temperature(self.temp.get_temperature())
self.temp.set_temperature_callback_period(UPDATE_PERIOD)
if device_identifier == Humidity.DEVICE_IDENTIFIER:
self.hum = Humidity(uid, self.conn)
self.hum.register_callback(self.hum.CALLBACK_HUMIDITY, self.cb_humidity)
self.update_humidity(self.hum.get_humidity())
self.hum.set_humidity_callback_period(UPDATE_PERIOD)
if device_identifier == LCD20x4.DEVICE_IDENTIFIER:
self.lcd = LCD20x4(uid, self.conn)
self.lcd.backlight_on()
def cb_temperature(self, temperature):
self.update_temperature(temperature)
self.update_display()
def update_temperature(self, raw_temperature):
self.temp_value = raw_temperature / 100.0
def cb_humidity(self, humidity):
self.update_humidity(humidity)
self.update_display()
def update_humidity(self, raw_humidity):
self.hum_value = raw_humidity / 10.0
示例2: DeviceManager
# 需要导入模块: from tinkerforge.ip_connection import IPConnection [as 别名]
# 或者: from tinkerforge.ip_connection.IPConnection import get_connection_state [as 别名]
class DeviceManager(object):
"""
Diese Klasse implementiert den Gerätemanager einer ORBIT-Anwendung.
**Parameter**
``core``
Ein Verweis auf den Anwendungskern der ORBIT-Anwendung.
Eine Instanz der Klasse :py:class:`Core`.
**Beschreibung**
Der Gerätemanager baut eine Verbindung zu einem TinkerForge-Server auf,
ermittelt die angeschlossenen Bricks und Bricklets und stellt
den Komponenten in den Jobs die jeweils geforderten Geräte zur Verfügung.
Dabei behält der Gerätemanager die Kontrolle über den Gerätezugriff.
Das bedeutet, dass der Gerätemanager die Autorität hat, einer Komponente
ein Gerät zur Verügung zu stellen, aber auch wieder zu entziehen.
Eine Komponente bekommt ein von ihm angefordertes Gerät i.d.R. dann zugewiesen,
wenn die Komponente aktiv und das Gerät verfügbar ist. Wird die Verbindung
zum TinkerForge-Server unterbrochen oder verliert der TinkerForge-Server
die Verbindung zum Master-Brick (USB-Kabel herausgezogen), entzieht
der Gerätemanager der Komponente automatisch das Gerät, so dass eine
Komponente i.d.R. keine Verbindungsprobleme behandeln muss.
Umgesetzt wird dieses Konzept mit Hilfe der Klassen :py:class:`SingleDeviceHandle`
und :py:class:`MultiDeviceHandle`.
"""
def __init__(self, core):
self._core = core
self._connected = False
self._devices = {}
self._device_handles = []
self._device_callbacks = {}
self._device_initializers = {}
self._device_finalizers = {}
# initialize IP connection
self._conn = IPConnection()
self._conn.set_auto_reconnect(True)
self._conn.register_callback(IPConnection.CALLBACK_ENUMERATE, self._cb_enumerate)
self._conn.register_callback(IPConnection.CALLBACK_CONNECTED, self._cb_connected)
self._conn.register_callback(IPConnection.CALLBACK_DISCONNECTED, self._cb_disconnected)
def trace(self, text):
"""
Schreibt eine Nachverfolgungsmeldung mit dem Ursprung ``DeviceManager``
auf die Konsole.
"""
if self._core.configuration.device_tracing:
self._core._trace_function(text, 'DeviceManager')
@property
def devices(self):
"""
Ein Dictionary mit allen zur Zeit verfügbaren Geräten.
Die UID des Geräts ist der Schlüssel und der Wert ist eine Instanz
der TinkerForge-Geräte-Klasse
(wie z.B. ``tinkerforge.bricklet_lcd_20x4.BrickletLCD20x4``).
"""
return self._devices
def start(self):
"""
Startet den Gerätemanager und baut eine Verbindung zu einem TinkerForge-Server auf.
Die Verbindungdaten für den Server werden der ORBIT-Konfiguration entnommen.
Gibt ``True`` zurück, wenn die Verbindung aufgebaut werden konnte, sonst ``False``.
Siehe auch: :py:meth:`stop`
"""
if self._conn.get_connection_state() == IPConnection.CONNECTION_STATE_DISCONNECTED:
host = self._core.configuration.host
port = self._core.configuration.port
retry_time = self._core.configuration.connection_retry_time
self.trace("connecting to %s:%d ..." % (host, port))
connected = False
while not connected:
try:
self._conn.connect(host, port)
connected = True
except KeyboardInterrupt:
connected = False
break
except:
connected = False
self.trace("... connection failed, waiting %d, retry ..." % retry_time)
try:
time.sleep(retry_time)
except KeyboardInterrupt:
break
if connected:
self.trace("... connected")
return connected
def stop(self):
"""
#.........这里部分代码省略.........