aboutsummaryrefslogtreecommitdiff
path: root/src/compileAndRun
diff options
context:
space:
mode:
Diffstat (limited to 'src/compileAndRun')
-rw-r--r--src/compileAndRun/pythonSupportFiles/LuxcenaNeo/Matrix.py34
-rw-r--r--src/compileAndRun/pythonSupportFiles/LuxcenaNeo/Strip.py20
2 files changed, 44 insertions, 10 deletions
diff --git a/src/compileAndRun/pythonSupportFiles/LuxcenaNeo/Matrix.py b/src/compileAndRun/pythonSupportFiles/LuxcenaNeo/Matrix.py
index 0986b45..320da02 100644
--- a/src/compileAndRun/pythonSupportFiles/LuxcenaNeo/Matrix.py
+++ b/src/compileAndRun/pythonSupportFiles/LuxcenaNeo/Matrix.py
@@ -22,21 +22,45 @@ def getSegmentRange(segments, n):
class Matrix:
def __init__(self, segments, matrix):
- self.matrix = []
+ self.matrix = [] # Holds the matrix
+ self.xLen = 0 # The width of the matrix
+ self.yLen = len(matrix) # The heigth of the matrix
+
for yPos in range(len(matrix)):
yVal = matrix[yPos]
thisY = []
for xPos in range(len(yVal)):
- if matrix[yPos][xPos][1] == True:
- thisY += reversed(getSegmentRange(segments, matrix[yPos][xPos][0]))
- else:
- thisY += getSegmentRange(segments, matrix[yPos][xPos][0])
+ # This gets the range of segment n
+ segmentRange = getSegmentRange(segments, matrix[yPos][xPos][0])
+
+ # This adds the range to the current row's list
+ # if in the config [<segment_num>, <reversed>]
+ # reversed == true, revese the list before adding it
+ thisY += reversed(segmentRange) if matrix[yPos][xPos][1] else segmentRange
+
+ # This just finds the longest row in the matrix
+ if (len(thisY) > self.xLen):
+ self.xLen = len(thisY)
+
self.matrix.append(thisY)
def get(self, x, y):
""" Return the value of a place in the matrix given x and y coordinates """
return self.matrix[y][x]
+
+ def dump(self):
+ nSpacers = (self.xLen*6) // 2 - 6
+ print( ("=" * nSpacers) + "Matrix dump" + ("=" * nSpacers) )
+
+ for y in self.matrix:
+ thisYLine = ""
+ for x in y:
+ thisYLine += ( ' ' * (5 - len(str(x))) ) + str(x) + ' '
+ print(thisYLine)
+
+ print("=" * (self.xLen*6))
+
if __name__ == "__main__":
testMatrix = Matrix(
diff --git a/src/compileAndRun/pythonSupportFiles/LuxcenaNeo/Strip.py b/src/compileAndRun/pythonSupportFiles/LuxcenaNeo/Strip.py
index 8feca0e..c3a913f 100644
--- a/src/compileAndRun/pythonSupportFiles/LuxcenaNeo/Strip.py
+++ b/src/compileAndRun/pythonSupportFiles/LuxcenaNeo/Strip.py
@@ -29,11 +29,21 @@ class Strip:
self.strip.begin()
+ # Blank out all the LEDs
+ i = 0
+ while True:
+ self.strip.setPixelColor(i, 0)
+ i += 1
+ if (i > self.LED_COUNT): break
+ self.strip.show()
+
# Setup matrix
- try:
- pixelMatrix = Matrix(self.segments, stripConf["matrix"])
- except:
- print("Something went wrong while setting up your self-defined matrix.")
+ print(" * Generating matrix")
+ #try:
+ self.pixelMatrix = Matrix(self.SEGMENTS, stripConf["matrix"])
+ self.pixelMatrix.dump()
+ #except:
+ # print("Something went wrong while setting up your self-defined matrix.")
def show(self):
"""Update the display with the data from the LED buffer."""
@@ -67,7 +77,7 @@ class Strip:
"""Set a whole segment to the provided red, green and blue color.
Each color component should be a value from 0 to 255 (where 0 is the
lowest intensity and 255 is the highest intensity)."""
- for n in getSegmentRange(self.segments, segment):
+ for n in getSegmentRange(self.SEGMENTS, segment):
self.strip.setPixelColor(n, Color(red, green, blue, white))
def setBrightness(self, brightness):