Procházet zdrojové kódy

1.超限动作控制测试.
2.重置耗电量功能开发

chenyuanjie před 2 roky
rodič
revize
e8e100de03
4 změnil soubory, kde provedl 139 přidání a 15 odebrání
  1. 8 0
      pro/src/appweb_handle.c
  2. 9 9
      pro/src/sqlite_handle.c
  3. 116 4
      pro/src/switch_ctrl.c
  4. 6 2
      pro/src/switch_ctrl.h

+ 8 - 0
pro/src/appweb_handle.c

@@ -4404,6 +4404,14 @@ static void equipmentMintenance(void *conn)
         sprintf(temp, "System Reset!");
         dev_insert_alarm_ctrl(__globalDeviceManage.db, __globalDeviceManage._globalDevInfo.product_id, 3, temp);
 
+        for (size_t i = 0; i < MAX_CHN_COUNT; i++)
+        {
+            if (__globalDeviceManage._all_ctrl_board[i].product_saddr <= 0)
+            {
+                continue;
+            }
+            g_switch_get_all_reset(&__globalDeviceManage._globalRelaySampManger,__globalDeviceManage._all_ctrl_board[i].product_type,__globalDeviceManage._all_ctrl_board[i].product_saddr);
+        }
         sys_set_factory();
     }
     else if (strcmp(_Over_equipment_mintenance.type,"resetChannel") == 0)

+ 9 - 9
pro/src/sqlite_handle.c

