################## Developer's Manual ################## Class Diagrams ============== ConfigModel ----------- .. uml:: @startuml class ConfigModel { + OpcUrl : string <> <> + OpcUser : string <> <> + OpcPassword : string <> <> + DefaultNamespaceURI : string <> <> + Interval : double <> <> + {static} ReadConfig(file:string) : ConfigModel } class ConfigList { + ConfigList() } class Config { + Name : string <> <> + Config() } class CompositionList { + CompositionList() + GetScaledValues() : Aga8Composition } class PTList { + PTList() } class PressureFunction { + PressureFunction() + GetValue() : double } class TemperatureFunction { + TemperatureFunction() + GetValue() : double } class PressureTemperature { + Name : string <> <> } class PropertyList { + PropertyList() } class Component { + NamespaceURI : string <> <> + Identifier : string <> <> + ScaleFactor : double <> <> + Value : double <> <> + NodeId : string <> <> + Component() + GetScaledValue() : double } class Measurement { + Name : string <> <> + NamespaceURI : string <> <> + Identifier : string <> <> + ScaleFactor : double <> <> + Type : string <> <> + Value : double <> <> + NodeId : string <> <> } class PressureMeasurement { + PressureMeasurement() + GetAGA8Converted() : double + GetUnitConverted() : double } class TemperatureMeasurement { + TemperatureMeasurement() + GetAGA8Converted() : double + GetUnitConverted() : double } class PropertyMeasurement { + GetTypedValue() : object } class TimeStampedMeasurement { } enum Aga8Component { Methane, Nitrogen, CarbonDioxide, Ethane, Propane, IsoButane, NormalButane, IsoPentane, NormalPentane, Hexane, Heptane, Octane, Nonane, Decane, Hydrogen, Oxygen, CarbonMonoxide, Water, HydrogenSulfide, Helium, Argon, } enum Aga8ResultCode { MolarConcentration= 0, MolarMass= 1, CompressibilityFactor= 2, InternalEnergy= 6, Enthalpy= 7, Entropy= 8, IsochoricHeatCapacity= 9, IsobaricHeatCapacity= 10, SpeedOfSound= 11, GibbsEnergy= 12, JouleThomsonCoefficient= 13, IsentropicExponent= 14, Density= 15, } enum PressureUnit { barg= 0, bara= 1, } enum TemperatureUnit { C= 0, K= 1, } enum Func { Min= 0, Max= 1, Average= 2, Median= 3, } enum Equation { AGA8Detail= 0, Gerg2008= 1, } class "List`1" { } ConfigModel --> "EquationOfState" Equation ConfigModel o-> "ConfigList" ConfigList ConfigList --> "Item" "List`1" Config o-> "Composition" CompositionList Config o-> "PressureTemperatureList" PTList CompositionList --> "Item" "List`1" PTList --> "Item" "List`1" PressureFunction --> "Item" "List`1" TemperatureFunction --> "Item" "List`1" PressureTemperature o-> "PressureFunction" PressureFunction PressureTemperature o-> "TemperatureFunction" TemperatureFunction PressureTemperature o-> "Properties" PropertyList PropertyList --> "Item" "List`1" Component --> "Name" Aga8Component Measurement <|-- PressureMeasurement Measurement <|-- TemperatureMeasurement Measurement <|-- PropertyMeasurement Measurement <|-- TimeStampedMeasurement TimeStampedMeasurement --> "TimeStamp" DateTime ConfigModel +-- Aga8Component ConfigModel +-- Aga8ResultCode ConfigModel +-- PressureUnit ConfigModel +-- TemperatureUnit ConfigModel +-- Func ConfigModel +-- Equation @enduml