diff --git a/Source/Libraries/GSF.PQDIF/Logical/SeriesDefinition.cs b/Source/Libraries/GSF.PQDIF/Logical/SeriesDefinition.cs
index 111e822114..f3e1f0f7bb 100755
--- a/Source/Libraries/GSF.PQDIF/Logical/SeriesDefinition.cs
+++ b/Source/Libraries/GSF.PQDIF/Logical/SeriesDefinition.cs
@@ -255,6 +255,114 @@ public enum QuantityUnits : uint
AmpsPerVolt = 39u
}
+ ///
+ /// List of Greek prefixes to use for units when displaying series data.
+ /// These do not affect how the values are stored -- they should not be applied
+ /// as scaling factors when reading data.
+ ///
+ public enum GreekPrefix : uint
+ {
+ ///
+ /// Indicates display may choose the prefix freely.
+ ///
+ DoNotCare = 0,
+ ///
+ /// f 10^-15 (quadrillionth)
+ ///
+ Femto,
+ ///
+ /// p 10^-12 (trillionth)
+ ///
+ Pico,
+ ///
+ /// n 10^-9 (billionth)
+ ///
+ Nano,
+ ///
+ /// μ 10^-6 (millionth)
+ ///
+ Micro,
+ ///
+ /// m 10^-3 (thousandth)
+ ///
+ Milli,
+ ///
+ /// "" 10^0 (unit)
+ ///
+ None,
+ ///
+ /// k 10^3 (thousand)
+ ///
+ Kilo,
+ ///
+ /// M 10^6 (million)
+ ///
+ Mega,
+ ///
+ /// G 10^9 (billion)
+ ///
+ Giga,
+ ///
+ /// T 10^12 (trillion)
+ ///
+ Tera
+ }
+
+ ///
+ /// List of styles of units to use when displaying series data.
+ ///
+ public enum PreferredUnit : uint
+ {
+ ///
+ /// Engineering units
+ ///
+ PreferENG = 1,
+ ///
+ /// Percentage units.
+ ///
+ PreferPCT,
+ ///
+ /// Per unit. https://en.wikipedia.org/wiki/Per-unit_system
+ ///
+ ///
+ /// In this display format, different types of quantities are labeled with the same
+ /// symbol (pu). The display should be clear whether the quantity is a voltage,
+ /// current, or other measured quanity.
+ ///
+ PreferPU
+ }
+
+ ///
+ /// List of aspects of data to prioritize showing when displaying series data.
+ ///
+ public enum DefaultDisplay : uint
+ {
+ ///
+ /// Indicates display may choose the prefix freely.
+ ///
+ DoNotCare,
+ ///
+ /// Display the magnitude of the values.
+ ///
+ Magnitude,
+ ///
+ /// Display the angle of the values.
+ ///
+ Angle,
+ ///
+ /// Display the real portion of complex values.
+ ///
+ Real,
+ ///
+ /// Display the imaginary portion of complex values.
+ ///
+ Imaginary,
+ ///
+ /// Display the RX of the values.
+ ///
+ RX
+ }
+
#endregion
///
@@ -430,6 +538,67 @@ public double SeriesNominalQuantity
}
}
+ ///
+ /// Gets or sets the hint about which Greek prefix is most useful for displaying the data in the series.
+ /// This hint does not affect how the values are stored -- prefixes should not be applied
+ /// as scaling factors when reading data. Data is assumed to be stored in unprefixed units, but
+ /// you can use the property to change how the data
+ /// is actually saved.
+ ///
+ public GreekPrefix HintGreekPrefix
+ {
+ get
+ {
+ return (GreekPrefix)m_physicalStructure
+ .GetScalarByTag(HintGreekPrefixIDTag)
+ .GetUInt4();
+ }
+ set
+ {
+ ScalarElement quantityUnitsIDElement = m_physicalStructure.GetOrAddScalar(HintGreekPrefixIDTag);
+ quantityUnitsIDElement.TypeOfValue = PhysicalType.UnsignedInteger4;
+ quantityUnitsIDElement.SetUInt4((uint)value);
+ }
+ }
+
+ ///
+ /// Gets or sets the hint about which unit style to use when displaying the data in the series.
+ ///
+ public PreferredUnit HintPreferredUnit
+ {
+ get
+ {
+ return (PreferredUnit)m_physicalStructure
+ .GetScalarByTag(HintPreferredUnitsIDTag)
+ .GetUInt4();
+ }
+ set
+ {
+ ScalarElement quantityUnitsIDElement = m_physicalStructure.GetOrAddScalar(HintPreferredUnitsIDTag);
+ quantityUnitsIDElement.TypeOfValue = PhysicalType.UnsignedInteger4;
+ quantityUnitsIDElement.SetUInt4((uint)value);
+ }
+ }
+
+ ///
+ /// Gets or sets the hint about which aspect of data to prioritize when displaying the data in the series.
+ ///
+ public DefaultDisplay HintDefaultDisplay
+ {
+ get
+ {
+ return (DefaultDisplay)m_physicalStructure
+ .GetScalarByTag(HintDefaultDisplayIDTag)
+ .GetUInt4();
+ }
+ set
+ {
+ ScalarElement quantityUnitsIDElement = m_physicalStructure.GetOrAddScalar(HintDefaultDisplayIDTag);
+ quantityUnitsIDElement.TypeOfValue = PhysicalType.UnsignedInteger4;
+ quantityUnitsIDElement.SetUInt4((uint)value);
+ }
+ }
+
#endregion
#region [ Methods ]
@@ -515,6 +684,21 @@ public override int GetHashCode()
///
public static readonly Guid SeriesNominalQuantityTag = new Guid("0fa118c8-cb4a-11d2-b30b-fe25cb9a1760");
+ ///
+ /// Tag that identifies the preferred scaling prefix to use when displaying the series.
+ ///
+ public static readonly Guid HintGreekPrefixIDTag = new Guid("b48d859e-f5f5-11cf-9d89-0080c72e70a3");
+
+ ///
+ /// Tag that identifies the preferred unit style to use when displaying the series.
+ ///
+ public static readonly Guid HintPreferredUnitsIDTag = new Guid("b48d859f-f5f5-11cf-9d89-0080c72e70a3");
+
+ ///
+ /// Tag that identifies the preferred format string to use when displaying the series.
+ ///
+ public static readonly Guid HintDefaultDisplayIDTag = new Guid("b48d85a0-f5f5-11cf-9d89-0080c72e70a3");
+
#endregion
}
}