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