Exemplo n.º 1
0
 public void Stop()
 {
     if (l_server != null)
     {
         l_server.Dispose();
     }
 }
Exemplo n.º 2
0
 /// <summary>
 /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
 /// </summary>
 public void Dispose()
 {
     if (_server != null)
     {
         _server.Dispose();
     }
     GC.SuppressFinalize(this);
 }
Exemplo n.º 3
0
        public override void Dispose()
        {
            if (!ServiceManager.DesignMode)
            {
                //WriteXml();

                if (_opcDaServer != null && _opcDaServer.IsConnected)
                {
                    _opcDaServer.Disconnect();
                    _opcDaServer.Dispose();
                }
            }
        }
Exemplo n.º 4
0
        private Connection CreateConnection(string serverUrl)
        {
            ServiceManager.LogMessage("Connecting to {0}...", serverUrl);
            URL url = new URL(serverUrl);

            Opc.Da.Server server = null;
            try
            {
                server = new Opc.Da.Server(new OpcCom.Factory(), url);
                Stopwatch stopwatch = new Stopwatch();
                stopwatch.Start();
                try
                {
                    server.Connect();
                    Opc.Da.ServerStatus serverStatus = server.GetStatus();
                    if (serverStatus.ServerState != Opc.Da.serverState.running)
                    {
                        throw new Exception(String.Format("Bad server state ({0})", serverStatus.ServerState));
                    }
                    Connection connection = new Connection(serverUrl, server);
                    server = null;
                    stopwatch.Stop();
                    ServiceManager.LogMessage("Successful created new connection {0}: {1} ({2} ms)",
                                              connection.GetUID(), serverUrl, stopwatch.ElapsedMilliseconds);
                    Counter counter = counters[serverUrl];
                    Interlocked.Increment(ref counter.numConnections);
                    return(connection);
                }
                catch (Exception ex)
                {
                    stopwatch.Stop();
                    ServiceManager.LogMessage("Failed create new connection to {0}: {1} ({2} ms)",
                                              serverUrl, ex.Message, stopwatch.ElapsedMilliseconds);
                    throw new FaultException(ex.Message, new FaultCode("E_FAIL"));
                }
            }
            finally
            {
                if (server != null)
                {
                    if (server.IsConnected)
                    {
                        server.Disconnect();
                    }
                    server.Dispose();
                }
            }
        }
Exemplo n.º 5
0
 protected override void OnControlStopRunTime()
 {
     if (_status)
     {
         _server.Disconnect();
         _server.Dispose();
     }
     _status = false;
     _connectionWorker.CancelAsync();
     _repConnectionWorker.CancelAsync();
     _timer1.Stop();
     _timer1.Dispose();
     _timer2.Stop();
     _timer2.Dispose();
     Trends.Visible = false;
     //Toolbar.Visible = false;
     DisplayPanel.Visible = false;
     //DeleteColumnsDgPla();
     _dictionary.Clear();
 }
Exemplo n.º 6
0
        public string[] GetDataType(List <OPCChannelInfo> Subscribed)
        {
            string serverName = txtOPCServer.Text;
            string hostName   = txtOPCServerPath.Text;

            _server = new Server(fact, null)
            {
                Url = new URL(hostName + "/" +
                              serverName)
            };
            _server.Connect();

            SubscribedCollection = new List <string>();

            for (int i = 0; i < Subscribed.Count; i++)
            {
                SubscribedCollection.Add(Subscribed[i].channel);
            }

            if (SubscriptionOPC == null)
            {
                SubscriptionState.Name = "SubscribedGroup";

                SubscriptionOPC = (Subscription)_server.CreateSubscription(SubscriptionState);
            }
            SubscribedItems = new Item[SubscribedCollection.Count];



            for (int i = 0; i < SubscribedCollection.Count; i++)
            {
                SubscribedItems[i] = new Item
                {
                    ItemName     = SubscribedCollection[i],
                    SamplingRate = 200,
                    Active       = true,
                    ClientHandle = i
                };
            }
            ItemResult = SubscriptionOPC.AddItems(SubscribedItems);

            ItemValue[] values = _server.Read(SubscribedItems);

            int ArraySize = values.Length;

            if (values[0].Value is Array)
            {
                ArraySize = ((Array)values[0].Value).Length - 1;
            }

            string[] ReturnValues = new string[ArraySize];
            for (int i = 0; i < values.Length; i++)
            {
                if (values[i].Value is string)
                {
                    ReturnValues[i] = "String";
                }

                if (values[i].Value is bool)
                {
                    ReturnValues[i] = "Bit";
                }
                else if (values[i].Value is byte)
                {
                    ReturnValues[i] = "Byte";
                }
                else if (values[i].Value is float)
                {
                    ReturnValues[i] = "Float";
                }
                else if (values[i].Value is char)
                {
                    ReturnValues[i] = "char";
                }
                else if (values[i].Value is short)
                {
                    ReturnValues[i] = "Short";
                }
                else if (values[i].Value is int)
                {
                    ReturnValues[i] = "Int";
                }
                else if (values[i].Value is double)
                {
                    ReturnValues[i] = "Double";
                }
                else if (values[i].Value is Array)
                {
                    ReturnValues[i] = "Array";
                }
                else if (values[i].Value is uint)
                {
                    ReturnValues[i] = "UInt";
                }
                else if (values[i].Value is ushort)
                {
                    ReturnValues[i] = "UShort";
                }
                //else
                //{
                //    ReturnValues[i] = "null";
                //}
            }

            if (_server != null)
            {
                if (_server.IsConnected)
                {
                    try
                    {
                        _server.Disconnect();
                    }
                    catch
                    {
                    }
                }

                _server.Dispose();
            }
            return(ReturnValues);
        }