public PublisherForm( ServiceMessageContext context, ApplicationInstance application, PublisherForm masterForm, ApplicationConfiguration configuration) { InitializeComponent(); this.Icon = ClientUtils.GetAppIcon(); m_masterForm = masterForm; m_context = context; m_application = application; m_server = application.Server as Opc.Ua.Server.StandardServer; if (m_masterForm == null) { m_forms = new List <PublisherForm>(); } SessionsCTRL.Configuration = m_configuration = configuration; SessionsCTRL.MessageContext = context; // get list of cached endpoints. m_endpoints = m_configuration.LoadCachedEndpoints(true); m_endpoints.DiscoveryUrls = configuration.ClientConfiguration.WellKnownDiscoveryUrls; EndpointSelectorCTRL.Initialize(m_endpoints, m_configuration); // initialize control state. Disconnect(); m_publishers = AmqpConnectionCollection.Load(configuration); foreach (var publisher in m_publishers) { Task t = publisher.OpenAsync(); } this.NotificationsCTRL.ItemsAdded += NotificationsCTRL_ItemsAdded; }
public ClientPage( ServiceMessageContext context, ApplicationInstance application, ClientPage masterPage, ApplicationConfiguration configuration) { InitializeComponent(); if (!configuration.SecurityConfiguration.AutoAcceptUntrustedCertificates) { configuration.CertificateValidator.CertificateValidation += new CertificateValidationEventHandler(CertificateValidator_CertificateValidation); } m_masterPage = masterPage; m_context = context; m_application = application; m_server = application.Server as Opc.Ua.Server.StandardServer; if (m_masterPage == null) { m_pages = new List<ClientPage>(); } m_configuration = configuration; SessionsCTRL.Configuration = configuration; SessionsCTRL.MessageContext = context; SessionsCTRL.AddressSpaceCtrl = BrowseCTRL; SessionsCTRL.NodeSelected += SessionCtrl_NodeSelected; // get list of cached endpoints. m_endpoints = m_configuration.LoadCachedEndpoints(true); m_endpoints.DiscoveryUrls = configuration.ClientConfiguration.WellKnownDiscoveryUrls; // hook up endpoint selector EndpointSelectorCTRL.Initialize(m_endpoints, m_configuration); EndpointSelectorCTRL.ConnectEndpoint += EndpointSelectorCTRL_ConnectEndpoint; EndpointSelectorCTRL.EndpointsChanged += EndpointSelectorCTRL_OnChange; BrowseCTRL.SessionTreeCtrl = SessionsCTRL; BrowseCTRL.NodeSelected += BrowseCTRL_NodeSelected; // exception dialog GuiUtils.ExceptionMessageDlg += ExceptionMessageDlg; ServerUrlTB.Text = "None"; m_publishers = AmqpConnectionCollection.Load(configuration); foreach (var publisher in m_publishers) { Task t = publisher.OpenAsync(); } m_MonitoredItem_Notification = new MonitoredItemNotificationEventHandler(MonitoredItem_Notification); }
public PublisherForm( ServiceMessageContext context, ApplicationInstance application, PublisherForm masterForm, ApplicationConfiguration configuration) { InitializeComponent(); this.Icon = ClientUtils.GetAppIcon(); m_masterForm = masterForm; m_context = context; m_application = application; m_server = application.Server as Opc.Ua.Server.StandardServer; if (m_masterForm == null) { m_forms = new List<PublisherForm>(); } SessionsCTRL.Configuration = m_configuration = configuration; SessionsCTRL.MessageContext = context; // get list of cached endpoints. m_endpoints = m_configuration.LoadCachedEndpoints(true); m_endpoints.DiscoveryUrls = configuration.ClientConfiguration.WellKnownDiscoveryUrls; EndpointSelectorCTRL.Initialize(m_endpoints, m_configuration); // initialize control state. Disconnect(); m_publishers = AmqpConnectionCollection.Load(configuration); foreach (var publisher in m_publishers) { Task t = publisher.OpenAsync(); } this.NotificationsCTRL.ItemsAdded += NotificationsCTRL_ItemsAdded; }
public static void Main(string[] args) { ApplicationInstance.MessageDlg = new ApplicationMessageDlg(); ApplicationInstance application = new ApplicationInstance(); application.ApplicationName = "UA AMQP Publisher"; application.ApplicationType = ApplicationType.ClientAndServer; application.ConfigSectionName = "Opc.Ua.Publisher"; try { // load the application configuration. Task <ApplicationConfiguration> task = application.LoadApplicationConfiguration(false); task.Wait(); m_configuration = task.Result; // check the application certificate. Task <bool> task2 = application.CheckApplicationInstanceCertificate(false, 0); task2.Wait(); bool certOK = task2.Result; if (!certOK) { throw new Exception("Application instance certificate invalid!"); } // start the server. Task task3 = application.Start(new SampleServer()); task3.Wait(); // get list of cached endpoints. m_endpoints = m_configuration.LoadCachedEndpoints(true); m_endpoints.DiscoveryUrls = m_configuration.ClientConfiguration.WellKnownDiscoveryUrls; // start publishers. m_publishers = AmqpConnectionCollection.Load(m_configuration); foreach (AmqpConnection publisher in m_publishers) { Task t = publisher.OpenAsync(); } m_MonitoredItem_Notification = new MonitoredItemNotificationEventHandler(MonitoredItem_Notification); // connect to a server. EndpointConnect(); // publish preconfigured nodes PublishedNodesCollection nodes = PublishedNodesCollection.Load(m_configuration); foreach (NodeId node in nodes) { CreateMonitoredItem(node); } Console.WriteLine("Publisher started. Press any key to exit..."); Console.ReadKey(true); if (m_publishers != null) { foreach (var publisher in m_publishers) { publisher.Close(); } } if (m_session != null) { m_session.Close(); } } catch (ServiceResultException ex) { Utils.Trace("ServiceResultException:" + ex.Message); Console.WriteLine("Exception: {0}", ex.Message); Console.WriteLine("Press any key to exit..."); Console.ReadKey(true); } }