示例#1
0
        /// <summary>
        /// Adds a new channel instance to the collection
        /// of channel instances in this observation record.
        /// </summary>
        /// <param name="channelDefinition">Channel definition to use for looking up channel definition index of new channel instance.</param>
        /// <returns>NEw channel instance.</returns>
        public ChannelInstance AddNewChannelInstance(ChannelDefinition channelDefinition)
        {
            CollectionElement channelInstanceElement = new CollectionElement()
            {
                TagOfElement = OneChannelInstanceTag
            };
            ChannelInstance channelInstance = new ChannelInstance(channelInstanceElement, this);

            channelInstance.ChannelDefinitionIndex = (uint)channelDefinition.DataSource.ChannelDefinitions.IndexOf(channelDefinition);
            channelInstanceElement.AddElement(new CollectionElement()
            {
                TagOfElement = ChannelInstance.SeriesInstancesTag
            });

            CollectionElement?channelInstancesElement = PhysicalRecord.Body.Collection.GetCollectionByTag(ChannelInstancesTag);

            if (channelInstancesElement == null)
            {
                channelInstancesElement = new CollectionElement()
                {
                    TagOfElement = ChannelInstancesTag
                };
                PhysicalRecord.Body.Collection.AddElement(channelInstancesElement);
            }

            channelInstancesElement.AddElement(channelInstanceElement);

            return(channelInstance);
        }
示例#2
0
        /// <summary>
        /// Adds a new series instance to the collection
        /// of series instances in this channel instance.
        /// </summary>
        public SeriesInstance AddNewSeriesInstance()
        {
            CollectionElement seriesInstancesElement;
            CollectionElement seriesInstanceElement;
            SeriesDefinition  seriesDefinition;
            SeriesInstance    seriesInstance;

            if (Definition.SeriesDefinitions.Count <= SeriesInstances.Count)
            {
                throw new InvalidOperationException("Cannot create a series instance without a corresponding series definition.");
            }

            seriesInstancesElement = m_physicalStructure.GetCollectionByTag(SeriesInstancesTag);
            seriesInstanceElement  = new CollectionElement()
            {
                TagOfElement = OneSeriesInstanceTag
            };
            seriesDefinition = Definition.SeriesDefinitions[SeriesInstances.Count];
            seriesInstance   = new SeriesInstance(seriesInstanceElement, this, seriesDefinition);

            if ((object)seriesInstancesElement == null)
            {
                seriesInstancesElement = new CollectionElement()
                {
                    TagOfElement = SeriesInstancesTag
                };

                m_physicalStructure.AddElement(seriesInstancesElement);
            }

            seriesInstancesElement.AddElement(seriesInstanceElement);

            return(seriesInstance);
        }
示例#3
0
        /// <summary>
        /// Adds a new channel definition to the collection
        /// of channel definitions in this data source record.
        /// </summary>
        public ChannelDefinition AddNewChannelDefinition()
        {
            CollectionElement channelDefinitionElement = new CollectionElement()
            {
                TagOfElement = OneChannelDefinitionTag
            };
            ChannelDefinition channelDefinition = new ChannelDefinition(channelDefinitionElement, this);

            channelDefinition.Phase            = Phase.None;
            channelDefinition.QuantityMeasured = QuantityMeasured.None;
            channelDefinitionElement.AddElement(new CollectionElement()
            {
                TagOfElement = ChannelDefinition.SeriesDefinitionsTag
            });

            CollectionElement channelDefinitionsElement = m_physicalRecord.Body.Collection.GetCollectionByTag(ChannelDefinitionsTag);

            if ((object)channelDefinitionsElement == null)
            {
                channelDefinitionsElement = new CollectionElement()
                {
                    TagOfElement = ChannelDefinitionsTag
                };
                m_physicalRecord.Body.Collection.AddElement(channelDefinitionsElement);
            }

            channelDefinitionsElement.AddElement(channelDefinitionElement);

            return(channelDefinition);
        }
