def connect(self, on_connect, on_disconnect=None, on_event=None):
"""Connect to QTM
:param on_connect: Called on successful connection to QTM. Callback receives an :class:`QRTConnection` object.
:param on_disconnect: Called if connection fails or when connection is lost.
:param on_event: Called when there's an event from QTM.
"""
point = TCP4ClientEndpoint(reactor, self.host, self.port)
factory = QRTFactory(self.version, on_disconnect, on_event, self.logger)
try:
p = yield point.connect(factory)
except ConnectionRefusedError as reason:
if on_disconnect:
on_disconnect(QRTCommandException(str(reason)))
return
except Exception as reason:
if on_disconnect:
on_disconnect(reason)
return
try:
version = yield p.connected_d
except Exception as reason:
if on_disconnect:
p.on_disconnect = None
p.transport.loseConnection()
on_disconnect(reason)
return
on_connect(QRTConnection(p), version)
评论列表
文章目录