@@ -3451,52 +3451,52 @@ int dev_Alarm_T_AC_message(GlobalDeviceManager* globalDeviceManger, GlobalTreeAC
     case ENABLE_TAC_V_UP:
     {
         get_message_CtrlType(__globalPowerTemp->global_over_manager->product_vol_over_upper_threshold_ctrl,CtrlData);
-        sprintf(AlarmText, "$通道$|%d%c |$%s$|$%s$| %s", __globalPowerTemp->product_ch_id, 'A' + __globalPowerTemp->product_ph_type, language_alarm_V[languagesID], language_alarm_Up[languagesID],CtrlData);
+        sprintf(AlarmText, "$通道$|CH%d%c |$%s$|$%s$| %s", __globalPowerTemp->product_ch_id, 'A' + __globalPowerTemp->product_ph_type, language_alarm_V[languagesID], language_alarm_Up[languagesID],CtrlData);
     }
     break;
     case ENABLE_TAC_V_DOWN:
     {
         get_message_CtrlType(__globalPowerTemp->global_over_manager->product_vol_over_lower_threshold_ctrl,CtrlData);
-        sprintf(AlarmText, "$通道$|%d%c |$%s$|$%s$| %s", __globalPowerTemp->product_ch_id, 'A' + __globalPowerTemp->product_ph_type, language_alarm_V[languagesID], language_alarm_Down[languagesID],CtrlData);
+        sprintf(AlarmText, "$通道$|CH%d%c |$%s$|$%s$| %s", __globalPowerTemp->product_ch_id, 'A' + __globalPowerTemp->product_ph_type, language_alarm_V[languagesID], language_alarm_Down[languagesID],CtrlData);
     }
     break;
     case ENABLE_TAC_A_UP:
     {
         get_message_CtrlType(__globalPowerTemp->global_over_manager->product_cur_over_upper_threshold_ctrl,CtrlData);
-        sprintf(AlarmText, "$通道$|%d%c |$%s$|$%s$| %s", __globalPowerTemp->product_ch_id, 'A' + __globalPowerTemp->product_ph_type, language_alarm_A[languagesID], language_alarm_Up[languagesID],CtrlData);
+        sprintf(AlarmText, "$通道$|CH%d%c |$%s$|$%s$| %s", __globalPowerTemp->product_ch_id, 'A' + __globalPowerTemp->product_ph_type, language_alarm_A[languagesID], language_alarm_Up[languagesID],CtrlData);
     }
     break;
     case ENABLE_TAC_W_UP:
     {
         get_message_CtrlType(__globalPowerTemp->global_over_manager->product_pwr_over_upper_threshold_ctrl,CtrlData);
-        sprintf(AlarmText, "$通道$|%d%c |$%s$|$%s$| %s", __globalPowerTemp->product_ch_id, 'A' + __globalPowerTemp->product_ph_type, language_alarm_W[languagesID], language_alarm_Up[languagesID],CtrlData);
+        sprintf(AlarmText, "$通道$|CH%d%c |$%s$|$%s$| %s", __globalPowerTemp->product_ch_id, 'A' + __globalPowerTemp->product_ph_type, language_alarm_W[languagesID], language_alarm_Up[languagesID],CtrlData);
     }
     break;
     case ENABLE_TAC_P_UP:
     {
         get_message_CtrlType(__globalPowerTemp->global_over_manager->product_pwrcon_over_upper_threshold_ctrl,CtrlData);
-        sprintf(AlarmText, "$通道$|%d%c |$%s$|$%s$| %s", __globalPowerTemp->product_ch_id, 'A' + __globalPowerTemp->product_ph_type, language_alarm_P[languagesID], language_alarm_Up[languagesID],CtrlData);
+        sprintf(AlarmText, "$通道$|CH%d%c |$%s$|$%s$| %s", __globalPowerTemp->product_ch_id, 'A' + __globalPowerTemp->product_ph_type, language_alarm_P[languagesID], language_alarm_Up[languagesID],CtrlData);
     }
     break;
     case ENABLE_TAC_STIME:
      {
         if ( __globalPowerTemp->product_ph_type==0)
         {
-            sprintf(AlarmText, "$通道$|%d |$%s$", __globalPowerTemp->product_ch_id, language_alarm_phaseA_lose[languagesID]);
+            sprintf(AlarmText, "$通道$|CH%d |$%s$", __globalPowerTemp->product_ch_id, language_alarm_phaseA_lose[languagesID]);
         }
         else if (__globalPowerTemp->product_ph_type==1)
         {
-            sprintf(AlarmText, "$通道$|%d |$%s$", __globalPowerTemp->product_ch_id, language_alarm_phaseB_lose[languagesID]);
+            sprintf(AlarmText, "$通道$|CH%d |$%s$", __globalPowerTemp->product_ch_id, language_alarm_phaseB_lose[languagesID]);
         }
         else if (__globalPowerTemp->product_ph_type==2)
         {
-            sprintf(AlarmText, "$通道$|%d |$%s$", __globalPowerTemp->product_ch_id, language_alarm_phaseC_lose[languagesID]);
+            sprintf(AlarmText, "$通道$|CH%d |$%s$", __globalPowerTemp->product_ch_id, language_alarm_phaseC_lose[languagesID]);
         }
     }
     break;
     case ENABLE_TAC_ETIME:
     default:
-        sprintf(AlarmText, "$通道$|%d%c |$%s$", __globalPowerTemp->product_ch_id, 'A' + __globalPowerTemp->product_ph_type, language_alarm_NULL_ERROR[languagesID]);
+        sprintf(AlarmText, "$通道$|CH%d%c |$%s$", __globalPowerTemp->product_ch_id, 'A' + __globalPowerTemp->product_ph_type, language_alarm_NULL_ERROR[languagesID]);
         break;
     }
     time_t now;

+ 116 - 4
pro/src/switch_ctrl.c

@@ -538,9 +538,10 @@ int g_switch_set_ac_single_threshold(void* manger,int saddr,char chn,GlobalOverM
     //log_d("threshold_Addr:%d OffSet:%d Ret=%d",saddr,offset,ret);
     return ret;
 }
-
-
-
+int g_switch_set_ac_reset(void *manger, int saddr)
+{
+    return 0;
+}
 
 /// @brief 设置单相小电流通道KB
 /// @param manger 
@@ -1129,6 +1130,36 @@ int g_switch_get_all_out_info(void* manger,int ntype,int saddr,int nNumb,PowerIn
     }
     return 1;
 }
