public bool Start()
        {
            Log.Information("Proficy Historian Gateway starting up...");
            try
            {
                Log.Information($"Proficy Historian Gateway connecting to {config.ServerName} ...");
                historian = new ServerConnection(new ConnectionProperties {
                    ServerHostName = config.ServerName, Username = config.UserName, Password = config.Password, ServerCertificateValidationMode = CertificateValidationMode.None
                });
                historian.Connect();
                historian.DataChangedEvent += new DataChangedHandler(Historian_DataChangedEvent);
                if (config.SubscribeMessage != null)
                {
                    var configEvent = new ConfigurationEvent();
                    configEvent.SubscribeMessage = config.SubscribeMessage;
                    Handle(configEvent);
                }
                Log.Information("Proficy Historian client started...");
            }
            catch (Exception ex)
            {
                Log.Error("Proficy Historian client - Error while initializing: " + ex.Message);
                return(false);
            }

            return(true);
        }
示例#2
0
 public void Handle(ConfigurationEvent configurationEvent)
 {
     try
     {
         if (configurationEvent != null)
         {
             if (configurationEvent.SubscribeMessage != null)
             {
                 foreach (var tag in configurationEvent.SubscribeMessage.Tags)
                 {
                     tags.Add(tag.TagName);
                     Log.Information("Proficy Historian Gateway - subscribing to " + tag.TagName);
                 }
             }
             if (configurationEvent.UnsubscribeMessage != null)
             {
                 foreach (var tagname in configurationEvent.UnsubscribeMessage.Tagnames)
                 {
                     if (tags.Contains(tagname))
                     {
                         tags.Remove(tagname);
                         Log.Information("Proficy Historian Gateway - unsubscribing to " + tagname);
                     }
                 }
             }
         }
     }
     catch (Exception exc)
     {
         Log.Error(exc, "Error recieving Historian maessage");
     }
 }
示例#3
0
 public void InvokeRaise(ConfigurationEvent configurationEvent, string message, string extraInfo)
 {
     m_pendingResults.Add(new Result(configurationEvent, message, extraInfo));
     if (m_canInvoke)
     {
         Invoke(new MethodInvoker(Raise));
     }
 }
示例#4
0
 public void InvokeRaise(ConfigurationEvent configurationEvent, string message, System.Exception e)
 {
     if (!m_complete)
     {
         m_pendingResults.Add(new Result(configurationEvent, message, e));
         if (m_canInvoke)
         {
             Invoke(new MethodInvoker(Raise));
         }
     }
 }
        public void Should_not_throw_if_event_listener_throws()
        {
            // Arrange
            var @event = new ConfigurationEvent(Guid.NewGuid(), "Message");
            Action <ISecurityEvent> eventListener = e =>
            {
                throw new Exception("Exception message");
            };
            var listener = new AnonymousSecurityEventListener(eventListener);

            // Act & assert
            Assert.DoesNotThrow(() => listener.Handle(@event));
        }
        protected void Raise(ConfigurationEvent configurationEvent)
        {
            switch (configurationEvent)
            {
            case ConfigurationEvent.Information:
                ++m_informations;
                break;

            case ConfigurationEvent.Error:
                ++m_errors;
                break;

            case ConfigurationEvent.Warning:
                ++m_warnings;
                break;
            }
        }
