IEC61850_ForPowerSupply_ForNW/src/com/power/comm/Power_61850_SocketClient.java
@@ -225,18 +225,28 @@
      bool_rand_data = (int_rand_data%2==0)?true:false;
      rand_index++;
      */
      if(pwrDev_rtData.PowerDevProtocolName.contains("DDPS")) {
         //紫晶DCDC电源数据
      if(pwrDev_rtData.PowerDevProtocolName.contains("DDPS")) {
         if(devIndex%3 == 0) {
            if(PowerData_RT.PowerCabinet_EXIST == this.pwrDev_rtData.is_highfreq_cabinet) {
               read_DCDC_Power();
               pwrDev_rtData.UpdatePower_DC_Data_ToTable();
               pwrDev_rtData.UpdatePower_ACDC_Data_ToTable();
            if(pwrDev_rtData.PowerDevProtocolName.contains("G10")) {
               //云鑫为DCDC电源
               if(PowerData_RT.PowerCabinet_EXIST == this.pwrDev_rtData.is_highfreq_cabinet) {
                  read_YXWDCDC_Power();
                  pwrDev_rtData.UpdatePower_DC_Data_ToTable();
                  pwrDev_rtData.UpdatePower_ACDC_Data_ToTable();
               }
            }else {
               //紫晶DCDC电源数据
               if(PowerData_RT.PowerCabinet_EXIST == this.pwrDev_rtData.is_highfreq_cabinet) {
                  read_ZJDCDC_Power();
                  pwrDev_rtData.UpdatePower_DC_Data_ToTable();
                  pwrDev_rtData.UpdatePower_ACDC_Data_ToTable();
               }
               //System.out.println("read_ACDC_LD" + Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms));
            }
            //System.out.println("read_ACDC_LD" + Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms));
         }
      }else {
         if(devIndex%3 == 0) {
@@ -276,7 +286,7 @@
   
   
   
   private void read_DCDC_Power() {
   private void read_ZJDCDC_Power() {
      String dcdcDeviceName = pwrDev_rtData.PowerDevProtocolName;
      try {
         DataSet ds = null;
@@ -900,6 +910,329 @@
      
   }
   /**
    *    云鑫为DCDC电源数据解析
    */
   private void read_YXWDCDC_Power() {
      String dcdcDeviceName = pwrDev_rtData.PowerDevProtocolName;
      try {
         DataSet ds = null;
         //************ 遥测量 **************
         //---------------------------------Log Level.TRACE-------------------------------------//
         logger.printf(Level.TRACE, "m_ServerModel.getDataSet(%s/LLN0.dsMeasure1)", dcdcDeviceName);
         ///-------------------------------------------------------------------------------------//
         ds = m_ServerModel.getDataSet(dcdcDeviceName + "/LLN0.dsMeasure1");
         if(null == ds) {
            setErrCommCountInc(0);
            return;
         }
         int idx_model = 0;
         ds = ds.copy();
         int size_cnt = ds.getMembers().size();
         m_Association.getDataSetValues(ds);
         int m = 0;
         for (int n = 0; n<size_cnt; n++) {
            if(null == ds.getMembers().get(n).getChild("mag")) {
               continue;
            }
            FcModelNode fc_mode = (FcModelNode) ds.getMembers().get(n).getChild("mag").getChild("f");
            FcModelNode fc_mode_i = (FcModelNode) ds.getMembers().get(n).getChild("mag").getChild("i");
            if(null != fc_mode){
               String fc_model_str = fc_mode.toString1();
               //System.err.println(fc_model_str+"===="+((BdaFloat32) fc_mode).getFloat());
               if (fc_model_str.contains("/aciGGIO1.AnIn1.mag.f")) {//直流1输入电压
                  pwrDev_rtData.m_dcData.dcIn1_vol = ((BdaFloat32) fc_mode).getFloat();
               }else if (fc_model_str.contains("/aciGGIO1.AnIn2.mag.f")) {//直流1输入电流
                  pwrDev_rtData.m_dcData.dcIn1_curr = ((BdaFloat32) fc_mode).getFloat();
               }else if(fc_model_str.contains("/aciGGIO1.AnIn3.mag.f")) {//直流2输入电压
                  pwrDev_rtData.m_dcData.dcIn2_vol = ((BdaFloat32) fc_mode).getFloat();
               }else if(fc_model_str.contains("/aciGGIO2.AnIn1.mag.f")) {//直流2输入电流
                  pwrDev_rtData.m_dcData.dcIn2_curr = ((BdaFloat32) fc_mode).getFloat();
               }else if(fc_model_str.contains("/dbmGGIO1.AnIn1.mag.f")) {//直流1输出电压
                  pwrDev_rtData.m_dcData.dcOut1_vol = ((BdaFloat32) fc_mode).getFloat();
               }else if(fc_model_str.contains("/dbmGGIO1.AnIn2.mag.f")) {//第1路直流母线输出电流
                  pwrDev_rtData.m_dcData.dcOut1_curr = ((BdaFloat32) fc_mode).getFloat();
               }else if(fc_model_str.contains("/etmGGIO1.AnIn1.mag.f")) {//直流配电柜温度
                  pwrDev_rtData.m_dcData.temprature = ((BdaFloat32) fc_mode).getFloat();
               }
               //模块电压电流
               else if(fc_model_str.contains("/chmGGIO") && fc_model_str.contains(".AnIn1.mag.f")) {
                  if((idx_model%2) == 0) {
                     //模块电压
                     pwrDev_rtData.m_acdcData.m_out_vol[idx_model/2] = ((BdaFloat32) fc_mode).getFloat();
                  }else {
                     //模块电流
                     pwrDev_rtData.m_acdcData.m_out_curr[(idx_model-1)/2] = ((BdaFloat32) fc_mode).getFloat();
                  }
                  idx_model++;
               }
            }
         }
         pwrDev_rtData.setCommSuccessCountInc();
         pwrDev_rtData.SetPwrDeviceCommErrState(false);            //更新通信时间
         resetErrCommCount("read_ACDC_LD.dsCpssYc");
      } catch (Exception e) {
         setErrCommCountInc(0);
         logger.error(e.toString(), e);
      }
      boolean origin_val;
      int timeout_tag;
      try {
         DataSet ds = null;
         //************ 遥信告警量 **************
         //---------------------------------Log Level.TRACE-------------------------------------//
         logger.printf(Level.TRACE, "m_ServerModel.getDataSet(%s/LLN0.dsState1)", dcdcDeviceName);
         //-------------------------------------------------------------------------------------//
         ds = m_ServerModel.getDataSet(dcdcDeviceName + "/LLN0.dsState1");
         if(null == ds) {
            setErrCommCountInc(0);
            return;
         }
         ds = ds.copy();
         int size_cnt = ds.getMembers().size();
         m_Association.getDataSetValues(ds);
         int m = 0;
         int fsw1_Trip_idx = 0;
         int fsw2_Trip_idx = 0;
         int model_close_idx = 0;   //模块关机状态索引
         for (int n = 0; n<size_cnt; n++) {
            if(null == ds.getMembers().get(n).getChild("stVal")) {
               continue;
            }
            FcModelNode fc_mode = (FcModelNode) ds.getMembers().get(n).getChild("stVal");
            FcModelNode fc_mode_t = (FcModelNode) ds.getMembers().get(n).getChild("t");
            if(null != fc_mode){
               String fc_model_str = fc_mode.toString1();
               if (fc_model_str.contains("/dbmGGIO1.Ind1.stVal")) {//第1路直流过压
                  origin_val = pwrDev_rtData.m_dcData.is_dc1_over_vol;
                  pwrDev_rtData.m_dcData.is_dc1_over_vol = ((BdaBoolean)fc_mode).getValue();
                  if(origin_val==false && pwrDev_rtData.m_dcData.is_dc1_over_vol==true) {
                     Date dt = ((BdaTimestamp)fc_mode_t).getDate();
                     timeout_tag = checkIfBoolNodeTimeOut(dt);
                     PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_DC_DCout1_OverV_ID, 0, timeout_tag,dt);
                  }
               }else if(fc_model_str.contains("/dbmGGIO1.Ind2.stVal")) {//第1路直流欠压
                  origin_val = pwrDev_rtData.m_dcData.is_dc1_under_vol;
                  pwrDev_rtData.m_dcData.is_dc1_under_vol = ((BdaBoolean)fc_mode).getValue();
//                  pwrDev_rtData.m_dcData.is_dc1_under_vol = readBooleanNodeData(dcDeviceName + "/dbmGGIO1.Ind2.stVal", Fc.ST, pwrDev_rtData.m_dcData.is_dc1_under_vol);
                  if(origin_val==false && pwrDev_rtData.m_dcData.is_dc1_under_vol==true) {
                     Date dt = ((BdaTimestamp)fc_mode_t).getDate();
//                     Date dt = readNodeTimeStamp(dcDeviceName + "/dbmGGIO1.Ind2.t", Fc.ST);
                     timeout_tag = checkIfBoolNodeTimeOut(dt);
                     PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_DC_DCout1_UnderV_ID, 0, timeout_tag,dt);
                  }
               }else if(fc_model_str.contains("/chmGGIO1.Ind2.stVal")) {//模块1关机
                  origin_val = pwrDev_rtData.m_acdcData.is_acdcMod_off[0];
                  pwrDev_rtData.m_acdcData.is_acdcMod_off[0] = ((BdaBoolean)fc_mode).getValue();
                  if(origin_val==false && pwrDev_rtData.m_acdcData.is_acdcMod_off[0]==true) {
                     Date dt = ((BdaTimestamp)fc_mode_t).getDate();
                     timeout_tag = checkIfBoolNodeTimeOut(dt);
                     PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_ACDC_Module1Close_ID, 0, timeout_tag,dt);
                  }
               }else if(fc_model_str.contains("/chmGGIO2.Ind2.stVal")) {//模块2关机
                  origin_val = pwrDev_rtData.m_acdcData.is_acdcMod_off[1];
                  pwrDev_rtData.m_acdcData.is_acdcMod_off[1] = ((BdaBoolean)fc_mode).getValue();
                  if(origin_val==false && pwrDev_rtData.m_acdcData.is_acdcMod_off[1]==true) {
                     Date dt = ((BdaTimestamp)fc_mode_t).getDate();
                     timeout_tag = checkIfBoolNodeTimeOut(dt);
                     PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_ACDC_Module2Close_ID, 0, timeout_tag,dt);
                  }
               }else if(fc_model_str.contains("/chmGGIO3.Ind2.stVal")) {//模块3关机
                  origin_val = pwrDev_rtData.m_acdcData.is_acdcMod_off[2];
                  pwrDev_rtData.m_acdcData.is_acdcMod_off[2] = ((BdaBoolean)fc_mode).getValue();
                  if(origin_val==false && pwrDev_rtData.m_acdcData.is_acdcMod_off[2]==true) {
                     Date dt = ((BdaTimestamp)fc_mode_t).getDate();
                     timeout_tag = checkIfBoolNodeTimeOut(dt);
                     PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_ACDC_Module3Close_ID, 0, timeout_tag,dt);
                  }
               }else if(fc_model_str.contains("/chmGGIO4.Ind2.stVal")) {//模块4关机
                  origin_val = pwrDev_rtData.m_acdcData.is_acdcMod_off[3];
                  pwrDev_rtData.m_acdcData.is_acdcMod_off[3] = ((BdaBoolean)fc_mode).getValue();
                  if(origin_val==false && pwrDev_rtData.m_acdcData.is_acdcMod_off[3]==true) {
                     Date dt = ((BdaTimestamp)fc_mode_t).getDate();
                     timeout_tag = checkIfBoolNodeTimeOut(dt);
                     PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_ACDC_Module4Close_ID, 0, timeout_tag,dt);
                  }
               }else if(fc_model_str.contains("/chmGGIO5.Ind2.stVal")) {//模块5关机
                  origin_val = pwrDev_rtData.m_acdcData.is_acdcMod_off[4];
                  pwrDev_rtData.m_acdcData.is_acdcMod_off[4] = ((BdaBoolean)fc_mode).getValue();
                  if(origin_val==false && pwrDev_rtData.m_acdcData.is_acdcMod_off[4]==true) {
                     Date dt = ((BdaTimestamp)fc_mode_t).getDate();
                     timeout_tag = checkIfBoolNodeTimeOut(dt);
                     PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_ACDC_Module5Close_ID, 0, timeout_tag,dt);
                  }
               }else if(fc_model_str.contains("/chmGGIO6.Ind2.stVal")) {//模块6关机
                  origin_val = pwrDev_rtData.m_acdcData.is_acdcMod_off[5];
                  pwrDev_rtData.m_acdcData.is_acdcMod_off[5] = ((BdaBoolean)fc_mode).getValue();
                  if(origin_val==false && pwrDev_rtData.m_acdcData.is_acdcMod_off[5]==true) {
                     Date dt = ((BdaTimestamp)fc_mode_t).getDate();
                     timeout_tag = checkIfBoolNodeTimeOut(dt);
                     PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_ACDC_Module6Close_ID, 0, timeout_tag,dt);
                  }
               }else if(fc_model_str.contains("/chmGGIO7.Ind2.stVal")) {//模块7关机
                  origin_val = pwrDev_rtData.m_acdcData.is_acdcMod_off[6];
                  pwrDev_rtData.m_acdcData.is_acdcMod_off[6] = ((BdaBoolean)fc_mode).getValue();
                  if(origin_val==false && pwrDev_rtData.m_acdcData.is_acdcMod_off[6]==true) {
                     Date dt = ((BdaTimestamp)fc_mode_t).getDate();
                     timeout_tag = checkIfBoolNodeTimeOut(dt);
                     PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_ACDC_Module7Close_ID, 0, timeout_tag,dt);
                  }
               }else if(fc_model_str.contains("/chmGGIO8.Ind2.stVal")) {//模块8关机
                  origin_val = pwrDev_rtData.m_acdcData.is_acdcMod_off[7];
                  pwrDev_rtData.m_acdcData.is_acdcMod_off[7] = ((BdaBoolean)fc_mode).getValue();
                  if(origin_val==false && pwrDev_rtData.m_acdcData.is_acdcMod_off[7]==true) {
                     Date dt = ((BdaTimestamp)fc_mode_t).getDate();
                     timeout_tag = checkIfBoolNodeTimeOut(dt);
                     PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_ACDC_Module8Close_ID, 0, timeout_tag,dt);
                  }
               }else if(fc_model_str.contains("/chmGGIO9.Ind2.stVal")) {//模块9关机
                  origin_val = pwrDev_rtData.m_acdcData.is_acdcMod_off[8];
                  pwrDev_rtData.m_acdcData.is_acdcMod_off[8] = ((BdaBoolean)fc_mode).getValue();
                  if(origin_val==false && pwrDev_rtData.m_acdcData.is_acdcMod_off[8]==true) {
                     Date dt = ((BdaTimestamp)fc_mode_t).getDate();
                     timeout_tag = checkIfBoolNodeTimeOut(dt);
                     PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_ACDC_Module9Close_ID, 0, timeout_tag,dt);
                  }
               }else if(fc_model_str.contains("/chmGGIO10.Ind2.stVal")) {//模块10关机
                  origin_val = pwrDev_rtData.m_acdcData.is_acdcMod_off[9];
                  pwrDev_rtData.m_acdcData.is_acdcMod_off[9] = ((BdaBoolean)fc_mode).getValue();
                  if(origin_val==false && pwrDev_rtData.m_acdcData.is_acdcMod_off[9]==true) {
                     Date dt = ((BdaTimestamp)fc_mode_t).getDate();
                     timeout_tag = checkIfBoolNodeTimeOut(dt);
                     PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_ACDC_Module10Close_ID, 0, timeout_tag,dt);
                  }
               }else if(fc_model_str.contains("/chmGGIO11.Ind2.stVal")) {//模块11关机
                  origin_val = pwrDev_rtData.m_acdcData.is_acdcMod_off[10];
                  pwrDev_rtData.m_acdcData.is_acdcMod_off[10] = ((BdaBoolean)fc_mode).getValue();
                  if(origin_val==false && pwrDev_rtData.m_acdcData.is_acdcMod_off[10]==true) {
                     Date dt = ((BdaTimestamp)fc_mode_t).getDate();
                     timeout_tag = checkIfBoolNodeTimeOut(dt);
                     PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_ACDC_Module11Close_ID, 0, timeout_tag,dt);
                  }
               }else if(fc_model_str.contains("/chmGGIO12.Ind2.stVal")) {//模块12关机
                  origin_val = pwrDev_rtData.m_acdcData.is_acdcMod_off[11];
                  pwrDev_rtData.m_acdcData.is_acdcMod_off[11] = ((BdaBoolean)fc_mode).getValue();
                  if(origin_val==false && pwrDev_rtData.m_acdcData.is_acdcMod_off[11]==true) {
                     Date dt = ((BdaTimestamp)fc_mode_t).getDate();
                     timeout_tag = checkIfBoolNodeTimeOut(dt);
                     PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_ACDC_Module12Close_ID, 0, timeout_tag,dt);
                  }
               }else if(fc_model_str.contains("/chmGGIO13.Ind2.stVal")) {      //模块13关机
                  origin_val = pwrDev_rtData.m_acdcData.is_acdcMod_off[12];
                  pwrDev_rtData.m_acdcData.is_acdcMod_off[12] = ((BdaBoolean)fc_mode).getValue();
                  if(origin_val==false && pwrDev_rtData.m_acdcData.is_acdcMod_off[12]==true) {
                     Date dt = ((BdaTimestamp)fc_mode_t).getDate();
                     timeout_tag = checkIfBoolNodeTimeOut(dt);
                     PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_ACDC_Module13Close_ID, 0, timeout_tag,dt);
                  }
               }else if(fc_model_str.contains("/chmGGIO14.Ind2.stVal")) {      //模块14关机
                  origin_val = pwrDev_rtData.m_acdcData.is_acdcMod_off[13];
                  pwrDev_rtData.m_acdcData.is_acdcMod_off[13] = ((BdaBoolean)fc_mode).getValue();
                  if(origin_val==false && pwrDev_rtData.m_acdcData.is_acdcMod_off[13]==true) {
                     Date dt = ((BdaTimestamp)fc_mode_t).getDate();
                     timeout_tag = checkIfBoolNodeTimeOut(dt);
                     PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_ACDC_Module14Close_ID, 0, timeout_tag,dt);
                  }
               }else if(fc_model_str.contains("/chmGGIO15.Ind2.stVal")) {      //模块15关机
                  origin_val = pwrDev_rtData.m_acdcData.is_acdcMod_off[14];
                  pwrDev_rtData.m_acdcData.is_acdcMod_off[14] = ((BdaBoolean)fc_mode).getValue();
                  if(origin_val==false && pwrDev_rtData.m_acdcData.is_acdcMod_off[14]==true) {
                     Date dt = ((BdaTimestamp)fc_mode_t).getDate();
                     timeout_tag = checkIfBoolNodeTimeOut(dt);
                     PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_ACDC_Module15Close_ID, 0, timeout_tag,dt);
                  }
               }else if(fc_model_str.contains("/chmGGIO16.Ind2.stVal")) {      //模块16关机
                  origin_val = pwrDev_rtData.m_acdcData.is_acdcMod_off[15];
                  pwrDev_rtData.m_acdcData.is_acdcMod_off[15] = ((BdaBoolean)fc_mode).getValue();
                  if(origin_val==false && pwrDev_rtData.m_acdcData.is_acdcMod_off[15]==true) {
                     Date dt = ((BdaTimestamp)fc_mode_t).getDate();
                     timeout_tag = checkIfBoolNodeTimeOut(dt);
                     PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_ACDC_Module16Close_ID, 0, timeout_tag,dt);
                  }
               }else if(fc_model_str.contains("/gswGGIO1.Alm.stVal")) {   //第1路输入开关跳闸
                  origin_val = pwrDev_rtData.m_dcData.is_in1_swtrip;
                  pwrDev_rtData.m_dcData.is_in1_swtrip = ((BdaBoolean)fc_mode).getValue();
//                  pwrDev_rtData.m_dcData.is_in1_swtrip = readBooleanNodeData(dcDeviceName + "/gswGGIO1.Alm.stVal", Fc.ST, pwrDev_rtData.m_dcData.is_in1_swtrip);
                  if(origin_val==false && pwrDev_rtData.m_dcData.is_in1_swtrip==true) {
                     Date dt = ((BdaTimestamp)fc_mode_t).getDate();
//                     Date dt = readNodeTimeStamp(dcDeviceName + "/gswGGIO1.Alm.t", Fc.ST);
                     timeout_tag = checkIfBoolNodeTimeOut(dt);
                     PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_DC_DcIn1_Trip_ID, 0, timeout_tag,dt);
                  }
               }else if(fc_model_str.contains("/calmGGIO1.Alm.stVal")) {
                  origin_val = pwrDev_rtData.m_dcData.is_total_alarm;
                  pwrDev_rtData.m_dcData.is_total_alarm = ((BdaBoolean)fc_mode).getValue();
//                  pwrDev_rtData.m_dcData.is_total_alarm = readBooleanNodeData(dcDeviceName + "/calmGGIO.Alm.stVal", Fc.ST, pwrDev_rtData.m_dcData.is_total_alarm);
                  if(origin_val==false && pwrDev_rtData.m_dcData.is_total_alarm==true) {
                     Date dt = ((BdaTimestamp)fc_mode_t).getDate();
//                     Date dt = readNodeTimeStamp(dcDeviceName + "/calmGGIO.Alm.t", Fc.ST);
                     timeout_tag = checkIfBoolNodeTimeOut(dt);
                     PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_DC_TolalAlarm_ID, 0, timeout_tag,dt);
                  }
               }else if(fc_model_str.contains("/btgGGIO1.Ind4.stVal")) {
                  origin_val = pwrDev_rtData.m_acdcData.is_battgroup1_down;
                  pwrDev_rtData.m_acdcData.is_battgroup1_down = ((BdaBoolean)fc_mode).getValue();
                  if(origin_val==false && pwrDev_rtData.m_acdcData.is_battgroup1_down==true) {
                     Date dt = ((BdaTimestamp)fc_mode_t).getDate();
                     //Date dt = readNodeTimeStamp(acdcDeviceName + "/btgGGIO1.Ind4.t", Fc.ST);
                     timeout_tag = checkIfBoolNodeTimeOut(dt);
                     PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_ACDC_Batt1_Down_ID, 0, timeout_tag,dt);
                  }
               }else if(fc_model_str.contains("/gswGGIO3.Alm.stVal")) {
                  origin_val = pwrDev_rtData.m_acdcData.is_loader_fuse;
                  pwrDev_rtData.m_acdcData.is_loader_fuse = ((BdaBoolean)fc_mode).getValue();
                  if(origin_val==false && pwrDev_rtData.m_acdcData.is_loader_fuse==true) {
                     Date dt = ((BdaTimestamp)fc_mode_t).getDate();
                     //Date dt = readNodeTimeStamp(acdcDeviceName + "/gswGGIO3.Alm.t", Fc.ST);
                     timeout_tag = checkIfBoolNodeTimeOut(dt);
                     PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_ACDC_LoaderFuse_ID, 0, timeout_tag,dt);
                  }
               }
            }
         }
         pwrDev_rtData.setCommSuccessCountInc();
         pwrDev_rtData.SetPwrDeviceCommErrState(false);
         resetErrCommCount("read_DC_LD.dsDcswibYx");
      } catch (Exception e) {
         setErrCommCountInc(0);
         logger.error(e.toString(), e);
      }
   }
   private void read_ACDC_LD() {
      
      String acdcDeviceName = pwrDev_rtData.PowerDevProtocolName + "CPSS" + pwrDev_rtData.PowerDevProtocolIndex;