1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
""" Includes """
import smbus
import sys
import time
""" Variables """
lockdown = False
def version():
print "i2cPixel is Version 1.0.0"
def setAddress(address):
global arduinoAddress
arduinoAddress = address
def setBus(n):
if available = False:
return 2
else:
global bus
try:
bus = smbus.SMBus(n)
except:
errorMsg = sys.exc_info()[0]
errorHandler(5, errorMsg)
def available():
global lockdown
return lockdown
def greeting():
if available = False:
return 2
else:
try:
""" Send heartbeat """
bus.write_byte(arduinoAddress, 0x01)
""" Wait for response """
try:
response = bus.read_byte(arduinoAddress)
if response == 0x01:
returnMsg = True
else:
returnMsg = False
except:
errorMsg = sys.exc_info()[0]
errorHandler(5, errorMsg)
returnMsg = False
""" Return if heartbeat was received """
return returnMsg
except:
errorMsg = sys.exc_info()[0]
errorHandler(5, errorMsg)
def setPixel(n, red, green, blue):
""" Send values for changing pixel values """
if available = False:
return 2
else:
try:
bus.write_block_data(arduinoAddress, 0x02, [n, red, green, blue])
except:
errorMsg = sys.exc_info()[0]
errorHandler(5, errorMsg)
def show():
""" Send values for turning pixels on """
if available = False:
return 2
else:
try:
bus.write_byte(arduinoAddress, 0x03)
except:
errorMsg = sys.exc_info()[0]
errorHandler(5, errorMsg)
def blink(time, red, green, blue):
""" Flash all pixels with a colour """
if available = False:
return 2
else:
try:
bus.write_block_data(arduinoAddress, 0x04, [red, green, blue, time])
except:
errorMsg = sys.exc_info()[0]
errorHandler(5, errorMsg)
def waitForSensor():
while True:
try:
sensorData = bus.read_byte(arduinoAddress)
if sensorData == 0x02:
print "Sensor 1 Triggered"
return 1
break;
if sensorData == 0x03:
print "Sensor 2 Triggered"
return 2
break;
except Exception:
pass
|