Opc.Ua.Com.Client.ComAeClient.GetStatus C# (CSharp) 메소드

GetStatus() 공개 메소드

Reads the status from the server.
public GetStatus ( ) : OPCEVENTSERVERSTATUS?
리턴 OPCEVENTSERVERSTATUS?
        public OPCEVENTSERVERSTATUS? GetStatus()
        {
            string methodName = "IOPCEventServer.GetStatus";

            try
            {
                IOPCEventServer server = BeginComCall<IOPCEventServer>(methodName, true);

                IntPtr ppServerStatus;
                server.GetStatus(out ppServerStatus);

                OPCEVENTSERVERSTATUS pStatus = (OPCEVENTSERVERSTATUS)Marshal.PtrToStructure(ppServerStatus, typeof(OPCEVENTSERVERSTATUS));

                Marshal.DestroyStructure(ppServerStatus, typeof(OPCEVENTSERVERSTATUS));
                Marshal.FreeCoTaskMem(ppServerStatus);

                return pStatus;
            }
            catch (Exception e)
            {
                ComCallError(methodName, e);
                return null;
            }
            finally
            {
                EndComCall(methodName);
            }
        }
        #endregion

Usage Example

예제 #1
0
        /// <summary>
        /// Updates the status node.
        /// </summary>
        protected override bool UpdateStatus()
        {
            // get the status from the server.
            ComAeClient          client = DefaultClient;
            OPCEVENTSERVERSTATUS?status = client.GetStatus();

            // check the client has been abandoned.
            if (!Object.ReferenceEquals(client, DefaultClient))
            {
                return(false);
            }

            // update the server status.
            lock (StatusNodeLock)
            {
                StatusNode.ServerUrl.Value = Configuration.ServerUrl;

                if (status != null)
                {
                    StatusNode.SetStatusCode(DefaultSystemContext, StatusCodes.Good, DateTime.UtcNow);

                    StatusNode.ServerState.Value     = Utils.Format("{0}", status.Value.dwServerState);
                    StatusNode.CurrentTime.Value     = ComUtils.GetDateTime(status.Value.ftCurrentTime);
                    StatusNode.LastUpdateTime.Value  = ComUtils.GetDateTime(status.Value.ftLastUpdateTime);
                    StatusNode.StartTime.Value       = ComUtils.GetDateTime(status.Value.ftStartTime);
                    StatusNode.VendorInfo.Value      = status.Value.szVendorInfo;
                    StatusNode.SoftwareVersion.Value = Utils.Format("{0}.{1}.{2}", status.Value.wMajorVersion, status.Value.wMinorVersion, status.Value.wBuildNumber);
                }
                else
                {
                    StatusNode.SetStatusCode(DefaultSystemContext, StatusCodes.BadOutOfService, DateTime.UtcNow);
                }

                StatusNode.ClearChangeMasks(DefaultSystemContext, true);
                return(status != null);
            }
        }