/// <summary> /// OPC服务器连接成功事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void M_UaOpc_ConnectComplete(object sender, EventArgs e) { var msg = string.Format("Opc服务 > {0}", OpcStatus ? "[OnConnected]" : "[Disconnected]"); ServerStateDesc = msg; ConnectCompleteHandle?.Invoke(this); }
public void Start(int opaque, TCPObjectErrorHandle errorCallback, ReadCompleteHandle readCallback, ConnectCompleteHandle connectCallback) { TCPSynchronizeContext.GetInstance(); m_onErrorHandle = errorCallback; m_onReadCompleteHandle = readCallback; m_onConnectCompleteHandle = connectCallback; m_opaque = opaque; }
/// <summary> /// 连接OPCServer服务 /// 1、初始化daOpcItems集合 /// 2、创建浏览器对象 /// 3、OPCServer信息获取 /// </summary> /// <param name="ServerName"></param> /// <returns></returns> public async Task <bool> Connect() { try { if (Address.DaAddress.ServerName == "" || Address.DaAddress.ServerName is null) { return(false); } //尝试连接OPC服务 lock (syncLock) { if (opc_connected) { throw new Exception("opc已经连接,请误重复连接"); } KepServer.Connect(Address.DaAddress.ServerName, Address.DaAddress.Ip); if (KepServer.ServerState == (int)OPCServerState.OPCRunning) { oPCBrowser = KepServer.CreateBrowser(); this.ServerStateDesc = "已连接到-" + KepServer.ServerName + " "; this.ServerName = KepServer.ServerName; this.ServerStartTime = KepServer.StartTime.ToString() + " "; this.ServerVersion = KepServer.MajorVersion.ToString() + "." + KepServer.MinorVersion.ToString() + "." + KepServer.BuildNumber.ToString() + " "; opc_connected = true; ConnectCompleteHandle?.Invoke(this); return(true); } else { opc_connected = false; //这里你可以根据返回的状态来自定义显示信息,请查看自动化接口API文档 this.ServerStateDesc = "状态:连接失败"; this.ServerStartTime = DateTime.Now.ToString(); this.ServerVersion = "0.0.0"; ServerName = "Error"; return(false); } } } catch (Exception ex) { //保存连接状态 opc_connected = false; //这里你可以根据返回的状态来自定义显示信息,请查看自动化接口API文档 var test = "状态:" + KepServer.ServerState.ToString() + " "; this.ServerStateDesc = string.Format("无法连接-连接状态{0}", KepServer.ServerState.ToString()); this.ServerStartTime = DateTime.Now.ToString(); this.ServerVersion = "0.0.0"; ServerName = "Error"; return(false); } }
public void StartAsClient(Socket socket, int opaque, long sessionId, BufferPool bufferPool, IPEndPoint remoteEndPoint, SessionErrorHandle errorCallback, ReadCompleteHandle readCallback, ConnectCompleteHandle connectCallback, UserToken userToken) { Init(socket, opaque, sessionId, bufferPool, errorCallback, readCallback, userToken); m_type = SessionType.Client; m_remoteEndPoint = remoteEndPoint; m_onConnectCompleteHandle = connectCallback; m_errorText = remoteEndPoint.ToString(); BeginConnect(); }