예제 #1
0
        internal override VisualLedPanel CreateLedPanel()
        {
            var result = new VisualLedPanel();

            result.VisualLeds.ForEach(f => f.VisualColor = Colors.Black.ToVisualLedColor());
            return(result);
        }
예제 #2
0
        private static byte[] CreateBuffer(VisualLedPanel visualLedPanel)
        {
            var result = new byte[8 * 8 * 3];

            // 1 2 X X X X X X
            // X X X X X X X X
            // X X X X X X X X
            // X X X X X X X X
            // X X X X X X X X
            // X X X X X X X X
            // X X X X X X X X
            // X X X X X X X X

            // The layout of the LED buffer:
            // Row 1: R R R R R R R R G G G G G G G G B B B B B B B B
            // Row 2: R R R R R R R R G G G G G G G G B B B B B B B B
            // ...
            // Row 8: R R R R R R R R G G G G G G G G B B B B B B B B

            // So LED1 has the Bytes 0R, 8G, 16B
            var index = 0;

            for (var y = 0; y < 8; y++)
            {
                for (var x = 0; x < 8; x++)
                {
                    var ledDisplay = visualLedPanel[x, y];
                    result[index]      = ScaleTo5Bit(ledDisplay.VisualColor.R);
                    result[index + 8]  = ScaleTo5Bit(ledDisplay.VisualColor.G);
                    result[index + 16] = ScaleTo5Bit(ledDisplay.VisualColor.B);

                    index++;
                }

                index += 16; // Step to the next row.
            }

            return(result);
        }
