예제 #1
0
        /// <inheritdoc/>
        public void Connect()
        {
            Task.Run(() =>
            {
                while (true)
                {
                    try
                    {
                        var socket = new Socket(SocketType.Stream, ProtocolType.Tcp);
                        socket.Connect(IPAddress.Parse(_configuration.Ip), _configuration.Port);

                        using (var stream = new NetworkStream(socket, FileAccess.Read, true))
                        {
                            _parser.BeginParse(stream, channel =>
                            {
                                DataReceived(channel.Id.ToString(), channel.Value, Timestamp.UtcNow);
                            });
                        }
                    }
                    catch (Exception ex)
                    {
                        _logger.Error(ex, "Error while connecting to TCP stream");
                    }

                    Thread.Sleep(10000);
                }
            });
        }
예제 #2
0
        /// <inheritdoc/>
        public void Start()
        {
            Task.Run(() =>
            {
                while (true)
                {
                    try
                    {
                        var socket = new Socket(SocketType.Stream, ProtocolType.Tcp);
                        socket.Connect(IPAddress.Parse(_configuration.Ip), _configuration.Port);

                        using (var stream = new NetworkStream(socket, FileAccess.Read, true))
                        {
                            _parser.BeginParse(stream, channel =>
                            {
                                var dataPoint = new TagDataPoint <ChannelValue>
                                {
                                    ControlSystem = "Terasaki",
                                    Tag           = channel.Id.ToString(),
                                    Value         = channel.Value,
                                    Timestamp     = Timestamp.UtcNow
                                };
                                _subscribers.ForEach(subscriber => subscriber(channel));
                            });
                        }
                    }
                    catch (Exception ex)
                    {
                        _logger.Error(ex, "Error while connecting to TCP stream");
                    }

                    Thread.Sleep(10000);
                }
            });
        }