+int g_switch_get_all_reset(void* manger,int ntype,int saddr)
+{
+    switch (ntype)
+    {
+    case AC_SINGLE_S_TYPE:
+    case AC_SINGLE_B_TYPE:
+    {
+        return g_switch_set_ac_reset(manger, saddr);
+    }
+    break;
+    case DCPDU_TYPE:
+    {
+        return g_switch_set_dcpdu_reset(manger, saddr);
+    }
+    break;
+    case TREE_AC_TYPE:
+    {
+        return g_switch_set_t_ac_reset(manger, saddr);
+    }
+    break;
+    case AC_MULTI_S_TYPE:
+    case AC_MULTI_B_TYPE:
+    case DC_IN_TYPE:
+    default:
+        return 1;
+        break;
+    }
+    return 1;
+
+}
 int g_switch_get_dcpdu_out_info(void* manger,int saddr,unsigned char chn,PowerInfo* _power,PowerWarningInfo* _warning)
 {
     unsigned int offset = 0;
@@ -1546,7 +1577,10 @@ int g_switch_set_dcpdu_min_cur_threshold(void* manger,int saddr,char chn,GlobalO
 
     return g_modbus_write_x_reg(manger,saddr,offset,2, data_temp);
 }
-
+int g_switch_set_dcpdu_reset(void* manger,int saddr)
+{
+    return 0;
+}
 
 int g_switch_get_t_ac_out_info(void* manger,int saddr,unsigned char chn,PowerInfo* _power,PowerWarningInfo* _warning)
 {
@@ -1984,6 +2018,84 @@ int g_switch_set_t_ac_ctrl(void* manger,int saddr,unsigned short* sts)
     }    
     return g_modbus_write_x_reg(manger,saddr,offset, 2, data_temp);
 }
