Forráskód Böngészése

增加拉力值的计算

liuxingchen 1 éve
szülő
commit
ae6a39ae40
1 módosított fájl, 33 hozzáadás és 1 törlés
  1. 33 1
      005_H570/jikong_script/get_laliji_param.py

+ 33 - 1
005_H570/jikong_script/get_laliji_param.py

@@ -35,7 +35,8 @@ class GetLalijiParam:
                         status = True
 
                 if status:
-                    self.save_param()
+                    param_dict = self.save_param()
+                    self.lalijisuan(real_data_dict, param_dict)
 
     def save_param(self):
         """实时获取拉力计 计算公式的参数,并存入redis中"""
@@ -46,3 +47,34 @@ class GetLalijiParam:
             param_dict[each['serial_number']] = each['value']
         self._storage.real_time_data_storage(param_dict)
 
+        return param_dict
+
+
+    def lalijisuan(self, original_dict, param):
+        """计算拉力值,并存入redis中"""
+
+        lali_data = {}
+        serial_dict = {
+            'c931': ["c869", "c875", "c876", "c877"],
+            'c932': ["c870", "c878", "c879", "c880"],
+            'c933': ["c871", "c881", "c882", "c883"],
+            'c934': ["c872", "c884", "c885", "c886"],
+            'c935': ["c873", "c887", "c888", "c889"],
+            'c936': ["c874", "c890", "c891", "c892"]
+        }
+
+        for k, v in serial_dict.items():
+            original = int(original_dict[v[0]])  # S485读取的无符号整数
+            a = param[v[1]]  # 参数A
+            b = param[v[2]]  # 参数b
+            f0 = param[v[3]]  # 参数f0
+            if original and original == 0:
+                lali_data[k] = 0
+            elif original and original != 0 and a and b and f0:
+                f = 80000000 / original  # 受力时频率f=80000000/(S485读取的无符号整数)
+                p = a * (f * f - f0 * f0) - b * (f - f0)  # P=A(f²-f0²)-B(f-f0)
+                lali_data[k] = round(p, 2)
+            else:
+                lali_data[k] = None
+
+        self._storage.real_time_data_storage(lali_data)