Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        /// <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);
        }
Beispiel #3
0
        /// <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);
        }