+//重设板子信息
+int g_switch_set_t_ac_reset(void* manger,int saddr)
+{
+    if (saddr <= 0 || saddr >= MAX_CHN_COUNT)
+    {
+        return -1;
+    }
+    unsigned int offset = 0;
+    unsigned short data_temp[2];
+    int ret=0;
+    //重置耗电量
+    offset = _SWITCH_T_AC_RESET_CONSUMPTION;
+    data_temp[0] = 1;
+    ret= g_modbus_write_x_reg(manger,saddr,offset,2,data_temp);
+    if (ret<0)
+    {
+        return ret;        
+    }
+    //初始化报警阈值
+    unsigned short data_temp1[18];
+    memset(data_temp1,0,sizeof(data_temp1));
+    unsigned int value = 0;    
+    offset = _SWITCH_T_AC_MAX_VOL_THRESHOLD;
+    ret = g_modbus_write_x_reg(manger,saddr,offset,18,data_temp1);
+    if (ret<0)
+    {
+        return ret;        
+    }
+    offset = _SWITCH_T_AC_MIN_VOL_THRESHOLD;
+    ret = g_modbus_write_x_reg(manger,saddr,offset,18,data_temp1);
+    if (ret<0)
+    {
+        return ret;        
+    }
+    offset = _SWITCH_T_AC_MAX_CUR_THRESHOLD;
+    ret = g_modbus_write_x_reg(manger,saddr,offset,18,data_temp1);
+    if (ret<0)
+    {
+        return ret;        
+    }
+    offset = _SWITCH_T_AC_MAX_PWR_THRESHOLD;
+    ret = g_modbus_write_x_reg(manger,saddr,offset,18,data_temp1);
+    if (ret<0)
+    {
+        return ret;        
+    }
+    offset = _SWITCH_T_AC_MAX_PWRCON_THRESHOLD;
+    ret = g_modbus_write_x_reg(manger,saddr,offset,18,data_temp1);
+    if (ret<0)
+    {
+        return ret;        
+    }
+    if (__globalDeviceManage._all_ctrl_board[saddr].product_saddr<=0)
+    {
+        return -1;
+    }    
+    PowerInfo* pPowerInfo= __globalDeviceManage._all_ctrl_board[saddr]._PowerInfo;
+    if (pPowerInfo!=NULL)
+    {
+        for (size_t i = 0; i < __globalDeviceManage._all_ctrl_board[saddr].product_number; i++)
+        {
+            memset(data_temp1, 0, sizeof(data_temp1));
+            offset = _SWITCH_T_AC_OUT_ENABLE + i;
+            data_temp1[0] = pPowerInfo[i].status;
+            ret = g_modbus_write_x_reg(manger, saddr, offset, 2, data_temp1);
+            if (ret < 0)
+            {
+                return ret;
+            }
+        }
+    }
+    if (ret<0)
+    {
+        return ret;        
+    }
+    return 0;
+}
+
 //输入状态及报警
 int g_switch_get_t_ac_in_info(void* manger,int saddr,PowerInfo* _power,PowerWarningInfo *_warning)
 {

+ 6 - 2
pro/src/switch_ctrl.h

@@ -87,7 +87,7 @@ enum MODBUS_MODE
 
 #define _SWITCH_T_AC_ALARM_MISSING_PH      0x1856          //缺相报警
 #define _SWITCH_T_AC_ALARM_CTRL            0x1860          //超限动作
-#define _SWITCH_T_AC_RESET_CONSUMPTION     0x189c          //重置耗电量
+#define _SWITCH_T_AC_RESET_CONSUMPTION     0x18A5          //重置耗电量
 
 int g_switch_get_type(void* manger,int saddr, int* type,int* chn,int nPowerType);
 
@@ -99,7 +99,7 @@ int g_switch_set_ac_single_s_ctrl(void* manger,int saddr,unsigned short* sts,int
 int g_switch_set_ac_single_s_chn_ctrl(void* manger,int saddr,unsigned char chn,unsigned short sts);
 int g_switch_set_ac_single_s_kb_val(void* manger,int saddr,unsigned char chn,SwitchKbVal* _kb_val);
 int g_switch_set_ac_single_threshold(void* manger,int saddr,char chn,GlobalOverManager* _global_over_manager);
-
+int g_switch_set_ac_reset(void* manger,int saddr);
 
 int g_switch_set_ac_single_b_start_time_delay(void* manger,int saddr,unsigned char chn,unsigned int time);
 int g_switch_set_ac_single_b_stop_time_delay(void* manger,int saddr,unsigned char chn,unsigned int time);
@@ -134,6 +134,7 @@ int g_switch_set_dcpdu_max_vol_threshold(void* manger,int saddr,char chn,GlobalO
 int g_switch_set_dcpdu_min_vol_threshold(void* manger,int saddr,char chn,GlobalOverManager* _global_over_manager);
 int g_switch_set_dcpdu_max_cur_threshold(void* manger,int saddr,char chn,GlobalOverManager* _global_over_manager);
 int g_switch_set_dcpdu_min_cur_threshold(void* manger,int saddr,char chn,GlobalOverManager* _global_over_manager);
+int g_switch_set_dcpdu_reset(void* manger,int saddr);
 //----------------------------------------------------------------
 int g_switch_get_t_ac_in_info(void* manger,int saddr,PowerInfo* _power,PowerWarningInfo* _warning);
 int g_switch_get_t_ac_out_info(void* manger,int saddr,unsigned char chn,PowerInfo* _power,PowerWarningInfo* _warning);
@@ -159,6 +160,8 @@ int g_switch_set_t_ac_chn_ctrl(void* manger,int saddr,unsigned char chn,unsigned
 int g_switch_set_t_ac_chn_NF_ctrl(void* manger,int saddr,unsigned char chn,unsigned short sts);
 int g_switch_set_t_ac_phchn_ctrl(void* manger,int saddr,unsigned char chn,unsigned short sts);
 int g_switch_set_t_ac_ctrl(void* manger,int saddr,unsigned short* sts);
+int g_switch_set_t_ac_reset(void* manger,int saddr);
+
 
 //GPIO通道状态
 int g_switch_get_gpio_status(int ngpio,int* status);
@@ -170,6 +173,7 @@ int g_switch_set_all_chn_ctrl(void* manger, GlobalPowerManger* _globalPowerMange
 int g_switch_set_all_ctrl(void* manger,int ntype,int saddr,unsigned short sts);
 int g_switch_set_all_single_threshold(void* manger,int ntype,int saddr,char chn,GlobalPowerManger* _globalPowerMangerTemp);
 int g_switch_get_all_out_info(void* manger,int ntype,int saddr,int nNumb,PowerInfo* _power,PowerWarningInfo* _warning);
+int g_switch_get_all_reset(void* manger,int ntype,int saddr);
 //未实现
 int g_switch_set_ac_single_s_time_delay(void* manger,int saddr,unsigned char chn,unsigned int time);
 int g_switch_set_ac_single_b_time_delay(void* manger,int saddr,unsigned char chn,unsigned int time);