示例#4
0
        /// <summary>
        /// Adds a new series instance to the collection
        /// of series instances in this channel instance.
        /// </summary>
        /// <returns>New series instance.</returns>
        public SeriesInstance AddNewSeriesInstance()
        {
            if (Definition.SeriesDefinitions.Count <= SeriesInstances.Count)
            {
                throw new InvalidOperationException("Cannot create a series instance without a corresponding series definition.");
            }

            CollectionElement seriesInstanceElement = new CollectionElement {
                TagOfElement = OneSeriesInstanceTag
            };
            SeriesDefinition seriesDefinition = Definition.SeriesDefinitions[SeriesInstances.Count];
            SeriesInstance   seriesInstance   = new SeriesInstance(seriesInstanceElement, this, seriesDefinition);

            seriesInstanceElement.AddOrUpdateVector(SeriesInstance.SeriesValuesTag, PhysicalType.UnsignedInteger1, new byte[0]);

            CollectionElement?seriesInstancesElement = m_physicalStructure.GetCollectionByTag(SeriesInstancesTag);

            if (seriesInstancesElement == null)
            {
                seriesInstancesElement = new CollectionElement {
                    TagOfElement = SeriesInstancesTag
                };
                m_physicalStructure.AddElement(seriesInstancesElement);
            }

            seriesInstancesElement.AddElement(seriesInstanceElement);

            return(seriesInstance);
        }
示例#5
0
        /// <summary>
        /// Adds a new series definition to the collection
        /// of series definitions in this channel definition.
        /// </summary>
        /// <returns>New series definition.</returns>
        public SeriesDefinition AddNewSeriesDefinition()
        {
            CollectionElement seriesDefinitionElement = new CollectionElement {
                TagOfElement = OneSeriesDefinitionTag
            };
            SeriesDefinition seriesDefinition = new SeriesDefinition(seriesDefinitionElement, this);

            seriesDefinition.ValueTypeID              = SeriesValueType.Val;
            seriesDefinition.QuantityUnits            = QuantityUnits.None;
            seriesDefinition.QuantityCharacteristicID = QuantityCharacteristic.None;
            seriesDefinition.StorageMethodID          = StorageMethods.Values;

            CollectionElement?seriesDefinitionsElement = m_physicalStructure.GetCollectionByTag(SeriesDefinitionsTag);

            if (seriesDefinitionsElement == null)
            {
                seriesDefinitionsElement = new CollectionElement {
                    TagOfElement = SeriesDefinitionsTag
                };
                m_physicalStructure.AddElement(seriesDefinitionsElement);
            }

            seriesDefinitionsElement.AddElement(seriesDefinitionElement);

            return(seriesDefinition);
        }
示例#6
0
        // Static Methods

        /// <summary>
        /// Creates a new channel definition belonging to the given data source record.
        /// </summary>
        /// <param name="dataSourceRecord">The data source record that the new channel definition belongs to.</param>
        /// <returns>The new channel definition.</returns>
        public static ChannelDefinition CreateChannelDefinition(DataSourceRecord dataSourceRecord)
        {
            ChannelDefinition channelDefinition = dataSourceRecord.AddNewChannelDefinition();

            channelDefinition.Phase            = Phase.None;
            channelDefinition.QuantityMeasured = QuantityMeasured.None;

            CollectionElement physicalStructure = channelDefinition.PhysicalStructure;

            physicalStructure.AddElement(new CollectionElement {
                TagOfElement = SeriesDefinitionsTag
            });

            return(channelDefinition);
        }
