Esempio n. 1
0
        public static List <MetadataRecord> Query(string host, int port, int timeout = -1)
        {
            List <MetadataRecord> measurements = new List <MetadataRecord>();

            // Note that openHistorian internal publisher controls how many tables / fields to send as meta-data to subscribers (user controllable),
            // as a result, not all fields in associated database views will be available. Below are the default SELECT filters the publisher
            // will apply to the "MeasurementDetail", "DeviceDetail" and "PhasorDetail" database views:

            // SELECT NodeID, UniqueID, OriginalSource, IsConcentrator, Acronym, Name, AccessID, ParentAcronym, ProtocolName, FramesPerSecond, CompanyAcronym, VendorAcronym, VendorDeviceName, Longitude, Latitude, InterconnectionName, ContactList, Enabled, UpdatedOn FROM DeviceDetail WHERE IsConcentrator = 0
            // SELECT DeviceAcronym, ID, SignalID, PointTag, SignalReference, SignalAcronym, PhasorSourceIndex, Description, Internal, Enabled, UpdatedOn FROM MeasurementDetail
            // SELECT DeviceAcronym, Label, Type, Phase, SourceIndex, UpdatedOn FROM PhasorDetail
            // SELECT VersionNumber FROM SchemaVersion

            DataTable measurementTable = null;

            string connectionString = $"server={host}:{port}; interface=0.0.0.0";

            Metadata = MetadataRetriever.GetMetadata(connectionString, timeout);

            // Reference needed meta-data tables
            measurementTable = Metadata.Tables["MeasurementDetail"];

            if ((object)measurementTable != null)
            {
                // Do something with measurement records
                foreach (DataRow measurement in measurementTable.Rows)
                {
                    measurements.Add(new MetadataRecord(measurement));
                }
            }

            return(measurements);
        }
 /// <summary>
 /// Gets meta-data from the <paramref name="connectionString" /> waiting no longer than the specified <paramref name="timeout"/>.
 /// </summary>
 /// <param name="connectionString">GEP publication host and port, e.g., "192.168.1.1:6175", to connect to for meta-data.</param>
 /// <param name="timeout">Specifies how long to wait, in milliseconds, for meta-data.</param>
 /// <returns>The meta-data received from the GEP publisher in <see cref="DataSet"/> format.</returns>
 public static DataSet GetMetadata(string connectionString, int timeout = Timeout.Infinite)
 {
     using (MetadataRetriever retriever = new MetadataRetriever(connectionString))
         return(retriever.GetMetadata(timeout));
 }