コード例 #1
0
        /// <summary>
        /// 湿度 01H	 N(5,2)	1AH 百分比
        /// 温度 02H	 N(5,2)	1AH	摄氏度
        /// 湿度阈值 04H	 N(5,2)	1AH	百分比
        /// 温度阈值 05H	 N(5,2)	1AH	摄氏度
        /// 温湿度/温湿度阈值,BCD码,3字节
        /// 示例:01 1A 00 88 66 02 1A 00 12 34
        ///      04 1A 00 55 66 05 1A 00 66 55
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public static double Humiture(byte[] data)
        {
            byte[] temp = BytesUtil.SubBytes(data, 2, 3);

            string bcdStr = BCDUtil.ConvertTo(temp);

            return(Convert.ToInt64(bcdStr) / 100.0);
        }
コード例 #2
0
        /// <summary>
        /// F2H	N(18) 48H
        /// 中心站1主信道类型及地址TCP协议,IPV4,BCD码,9字节 255255255255 000000,分别表示IP和端口
        /// 示例:F2 48 06 01 23 45 67 89 00 60 12 结果 IP:060.123.456.789,端口:006012
        /// </summary>
        /// <returns></returns>
        public static string IPPort(byte[] data)
        {
            byte[] ipPort = new byte[9];

            Array.Copy(data, 2, ipPort, 0, 9);

            return(BCDUtil.ConvertTo(ipPort));
        }
コード例 #3
0
        /// <summary>
        /// F3H	N(4) 10H
        /// min	上报时间间隔,BCD码,2字节
        /// 示例:F3 10 00 60
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public static int Interval(byte[] data)
        {
            byte[] interval = new byte[2];

            Array.Copy(data, 2, interval, 0, 2);

            return(Convert.ToInt16(BCDUtil.ConvertTo(interval)));
        }
コード例 #4
0
        /// <summary>
        /// F1H	N(12) 30H
        /// 遥测站地址,BCD码,6字节
        /// 示例:F1 28 00 12 34 56 78
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public static string ClientCode(byte[] data)
        {
            byte[] client = new byte[6];

            Array.Copy(data, 2, client, 0, 6);

            return(BCDUtil.ConvertTo(client));
        }