예제 #3
0
        internal override VisualLedPanel CreateLedPanel()
        {
            var result = new VisualLedPanel();

            result[0, 0].VisualColor = Colors.Red.ToVisualLedColor();
            result[1, 0].VisualColor = Colors.Red.ToVisualLedColor();
            result[2, 0].VisualColor = Colors.Red.ToVisualLedColor();
            result[3, 0].VisualColor = Colors.Red.ToVisualLedColor();
            result[4, 0].VisualColor = Colors.Red.ToVisualLedColor();
            result[5, 0].VisualColor = Colors.Red.ToVisualLedColor();
            result[6, 0].VisualColor = Colors.Red.ToVisualLedColor();
            result[7, 0].VisualColor = Colors.Red.ToVisualLedColor();
            result[0, 1].VisualColor = Colors.Red.ToVisualLedColor();
            result[1, 1].VisualColor = Colors.Red.ToVisualLedColor();
            result[2, 1].VisualColor = Colors.Red.ToVisualLedColor();
            result[3, 1].VisualColor = Colors.Yellow.ToVisualLedColor();
            result[4, 1].VisualColor = Colors.Yellow.ToVisualLedColor();
            result[5, 1].VisualColor = Colors.Red.ToVisualLedColor();
            result[6, 1].VisualColor = Colors.Red.ToVisualLedColor();
            result[7, 1].VisualColor = Colors.Red.ToVisualLedColor();
            result[0, 2].VisualColor = Colors.Red.ToVisualLedColor();
            result[1, 2].VisualColor = Colors.Red.ToVisualLedColor();
            result[2, 2].VisualColor = Colors.Red.ToVisualLedColor();
            result[3, 2].VisualColor = Colors.Yellow.ToVisualLedColor();
            result[4, 2].VisualColor = Colors.Yellow.ToVisualLedColor();
            result[5, 2].VisualColor = Colors.Red.ToVisualLedColor();
            result[6, 2].VisualColor = Colors.Red.ToVisualLedColor();
            result[7, 2].VisualColor = Colors.Red.ToVisualLedColor();
            result[0, 3].VisualColor = Colors.Red.ToVisualLedColor();
            result[1, 3].VisualColor = Colors.Red.ToVisualLedColor();
            result[2, 3].VisualColor = Colors.Red.ToVisualLedColor();
            result[3, 3].VisualColor = Colors.Yellow.ToVisualLedColor();
            result[4, 3].VisualColor = Colors.Yellow.ToVisualLedColor();
            result[5, 3].VisualColor = Colors.Red.ToVisualLedColor();
            result[6, 3].VisualColor = Colors.Red.ToVisualLedColor();
            result[7, 3].VisualColor = Colors.Red.ToVisualLedColor();
            result[0, 4].VisualColor = Colors.Red.ToVisualLedColor();
            result[1, 4].VisualColor = Colors.Red.ToVisualLedColor();
            result[2, 4].VisualColor = Colors.Red.ToVisualLedColor();
            result[3, 4].VisualColor = Colors.Yellow.ToVisualLedColor();
            result[4, 4].VisualColor = Colors.Yellow.ToVisualLedColor();
            result[5, 4].VisualColor = Colors.Red.ToVisualLedColor();
            result[6, 4].VisualColor = Colors.Red.ToVisualLedColor();
            result[7, 4].VisualColor = Colors.Red.ToVisualLedColor();
            result[0, 5].VisualColor = Colors.Red.ToVisualLedColor();
            result[1, 5].VisualColor = Colors.Red.ToVisualLedColor();
            result[2, 5].VisualColor = Colors.Red.ToVisualLedColor();
            result[3, 5].VisualColor = Colors.Red.ToVisualLedColor();
            result[4, 5].VisualColor = Colors.Red.ToVisualLedColor();
            result[5, 5].VisualColor = Colors.Red.ToVisualLedColor();
            result[6, 5].VisualColor = Colors.Red.ToVisualLedColor();
            result[7, 5].VisualColor = Colors.Red.ToVisualLedColor();
            result[0, 6].VisualColor = Colors.Red.ToVisualLedColor();
            result[1, 6].VisualColor = Colors.Red.ToVisualLedColor();
            result[2, 6].VisualColor = Colors.Red.ToVisualLedColor();
            result[3, 6].VisualColor = Colors.Yellow.ToVisualLedColor();
            result[4, 6].VisualColor = Colors.Yellow.ToVisualLedColor();
            result[5, 6].VisualColor = Colors.Red.ToVisualLedColor();
            result[6, 6].VisualColor = Colors.Red.ToVisualLedColor();
            result[7, 6].VisualColor = Colors.Red.ToVisualLedColor();
            result[0, 7].VisualColor = Colors.Red.ToVisualLedColor();
            result[1, 7].VisualColor = Colors.Red.ToVisualLedColor();
            result[2, 7].VisualColor = Colors.Red.ToVisualLedColor();
            result[3, 7].VisualColor = Colors.Red.ToVisualLedColor();
            result[4, 7].VisualColor = Colors.Red.ToVisualLedColor();
            result[5, 7].VisualColor = Colors.Red.ToVisualLedColor();
            result[6, 7].VisualColor = Colors.Red.ToVisualLedColor();
            result[7, 7].VisualColor = Colors.Red.ToVisualLedColor();

            return(result);
        }
예제 #4
0
 internal LedDisplayAdapter(I2CDeviceNativeAdapter i2CDeviceAdapter, VisualLedPanel visualLedPanel)
 {
     _i2CDeviceAdapter = i2CDeviceAdapter;
     _visualLedPanel   = visualLedPanel;
 }
예제 #5
0
        public void ShowLedPanel(VisualLedPanel visualLedPanel)
        {
            var buffer = CreateBuffer(visualLedPanel);

            _i2CDeviceAdapter.WriteBytes(0, buffer);
        }
예제 #6
0
 public LedDesignViewModel(ExceptionHandler exceptionHandler, VisualLedPanel visualLedLedPanel, VisualLedPanelCodeCalculator ledPanelCodeCalculator, VisualLedPanelCareTaker careTaker) : base(exceptionHandler)
 {
     VisualLedPanel          = visualLedLedPanel;
     _ledPanelCodeCalculator = ledPanelCodeCalculator;
     _careTaker = careTaker;
 }