Exemple #1
0
 /// <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("Ошибка при чтении конфигурации.");
     }
 }
Exemple #2
0
        /// <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());
        }