From b397edee2be2dfcc3f28eeac50298b4de26b1afa Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期五, 13 十二月 2024 16:53:45 +0800
Subject: [PATCH] 取水口日取水量表中,出现一些大数,明显不正确,发析系统日志,发现一些阀控器会上报一些累计流量为0的数据,且无规律,推测是其不能从水表读取到累计流量时会上报0值。如果间歇上报0值,间歇上报一些非0值,非0值减去0值,就会出现大数,一天中出现几次那么会大数进行累加,数值将更大。为此变更算法,规避这种情况,但也会丢失一些流量值。

---
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/CRC8_for_2_0.java |   38 +++++++++++++++++++++++++++-----------
 1 files changed, 27 insertions(+), 11 deletions(-)

diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/CRC8_for_2_0.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/CRC8_for_2_0.java
index 047c0d7..1e8ba6b 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/CRC8_for_2_0.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/CRC8_for_2_0.java
@@ -4,18 +4,34 @@
 public class CRC8_for_2_0 {
 
 	@SuppressWarnings("unused")
+//	public int CRC8(byte[] b, int from , int end){
+//	  int crc = 0;
+//	  for(int i = from ; i <= end ; i++){
+//		    crc = crc ^ (b[i]);
+//		    for(int j = 0; j < 8; j++) {
+//		      if((crc & 0x80)!=0) {
+//		    	 crc ^= 0xe5;
+//			  }
+//		      crc *= 2;
+//			}
+//	  }
+//	  return crc;
+//	}
+
 	public int CRC8(byte[] b, int from , int end){
-	  int crc = 0;
-	  for(int i = from ; i <= end ; i++){
-		    crc = crc ^ (b[i]);
-		    for(int j = 0; j < 8; j++) {
-		      if((crc & 0x80)!=0) {
-		    	 crc ^= 0xe5;
-			  }
-		      crc *= 2;
+		int crc = 0;
+		for(int i = from ; i <= end ; i++){
+			crc = crc ^ (b[i]);
+			for(int j = 0; j < 8; j++) {
+				if((crc & 0x80)!=0) {
+					crc *= 2;
+					crc ^= 0xe5;
+				}else{
+					crc *= 2;
+				}
 			}
-	  }
-	  return crc;
-	} 
+		}
+		return crc;
+	}
 
 }
\ No newline at end of file

--
Gitblit v1.8.0