public void AddNodesAsync()
        {
            var nodesToAdd   = new AddNodesItemCollection();
            var addNodesItem = new AddNodesItem()
            {
            };

            for (int ii = 0; ii < kOperationLimit * 2; ii++)
            {
                nodesToAdd.Add(addNodesItem);
            }

            var requestHeader = new RequestHeader();
            var sre           = Assert.ThrowsAsync <ServiceResultException>(async() => {
                var response = await Session.AddNodesAsync(requestHeader,
                                                           nodesToAdd, CancellationToken.None).ConfigureAwait(false);;

                Assert.NotNull(response);
                AddNodesResultCollection results         = response.Results;
                DiagnosticInfoCollection diagnosticInfos = response.DiagnosticInfos;

                Assert.AreEqual(nodesToAdd.Count, results.Count);
                Assert.AreEqual(diagnosticInfos.Count, diagnosticInfos.Count);
            });

            Assert.AreEqual(StatusCodes.BadServiceUnsupported, sre.StatusCode);
        }
        public void AddNodes()
        {
            var nodesToAdd   = new AddNodesItemCollection();
            var addNodesItem = new AddNodesItem()
            {
            };

            for (int ii = 0; ii < kOperationLimit * 2; ii++)
            {
                nodesToAdd.Add(addNodesItem);
            }

            var requestHeader = new RequestHeader();
            var sre           = Assert.Throws <ServiceResultException>(() => {
                var responseHeader = Session.AddNodes(requestHeader,
                                                      nodesToAdd,
                                                      out AddNodesResultCollection results,
                                                      out DiagnosticInfoCollection diagnosticInfos);

                Assert.NotNull(responseHeader);
                Assert.AreEqual(nodesToAdd.Count, results.Count);
                Assert.AreEqual(diagnosticInfos.Count, diagnosticInfos.Count);
            });

            Assert.AreEqual(StatusCodes.BadServiceUnsupported, sre.StatusCode);
        }
Example #3
0
        /// <summary>
        /// Invokes the AddNodes service.
        /// </summary>
        public virtual ResponseHeader AddNodes(
            RequestHeader requestHeader,
            AddNodesItemCollection nodesToAdd,
            out AddNodesResultCollection results,
            out DiagnosticInfoCollection diagnosticInfos)
        {
            results         = null;
            diagnosticInfos = null;

            ValidateRequest(requestHeader);

            // Insert implementation.

            return(CreateResponse(requestHeader, StatusCodes.BadServiceUnsupported));
        }
Example #4
0
        public void AddNewNode(NodeId parent)
        {
            // Create a Variable node.
            AddNodesItem node2 = new AddNodesItem( );

            node2.ParentNodeId       = new NodeId(parent);
            node2.ReferenceTypeId    = ReferenceTypes.HasComponent;
            node2.RequestedNewNodeId = null;
            node2.BrowseName         = new QualifiedName("DataVariable1");
            node2.NodeClass          = NodeClass.Variable;
            node2.NodeAttributes     = null;
            node2.TypeDefinition     = VariableTypeIds.BaseDataVariableType;

            //specify node attributes.
            VariableAttributes node2Attribtues = new VariableAttributes( );

            node2Attribtues.DisplayName             = "DataVariable1";
            node2Attribtues.Description             = "DataVariable1 Description";
            node2Attribtues.Value                   = new Variant(123);
            node2Attribtues.DataType                = (uint)BuiltInType.Int32;
            node2Attribtues.ValueRank               = ValueRanks.Scalar;
            node2Attribtues.ArrayDimensions         = new UInt32Collection( );
            node2Attribtues.AccessLevel             = AccessLevels.CurrentReadOrWrite;
            node2Attribtues.UserAccessLevel         = AccessLevels.CurrentReadOrWrite;
            node2Attribtues.MinimumSamplingInterval = 0;
            node2Attribtues.Historizing             = false;
            node2Attribtues.WriteMask               = (uint)AttributeWriteMask.None;
            node2Attribtues.UserWriteMask           = (uint)AttributeWriteMask.None;
            node2Attribtues.SpecifiedAttributes     = (uint)NodeAttributesMask.All;

            node2.NodeAttributes = new ExtensionObject(node2Attribtues);



            AddNodesItemCollection nodesToAdd = new AddNodesItemCollection
            {
                node2
            };

            m_session.AddNodes(
                null,
                nodesToAdd,
                out AddNodesResultCollection results,
                out DiagnosticInfoCollection diagnosticInfos);

            ClientBase.ValidateResponse(results, nodesToAdd);
            ClientBase.ValidateDiagnosticInfos(diagnosticInfos, nodesToAdd);
        }
Example #5
0
 public static Entry For(AddNodesItemCollection nodesToAdd)
 {
     if (nodesToAdd == null)
     {
         return(new NullEntry());
     }
     else
     {
         ArrayEntry entry = new ArrayEntry();
         AddNodesItemCollection.Enumerator e = nodesToAdd.GetEnumerator();
         while (e.MoveNext())
         {
             ObjectEntry node = new ObjectEntry();
             node.Add("ParentNodeId", For(e.Current.ParentNodeId));
             node.Add("ReferenceTypeId", For(e.Current.ReferenceTypeId));
             node.Add("RequestedNewNodeId", For(e.Current.RequestedNewNodeId));
             node.Add("TypeDefinition", For(e.Current.TypeDefinition));
             entry.Add(node);
         }
         return(entry);
     }
 }
