From 91a589b7cf1241aa27fa57fa7b29c901c05f54fe Mon Sep 17 00:00:00 2001 From: SrMouraSilva Date: Fri, 9 Mar 2018 18:03:07 -0300 Subject: [PATCH 1/3] #31 Async connection with Android app --- webservice_serial/target/android/adb.py | 2 +- .../target/android/android_display_view.py | 2 +- webservice_serial/webservice_serial.py | 13 ++++++++----- webservice_serial/webservice_serial_client.py | 2 +- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/webservice_serial/target/android/adb.py b/webservice_serial/target/android/adb.py index c1c8a2f..ea39607 100644 --- a/webservice_serial/target/android/adb.py +++ b/webservice_serial/target/android/adb.py @@ -29,7 +29,7 @@ def __init__(self, command="adb", log=None): self.log = log def start(self, port, activity): - #self.execute('shell am start -n {}'.format(activity)) + self.execute('shell am start -n {}'.format(activity)) #self.execute('forward --remove-all') self.execute('forward tcp:{} tcp:{}'.format(port, port)) diff --git a/webservice_serial/target/android/android_display_view.py b/webservice_serial/target/android/android_display_view.py index b265efb..5ee4b21 100644 --- a/webservice_serial/target/android/android_display_view.py +++ b/webservice_serial/target/android/android_display_view.py @@ -19,7 +19,7 @@ class AndroidDisplayView(Target): - activity = 'io.github.pedalpi.pedalpi_display/io.github.pedalpi.displayview.activity.ResumeActivity' + activity = 'io.github.pedalpi.pedalpi_display/io.github.pedalpi.displayview.activity.resume.ResumeActivity' def __init__(self): super(AndroidDisplayView, self).__init__() diff --git a/webservice_serial/webservice_serial.py b/webservice_serial/webservice_serial.py index 4562c5c..72349cd 100644 --- a/webservice_serial/webservice_serial.py +++ b/webservice_serial/webservice_serial.py @@ -13,14 +13,12 @@ # limitations under the License. from application.component.component import Component -from webservice_serial.protocol.response_verb import ResponseVerb - +from tornado import gen +from tornado.ioloop import IOLoop from webservice_serial.request_message_processor import RequestMessageProcessor from webservice_serial.webservice_serial_client import WebServiceSerialClient from webservice_serial.websocket_client import WebSocketClient -from time import sleep - class WebServiceSerial(Component): port = 8888 @@ -53,9 +51,14 @@ def init(self): self._try_connect() def _try_connect(self, delay=0): + IOLoop.current().spawn_callback(self.__try_connect, delay) + + @gen.coroutine + def __try_connect(self, delay=0): + print(delay) self._log('Trying to connect with {}', self.target.name) self.target.init(self.application, WebServiceSerial.port) - sleep(delay) + yield gen.sleep(delay) self._client.connect() def _on_token_defined(self, token): diff --git a/webservice_serial/webservice_serial_client.py b/webservice_serial/webservice_serial_client.py index 0af223b..99d99bf 100644 --- a/webservice_serial/webservice_serial_client.py +++ b/webservice_serial/webservice_serial_client.py @@ -34,7 +34,7 @@ def __init__(self, address, port, encoding="utf-8"): self.disconnected_listener = lambda: print('Disconnected :(') def connect(self): - IOLoop.current().spawn_callback(lambda: self._connect()) + IOLoop.current().spawn_callback(self._connect) @gen.coroutine def _connect(self): From 46852ed2ad23cf1f49f2ce2dc40b3939570b6bb5 Mon Sep 17 00:00:00 2001 From: SrMouraSilva Date: Fri, 9 Mar 2018 18:23:30 -0300 Subject: [PATCH 2/3] #31 Fix package --- webservice_serial/target/android/android_display_view.py | 2 +- webservice_serial/webservice_serial.py | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/webservice_serial/target/android/android_display_view.py b/webservice_serial/target/android/android_display_view.py index 5ee4b21..8a31da6 100644 --- a/webservice_serial/target/android/android_display_view.py +++ b/webservice_serial/target/android/android_display_view.py @@ -19,7 +19,7 @@ class AndroidDisplayView(Target): - activity = 'io.github.pedalpi.pedalpi_display/io.github.pedalpi.displayview.activity.resume.ResumeActivity' + activity = 'io.github.pedalpi.displayview/io.github.pedalpi.displayview.activity.resume.ResumeActivity' def __init__(self): super(AndroidDisplayView, self).__init__() diff --git a/webservice_serial/webservice_serial.py b/webservice_serial/webservice_serial.py index 72349cd..7cfcd5f 100644 --- a/webservice_serial/webservice_serial.py +++ b/webservice_serial/webservice_serial.py @@ -55,7 +55,6 @@ def _try_connect(self, delay=0): @gen.coroutine def __try_connect(self, delay=0): - print(delay) self._log('Trying to connect with {}', self.target.name) self.target.init(self.application, WebServiceSerial.port) yield gen.sleep(delay) From 48928ddd860f6f98b2f13bfb0c0f89a8127e4532 Mon Sep 17 00:00:00 2001 From: SrMouraSilva Date: Mon, 12 Mar 2018 21:46:34 -0300 Subject: [PATCH 3/3] #32 Not send message if stream is closed --- webservice_serial/webservice_serial_client.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/webservice_serial/webservice_serial_client.py b/webservice_serial/webservice_serial_client.py index 99d99bf..7f2d2fd 100644 --- a/webservice_serial/webservice_serial_client.py +++ b/webservice_serial/webservice_serial_client.py @@ -77,10 +77,13 @@ def _read_data(self): return data def send(self, message): + if self.stream is None: + return + try: text = str(message).encode(self.encoding) self.stream.write(text) - except StreamClosedError as e: + except StreamClosedError: self.disconnected_listener() def close(self):