Exemplo n.º 1
0
        /// <summary>
        /// Разбор конфигурации из устройства
        /// </summary>
        private void SpreadConfig()
        {
            byte[] workArray = new byte[2] {
                ArrayExtension.HIBYTE(Config), ArrayExtension.LOBYTE(Config)
            };
            BitArray workBits = new BitArray(workArray);

            BitValues       = workBits[12];
            ParityOdd       = workBits[13];
            ParityExistence = workBits[14];
            StopBitCount    = workBits[15];
            byte speedbyte = SpeedByteFromBits(workBits[8], workBits[9], workBits[10], workBits[11]);

            ModbusSpeed = ModbusSpeedDictionary.FirstOrDefault(x => x.Value == speedbyte).Key;
        }
Exemplo n.º 2
0
        /// <summary>
        /// Формируем байт конфигурации
        /// </summary>
        /// <returns>byte конфигурации</returns>
        private ushort GenerateConfig()
        {
            //TODO: refactor
            byte[] sp = new byte[1];
            if (ModbusSpeedDictionary.ContainsKey(ModbusSpeed))
            {
                ModbusSpeedDictionary.TryGetValue(ModbusSpeed, out sp[0]);
            }
            BitArray _bA = new BitArray(sp);

            _bA.Set(7, StopBitCount);
            _bA.Set(6, ParityExistence);
            _bA.Set(5, ParityOdd);
            _bA.Set(4, BitValues);

            return(Converter.GetWordFromBits(_bA));
        }