Beispiel #1
0
            public DemoApplication()
            {
                LoadCertificateAndPrivateKey();

                uaAppDesc = new ApplicationDescription(
                    "url:qs:DemoApplication", "http://quantensystems.com/",
                    new LocalizedText("en-US", "QuantenSystems demo server"), ApplicationType.Server,
                    null, null, null);

                ItemsRoot = new NodeObject(new NodeId(2, 0), new QualifiedName("Items"), new LocalizedText("Items"), new LocalizedText("Items"), 0, 0, 0);

                // Objects organizes Items
                AddressSpaceTable[new NodeId(UAConst.ObjectsFolder)].References.Add(new ReferenceNode(new NodeId(UAConst.Organizes), new NodeId(2, 0), false));
                ItemsRoot.References.Add(new ReferenceNode(new NodeId(UAConst.Organizes), new NodeId(UAConst.ObjectsFolder), true));
                AddressSpaceTable.TryAdd(ItemsRoot.Id, ItemsRoot);

                TrendNodes = new NodeVariable[1000];
                var nodeTypeFloat = new NodeId(0, 10);

                for (int i = 0; i < TrendNodes.Length; i++)
                {
                    var id = string.Format("Trend {0}", (1 + i).ToString("D6"));
                    TrendNodes[i] = new NodeVariable(new NodeId(2, (uint)(1 + i)), new QualifiedName(id),
                                                     new LocalizedText(id), new LocalizedText(id), 0, 0,
                                                     AccessLevel.CurrentRead | AccessLevel.HistoryRead,
                                                     AccessLevel.CurrentRead | AccessLevel.HistoryRead, 0, true, nodeTypeFloat);

                    ItemsRoot.References.Add(new ReferenceNode(new NodeId(UAConst.Organizes), TrendNodes[i].Id, false));
                    TrendNodes[i].References.Add(new ReferenceNode(new NodeId(UAConst.Organizes), ItemsRoot.Id, true));
                    AddressSpaceTable.TryAdd(TrendNodes[i].Id, TrendNodes[i]);
                }
            }
Beispiel #2
0
 protected override void OnMonitorAdded(NodeId id)
 {
     if (id.NamespaceIndex == 2 && AddressSpaceTable.TryGetValue(id, out var node))
     {
         Console.WriteLine("OnMonitorAdded {0}", id);
         var dv = new DataValue((float)(rowCount + 0.1 * rnd.NextDouble()), StatusCode.Good, DateTime.Now);
         MonitorNotifyDataChange(node.Id, dv);
     }
 }
Beispiel #3
0
			protected override DataValue HandleReadRequestInternal(NodeId id)
			{
				Node node = null;
				if (id.NamespaceIndex == 2 &&
					AddressSpaceTable.TryGetValue(id, out node))
				{
					return new DataValue(3.14159265, StatusCode.Good, DateTime.Now);
				}

				return base.HandleReadRequestInternal(id);
			}
        public void AddDatapoint(NodeId nodeId, float value)
        {
            var node = new NodeVariable(nodeId, new QualifiedName(nodeId.StringIdentifier),
                                        new LocalizedText(nodeId.StringIdentifier), new LocalizedText(nodeId.StringIdentifier), 0, 0,
                                        AccessLevel.CurrentRead, AccessLevel.CurrentRead, 0, false, new NodeId(0, 10));

            _itemsRoot.References.Add(new ReferenceNode(new NodeId(UAConst.Organizes), node.Id, false));
            node.References.Add(new ReferenceNode(new NodeId(UAConst.Organizes), _itemsRoot.Id, true));
            AddressSpaceTable.TryAdd(node.Id, node);

            _nodes.Add(nodeId, value);
        }
        public ServerApplication(AppSettings settings, SecurityProvider securityProvider)
        {
            _settings         = settings;
            _securityProvider = securityProvider;

            _securityProvider.LoadCertificateAndPrivateKey();

            _appDescription = new ApplicationDescription(_settings.ApplicationUri, _settings.ProductUri,
                                                         new LocalizedText(_settings.Locale, _settings.ApplicationName), ApplicationType.Server, null, null, null);

            _itemsRoot = new NodeObject(new NodeId(2, 0), new QualifiedName(_settings.RootItemName), new LocalizedText(_settings.RootItemName),
                                        new LocalizedText(_settings.RootItemName), 0, 0, 0);

            AddressSpaceTable[new NodeId(UAConst.ObjectsFolder)].References.Add(new ReferenceNode(new NodeId(UAConst.Organizes), new NodeId(2, 0), false));
            _itemsRoot.References.Add(new ReferenceNode(new NodeId(UAConst.Organizes), new NodeId(UAConst.ObjectsFolder), true));
            AddressSpaceTable.TryAdd(_itemsRoot.Id, _itemsRoot);
        }
Beispiel #6
0
        public DemoApplication()
        {
            //LoadCertificateAndPrivatekeyFromFile();
            LoadCertficateAndPrivateKeyFromCertStore("1.3.6.1.5.5.7.3.1", "CN=OLPDO-CA, DC=olplastik, DC=de");
            if (this.appCertificate == null)                                                                                   //Valid certificate could not be found...
            {
                throw (new OperationCanceledException("Unable to load valid certificate from certificates store. Aborting.")); //Raise exception which will cause the program to abort
            }
            else
            {
                this.printCertInfo();
            }

            uaAppDesc = new ApplicationDescription(
                "url:qs:DemoApplication", "http://quantensystems.com/",
                new LocalizedText("en-US", "QuantenSystems demo server"), ApplicationType.Server,
                null, null, null);

            ItemsRoot = new NodeObject(new NodeId(2, 0), new QualifiedName("Items"), new LocalizedText("Items"), new LocalizedText("Items"), 0, 0, 0);

            // Objects organizes Items
            AddressSpaceTable[new NodeId(UAConst.ObjectsFolder)].References.Add(new ReferenceNode(new NodeId(UAConst.Organizes), new NodeId(2, 0), false));
            ItemsRoot.References.Add(new ReferenceNode(new NodeId(UAConst.Organizes), new NodeId(UAConst.ObjectsFolder), true));
            AddressSpaceTable.TryAdd(ItemsRoot.Id, ItemsRoot);

            TrendNodes = new NodeVariable[1000];
            var nodeTypeFloat = new NodeId(0, 10);

            for (int i = 0; i < TrendNodes.Length; i++)
            {
                var id = string.Format("Trend {0}", (1 + i).ToString("D6"));
                TrendNodes[i] = new NodeVariable(new NodeId(2, (uint)(1 + i)), new QualifiedName(id),
                                                 new LocalizedText(id), new LocalizedText(id), 0, 0,
                                                 AccessLevel.CurrentRead | AccessLevel.HistoryRead,
                                                 AccessLevel.CurrentRead | AccessLevel.HistoryRead, 0, true, nodeTypeFloat);

                ItemsRoot.References.Add(new ReferenceNode(new NodeId(UAConst.Organizes), TrendNodes[i].Id, false));
                TrendNodes[i].References.Add(new ReferenceNode(new NodeId(UAConst.Organizes), ItemsRoot.Id, true));
                AddressSpaceTable.TryAdd(TrendNodes[i].Id, TrendNodes[i]);
            }
        }