summaryrefslogtreecommitdiff
path: root/Python code/serialrgb.py
diff options
context:
space:
mode:
Diffstat (limited to 'Python code/serialrgb.py')
-rw-r--r--Python code/serialrgb.py18
1 files changed, 17 insertions, 1 deletions
diff --git a/Python code/serialrgb.py b/Python code/serialrgb.py
index 7296e22..8d7c6d8 100644
--- a/Python code/serialrgb.py
+++ b/Python code/serialrgb.py
@@ -1,7 +1,15 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
-import serial
+import serial, time
+
+class SyncError(Exception):
+ """Synchronisation error"""
+ def __init__(self, msg=""):
+ self._msg = str(msg)
+
+ def __str__(self):
+ return msg
class SerialRGB(object):
"""Easy controlling of the RGB-LED / Arduino"""
@@ -16,6 +24,12 @@ class SerialRGB(object):
self.ser = serial.Serial(addr, baud)
except:
raise IOError("Could not connect to Arduino via serial port.")
+ # Sync...
+ while self.ser.inWaiting() < 1:
+ self.ser.write("\x00")
+ time.sleep(.01)
+ if self.ser.read(1) != "1":
+ raise SyncError
def __del__(self):
self.close_connection()
@@ -28,6 +42,8 @@ class SerialRGB(object):
"""
r, g, b = color
self.ser.write(chr(r) + chr(g) + chr(b))
+ if self.ser.read(1) != "1":
+ raise SyncError
def close_connection(self):
"""Closes the connection to the Arduino."""