示例#7
0
        // Static Methods

        /// <summary>
        /// Creates a new data source record from scratch.
        /// </summary>
        /// <param name="dataSourceName">The name of the data source to be created.</param>
        /// <returns>The new data source record.</returns>
        public static DataSourceRecord CreateDataSourceRecord(string dataSourceName)
        {
            Guid             recordTypeTag    = Record.GetTypeAsTag(RecordType.DataSource);
            Record           physicalRecord   = new Record(recordTypeTag);
            DataSourceRecord dataSourceRecord = new DataSourceRecord(physicalRecord);

            DateTime now = DateTime.UtcNow;

            dataSourceRecord.DataSourceTypeID = DataSourceType.Simulate;
            dataSourceRecord.DataSourceName   = dataSourceName;
            dataSourceRecord.Effective        = now;

            CollectionElement bodyElement = physicalRecord.Body.Collection;

            bodyElement.AddElement(new CollectionElement {
                TagOfElement = ChannelDefinitionsTag
            });

            return(dataSourceRecord);
        }
示例#8
0
        // Static Methods

        /// <summary>
        /// Creates a new observation record from scratch with the given data source and settings.
        /// </summary>
        /// <param name="dataSource">The data source record that defines the channels in this observation record.</param>
        /// <param name="settings">The monitor settings to be applied to this observation record.</param>
        /// <returns>The new observation record.</returns>
        public static ObservationRecord CreateObservationRecord(DataSourceRecord dataSource, MonitorSettingsRecord?settings)
        {
            Guid              recordTypeTag     = Record.GetTypeAsTag(RecordType.Observation);
            Record            physicalRecord    = new Record(recordTypeTag);
            ObservationRecord observationRecord = new ObservationRecord(physicalRecord, dataSource, settings);

            DateTime now = DateTime.UtcNow;

            observationRecord.Name          = now.ToString();
            observationRecord.CreateTime    = now;
            observationRecord.StartTime     = now;
            observationRecord.TriggerMethod = TriggerMethod.None;

            CollectionElement bodyElement = physicalRecord.Body.Collection;

            bodyElement.AddElement(new CollectionElement {
                TagOfElement = ChannelInstancesTag
            });

            return(observationRecord);
        }
示例#9
0
        // Static Methods

        /// <summary>
        /// Creates a new monitor settings record from scratch.
        /// </summary>
        /// <returns>The new monitor settings record.</returns>
        public static MonitorSettingsRecord CreateMonitorSettingsRecord()
        {
            Guid   recordTypeTag  = Record.GetTypeAsTag(RecordType.MonitorSettings);
            Record physicalRecord = new Record(recordTypeTag);
            MonitorSettingsRecord monitorSettingsRecord = new MonitorSettingsRecord(physicalRecord);

            DateTime now = DateTime.UtcNow;

            monitorSettingsRecord.Effective      = now;
            monitorSettingsRecord.TimeInstalled  = now;
            monitorSettingsRecord.UseCalibration = false;
            monitorSettingsRecord.UseTransducer  = false;

            CollectionElement bodyElement = physicalRecord.Body.Collection;

            bodyElement.AddElement(new CollectionElement {
                TagOfElement = ChannelSettingsArrayTag
            });

            return(monitorSettingsRecord);
        }
示例#10
0
        /// <summary>
        /// Adds a new series definition to the collection
        /// of series definitions in this channel definition.
        /// </summary>
        public SeriesDefinition AddNewSeriesDefinition()
        {
            CollectionElement seriesDefinitionsElement = m_physicalStructure.GetCollectionByTag(SeriesDefinitionsTag);
            CollectionElement seriesDefinitionElement  = new CollectionElement()
            {
                TagOfElement = OneSeriesDefinitionTag
            };
            SeriesDefinition seriesDefinition = new SeriesDefinition(seriesDefinitionElement, this);

            if ((object)seriesDefinitionsElement == null)
            {
                seriesDefinitionsElement = new CollectionElement()
                {
                    TagOfElement = SeriesDefinitionsTag
                };

                m_physicalStructure.AddElement(seriesDefinitionsElement);
            }

            seriesDefinitionsElement.AddElement(seriesDefinitionElement);

            return(seriesDefinition);
        }