internal override VisualLedPanel CreateLedPanel() { var result = new VisualLedPanel(); result.VisualLeds.ForEach(f => f.VisualColor = Colors.Black.ToVisualLedColor()); return(result); }
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); }
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); }
internal LedDisplayAdapter(I2CDeviceNativeAdapter i2CDeviceAdapter, VisualLedPanel visualLedPanel) { _i2CDeviceAdapter = i2CDeviceAdapter; _visualLedPanel = visualLedPanel; }
public void ShowLedPanel(VisualLedPanel visualLedPanel) { var buffer = CreateBuffer(visualLedPanel); _i2CDeviceAdapter.WriteBytes(0, buffer); }
public LedDesignViewModel(ExceptionHandler exceptionHandler, VisualLedPanel visualLedLedPanel, VisualLedPanelCodeCalculator ledPanelCodeCalculator, VisualLedPanelCareTaker careTaker) : base(exceptionHandler) { VisualLedPanel = visualLedLedPanel; _ledPanelCodeCalculator = ledPanelCodeCalculator; _careTaker = careTaker; }