Kaynağa Gözat

1、修复多传感器时,LCD屏数据显示错误;2、添加马来西亚三相进单相出工程

liyuezong 1 yıl önce
ebeveyn
işleme
caf467a31d
3 değiştirilmiş dosya ile 58 ekleme ve 6 silme
  1. 24 1
      pro/config/cfg.h
  2. 30 5
      pro/src/app.c
  3. 4 0
      pub

+ 24 - 1
pro/config/cfg.h

@@ -25,6 +25,7 @@
 //#define PRJ_TEST_AC_I1_O1
 //#define PRJ_TEST_AC_I3_O1
 //#define PRJ_GOWONE_125A_AC_I3_O1
+#define PRJ_Malaysia_AC_I3_O1
 //#define PRJ_TEST_AC_I3_O3
 //#define PRJ_ESOUTH_DC_I1_O4_RGB5
 
@@ -41,7 +42,7 @@
 //#define PRJ_IP_YUNNAN_AC_I1_O1
 //#define PRJ_IP_CHONGQING_AC_I1_O1
 //#define PRJ_IP_AOSENS_AC_I1_O1
-#define PRJ_IP_AOSENS_DC_I_O
+//#define PRJ_IP_AOSENS_DC_I_O
 #define USE_MAIL
 #define MAIL_SEND_BUILTIN
 
@@ -264,6 +265,28 @@
 
     #define USE_BEEP                            1
     #define USE_LED                             1
+
+    #define BRD_MAX                             10
+
+#elif defined PRJ_Malaysia_AC_I3_O1
+    #define LANGUAGE 1      // //english
+    #define SMPLE_TIME 30   // ms
+    #define SAVE_TIME 60000 // ms
+    #define CASCADE_CNT 0
+
+    #define PHASE_GROUP 10
+    #define CHANNEL_DELAY 10
+
+    #define PROD_POWER_TYPE 5
+
+    #define USE_WATCHDOG
+    #define USE_LOGO_LITECH
+
+    #define USE_BEEP                            1
+    #define USE_LED                             1
+    
+    #define BRD_MAX                             10
+
 #elif defined PRJ_IP_AC_I3_O3
     #define LANGUAGE                            0
     #define SMPLE_TIME                          30          //ms

+ 30 - 5
pro/src/app.c

@@ -1966,6 +1966,16 @@ static void* sensor_thread(void* arg)
         }
         if(sen.count > 0)
             qsort(sen.serser_addr,sen.count,sizeof(uint8_t),compare_uint8_s);
+
+        //_globalDeviceManager->g_modebus_read.temprature = 0;
+       // _globalDeviceManager->g_modebus_read.humidity = 0;
+      //  _globalDeviceManager->g_modebus_read.fCO2 = 0;
+
+        uint32_t Max_Temprature=0;
+        uint32_t Max_Temprature2=0;
+        uint32_t Max_humi=0;
+        uint32_t Max_CO2=0;
+
         lock_s_hold(LOCK_ID_SENSOR);
         list_for_each_entry(_globalSensorMangerTemp, &_globalDeviceManager->_globalSensorManger.list, list)
         {
@@ -2040,8 +2050,10 @@ static void* sensor_thread(void* arg)
                     }
                 }
                 _globalSensorMangerTemp->Cur_sensor_info=_globalSensorInfo;
-                _globalDeviceManager->g_modebus_read.temprature=temperature*100;
-                _globalDeviceManager->g_modebus_read.humidity=humidity*100;
+
+                Max_Temprature=  _globalSensorInfo.val1*100>Max_Temprature? _globalSensorInfo.val1*100:Max_Temprature;
+                Max_humi=  _globalSensorInfo.val2*100>Max_humi? _globalSensorInfo.val2*100:Max_humi;
+
                 for(int i =0 ; i < NOARTH_MAX_SENSOR;i++)           //最多4个
                 {
                     if(_globalSensorMangerTemp->sensor_addr == sen.serser_addr[i])
@@ -2134,7 +2146,9 @@ static void* sensor_thread(void* arg)
                     _globalSensorMangerTemp->sensor_check_count = 0;
                 }
                 _globalSensorMangerTemp->Cur_sensor_info = _globalSensorInfo;
