Example #1
0
 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;
 }
Example #2
0
        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;
        }
Example #3
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;
        }