IEC61850_ForPowerSupply_ForNW/src/com/power/comm/Power_61850_SocketClient.java
@@ -226,7 +226,7 @@
      rand_index++;
      */
      if(pwrDev_rtData.PowerDevProtocolName.contains("DDPS")) {         
         //DCDC电源数据
         //紫晶DCDC电源数据
         if(devIndex%3 == 0) {
            if(PowerData_RT.PowerCabinet_EXIST == this.pwrDev_rtData.is_highfreq_cabinet) {
               read_DCDC_Power();
@@ -282,9 +282,9 @@
         DataSet ds = null;
         //************ 遥测量 **************
         //---------------------------------Log Level.TRACE-------------------------------------//
         logger.printf(Level.TRACE, "m_ServerModel.getDataSet(%s/LLN0.dscV)", dcdcDeviceName);
         logger.printf(Level.TRACE, "m_ServerModel.getDataSet(%s/LLN0.dsMeasure1)", dcdcDeviceName);
         ///-------------------------------------------------------------------------------------//
         ds = m_ServerModel.getDataSet(dcdcDeviceName + "/LLN0.dscV");
         ds = m_ServerModel.getDataSet(dcdcDeviceName + "/LLN0.dsMeasure1");
         if(null == ds) {
            setErrCommCountInc(0);
            return;
@@ -380,9 +380,9 @@
         DataSet ds = null;
         //************ 遥信量 **************
         //---------------------------------Log Level.TRACE-------------------------------------//
         logger.printf(Level.TRACE, "m_ServerModel.getDataSet(%s/LLN0.dscAla)", dcdcDeviceName);
         logger.printf(Level.TRACE, "m_ServerModel.getDataSet(%s/LLN0.dsState1)", dcdcDeviceName);
         //-------------------------------------------------------------------------------------//
         ds = m_ServerModel.getDataSet(dcdcDeviceName + "/LLN0.dscAla");
         ds = m_ServerModel.getDataSet(dcdcDeviceName + "/LLN0.dsState1");
         if(null == ds) {
            setErrCommCountInc(0);
            return;
@@ -446,66 +446,6 @@
                     
                     PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_DC_DCout2_UnderV_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("/gswGGIO2.Alm.stVal")) {   //第2路输入开关跳闸
                  origin_val = pwrDev_rtData.m_dcData.is_in2_swtrip;
                  pwrDev_rtData.m_dcData.is_in2_swtrip = ((BdaBoolean)fc_mode).getValue();
//                  pwrDev_rtData.m_dcData.is_in2_swtrip = readBooleanNodeData(dcDeviceName + "/gswGGIO2.Alm.stVal", Fc.ST, pwrDev_rtData.m_dcData.is_in2_swtrip);
                  if(origin_val==false && pwrDev_rtData.m_dcData.is_in2_swtrip==true) {
                     Date dt = ((BdaTimestamp)fc_mode_t).getDate();
//                     Date dt = readNodeTimeStamp(dcDeviceName + "/gswGGIO2.Alm.t", Fc.ST);
                     timeout_tag = checkIfBoolNodeTimeOut(dt);
                     PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_DC_DcIn2_Trip_ID, 0, timeout_tag,dt);
                  }
               }else if(fc_model_str.contains("/fsw1GGIO") && fc_model_str.contains("Alm.stVal")) {
                  //System.out.println(fc_model_str + "===" + fsw1_Trip_idx);
                  origin_val = pwrDev_rtData.m_dcData.is_fsw1_Trip_SW[fsw1_Trip_idx];
                  pwrDev_rtData.m_dcData.is_fsw1_Trip_SW[fsw1_Trip_idx] = ((BdaBoolean)fc_mode).getValue();
                  //pwrDev_rtData.m_dcData.is_fsw1_Trip_SW[fsw1_Trip_idx] = readBooleanNodeData(dcDeviceName + ref, Fc.ST, pwrDev_rtData.m_dcData.is_fsw1_Trip_SW[fsw1_Trip_idx]);
                  if(origin_val==false && pwrDev_rtData.m_dcData.is_fsw1_Trip_SW[fsw1_Trip_idx]==true) {
                     Date dt = ((BdaTimestamp)fc_mode_t).getDate();
                     //Date dt = readNodeTimeStamp(dcDeviceName + reft, Fc.ST);
                     timeout_tag = checkIfBoolNodeTimeOut(dt);
                     PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_DC_DC1_SW_N_Trip_ID, (fsw1_Trip_idx+1), timeout_tag,dt);
                  }
                  fsw1_Trip_idx ++;
               }else if(fc_model_str.contains("/fsw2GGIO") && fc_model_str.contains("Alm.stVal")) {
                  //System.out.println(fc_model_str + "===" + fsw2_Trip_idx);
                  origin_val = pwrDev_rtData.m_dcData.is_fsw2_Trip_SW[fsw2_Trip_idx];
                  pwrDev_rtData.m_dcData.is_fsw2_Trip_SW[fsw2_Trip_idx] = ((BdaBoolean)fc_mode).getValue();
//                  pwrDev_rtData.m_dcData.is_fsw2_Trip_SW[i] = readBooleanNodeData(dcDeviceName + ref, Fc.ST, pwrDev_rtData.m_dcData.is_fsw2_Trip_SW[i]);
                  if(origin_val==false && pwrDev_rtData.m_dcData.is_fsw2_Trip_SW[fsw2_Trip_idx]==true) {
                     Date dt = ((BdaTimestamp)fc_mode_t).getDate();
                     //Date dt = readNodeTimeStamp(dcDeviceName + reft, Fc.ST);
                     timeout_tag = checkIfBoolNodeTimeOut(dt);
                     PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_DC_DC2_SW_N_Trip_ID, (fsw2_Trip_idx+1), timeout_tag,dt);
                  }
                  fsw2_Trip_idx ++;
               }else if(fc_model_str.contains("/etmGGIO1.Alm.stVal")) {
                  origin_val = pwrDev_rtData.m_dcData.is_tempalarm;
                  pwrDev_rtData.m_dcData.is_tempalarm = ((BdaBoolean)fc_mode).getValue();
//                  pwrDev_rtData.m_dcData.is_tempalarm = readBooleanNodeData(dcDeviceName + "/etmGGIO.Alm.stVal", Fc.ST, pwrDev_rtData.m_dcData.is_tempalarm);
                  if(origin_val==false && pwrDev_rtData.m_dcData.is_tempalarm==true) {
                     Date dt = ((BdaTimestamp)fc_mode_t).getDate();
//                     Date dt = readNodeTimeStamp(dcDeviceName + "/etmGGIO.Alm.t", Fc.ST);
                     timeout_tag = checkIfBoolNodeTimeOut(dt);
                     PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_DC_TempAlarm_ID, 0, timeout_tag,dt);
                  }
               }else if(fc_model_str.contains("/dbmGGIO.Ind3.stVal")) {
                  origin_val = pwrDev_rtData.m_dcData.is_dc_monitorerr;
                  pwrDev_rtData.m_dcData.is_dc_monitorerr = ((BdaBoolean)fc_mode).getValue();
@@ -517,19 +457,7 @@
                     
                     PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_DC_MonitorErr_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("/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();   
@@ -845,6 +773,131 @@
         logger.error(e.toString(), e);
      }
      
      try {
         DataSet ds = null;
         //************ 告警量 **************
         //---------------------------------Log Level.TRACE-------------------------------------//
         logger.printf(Level.TRACE, "m_ServerModel.getDataSet(%s/LLN0.dsAlm1)", dcdcDeviceName);
         //-------------------------------------------------------------------------------------//
         ds = m_ServerModel.getDataSet(dcdcDeviceName + "/LLN0.dsAlm1");
         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;
         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("/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("/gswGGIO2.Alm.stVal")) {   //第2路输入开关跳闸
                  origin_val = pwrDev_rtData.m_dcData.is_in2_swtrip;
                  pwrDev_rtData.m_dcData.is_in2_swtrip = ((BdaBoolean)fc_mode).getValue();
//                  pwrDev_rtData.m_dcData.is_in2_swtrip = readBooleanNodeData(dcDeviceName + "/gswGGIO2.Alm.stVal", Fc.ST, pwrDev_rtData.m_dcData.is_in2_swtrip);
                  if(origin_val==false && pwrDev_rtData.m_dcData.is_in2_swtrip==true) {
                     Date dt = ((BdaTimestamp)fc_mode_t).getDate();
//                     Date dt = readNodeTimeStamp(dcDeviceName + "/gswGGIO2.Alm.t", Fc.ST);
                     timeout_tag = checkIfBoolNodeTimeOut(dt);
                     PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_DC_DcIn2_Trip_ID, 0, timeout_tag,dt);
                  }
               }else if(fc_model_str.contains("/fsw1GGIO") && fc_model_str.contains("Alm.stVal")) {
                  //System.out.println(fc_model_str + "===" + fsw1_Trip_idx);
                  origin_val = pwrDev_rtData.m_dcData.is_fsw1_Trip_SW[fsw1_Trip_idx];
                  pwrDev_rtData.m_dcData.is_fsw1_Trip_SW[fsw1_Trip_idx] = ((BdaBoolean)fc_mode).getValue();
                  //pwrDev_rtData.m_dcData.is_fsw1_Trip_SW[fsw1_Trip_idx] = readBooleanNodeData(dcDeviceName + ref, Fc.ST, pwrDev_rtData.m_dcData.is_fsw1_Trip_SW[fsw1_Trip_idx]);
                  if(origin_val==false && pwrDev_rtData.m_dcData.is_fsw1_Trip_SW[fsw1_Trip_idx]==true) {
                     Date dt = ((BdaTimestamp)fc_mode_t).getDate();
                     //Date dt = readNodeTimeStamp(dcDeviceName + reft, Fc.ST);
                     timeout_tag = checkIfBoolNodeTimeOut(dt);
                     PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_DC_DC1_SW_N_Trip_ID, (fsw1_Trip_idx+1), timeout_tag,dt);
                  }
                  fsw1_Trip_idx ++;
               }else if(fc_model_str.contains("/fsw2GGIO") && fc_model_str.contains("Alm.stVal")) {
                  //System.out.println(fc_model_str + "===" + fsw2_Trip_idx);
                  origin_val = pwrDev_rtData.m_dcData.is_fsw2_Trip_SW[fsw2_Trip_idx];
                  pwrDev_rtData.m_dcData.is_fsw2_Trip_SW[fsw2_Trip_idx] = ((BdaBoolean)fc_mode).getValue();
//                  pwrDev_rtData.m_dcData.is_fsw2_Trip_SW[i] = readBooleanNodeData(dcDeviceName + ref, Fc.ST, pwrDev_rtData.m_dcData.is_fsw2_Trip_SW[i]);
                  if(origin_val==false && pwrDev_rtData.m_dcData.is_fsw2_Trip_SW[fsw2_Trip_idx]==true) {
                     Date dt = ((BdaTimestamp)fc_mode_t).getDate();
                     //Date dt = readNodeTimeStamp(dcDeviceName + reft, Fc.ST);
                     timeout_tag = checkIfBoolNodeTimeOut(dt);
                     PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_DC_DC2_SW_N_Trip_ID, (fsw2_Trip_idx+1), timeout_tag,dt);
                  }
                  fsw2_Trip_idx ++;
               }else if(fc_model_str.contains("/etmGGIO1.Alm.stVal")) {
                  origin_val = pwrDev_rtData.m_dcData.is_tempalarm;
                  pwrDev_rtData.m_dcData.is_tempalarm = ((BdaBoolean)fc_mode).getValue();
//                  pwrDev_rtData.m_dcData.is_tempalarm = readBooleanNodeData(dcDeviceName + "/etmGGIO.Alm.stVal", Fc.ST, pwrDev_rtData.m_dcData.is_tempalarm);
                  if(origin_val==false && pwrDev_rtData.m_dcData.is_tempalarm==true) {
                     Date dt = ((BdaTimestamp)fc_mode_t).getDate();
//                     Date dt = readNodeTimeStamp(dcDeviceName + "/etmGGIO.Alm.t", Fc.ST);
                     timeout_tag = checkIfBoolNodeTimeOut(dt);
                     PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_DC_TempAlarm_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("/commGGIO1.Ind1.stVal")) {
                  //协转与高频开关柜通信故障
                  origin_val = pwrDev_rtData.m_acdcData.is_comm_err;
                  pwrDev_rtData.m_acdcData.is_comm_err = ((BdaBoolean)fc_mode).getValue();
                  //System.out.println("is_comm_err:"+pwrDev_rtData.m_acdcData.is_comm_err);
                  if(origin_val==false && pwrDev_rtData.m_acdcData.is_battgroup1_fuse==true) {
                     Date dt = ((BdaTimestamp)fc_mode_t).getDate();
                     //Date dt = readNodeTimeStamp(acdcDeviceName + "/gswGGIO4.Alm.t", Fc.ST);
                     timeout_tag = checkIfBoolNodeTimeOut(dt);
                     PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_PWRDEV_CommErr_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() {