/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
// 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); }
// 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); }
// 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); }
// 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); }
/// <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); }