diff --git a/Correlator/Util/MethodExtensions.cs b/Correlator/Util/MethodExtensions.cs index b119014..07ccf2b 100644 --- a/Correlator/Util/MethodExtensions.cs +++ b/Correlator/Util/MethodExtensions.cs @@ -176,5 +176,35 @@ { return tags.Where(tag => tag is SensorExceptionTag).Cast().FirstOrDefault(); } + + public static double HexToDouble(this IReadOnlyList src) + { + if (src.Count != 3) + return 0; + + short result1 = src[0]; + short result2 = src[1]; + short result3 = src[2]; + + if ((result1 & 0x80) == 0x80) + { + result1 = Convert.ToInt16(result1 - 255); + result2 = Convert.ToInt16(result2 - 255); + result3 = Convert.ToInt16(result3 - 255); + } + + var data = (result1 * 65536 + result2 * 256 + result3) * 5 / 83.88607 / 100000; + return data; + } + + /// + /// 上报的噪声 + /// + /// + /// + public static UploadTag GetUploadNoiseTag(this IEnumerable tags) + { + return tags.Where(tag => tag is UploadTag).Cast().FirstOrDefault(); + } } } \ No newline at end of file diff --git a/Correlator/Util/MethodExtensions.cs b/Correlator/Util/MethodExtensions.cs index b119014..07ccf2b 100644 --- a/Correlator/Util/MethodExtensions.cs +++ b/Correlator/Util/MethodExtensions.cs @@ -176,5 +176,35 @@ { return tags.Where(tag => tag is SensorExceptionTag).Cast().FirstOrDefault(); } + + public static double HexToDouble(this IReadOnlyList src) + { + if (src.Count != 3) + return 0; + + short result1 = src[0]; + short result2 = src[1]; + short result3 = src[2]; + + if ((result1 & 0x80) == 0x80) + { + result1 = Convert.ToInt16(result1 - 255); + result2 = Convert.ToInt16(result2 - 255); + result3 = Convert.ToInt16(result3 - 255); + } + + var data = (result1 * 65536 + result2 * 256 + result3) * 5 / 83.88607 / 100000; + return data; + } + + /// + /// 上报的噪声 + /// + /// + /// + public static UploadTag GetUploadNoiseTag(this IEnumerable tags) + { + return tags.Where(tag => tag is UploadTag).Cast().FirstOrDefault(); + } } } \ No newline at end of file diff --git a/Correlator/Util/SerialPortManager.cs b/Correlator/Util/SerialPortManager.cs index 2b18dd9..ad2e6b9 100644 --- a/Correlator/Util/SerialPortManager.cs +++ b/Correlator/Util/SerialPortManager.cs @@ -202,7 +202,7 @@ var clobData = new double[3750]; //3750个采样点 //处理接到的噪声数据 - var noiseTag = GetUploadNoiseTag(tags); + var noiseTag = tags.GetUploadNoiseTag(); if (noiseTag != null) { var len = noiseTag.Len; @@ -214,7 +214,7 @@ var dStr = new byte[3]; Array.Copy(dataValue, i * 3, dStr, 0, 3); - clobData[i] = StrHexToDouble(dStr); + clobData[i] = dStr.HexToDouble(); } _dataModel.DevCode = devCode; @@ -256,7 +256,7 @@ private static void HandleListenData(List tags) { //处理接到的噪声数据 - var noiseTag = GetUploadNoiseTag(tags); + var noiseTag = tags.GetUploadNoiseTag(); if (noiseTag != null) { var dataValue = noiseTag.DataValue; @@ -313,36 +313,6 @@ } } - private static double StrHexToDouble(byte[] src) - { - if (src.Length != 3) - return 0; - - short result1 = src[0]; - short result2 = src[1]; - short result3 = src[2]; - - if ((result1 & 0x80) == 0x80) - { - result1 = Convert.ToInt16(result1 - 255); - result2 = Convert.ToInt16(result2 - 255); - result3 = Convert.ToInt16(result3 - 255); - } - - var data = (result1 * 65536 + result2 * 256 + result3) * 5 / 83.88607 / 100000; - return data; - } - - /// - /// 上报的噪声 - /// - /// - /// - private static UploadTag GetUploadNoiseTag(IEnumerable tags) - { - return tags.Where(tag => tag is UploadTag).Cast().FirstOrDefault(); - } - /// /// 获取设备信号 ///