/// <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; }
/// <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)); }