private void GetFromEeprom(string fileName, Version currentVersion) { if (!File.Exists(fileName)) { return; } using (var fs = File.Open(fileName, FileMode.Open, FileAccess.Read)) { byte versionMajor = (byte)fs.ReadByte(); byte versionMinor = (byte)fs.ReadByte(); byte pinCount = (byte)fs.ReadByte(); if (currentVersion.Major != versionMajor || currentVersion.Minor != versionMinor || pinCount != MaxPinCount) { //TODO DG.PPV.DEM 18.01.2018: msg return; } for (int i = 0; i < MaxPinCount; i++) { _pinType[i] = (byte)fs.ReadByte(); } for (int i = 0; i < MaxPinCount; i++) { _pinPitch[i] = (byte)fs.ReadByte(); } for (int i = 0; i < MaxPinCount; i++) { _pinThreshold[i] = (byte)fs.ReadByte(); } for (int i = 0; i < MaxPinCount; i++) { _pinNote[i] = (byte)fs.ReadByte(); } for (int i = 0; i < MaxPinCount; i++) { byte[] bytes = new byte[TriggerCurve.Size]; for (int j = 0; j < bytes.Length; j++) { bytes[j] = (byte)fs.ReadByte(); } _pinCurve[i] = new TriggerCurve(bytes); } for (int i = 0; i < MaxPinCount; i++) { byte[] bytes = new byte[fs.ReadByte()]; for (int j = 0; j < bytes.Length; j++) { bytes[j] = (byte)fs.ReadByte(); } _pinCurveModifications[i] = TriggerCurveModification.FromBytes(bytes); } } }
private void SetOrGetCurveModifications(bool isSet, byte cmd, byte[] msgValues) { byte pin = msgValues[0]; if (isSet) { _pinCurveModifications[pin] = TriggerCurveModification.FromBytes(msgValues.Skip(1).ToArray()); } else { Answers.Enqueue(SerialMessage(cmd, pin, _pinCurveModifications[pin].ToByteArray())); } }