/// <summary> /// 获取设备的温度补偿参数 para为0表示低温补偿,1表示常温补偿 2表示高温补偿 /// </summary> /// <param name="longAddress"></param> /// <param name="para"></param> /// <returns></returns> public TemperatureCompensation ReadTC(long longAddress, byte para) { TemperatureCompensation ret = null; RequestPacket request = new RequestPacket() { LongOrShort = 1, Address = longAddress, Command = 0xC3, DataContent = new byte[] { 0x4C, para }, }; ResponsePacket response = Request(request); if (response != null && response.DataContent != null && response.DataContent.Length >= 14) { byte[] d = response.DataContent; ret = new TemperatureCompensation(); ret.LowerRangeAD = BitConverter.ToSingle(new byte[] { d[5], d[4], d[3], d[2] }, 0); ret.UpperRangeAD = BitConverter.ToSingle(new byte[] { d[9], d[8], d[7], d[6] }, 0); ret.TemperatureAD = BitConverter.ToSingle(new byte[] { d[13], d[12], d[11], d[10] }, 0); } return(ret); }
/// <summary> /// 写温度补偿 /// </summary> public bool WriteTC(long longAddress, byte para, TemperatureCompensation tc) { RequestPacket request = new RequestPacket() { LongOrShort = 1, Address = longAddress, Command = 0xC3, }; List <byte> temp = new List <byte>(); temp.Add(0x22); temp.Add(para); temp.AddRange(BitConverter.GetBytes(tc.LowerRangeAD).Reverse()); temp.AddRange(BitConverter.GetBytes(tc.UpperRangeAD).Reverse()); temp.AddRange(BitConverter.GetBytes(tc.TemperatureAD).Reverse()); request.DataContent = temp.ToArray(); ResponsePacket response = Request(request); return(response != null); }
/// <summary> /// 写温度补偿参数 /// </summary> public bool WriteTC(byte para, TemperatureCompensation tc) { if (_ID == null) { return(false); } bool ret = _HartComport.WriteTC(_ID.LongAddress, para, tc); if (ret && para == 0) { _TCS[0] = null; } if (ret && para == 1) { _TCS[1] = null; } if (ret && para == 2) { _TCS[2] = null; } return(ret); }