/// <summary> /// Читает массив слов из устройства и обновляет UI /// </summary> /// <param name="_configFromDevice"></param> private void AnalyzeConfigFromDevice(ushort[] _configFromDevice) { if (_configFromDevice == null) { return; } if (_configFromDevice.Count() == 5) { byte[] byteArray = ArrayExtension.UshortArrayToByteArray(_configFromDevice); IOTimeout = Converters.Convert.ConvertFromDecToHex(byteArray[0]); TypeAddress = Converters.Convert.ConvertFromDecToHexStr(byteArray[1]); ResponseAwait = _configFromDevice[1]; Config910Series config = new Config910Series(byteArray[5]); BitConfig[0] = config.Speed; BitConfig[1] = config.Protocol; BitConfig[2] = config.Filter; BitConfig[3] = config.Amplifier; BitConfig[4] = config.BitValues; BitConfig[5] = config.ParityOdd; BitConfig[6] = config.ParityExistence; BitConfig[7] = config.StopBitCount; if (IsRadio) { TransmitEnableDelayByte = byteArray[7]; TransmitEnablePause = byteArray[6]; TransmitDisableDelayByte = byteArray[9]; TransmitDisablePause = byteArray[8]; } else { TransmitEnableDelayUshort = _configFromDevice[3]; TransmitDisableDelayUshort = _configFromDevice[4]; } } else { MessageBox.Show("Ошибка при чтении конфигурации."); } }
/// <summary> /// Формирует массив слов, который будет записан в устройство /// </summary> /// <returns></returns> private ushort[] GenerateConfigForDevice() { List <byte> byteArr = new List <byte>(); List <ushort> confToDevice = new List <ushort>(); // можно переделать конструктор на прием массива бит, но мне лень, так что все в твоих руках, друг Config910Series conf910 = new Config910Series(BitConfig[0], BitConfig[1], BitConfig[2], BitConfig[3], BitConfig[4], BitConfig[5], BitConfig[6], BitConfig[7]); SpreadTypeAddress(); byteArr.Add(IOTimeout); byteArr.Add((byte)((Type << 4) + Address)); confToDevice.Add(ArrayExtension.ByteArrayToUshortArray(byteArr.ToArray()).First()); confToDevice.Add(ResponseAwait); confToDevice.Add(conf910.Config); if (IsRadio) { byteArr.Clear(); byteArr.Add(TransmitEnablePause); byteArr.Add(TransmitEnableDelayByte); confToDevice.Add(ArrayExtension.ByteArrayToUshortArray(byteArr.ToArray()).First()); byteArr.Clear(); byteArr.Add(TransmitDisablePause); byteArr.Add(TransmitDisableDelayByte); confToDevice.Add(ArrayExtension.ByteArrayToUshortArray(byteArr.ToArray()).First()); } else { confToDevice.Add(TransmitEnableDelayUshort); confToDevice.Add(TransmitDisableDelayUshort); } return(confToDevice.ToArray()); }