示例#7
0
        private void SerialPortDataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            _buffer += _serialPort.ReadExisting();

            if (_buffer.EndsWith("\r"))
            {
                var data = _buffer.TrimEnd('\r');

                if (data.StartsWith("$"))
                {
                    ConfigurationEvent?.Invoke(this, new ConfigurationEventArgs(_lastCommand, data));
                    _buffer = null;
                    return;
                }
                _buffer = null;

                switch (data)
                {
                case "S1":
                case "F1":
                    ButtonPressedAction(sender, Button.F1);
                    break;

                case "S2":
                case "F2":
                    ButtonPressedAction(sender, Button.F2);
                    break;

                case "Up":
                    ButtonPressedAction(sender, Button.Up);
                    break;

                case "Dwn":
                case "Down":
                    ButtonPressedAction(sender, Button.Down);
                    break;

                default:
                    ScanAction(sender, data);
                    break;
                }
            }
        }
        public void Handle(ConfigurationEvent configurationEvent)
        {
            if (configurationEvent != null)
            {
                if (configurationEvent.SubscribeMessage != null)
                {
                    foreach (var tag in configurationEvent.SubscribeMessage.Tags)
                    {
                        Log.Information("Proficy Historian Gateway - subscribing to " + tag.TagName);
                        try
                        {
                            historian.IData.Subscribe(new DataSubscriptionInfo
                            {
                                Tagname = tag.TagName,
                                MinimumElapsedMilliSeconds = tag.MinimumElapsedMilliSeconds.HasValue ? tag.MinimumElapsedMilliSeconds.Value : 0
                            });
                        }
                        catch (Exception exc)
                        {
                            Log.Information($"Could not subscribe to {tag.TagName}. {exc}");
                        }
                    }
                }

                if (configurationEvent.UnsubscribeMessage != null)
                {
                    foreach (var tagname in configurationEvent.UnsubscribeMessage.Tagnames)
                    {
                        Log.Information("Proficy Historian Gateway - unsubscribing to " + tagname);
                        try
                        {
                            historian.IData.Unsubscribe(tagname);
                        }
                        catch (Exception exc)
                        {
                            Log.Information($"Could not unsubscribe to {tagname}. {exc}");
                        }
                    }
                }
            }
        }
 protected override void Raise(ConfigurationEvent configurationEvent, string message, string extraInfo)
 {
     Console.WriteLine(message + " Info: " + extraInfo);
 }
示例#10
0
 public Result(ConfigurationEvent configurationEvent, string message, string extraInfo)
 {
     m_configurationEvent = configurationEvent;
     m_message            = message;
     m_extraInfo          = extraInfo;
 }
示例#11
0
 public void Raise(ConfigurationEvent configurationEvent, string message, string extraInfo)
 {
     m_form.InvokeRaise(configurationEvent, message, extraInfo);
 }
示例#12
0
 protected override void Raise(ConfigurationEvent configurationEvent, string message)
 {
 }
示例#13
0
 protected override void Raise(ConfigurationEvent configurationEvent, string message, System.Exception ex)
 {
 }
示例#14
0
 protected abstract void Raise(ConfigurationEvent configurationEvent, string message, string extraInfo);
示例#15
0
 public Result(ConfigurationEvent configurationEvent, string message)
 {
     m_configurationEvent = configurationEvent;
     m_message            = message;
 }
示例#16
0
 void IConfigurationEventSource.Raise(ConfigurationEvent configurationEvent, string message, string extraInfo)
 {
     Raise(configurationEvent);
     Raise(configurationEvent, message, extraInfo);
 }
示例#17
0
 protected abstract void Raise(ConfigurationEvent configurationEvent, string message, System.Exception ex);
示例#18
0
 public void Raise(ConfigurationEvent configurationEvent, string message, System.Exception ex)
 {
     m_form.InvokeRaise(configurationEvent, message, ex);
 }
示例#19
0
 void IConfigurationEventSource.Raise(ConfigurationEvent configurationEvent, string message, System.Exception ex)
 {
     Raise(configurationEvent);
     Raise(configurationEvent, message, ex);
 }
示例#20
0
 protected override void Raise(ConfigurationEvent configurationEvent, string message, System.Exception ex)
 {
     m_runner.Raise(configurationEvent, message, ex);
 }
示例#21
0
 protected override void Raise(ConfigurationEvent configurationEvent, string message, Exception ex)
 {
     Console.WriteLine(message + " Exception: " + ex.Message);
 }
示例#22
0
 protected override void Raise(ConfigurationEvent configurationEvent, string message)
 {
     Console.WriteLine(message);
 }
示例#23
0
 protected override void Raise(ConfigurationEvent configurationEvent, string message, string extraInfo)
 {
     m_runner.Raise(configurationEvent, message, extraInfo);
 }
示例#24
0
 public Result(ConfigurationEvent configurationEvent, string message, System.Exception e)
 {
     m_configurationEvent = configurationEvent;
     m_message            = message;
     m_exception          = e;
 }
示例#25
0
 void IConfigurationEventSource.Raise(ConfigurationEvent configurationEvent, string message)
 {
     Raise(configurationEvent);
     Raise(configurationEvent, message);
 }
示例#26
0
 public void Raise(ConfigurationEvent configurationEvent, string message)
 {
     m_form.InvokeRaise(configurationEvent, message);
 }