/// <summary> /// 특정 주소에 8바이트 실수 값 설정 /// (자동 할당 설정이 되어있지 않으면서 미리 할당된 주소가 아니면 오류 발생) /// </summary> /// <param name="address">주소</param> /// <param name="value">값</param> /// <param name="endian">엔디안</param> public void SetValue(ushort address, double value, ModbusEndian endian) => SetRawData(address, endian.Sort(BitConverter.GetBytes(value)));
/// <summary> /// 특정 주소로부터 8바이트 실수 값 가져오기 /// </summary> /// <param name="address">주소</param> /// <param name="endian">엔디안</param> /// <returns>값</returns> public double GetDouble(ushort address, ModbusEndian endian) => BitConverter.ToDouble(endian.Sort(GetRawData(address, 8).ToArray()), 0);
/// <summary> /// 특정 주소로부터 8바이트 실수 값 가져오기 /// </summary> /// <param name="address">주소</param> /// <param name="endian">엔디안</param> /// <returns>값</returns> public float GetSingle(ushort address, ModbusEndian endian) => BitConverter.ToSingle(endian.Sort(GetRawData(address, 4).ToArray()), 0);
/// <summary> /// 특정 주소로부터 부호 없는 8바이트 정수 값 가져오기 /// </summary> /// <param name="address">주소</param> /// <param name="endian">엔디안</param> /// <returns>값</returns> public ulong GetUInt64(ushort address, ModbusEndian endian) => BitConverter.ToUInt64(endian.Sort(GetRawData(address, 8).ToArray()), 0);
/// <summary> /// 특정 주소로부터 부호 없는 4바이트 정수 값 가져오기 /// </summary> /// <param name="address">주소</param> /// <param name="endian">엔디안</param> /// <returns>값</returns> public uint GetUInt32(ushort address, ModbusEndian endian) => BitConverter.ToUInt32(endian.Sort(GetRawData(address, 4).ToArray()), 0);
/// <summary> /// 특정 주소에 8바이트 실수 값 할당 /// </summary> /// <param name="address">주소</param> /// <param name="value">값</param> /// <param name="endian">엔디안</param> public void Allocate(ushort address, double value, ModbusEndian endian) => Allocate(address, endian.Sort(BitConverter.GetBytes(value)));