示例#1
0
        /// <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);
        }
示例#2
0
        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;
        }
示例#3
0
 /// <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);
     }
 }
示例#4
0
        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();
        }