private void updateMatrixLedConfig() { if (owner != null && MatrixLed != null) { MatrixLedConfig = MatrixLed.GetSevenSegmentConfig(owner); } else { MatrixLedConfig = null; } }
private void writeOutputState() { if (string.IsNullOrEmpty(Error) && owner != null && owner.PokeysIndex.HasValue && MatrixLedConfig != null) { PoKeysDevice_DLL.PoKeysDevice poKeysDevice = PoKeysEnumerator.Singleton.PoKeysDevice; if (!poKeysDevice.ConnectToDevice(owner.PokeysIndex.Value)) { Error = Translations.Main.PokeysConnectError; } else { foreach (SevenSegmentDigit digit in SevenSegmentDigits) { for (int segmentPosition = 0; segmentPosition < 8; ++segmentPosition) { SevenSegmentDigitSegment segment = digit.Segments[segmentPosition]; if (segment.Dirty) { bool setPixelOk; if (MatrixLedConfig.DigitOnRow) { setPixelOk = MatrixLed.SetPixel((byte)(digit.Index - 1), (byte)(MatrixLedConfig.SegmentIndexes[segmentPosition] - 1), segment.Value); } else { setPixelOk = MatrixLed.SetPixel((byte)(MatrixLedConfig.SegmentIndexes[segmentPosition] - 1), (byte)(digit.Index - 1), segment.Value); } if (!setPixelOk) { Error = Translations.Main.MatrixLedErrorWrite; } segment.Dirty = false; } } } poKeysDevice.DisconnectDevice(); } } }
public void updateStatus() { if (owner == null) { return; } if (MatrixLedConfig == null) { Error = null; } else if (!owner.PokeysIndex.HasValue) { Error = null; } else { PoKeysDevice_DLL.PoKeysDevice poKeysDevice = PoKeysEnumerator.Singleton.PoKeysDevice; if (!poKeysDevice.ConnectToDevice(owner.PokeysIndex.Value)) { Error = Translations.Main.PokeysConnectError; } else { if (!MatrixLed.IsEnabled()) { Error = Translations.Main.MatrixLedErrorNotEnabled; } else { Error = null; } poKeysDevice.DisconnectDevice(); } } setOutputStateDirty(); writeOutputState(); }