Example #6
0
        public void AddNewNode(NodeId parent)
        {
            AddNodesItem addNodesItem1 = new AddNodesItem();

            addNodesItem1.ParentNodeId       = (ExpandedNodeId) new NodeId(parent);
            addNodesItem1.ReferenceTypeId    = (NodeId)47U;
            addNodesItem1.RequestedNewNodeId = (ExpandedNodeId)null;
            addNodesItem1.BrowseName         = new QualifiedName("DataVariable1");
            addNodesItem1.NodeClass          = NodeClass.Variable;
            addNodesItem1.NodeAttributes     = (ExtensionObject)null;
            addNodesItem1.TypeDefinition     = (ExpandedNodeId)VariableTypeIds.BaseDataVariableType;
            VariableAttributes variableAttributes = new VariableAttributes();

            variableAttributes.DisplayName             = (LocalizedText)"DataVariable1";
            variableAttributes.Description             = (LocalizedText)"DataVariable1 Description";
            variableAttributes.Value                   = new Opc.Ua.Variant(123);
            variableAttributes.DataType                = (NodeId)6U;
            variableAttributes.ValueRank               = -1;
            variableAttributes.ArrayDimensions         = new UInt32Collection();
            variableAttributes.AccessLevel             = (byte)3;
            variableAttributes.UserAccessLevel         = (byte)3;
            variableAttributes.MinimumSamplingInterval = 0.0;
            variableAttributes.Historizing             = false;
            variableAttributes.WriteMask               = 0U;
            variableAttributes.UserWriteMask           = 0U;
            variableAttributes.SpecifiedAttributes     = 4194303U;
            addNodesItem1.NodeAttributes               = new ExtensionObject((object)variableAttributes);
            AddNodesItemCollection nodesItemCollection = new AddNodesItemCollection();
            AddNodesItem           addNodesItem2       = addNodesItem1;

            nodesItemCollection.Add(addNodesItem2);
            AddNodesItemCollection   nodesToAdd = nodesItemCollection;
            AddNodesResultCollection results;
            DiagnosticInfoCollection diagnosticInfos;

            this.m_session.AddNodes((RequestHeader)null, nodesToAdd, out results, out diagnosticInfos);
            ClientBase.ValidateResponse((IList)results, (IList)nodesToAdd);
            ClientBase.ValidateDiagnosticInfos(diagnosticInfos, (IList)nodesToAdd);
        }
        /// <summary>
        /// Invokes the AddNodes service.
        /// </summary>
        public virtual ResponseHeader AddNodes(
            RequestHeader                requestHeader,
            AddNodesItemCollection       nodesToAdd,
            out AddNodesResultCollection results,
            out DiagnosticInfoCollection diagnosticInfos)
        {
            results = null;
            diagnosticInfos = null;

            ValidateRequest(requestHeader);

            // Insert implementation.

            return CreateResponse(requestHeader, StatusCodes.BadServiceUnsupported);
        }
Example #8
0
        /// <summary>
        /// Begins an asynchronous invocation of the AddNodes service.
        /// </summary>
        public IAsyncResult BeginAddNodes(
            RequestHeader          requestHeader,
            AddNodesItemCollection nodesToAdd,
            AsyncCallback          callback,
            object                 asyncState)
        {
            AddNodesRequest request = new AddNodesRequest();

            request.RequestHeader = requestHeader;
            request.NodesToAdd    = nodesToAdd;

            UpdateRequestHeader(request, requestHeader == null, "AddNodes");

            if (UseTransportChannel)
            {
                return TransportChannel.BeginSendRequest(request, callback, asyncState);
            }

            return InnerChannel.BeginAddNodes(new AddNodesMessage(request), callback, asyncState);
        }
Example #9
0
        /// <summary>
        /// Invokes the AddNodes service.
        /// </summary>
        public virtual ResponseHeader AddNodes(
            RequestHeader                requestHeader,
            AddNodesItemCollection       nodesToAdd,
            out AddNodesResultCollection results,
            out DiagnosticInfoCollection diagnosticInfos)
        {
            AddNodesRequest request = new AddNodesRequest();
            AddNodesResponse response = null;

            request.RequestHeader = requestHeader;
            request.NodesToAdd    = nodesToAdd;

            UpdateRequestHeader(request, requestHeader == null, "AddNodes");

            try
            {
                if (UseTransportChannel)
                {
                    IServiceResponse genericResponse = TransportChannel.SendRequest(request);

                    if (genericResponse == null)
                    {
                        throw new ServiceResultException(StatusCodes.BadUnknownResponse);
                    }

                    ValidateResponse(genericResponse.ResponseHeader);
                    response = (AddNodesResponse)genericResponse;
                }
                else
                {
                    AddNodesResponseMessage responseMessage = InnerChannel.AddNodes(new AddNodesMessage(request));

                    if (responseMessage == null || responseMessage.AddNodesResponse == null)
                    {
                        throw new ServiceResultException(StatusCodes.BadUnknownResponse);
                    }

                    response = responseMessage.AddNodesResponse;
                    ValidateResponse(response.ResponseHeader);
                }

                results         = response.Results;
                diagnosticInfos = response.DiagnosticInfos;
            }
            finally
            {
                RequestCompleted(request, response, "AddNodes");
            }

            return response.ResponseHeader;
        }