From ad0aad60d706a0ace289cd79b474fc3984ec7295 Mon Sep 17 00:00:00 2001 From: Wojtek Siudzinski Date: Mon, 2 Jun 2014 16:25:06 +0200 Subject: [PATCH 1/3] Send version query after initialization --- BreakfastSerial/BreakfastSerial.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/BreakfastSerial/BreakfastSerial.py b/BreakfastSerial/BreakfastSerial.py index 3df9566..1c528c4 100644 --- a/BreakfastSerial/BreakfastSerial.py +++ b/BreakfastSerial/BreakfastSerial.py @@ -35,6 +35,10 @@ def __init__(self, *args, **kwargs): newargs = (find_arduino(),) super(Arduino, self).__init__(*newargs) + # Get protocol version + self.sp.write(chr(0xF9)) + self.iterate() + if not self.get_firmata_version(): raise FirmataNotOnBoardException From 0c8efd6543a66ef0586c4a6627c9478e10e178dc Mon Sep 17 00:00:00 2001 From: Wojtek Siudzinski Date: Mon, 2 Jun 2014 17:05:25 +0200 Subject: [PATCH 2/3] Setting LED pin mode to output --- BreakfastSerial/components.py | 1 + 1 file changed, 1 insertion(+) diff --git a/BreakfastSerial/components.py b/BreakfastSerial/components.py index c528fda..f1777ff 100644 --- a/BreakfastSerial/components.py +++ b/BreakfastSerial/components.py @@ -75,6 +75,7 @@ def __init__(self, board, pin): super(Led, self).__init__(board, pin) self._isOn = False self._interval = None + self._pin.mode = pyfirmata.OUTPUT def on(self): self._pin.write(1) From edcb504273d27bdff96583c02461f5e67e288add Mon Sep 17 00:00:00 2001 From: Wojtek Siudzinski Date: Mon, 2 Jun 2014 18:49:24 +0200 Subject: [PATCH 3/3] Added waiting for data before parsing incoming data --- BreakfastSerial/BreakfastSerial.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/BreakfastSerial/BreakfastSerial.py b/BreakfastSerial/BreakfastSerial.py index 1c528c4..68ad201 100644 --- a/BreakfastSerial/BreakfastSerial.py +++ b/BreakfastSerial/BreakfastSerial.py @@ -36,8 +36,10 @@ def __init__(self, *args, **kwargs): super(Arduino, self).__init__(*newargs) # Get protocol version - self.sp.write(chr(0xF9)) - self.iterate() + self.sp.write(chr(0xF9)) + self.pass_time(1) + while self.bytes_available(): + self.iterate() if not self.get_firmata_version(): raise FirmataNotOnBoardException