public MainPage() { this.InitializeComponent(); leftStrip = new DotStarStrip(78, "SPI0"); rightStrip = new DotStarStrip(78, "SPI1"); cube = new Cube(leftStrip, rightStrip); AutoCycle = true; Reverse = false; random = new Random(); currentMode = ActiveModes.SpeedRainbow; idleMode = IdleModes.Rainbow; lastChange = DateTime.UtcNow; quietTime = DateTime.UtcNow; changeTime = TimeSpan.FromSeconds(15); idleChangeTime = TimeSpan.FromSeconds(30); Idle = false; runningIdleAnimation = false; }
public Edge(int start, int end, DotStarStrip strip) { this.strip = strip; leds = new int[end - start]; int j = 0; for (int i = start; i < end; i++) { leds[j] = i; j++; } brightness = 127; leftMax = new AdjustableMax(); rightMax = new AdjustableMax(); float speedRollover = 0.5f; speedStripBeginning = new LedSpeedStrip(this, LedSpeedStrip.Sides.MiddleToBeginning, speedRollover); speedStripEnd = new LedSpeedStrip(this, LedSpeedStrip.Sides.MiddleToEnd, speedRollover); flairOffset = 0; }
public Cube(DotStarStrip leftStrip, DotStarStrip rightStrip) { this.leftStrip = leftStrip; this.rightStrip = rightStrip; UseFaces = false; bottomFrontEdge = new Edge(0, 13, rightStrip); var BOTTOM_FRONT_EDGE_COORDS = new Tuple <Tuple <int, int, int>, Tuple <int, int, int> >(new Tuple <int, int, int>(1, 14, 0), new Tuple <int, int, int>(13, 14, 0)); bottomRightEdge = new Edge(13, 26, rightStrip); var BOTTOM_RIGHT_EDGE_COORDS = new Tuple <Tuple <int, int, int>, Tuple <int, int, int> >(new Tuple <int, int, int>(14, 13, 0), new Tuple <int, int, int>(14, 1, 0)); bottomBackEdge = new Edge(0, 13, leftStrip); var BOTTOM_BACK_EDGE_COORDS = new Tuple <Tuple <int, int, int>, Tuple <int, int, int> >(new Tuple <int, int, int>(13, 0, 0), new Tuple <int, int, int>(1, 0, 0)); bottomLeftEdge = new Edge(13, 26, leftStrip); var BOTTOM_LEFT_EDGE_COORDS = new Tuple <Tuple <int, int, int>, Tuple <int, int, int> >(new Tuple <int, int, int>(0, 1, 0), new Tuple <int, int, int>(0, 13, 0)); frontLeftEdge = new Edge(26, 39, leftStrip); var FRONT_LEFT_EDGE_COORDS = new Tuple <Tuple <int, int, int>, Tuple <int, int, int> >(new Tuple <int, int, int>(14, 14, 1), new Tuple <int, int, int>(14, 14, 13)); frontTopEdge = new Edge(39, 52, leftStrip); var FRONT_TOP_EDGE_COORDS = new Tuple <Tuple <int, int, int>, Tuple <int, int, int> >(new Tuple <int, int, int>(13, 14, 14), new Tuple <int, int, int>(1, 14, 14)); rightLeftEdge = new Edge(65, 78, rightStrip); var RIGHT_LEFT_EDGE_COORDS = new Tuple <Tuple <int, int, int>, Tuple <int, int, int> >(new Tuple <int, int, int>(14, 14, 13), new Tuple <int, int, int>(14, 14, 1)); rightTopEdge = new Edge(52, 65, leftStrip); var RIGHT_TOP_EDGE_COORDS = new Tuple <Tuple <int, int, int>, Tuple <int, int, int> >(new Tuple <int, int, int>(14, 13, 14), new Tuple <int, int, int>(14, 1, 14)); backLeftEdge = new Edge(26, 39, rightStrip); var BACK_LEFT_EDGE_COORDS = new Tuple <Tuple <int, int, int>, Tuple <int, int, int> >(new Tuple <int, int, int>(14, 0, 1), new Tuple <int, int, int>(14, 0, 13)); backTopEdge = new Edge(39, 52, rightStrip); var BACK_TOP_EDGE_COORDS = new Tuple <Tuple <int, int, int>, Tuple <int, int, int> >(new Tuple <int, int, int>(13, 0, 14), new Tuple <int, int, int>(1, 0, 14)); leftLeftEdge = new Edge(65, 78, leftStrip); var LEFT_LEFT_EDGE_COORDS = new Tuple <Tuple <int, int, int>, Tuple <int, int, int> >(new Tuple <int, int, int>(0, 0, 13), new Tuple <int, int, int>(0, 0, 1)); leftTopEdge = new Edge(52, 65, rightStrip); var LEFT_TOP_EDGE_COORDS = new Tuple <Tuple <int, int, int>, Tuple <int, int, int> >(new Tuple <int, int, int>(0, 1, 14), new Tuple <int, int, int>(0, 13, 14)); edgeCoordinates.Add(bottomFrontEdge, BOTTOM_FRONT_EDGE_COORDS); edgeCoordinates.Add(bottomRightEdge, BOTTOM_RIGHT_EDGE_COORDS); edgeCoordinates.Add(bottomBackEdge, BOTTOM_BACK_EDGE_COORDS); edgeCoordinates.Add(bottomLeftEdge, BOTTOM_LEFT_EDGE_COORDS); edgeCoordinates.Add(frontLeftEdge, FRONT_LEFT_EDGE_COORDS); edgeCoordinates.Add(frontTopEdge, FRONT_TOP_EDGE_COORDS); edgeCoordinates.Add(rightLeftEdge, RIGHT_LEFT_EDGE_COORDS); edgeCoordinates.Add(rightTopEdge, RIGHT_TOP_EDGE_COORDS); edgeCoordinates.Add(backLeftEdge, BACK_LEFT_EDGE_COORDS); edgeCoordinates.Add(backTopEdge, BACK_TOP_EDGE_COORDS); edgeCoordinates.Add(leftLeftEdge, LEFT_LEFT_EDGE_COORDS); edgeCoordinates.Add(leftTopEdge, LEFT_TOP_EDGE_COORDS); bottom = new Face(bottomFrontEdge, bottomRightEdge, bottomBackEdge, bottomLeftEdge); front = new Face(frontTopEdge, rightLeftEdge, bottomFrontEdge, frontLeftEdge); right = new Face(rightTopEdge, backLeftEdge, bottomRightEdge, rightLeftEdge); back = new Face(backTopEdge, leftLeftEdge, bottomBackEdge, backLeftEdge); left = new Face(leftTopEdge, frontLeftEdge, bottomLeftEdge, leftLeftEdge); top = new Face(frontTopEdge, rightTopEdge, backTopEdge, leftTopEdge); bottomZone = new Zone(bottomFrontEdge, bottomRightEdge, bottomBackEdge, bottomLeftEdge); midZone = new Zone(frontLeftEdge, rightLeftEdge, backLeftEdge, leftLeftEdge); topZone = new Zone(frontTopEdge, rightTopEdge, backTopEdge, leftTopEdge); brightness = 127; }