Ejemplo n.º 1
0
        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);
                }
            }
        }
Ejemplo n.º 2
0
        private void SetOrGetCurve(bool isSet, byte cmd, byte[] msgValues)
        {
            byte pin = msgValues[0];

            if (isSet)
            {
                _pinCurve[pin] = new TriggerCurve(msgValues.Skip(1).ToArray());
            }
            else
            {
                Answers.Enqueue(SerialMessage(cmd, pin, _pinCurve[pin].ToByteArray()));
            }
        }