| | |
| | | import org.openmuc.openiec61850.clientgui.databind.Int64DataBind;
|
| | | import org.openmuc.openiec61850.clientgui.databind.VisibleStringDataBind;
|
| | |
|
| | | import com.base.AppConfig;
|
| | | import com.base.Com;
|
| | | import com.battdata_rt.BattData_RT;
|
| | | import com.battdata_rt.BattData_RT_Array;
|
| | |
| | |
|
| | | /****************************************************************************************************/
|
| | | public class BTS_61850_SocketClient extends Thread {
|
| | | public static final int Sign_Type_Default = 0;
|
| | | public static final int Sign_Type_InTow = 1; //正常1托2
|
| | | |
| | | private boolean m_App_IsAlive = true;
|
| | | private FBS9100_VCData m_FBS_VCData = null;
|
| | | private FBS9100_ParamDischarge m_FBS_DiscParam = null;
|
| | |
| | | m_ClientSap = new ClientSap();
|
| | | m_Association = m_ClientSap.associate(InetAddress.getByName(FBSDeviceIp), 102, null, null);
|
| | |
|
| | | if(!FBSDeviceName.contains(m_ServerModel.getBaseDevName())) {
|
| | | //与预加载的模型文件不一致时
|
| | | m_ServerModel = m_Association.retrieveModel();
|
| | | }
|
| | | //System.err.println("Dev_BASE:"+m_ServerModel.getBaseDevName());;
|
| | | |
| | | |
| | | // if(!FBSDeviceName.contains(m_ServerModel.getBaseDevName())) {
|
| | | // System.err.println("SSSSSSSSSSS");
|
| | | // //与预加载的模型文件不一致时
|
| | | // m_ServerModel = m_Association.retrieveModel();
|
| | | // }
|
| | | System.err.println("Dev_BASE:"+m_ServerModel.getBaseDevName());;
|
| | |
|
| | |
|
| | | } catch (Exception e) {
|
| | |
| | | if(0 == (numberDevState%3)) {
|
| | | System.out.println();
|
| | | //---------------------------------Log Level.TRACE-------------------------------------//
|
| | | logger.printf(Level.TRACE, "m_ServerModel.getDataSet(%s/LLN0.dsMeasure)", FBSDeviceName);
|
| | | logger.printf(Level.TRACE, "m_ServerModel.getDataSet(%s/LLN0.dsBtseYc)", FBSDeviceName);
|
| | | //-------------------------------------------------------------------------------------//
|
| | | //-------------------------------------------------------------------------------------//
|
| | | DataSet ds = m_ServerModel.getDataSet(FBSDeviceName + "/LLN0.dsMeasure").copy();
|
| | | ///-------------------------------------------------------------------------------------//
|
| | | DataSet ds = m_ServerModel.getDataSet(FBSDeviceName + "/LLN0.dsBtseYc").copy();
|
| | | int size_cnt = ds.getMembers().size();
|
| | | m_Association.getDataSetValues(ds);
|
| | | int m = 0;
|
| | |
| | | fbs9100_jhpowerState.setDev_temp(((BdaFloat32) fc_mode).getFloat() - 10);
|
| | | //fbs9100_jhpowerState.setDev_temp(readFloatNodeData(FBSDeviceName + "/btgGGIO1.AnIn27.mag.f", Fc.MX)); //均衡模块温度
|
| | | }
|
| | | |
| | | if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn28.mag.f")) {
|
| | | //南瑞当前点位值为float格式
|
| | | m_FBS_VCData.m_SysState.AlarmState = Math.round(((BdaFloat32)fc_mode).getFloat());
|
| | | //m_FBS_VCData.m_SysState.AlarmState = (int)readInt64NodeData(FBSDeviceName + "/btgGGIO1.AnIn28.mag.i",Fc.MX); |
| | | }
|
| | | else if(fc_model_str.contains(FBSDeviceName + "/celGGIO1.AnIn")) {
|
| | | if(isStartReadMonData) {
|
| | | m = n;
|
| | |
| | | //System.err.println(m_FBS_VCData.m_SysState.ErrCommCount);
|
| | | if(1 == (numberDevState%3)) {
|
| | | //---------------------------------Log Level.TRACE-------------------------------------//
|
| | | logger.printf(Level.TRACE, "m_ServerModel.getDataSet(%s/LLN0.dsDevAlarm)", FBSDeviceName);
|
| | | logger.printf(Level.TRACE, "m_ServerModel.getDataSet(%s/LLN0.dsBtseYx)", FBSDeviceName);
|
| | | //-------------------------------------------------------------------------------------//
|
| | | String c[] = null;
|
| | | DataSet ds_stat = m_ServerModel.getDataSet(FBSDeviceName + "/LLN0.dsDevAlarm");
|
| | | DataSet ds_stat = m_ServerModel.getDataSet(FBSDeviceName + "/LLN0.dsBtseYx");
|
| | | int size_cnt_stat = ds_stat.getMembers().size();
|
| | | c = new String[size_cnt_stat];
|
| | | String[] split = null;
|
| | |
| | | } 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);
|
| | | //-------------------------------------------------------------------------------------//
|
| | | } else if (FBS9100_ComBase.CMD_StartDischarge == cmd) {
|
| | | if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.SPCSO1")) return false;
|
| | | comm_res = BTS_IEC61850_Write_CO_Node(FBSDeviceName + "/ncdGGIO1.SPCSO1.Oper", true);
|
| | | comm_res = checkMakeSuccess(0);
|
| | | //comm_res = checkMakeSuccess(0);
|
| | | //---------------------------------Log Level.WARN-------------------------------------//
|
| | | logger.printf(Level.WARN, "DevIp:%s DevId:%d operate FBS9100_ComBase.CMD_StartDischarge, res:%b", FBSDeviceIp,m_FBSDevId, comm_res);
|
| | | //-------------------------------------------------------------------------------------//
|
| | | } else if (FBS9100_ComBase.CMD_StartResDischarge == cmd) {
|
| | | if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.SPCSO2")) return false;
|
| | | comm_res = BTS_IEC61850_Write_CO_Node(FBSDeviceName + "/ncdGGIO1.SPCSO2.Oper", true);
|
| | | comm_res = checkMakeSuccess(2);
|
| | | //comm_res = checkMakeSuccess(2);
|
| | | //---------------------------------Log Level.WARN-------------------------------------//
|
| | | logger.printf(Level.WARN, "DevIp:%s operate FBS9100_ComBase.CMD_StartResDischarge, res:%b", FBSDeviceIp, comm_res);
|
| | | //-------------------------------------------------------------------------------------//
|
| | | } else if (FBS9100_ComBase.CMD_StartKIDI == cmd) {
|
| | | if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.SPCSO3")) return false;
|
| | | comm_res = BTS_IEC61850_Write_CO_Node(FBSDeviceName + "/ncdGGIO1.SPCSO3.Oper", true);
|
| | | comm_res = checkMakeSuccess(1);
|
| | | //comm_res = checkMakeSuccess(1);
|
| | | //---------------------------------Log Level.WARN-------------------------------------//
|
| | | logger.printf(Level.WARN, "DevIp:%s operate FBS9100_ComBase.CMD_StartKIDI, res:%b", FBSDeviceIp, comm_res);
|
| | | //-------------------------------------------------------------------------------------//
|
| | |
| | | comm_res = BTS_IEC61850_Write_CO_Node(FBSDeviceName + "/ncdGGIO1.SPCSO9.Oper", true); // 模块41除硫
|
| | | }break;
|
| | | }
|
| | | comm_res = checkMakeSuccess(3);
|
| | | //comm_res = checkMakeSuccess(3);
|
| | | //---------------------------------Log Level.WARN-------------------------------------//
|
| | | logger.printf(Level.WARN, "DevIp:%s operate FBS9100_ComBase.CMD_Start_FODCL_test, "
|
| | | + "battgroup_num:%d, res:%b", FBSDeviceIp, m_StatAndParam.clParam.GroupNum, comm_res);
|
| | |
| | | comm_res = BTS_IEC61850_Write_CO_Node(FBSDeviceName + "/ncdGGIO1.SPCSO13.Oper", false);
|
| | | }break;
|
| | | }
|
| | | comm_res = checkMakeSuccess(9);
|
| | | //comm_res = checkMakeSuccess(9);
|
| | | //---------------------------------Log Level.WARN-------------------------------------//
|
| | | logger.printf(Level.WARN, "DevIp:%s operate FBS9100_ComBase.CMD_Stop_FOD_test, "
|
| | | + "battgroup_num:%d, res:%b", FBSDeviceIp, m_StatAndParam.clParam.GroupNum, comm_res);
|
| | |
| | | comm_res = BTS_IEC61850_Write_CO_Node(FBSDeviceName + "/ncdGGIO1.SPCSO13.Oper", true);
|
| | | }break;
|
| | | }
|
| | | comm_res = checkMakeSuccess(4);
|
| | | //comm_res = checkMakeSuccess(4);
|
| | | //---------------------------------Log Level.WARN-------------------------------------//
|
| | | logger.printf(Level.WARN, "DevIp:%s operate FBS9100_ComBase.CMD_Start_FODYH_test, "
|
| | | + "battgroup_num:%d, res:%b", FBSDeviceIp, m_StatAndParam.clParam.GroupNum, comm_res);
|
| | |
| | | } else if (FBS9100_ComBase.CMD_StartOffLineYH == cmd) {
|
| | | if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.SPCSO14")) return false;
|
| | | comm_res = BTS_IEC61850_Write_CO_Node(FBSDeviceName + "/ncdGGIO1.SPCSO14.Oper", true);
|
| | | comm_res = checkMakeSuccess(5);
|
| | | //comm_res = checkMakeSuccess(5);
|
| | | //---------------------------------Log Level.WARN-------------------------------------//
|
| | | logger.printf(Level.WARN, "DevIp:%s operate FBS9100_ComBase.CMD_StartOffLineYH, res:%b", FBSDeviceIp, comm_res);
|
| | | //------------------------------------------------------------------------------------//
|
| | | } else if (FBS9100_ComBase.CMD_StopOffLineYH == cmd) {
|
| | | if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.SPCSO14")) return false;
|
| | | comm_res = BTS_IEC61850_Write_CO_Node(FBSDeviceName + "/ncdGGIO1.SPCSO14.Oper", false);
|
| | | comm_res = checkMakeSuccess(10);
|
| | | //comm_res = checkMakeSuccess(10);
|
| | | //---------------------------------Log Level.WARN-------------------------------------//
|
| | | logger.printf(Level.WARN, "DevIp:%s operate FBS9100_ComBase.CMD_StopOffLineYH, res:%b", FBSDeviceIp, comm_res);
|
| | | //------------------------------------------------------------------------------------//
|
| | |
| | | }
|
| | | int okcount = 0;
|
| | | for (int i = 0; i < 85; i++) {
|
| | | //南瑞中间协转无当前点位注释调用
|
| | | //System.out.println("验签校验返回signOpRes:" + readInt64NodeData(FBSDeviceName + "/btgGGIO1.signOpRes.mag.i", Fc.MX));
|
| | | int value = (int) (readInt64NodeData(FBSDeviceName + "/ncdGGIO1.AnIn119.mag.i", Fc.MX));
|
| | | if ((value & MyUtil.power(2, count)) == MyUtil.power(2, count)) {
|
| | |
| | | logger.info("写入签名:"+signature);
|
| | | writeNodeDataString(FBSDeviceName+"/btgGGIO1.sign.setVal", "SP",signature);
|
| | | //writeNodeDataString(FBSDeviceName+"/ncdGGIO1.sign.setVal", "SP",signature);
|
| | | Thread.sleep(900);
|
| | | Thread.sleep(1500);
|
| | | return true;
|
| | | }
|
| | | //writeNodeDataString(FBSDeviceName+"/ncdGGIO1.sign.setVal", "SP",m_StatAndParam.publicKeyY);
|
| | |
| | | * @param agree
|
| | | * @return
|
| | | */
|
| | | public static String getUKEYRootDomStr(String agree) { |
| | | public String getUKEYRootDomStr(String agree) { |
| | | String str1=agree.substring(0, agree.indexOf("BTSE"));
|
| | | /**
|
| | | * @lijun 兼容佛山三期版本,签名中的BTSE路径一拖一和一拖二均为BTSE
|
| | |
| | | // if(str1.length() > 0) {
|
| | | // return "BTSE";
|
| | | // }
|
| | | return agree.substring(str1.length(), agree.length());
|
| | | |
| | | //兼容正常1托2
|
| | | if((null != m_RTData[0]) && (m_RTData[0].sign_type == Sign_Type_InTow)) { |
| | | return agree.substring(str1.length(), agree.length());
|
| | | }else {
|
| | | return "BTSE";
|
| | | }
|
| | | |
| | | }
|
| | |
|
| | | public static void main(String[] args) {
|
| | | System.out.println(getUKEYRootDomStr("ZJDYBTSE2"));
|
| | | //System.out.println(getUKEYRootDomStr("ZJDYBTSE2"));
|
| | | String btsid = "1234567890BTSE/ncdGGIO1.SPCSO2";
|
| | | String keyid = "37395256AD72043037395256AD720430";
|
| | | |
| | | System.out.println(createSignature(btsid, keyid));
|
| | | |
| | | |
| | | MysqlConnPool pool = new MysqlConnPool("127.0.0.1", 3360, 10);
|
| | | BTS_61850_SocketClient ce = new BTS_61850_SocketClient(pool, new FBS9100_StatAndParam("127.0.01", 618500001), new BattData_RT_Array(new AppConfig(), new AppParam(), pool) , null);
|
| | | ce.m_RTData[0] = new BattData_RT(new AppConfig(), new AppParam(), pool);
|
| | | ce.m_RTData[0].sign_type = 0;
|
| | | |
| | | |
| | | System.out.println(ce.getUKEYRootDomStr("ZJDYBTSE2"));
|
| | | }
|
| | |
|
| | | /*********************************************************************************************/
|