Просмотр исходного кода

针对输入电力信息也进行修正

guohui 1 год назад
Родитель
Сommit
1b4b8468c8
1 измененных файлов с 26 добавлено и 12 удалено
  1. 26 12
      pro/src/switch_ctrl.c

+ 26 - 12
pro/src/switch_ctrl.c

@@ -146,8 +146,8 @@ int g_switch_get_ac_single_s_all_cur_info(void* manger,int saddr,int nNumb,Power
         int Index = i * 12;
         
         val = (data_temp[1 + Index] << 16) | data_temp[0 + Index];
-        _power[i].voltage = val / 1000.0;
-        if(_power[i].voltage>0 && _power[i].voltage<=1.0f) {
+        _power[i].voltage = val / 1000.0f;
+        if(_power[i].voltage>=0.0f && _power[i].voltage<1.0f) {
             _power[i].voltage = 0.0f;
             _power[i].power = 0.0f;
             _power[i].current = 0.0f;
@@ -156,16 +156,16 @@ int g_switch_get_ac_single_s_all_cur_info(void* manger,int saddr,int nNumb,Power
         else {
             val = (data_temp[11 + Index] << 16) | data_temp[10 + Index];
             _power[i].factor = val / 1000.0;
-            if(_power[i].factor>0 && _power[i].factor<0.1f) {
+            if(_power[i].factor>0.0f && _power[i].factor<0.1f) {
                 _power[i].power = 0.0f;
                 _power[i].current = 0.0f;
             }
             else {
                 val = (data_temp[3 + Index] << 16) | data_temp[2 + Index];
-                _power[i].current = val / 1000.0;
+                _power[i].current = val / 1000.0f;
 
                 val = (data_temp[5 + Index] << 16) | data_temp[4 + Index];
-                _power[i].power = val / 1000.0;
+                _power[i].power = val / 1000.0f;
             }
         }
 
@@ -1807,7 +1807,7 @@ int g_switch_get_t_ac_all_out_info(void* manger,int saddr,int nNumb,PowerInfo* _
 
         val = (data_temp[1 + Index] << 16) | data_temp[0 + Index];
         _power[i].voltage = val / 1000.0;
-        if(_power[i].voltage>0.0f && _power[i].voltage<1.0f) {
+        if(_power[i].voltage>=0.0f && _power[i].voltage<1.0f) {
             _power[i].voltage = 0.0f;
             _power[i].power = 0.0f;
             _power[i].current = 0.0f;
@@ -1816,7 +1816,7 @@ int g_switch_get_t_ac_all_out_info(void* manger,int saddr,int nNumb,PowerInfo* _
         else {
             val = (data_temp[15 + Index] << 16) | data_temp[14 + Index];
             _power[i].factor = val / 1023.0;
-            if(_power[i].factor>0.0f && _power[i].factor<0.1f) {
+            if(_power[i].factor>=0.0f && _power[i].factor<0.1f) {
                 _power[i].power = 0.0f;
                 _power[i].current = 0.0f;
             }
@@ -2362,15 +2362,29 @@ int g_switch_get_t_ac_in_info(void* manger,int saddr,PowerInfo* _power,PowerWarn
     {
         int Index=i*2;
          value = (data_temp[1+Index] << 16) + data_temp[0+Index];
-        _power[i].voltage = value / 1000.0;
+        _power[i].voltage = value / 1000.0f;
+        if(_power[i].voltage>=0.0f && _power[i].voltage<1.0f) {
+            _power[i].voltage = 0.0f;
+        }
+
         //解电流数据
         value = (data_temp[7+Index] << 16) + data_temp[6+Index];
-        _power[i].current = value / 1000.0;
+        _power[i].current = value / 1000.0f;
+        if(_power[i].current>=0.0f && _power[i].current<0.01f) {
+            _power[i].current = 0.0f;
+        }
+
         //解功率数据
-        value = (data_temp[13+Index] << 16) + data_temp[12+Index];
-        _power[i].power = value / 1000.0;
+        if(_power[i].voltage==0.0f || _power[i].current==0.0f) {
+            _power[i].power = 0.0f;
+        }
+        else {
+            value = (data_temp[13+Index] << 16) + data_temp[12+Index];
+            _power[i].power = value / 1000.0f;
+        }
+
         value = (data_temp[19+Index] << 16) + data_temp[18+Index];
-        _power[i].consumption = value / 1000.0;
+        _power[i].consumption = value / 1000.0f;
         _power[i].freq=0;
     }