-                _globalDeviceManager->g_modebus_read.fCO2=CO2*100;
+
+                Max_CO2 = _globalSensorInfo.val1 * 100 > Max_CO2 ? _globalSensorInfo.val1 * 100 : Max_CO2;
+
                 for(int i = 0 ; i < NOARTH_MAX_SENSOR;i++)           //最多4个
                 {
                     if(_globalSensorMangerTemp->sensor_addr == sen.serser_addr[i])
@@ -2187,6 +2201,9 @@ static void* sensor_thread(void* arg)
                     _globalSensorMangerTemp->sensor_check_count = 0;
                 }
                 _globalSensorMangerTemp->Cur_sensor_info=_globalSensorInfo;
+
+                Max_Temprature=  _globalSensorInfo.val1*100>Max_Temprature? _globalSensorInfo.val1*100:Max_Temprature;
+
                 set_sensor_val_modbus(_globalDeviceManager,&_globalSensorInfo,_globalSensorMangerTemp->sensor_addr);
             }
             break;
@@ -2276,8 +2293,10 @@ static void* sensor_thread(void* arg)
                 // log_d("sensor val:%0.2f %0.2f\n",temperature,humidity);
                 // printf("get temperature=%f   humidity=%f\n",temperature,humidity);
                 _globalSensorMangerTemp->Cur_sensor_info=_globalSensorInfo;
-                _globalDeviceManager->g_modebus_read.temprature=temperature*100;
-                _globalDeviceManager->g_modebus_read.temprature2=temperature2*100;
+
+                Max_Temprature=  _globalSensorInfo.val1*100>Max_Temprature? _globalSensorInfo.val1*100:Max_Temprature;
+                Max_Temprature2=  _globalSensorInfo.val2*100>Max_Temprature2? _globalSensorInfo.val2*100:Max_Temprature2;
+
                 for(int i = 0 ; i < NOARTH_MAX_SENSOR;i++)           //最多4个
                 {
                     if(_globalSensorMangerTemp->sensor_addr == sen.serser_addr[i])
@@ -2326,6 +2345,12 @@ static void* sensor_thread(void* arg)
             else usleep(1000);
         }
         lock_s_release(LOCK_ID_SENSOR);
+
+        _globalDeviceManager->g_modebus_read.temprature = Max_Temprature;
+        _globalDeviceManager->g_modebus_read.temprature2 = Max_Temprature2;
+        _globalDeviceManager->g_modebus_read.humidity = Max_humi;
+        _globalDeviceManager->g_modebus_read.fCO2 = Max_CO2;
+
         sleep(1);
     }
 #endif

+ 4 - 0
pub

@@ -27,6 +27,7 @@
 #PRJS="PRJ_YUNNAN_AC_I1_O1"
 #PRJS="PRJ_GOWONE_125A_AC_I3_O1"
 #PRJS="PRJ_DUALWIRES_AC_I3_O2"
+PRJS="PRJ_Malaysia_AC_I3_O1"
 
 #PRJS="PRJ_USASL_AC_I3_O1 PRJ_USASL_AC_I3_O3"
 #PRJS="PRJ_XIAN_AC_I1_O1_P4 PRJ_XIAN_AC_I1_O1_P8"
@@ -192,6 +193,9 @@ function do_copy()
     elif [ "$1" = "PRJ_IP_AOSENS_DC_I_O" ]; then
         cp -f $custdir/logo/logo_aosens.png $appdir/image/logo.png
         name=ip_dc_aosens_in1_out1_release
+    elif [ "$1" = "PRJ_Malaysia_AC_I3_O1" ];then
+        name=ac_Malaysia_in3_out1_release
+	cp -f $custdir/logo/logo_litech.png $appdir/image/logo.png
     else
         echo error! $RPJ not define!!!
         exit 1