| | |
| | | import org.apache.logging.log4j.Level;
|
| | | import org.apache.logging.log4j.LogManager;
|
| | | import org.apache.logging.log4j.Logger;
|
| | | import org.openmuc.openiec61850.BdaBitString;
|
| | | import org.openmuc.openiec61850.BdaBoolean;
|
| | | import org.openmuc.openiec61850.BdaFloat32;
|
| | | import org.openmuc.openiec61850.BdaInt64;
|
| | |
| | | // if(!FBSDeviceName.contains(m_ServerModel.getBaseDevName())) {
|
| | | // System.err.println("SSSSSSSSSSS");
|
| | | // //与预加载的模型文件不一致时
|
| | | // m_ServerModel = m_Association.retrieveModel();
|
| | | m_ServerModel = m_Association.retrieveModel();
|
| | | // }
|
| | | System.err.println("Dev_BASE:"+m_ServerModel.getBaseDevName());;
|
| | |
|
| | |
| | | logger.debug("BTS_IEC61850_Client Unable to connect to device IP:" + FBSDeviceIp);
|
| | | continue;
|
| | | }
|
| | | if(this.FBSDeviceName.indexOf("BTSE")>0) {
|
| | | if(this.FBSDeviceName.indexOf("BTSE2")>0) {
|
| | | //适配各个不同协议名称的61850设备通信[读取放电参数时用到]
|
| | | ZJDYCPSS = this.FBSDeviceName.replace("BTSE2", "CPSS");
|
| | | }else if(this.FBSDeviceName.indexOf("BTSE")>0) {
|
| | | //适配各个不同协议名称的61850设备通信[读取放电参数时用到]
|
| | | ZJDYCPSS = this.FBSDeviceName.replace("BTSE", "CPSS");
|
| | | }
|
| | |
| | |
|
| | | FcModelNode fcModelNode = (FcModelNode) m_ServerModel.findModelNode(reference, fc);
|
| | | if (null == fcModelNode) {
|
| | | logger.error("readFloatNodeData error, no modenode was found.....");
|
| | | logger.error(reference+"readFloatNodeData error, no modenode was found.....");
|
| | | return 0;
|
| | | }
|
| | | try {
|
| | |
| | | m_Association.getDataValues(fcModelNode);
|
| | | m_FBS_VCData.m_SysState.resetErrCommCount();
|
| | | ModelNode fc_mode = fcModelNode;
|
| | | String a[]= null;
|
| | | a = new String[5];
|
| | | a = (fc_mode.toString()).split(":");
|
| | | res_val = a[2];
|
| | | //System.out.println(a[3]);
|
| | | String split[]= null;
|
| | | split = new String[5];
|
| | | split = (res_val.toString()).split(", ");
|
| | | String result[]= null;
|
| | | result = new String[2];
|
| | | result[0] = split[0];
|
| | | result[1] = a[3];
|
| | | |
| | | resul = String.format("%s,%s", result);
|
| | | if(fc_mode instanceof BdaVisibleString) {
|
| | | resul = new String(((BdaVisibleString)fc_mode).getValue());
|
| | | }
|
| | | } catch (ServiceError e) {
|
| | | System.out.println("Service error: " + e.getMessage());
|
| | | m_FBS_VCData.m_SysState.addErrCommCount();
|
| | |
| | | events.clear();
|
| | |
|
| | | if(0 == (numberDevState%3)) {
|
| | | System.out.println();
|
| | | //---------------------------------Log Level.TRACE-------------------------------------//
|
| | | logger.printf(Level.TRACE, "m_ServerModel.getDataSet(%s/LLN0.dsBtseYc)", FBSDeviceName);
|
| | | //-------------------------------------------------------------------------------------//
|
| | |
| | | logger.printf(Level.TRACE, "m_ServerModel.getDataSet(%s/LLN0.dsBtseYx)", FBSDeviceName);
|
| | | //-------------------------------------------------------------------------------------//
|
| | | String c[] = null;
|
| | | DataSet ds_stat = m_ServerModel.getDataSet(FBSDeviceName + "/LLN0.dsBtseYx");
|
| | | DataSet ds_stat = m_ServerModel.getDataSet(FBSDeviceName + "/LLN0.dsBtseYx").copy();
|
| | | int size_cnt_stat = ds_stat.getMembers().size();
|
| | | c = new String[size_cnt_stat];
|
| | | String[] split = null;
|
| | | split = new String[2];
|
| | | boolean[] alm = new boolean[] {false,false,false,false,false};
|
| | | int size_cnt = ds_stat.getMembers().size();
|
| | | //System.out.println(FBSDeviceName + "/LLN0.dsDevState 节点数:"+size_cnt);
|
| | | m_Association.getDataSetValues(ds_stat);
|
| | | String sb = null;
|
| | | String temp = "%s";
|
| | | //限制当前告警个数
|
| | | size_cnt_stat = 5;
|
| | | for (int n = 0; n < size_cnt_stat; n++) {
|
| | | //System.err.println(ds_stat.getMembers().get(n).getName());
|
| | | FcModelNode fc_mode = (FcModelNode) ds_stat.getMembers().get(n).getChild("stVal");
|
| | | split = fc_mode.toString().split(": ");
|
| | | c[n] = split[1];
|
| | | if(n>0) {
|
| | | temp += ",%s";
|
| | | // 屏蔽当前根节点下新添加的ukey内容
|
| | | for (int n = 0; n < size_cnt; n++) {
|
| | | if(null == ds_stat.getMembers().get(n).getChild("stVal")) {
|
| | | //System.err.println(ds.getMembers().get(n).getChild("mag").toString1());
|
| | | continue;
|
| | | }
|
| | | }
|
| | | sb = String.format(temp, (Object[])c);
|
| | | FcModelNode fc_mode = (FcModelNode) ds_stat.getMembers().get(n).getChild("stVal");
|
| | | if(fc_mode instanceof BdaBoolean) {
|
| | | //JTextField tf_t = (JTextField) data.getValueField();
|
| | | //System.out.println("n:"+n+" "+fc_mode.toString1());
|
| | | String fc_mode_str = fc_mode.toString1();
|
| | | if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.Alm1")){
|
| | | alm[0] = ((BdaBoolean)fc_mode).getValue();
|
| | | }else if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.Alm2")){
|
| | | alm[1] = ((BdaBoolean)fc_mode).getValue();
|
| | | }else if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.Alm3")){
|
| | | alm[2] = ((BdaBoolean)fc_mode).getValue();
|
| | | }else if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.Alm4")){
|
| | | alm[3] = ((BdaBoolean)fc_mode).getValue();
|
| | | }else if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.Alm5")){
|
| | | alm[4] = ((BdaBoolean)fc_mode).getValue();
|
| | | } |
| | | }else{
|
| | | |
| | | }
|
| | | } |
| | | |
| | | // c = new String[size_cnt_stat];
|
| | | // String[] split = null;
|
| | | // split = new String[2];
|
| | | // m_Association.getDataSetValues(ds_stat);
|
| | | // String sb = null;
|
| | | // String temp = "%s";
|
| | | // //限制当前告警个数
|
| | | // size_cnt_stat = 5;
|
| | | // for (int n = 0; n < size_cnt_stat; n++) {
|
| | | // //System.err.println(ds_stat.getMembers().get(n).getName());
|
| | | // FcModelNode fc_mode = (FcModelNode) ds_stat.getMembers().get(n).getChild("stVal");
|
| | | // split = fc_mode.toString().split(": ");
|
| | | // c[n] = split[1];
|
| | | // if(n>0) {
|
| | | // temp += ",%s";
|
| | | // }
|
| | | // }
|
| | | // sb = String.format(temp, (Object[])c);
|
| | | String sb = String.format("%b,%b,%b,%b,%b",alm[0],alm[1],alm[2],alm[3],alm[4]);
|
| | | m_FBS_VCData.m_SysState.last_dev_61850alam = m_FBS_VCData.m_SysState.dev_61850alam; // 记录上一次告警状态
|
| | | m_FBS_VCData.m_SysState.dev_61850alam = sb;
|
| | |
|
| | |
| | | logger.printf(Level.TRACE, "m_ServerModel.getDataSet(%s/LLN0.dsDevState )", FBSDeviceName);
|
| | | //-------------------------------------------------------------------------------------//
|
| | | comm_res = true;
|
| | | DataSet ds = m_ServerModel.getDataSet(FBSDeviceName + "/LLN0.dsDevState");
|
| | | DataSet ds = m_ServerModel.getDataSet(FBSDeviceName + "/LLN0.dsDevState").copy();
|
| | | if(null == ds) {
|
| | | //兼容老版本协转数据
|
| | | ds = m_ServerModel.getDataSet(FBSDeviceName + "/LLN0.dsBtseYc"); |
| | | }
|
| | | if(null == ds) {
|
| | | return false;
|
| | | }
|
| | | int size_cnt = ds.getMembers().size();
|
| | | //System.out.println(FBSDeviceName + "/LLN0.dsDevState 节点数:"+size_cnt);
|
| | | m_Association.getDataSetValues(ds);
|
| | | // 屏蔽当前根节点下新添加的ukey内容
|
| | | for (int n = 0; n < size_cnt && n < 120; n++) {
|
| | | for (int n = 0; n < size_cnt; n++) {
|
| | | if(null == ds.getMembers().get(n).getChild("mag") || null == ds.getMembers().get(n).getChild("mag").getChild("f")) {
|
| | | //System.err.println(ds.getMembers().get(n).getChild("mag").toString1());
|
| | | continue;
|
| | |
| | | FcModelNode fc_mode = (FcModelNode) ds.getMembers().get(n).getChild("mag").getChild("f");
|
| | | BasicDataBind<?> data = new Float32DataBind((BdaFloat32) fc_mode);
|
| | | //JTextField tf_t = (JTextField) data.getValueField();
|
| | | //System.out.println("n:"+n+" "+fc_mode.toString1());
|
| | | //System.out.println("n:"+n+" "+fc_mode.toString1()+"==="+((BdaFloat32) fc_mode).getFloat().intValue());
|
| | | String fc_mode_str = fc_mode.toString1();
|
| | | if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.StaNum.mag.f")){
|
| | | int st = ((BdaFloat32) fc_mode).getFloat().intValue();
|
| | |
| | | //-------------------------------------------------------------------------------------//
|
| | | comm_res = true;
|
| | | } else if (FBS9100_ComBase.CMD_GetDischargeParm == cmd) {
|
| | | DataSet ds_pm = m_ServerModel.getDataSet(FBSDeviceName + "/LLN0.dsBtseYc");
|
| | | DataSet ds_pm = m_ServerModel.getDataSet(FBSDeviceName + "/LLN0.dsBtseYc").copy();
|
| | | if(null != ds_pm && null != ds_pm.getMembers()) {
|
| | | int size_cnt = ds_pm.getMembers().size();
|
| | | m_Association.getDataSetValues(ds_pm);
|
| | | //logger.printf(Level.DEBUG, "开始读取放电参数");
|
| | | // logger.printf(Level.DEBUG, "开始读取放电参数");
|
| | | for (int n = 0; n < size_cnt; n++) {
|
| | | if(null == ds_pm.getMembers().get(n).getChild("mag")) {
|
| | | continue;
|
| | |
| | | BasicDataBind<?> data = new Float32DataBind((BdaFloat32) fc_mode);
|
| | | JTextField tf_t = (JTextField) data.getValueField();
|
| | | String fc_model_str = fc_mode.toString1();
|
| | | System.out.println(fc_model_str+"==:"+tf_t.getText());
|
| | | //logger.error(fc_model_str+"==:"+tf_t.getText());
|
| | | if (fc_model_str.contains(FBSDeviceName + "/ncdGGIO1.TestCurr.mag.f")) {
|
| | | m_FBS_DiscParamFromDev.DisCurr = Float.parseFloat(tf_t.getText());
|
| | | //m_FBS_DiscParamFromDev.DisCurr = readFloatNodeData(FBSDeviceName + "/ncdGGIO1.TestCurr.mag.f", Fc.MX);
|
| | | ///*/*兼容点集中的组2参数为组1*/*/}else if (fc_model_str.contains(ZJDYCPSS + "/cheGGIO1.HiTestTmhour.mag.f")) {
|
| | | }else if (fc_model_str.contains("/cheGGIO1.HiTestTmhour.mag.f")) {
|
| | | float dis_hour_t = Float.parseFloat(tf_t.getText());
|
| | | dis_hour_t = dis_hour_t * 60;
|
| | | m_FBS_DiscParamFromDev.DisTime = (int) dis_hour_t;
|
| | | //m_FBS_DiscParamFromDev.DisTime = (int)(readFloatNodeData(ZJDYCPSS + "/cheGGIO1.HiTestTmhour.mag.f", Fc.MX)*60);
|
| | | }else if (fc_model_str.contains("/cheGGIO2.HiTestTmhour.mag.f")) {
|
| | | float dis_hour_t = Float.parseFloat(tf_t.getText());
|
| | | dis_hour_t = dis_hour_t * 60;
|
| | | m_FBS_DiscParamFromDev.DisTime = (int) dis_hour_t;
|
| | |
| | | }else if (fc_model_str.contains("/cheGGIO1.LoBatVal.mag.f")) {
|
| | | m_FBS_DiscParamFromDev.GroupVol_LOW = Float.parseFloat(tf_t.getText());
|
| | | //m_FBS_DiscParamFromDev.GroupVol_LOW = readFloatNodeData(ZJDYCPSS + "/cheGGIO1.LoBatVal.mag.f", Fc.MX);
|
| | | }else if (fc_model_str.contains("/cheGGIO2.LoBatVal.mag.f")) {
|
| | | m_FBS_DiscParamFromDev.GroupVol_LOW = Float.parseFloat(tf_t.getText());
|
| | | //m_FBS_DiscParamFromDev.GroupVol_LOW = readFloatNodeData(ZJDYCPSS + "/cheGGIO1.LoBatVal.mag.f", Fc.MX);
|
| | | }else if (fc_model_str.contains(FBSDeviceName + "/ncdGGIO1.LoCelVol.mag.f")) {
|
| | | m_FBS_DiscParamFromDev.MonomerVol_LOW = Float.parseFloat(tf_t.getText());
|
| | | //m_FBS_DiscParamFromDev.MonomerVol_LOW= readFloatNodeData(FBSDeviceName + "/ncdGGIO1.LoCelVol.mag.f", Fc.MX);
|
| | |
| | | m_FBS_DiscParamFromDev.ChargeCurrSet = Float.parseFloat(tf_t.getText());
|
| | | //m_FBS_DiscParamFromDev.ChargeCurrSet = readFloatNodeData(FBSDeviceName + "/ncdGGIO1.ChargeCurr.mag.f", Fc.MX);
|
| | | }else {
|
| | | System.out.println(fc_model_str);
|
| | | //System.out.println(fc_model_str);
|
| | | }
|
| | | }
|
| | | if(FBSDeviceName.contains("BTSE2")) {
|
| | | //测试时长[第二套]
|
| | | m_FBS_DiscParamFromDev.DisTime = (int)(readFloatNodeData(ZJDYCPSS + "/cheGGIO2.HiTestTmhour.mag.f", Fc.MX)*60);
|
| | | //组端下限
|
| | | m_FBS_DiscParamFromDev.GroupVol_LOW = readFloatNodeData(ZJDYCPSS + "/cheGGIO2.LoBatVal.mag.f", Fc.MX);
|
| | | }else{
|
| | | //测试时长[第一套]
|
| | | m_FBS_DiscParamFromDev.DisTime = (int)(readFloatNodeData(ZJDYCPSS + "/cheGGIO1.HiTestTmhour.mag.f", Fc.MX)*60);
|
| | | //组端下限
|
| | | m_FBS_DiscParamFromDev.GroupVol_LOW = readFloatNodeData(ZJDYCPSS + "/cheGGIO1.LoBatVal.mag.f", Fc.MX);
|
| | | }
|
| | | |
| | | ds_pm = null;
|
| | | }else {
|
| | | |
| | | m_FBS_DiscParamFromDev.DisCurr = readFloatNodeData(FBSDeviceName + "/ncdGGIO1.TestCurr.mag.f", Fc.MX);
|
| | | //m_FBS_DiscParamFromDev.DisTime = (int)(readFloatNodeData(ZJDYCPSS + "/cheGGIO1.HiTestTmhour.mag.f", Fc.MX)*60);
|
| | | m_FBS_DiscParamFromDev.DisTime = (int)(readFloatNodeData(FBSDeviceName + "/cheGGIO1.HiTestTmhour.mag.f", Fc.MX)*60);
|
| | | m_FBS_DiscParamFromDev.DisTime = (int)(readFloatNodeData(ZJDYCPSS + "/cheGGIO1.HiTestTmhour.mag.f", Fc.MX)*60);
|
| | | m_FBS_DiscParamFromDev.DisCap = readFloatNodeData(FBSDeviceName + "/ncdGGIO1.HiTestBatAh.mag.f", Fc.MX);
|
| | | m_FBS_DiscParamFromDev.MonomerTmp_High = readFloatNodeData(FBSDeviceName + "/ncdGGIO1.HiCelTemp.mag.f", Fc.MX);
|
| | | m_FBS_DiscParamFromDev.GroupVol_LOW = readFloatNodeData(FBSDeviceName + "/cheGGIO1.LoBatVal.mag.f", Fc.MX);
|
| | | // m_FBS_DiscParamFromDev.GroupVol_LOW = readFloatNodeData(ZJDYCPSS + "/cheGGIO1.LoBatVal.mag.f", Fc.MX);
|
| | | m_FBS_DiscParamFromDev.GroupVol_LOW = readFloatNodeData(ZJDYCPSS + "/cheGGIO1.LoBatVal.mag.f", Fc.MX);
|
| | | m_FBS_DiscParamFromDev.MonomerVol_LOW= readFloatNodeData(FBSDeviceName + "/ncdGGIO1.LoCelVol.mag.f", Fc.MX);
|
| | | m_FBS_DiscParamFromDev.DCVolHighLimit = readFloatNodeData(FBSDeviceName + "/ncdGGIO1.DCVolLimit.mag.f", Fc.MX);
|
| | | m_FBS_DiscParamFromDev.ChargeCurrSet = readFloatNodeData(FBSDeviceName + "/ncdGGIO1.ChargeCurr.mag.f", Fc.MX);
|
| | |
| | | } else if (m_FBS_VCData.m_SysState.WorkState == 5) {
|
| | | count = 8;
|
| | | }
|
| | | //comm_res = checkMakeSuccess(count);
|
| | | comm_res = checkMakeSuccess(count);
|
| | | //---------------------------------Log Level.WARN-------------------------------------//
|
| | | logger.printf(Level.WARN, "DevIp:%s operate FBS9100_ComBase.CMD_Stop, res:%b", FBSDeviceIp, comm_res);
|
| | | //-------------------------------------------------------------------------------------//
|
| | |
| | |
|
| | |
|
| | | System.out.println(ce.getUKEYRootDomStr("ZJDYBTSE2"));
|
| | | |
| | | boolean[] a = new boolean[] {false,true,false};
|
| | | String format1 = String.format("%b,%b,%b",a[0],a[1],a[2] );
|
| | | System.out.println(format1);
|
| | | |
| | | String ZJDYCPSS = "";
|
| | | String FBSDeviceName = "ZJDYBTSE2";
|
| | | if(FBSDeviceName.indexOf("BTSE2")>0) {
|
| | | //适配各个不同协议名称的61850设备通信[读取放电参数时用到]
|
| | | ZJDYCPSS = FBSDeviceName.replace("BTSE2", "CPSS");
|
| | | }else if(FBSDeviceName.indexOf("BTSE")>0) {
|
| | | //适配各个不同协议名称的61850设备通信[读取放电参数时用到]
|
| | | ZJDYCPSS = FBSDeviceName.replace("BTSE", "CPSS");
|
| | | }
|
| | | System.out.println(ZJDYCPSS);
|
| | | }
|
| | |
|
| | | /*********************************************************************************************/
|