/// <summary> /// Enumeration valued field. /// </summary> /// <param name="Node">Node</param> /// <param name="FieldName">Name of field</param> /// <param name="StringIds">Corresponding String IDs</param> /// <param name="Timepoint">Timepoint of field value.</param> /// <param name="Value">Value</param> /// <param name="Type">Type of value.</param> public FieldEnum(string NodeId, string FieldName, FieldLanguageStep[] StringIds, DateTime Timepoint, Enum Value, ReadoutType Type) : base(NodeId, FieldName, StringIds, Timepoint, Type) { this.value = Value.ToString(); this.dataType = Value.GetType ().FullName; }
/// <summary> /// Base class of all field values. /// </summary> /// <param name="NodeId">Node ID</param> /// <param name="FieldName">Name of field</param> /// <param name="StringIds">Corresponding String IDs</param> /// <param name="Timepoint">Timepoint of field value.</param> /// <param name="Type">Type of value.</param> public Field (string NodeId, string FieldName, FieldLanguageStep[] StringIds, DateTime Timepoint, ReadoutType Type) { this.nodeId = NodeId; this.fieldName = FieldName; this.timepoint = Timepoint; this.type = Type; this.languageModule = null; this.stringIds = StringIds; this.status = FieldStatus.AutomaticReadout; }
private static FieldLanguageStep[] ParseStringIds(string s) { int i; if (string.IsNullOrEmpty(s)) { return(null); } if (int.TryParse(s, out i)) { return new FieldLanguageStep[] { new FieldLanguageStep(i) } } ; string[] Parts = s.Split(','); string[] Subparts; FieldLanguageStep[] Result = new FieldLanguageStep[Parts.Length]; int Pos = 0; int c; foreach (string Part in Parts) { if (int.TryParse(Part, out i)) { Result [Pos++] = new FieldLanguageStep(i); } else { Subparts = Part.Split('|'); c = Subparts.Length; if (!int.TryParse(Subparts [0], out i)) { continue; } if (c == 2) { Result [Pos++] = new FieldLanguageStep(i, null, Subparts [1]); } else if (c == 3) { Result [Pos++] = new FieldLanguageStep(i, Subparts [2], Subparts [1]); } } } return(Result); } #endregion }
/// <summary> /// Enumeration valued field. /// </summary> /// <param name="Node">Node</param> /// <param name="FieldName">Name of field</param> /// <param name="StringIds">Corresponding String IDs</param> /// <param name="Timepoint">Timepoint of field value.</param> /// <param name="EnumType">Enum Type</param> /// <param name="EnumValue">Enum Value</param> /// <param name="Type">Type of value.</param> /// <param name="Status">Field status. Default value is <see cref="FieldStatus.AutomaticReadout"/>.</param> /// <param name="LanguageModule">Language Module to use for localization purposes. This parameter is optional. If /// not specified, or if empty or null, the language module of the metering library will be used.</param> public FieldEnum(string NodeId, string FieldName, FieldLanguageStep[] StringIds, DateTime Timepoint, string ValueType, string Value, ReadoutType Type, FieldStatus Status, string LanguageModule) : base(NodeId, FieldName, StringIds, Timepoint, Type, Status, LanguageModule) { this.value = Value; this.dataType = ValueType; }
/// <summary> /// DateTime valued field. /// </summary> /// <param name="Node">Node</param> /// <param name="FieldName">Name of field</param> /// <param name="StringIds">Corresponding String IDs</param> /// <param name="Timepoint">Timepoint of field value.</param> /// <param name="Value">Value</param> /// <param name="Type">Type of value.</param> public FieldDateTime(string NodeId, string FieldName, FieldLanguageStep[] StringIds, DateTime Timepoint, DateTime Value, ReadoutType Type) : base(NodeId, FieldName, StringIds, Timepoint, Type) { this.value = Value; }
/// <summary> /// Numeric valued field. /// </summary> /// <param name="Node">Node</param> /// <param name="FieldName">Name of field</param> /// <param name="StringIds">Corresponding String IDs</param> /// <param name="Timepoint">Timepoint of field value.</param> /// <param name="Value">Value</param> /// <param name="NrDecimals">Number of decimals to use.</param> /// <param name="Unit">Unit corresponding to the value.</param> /// <param name="Type">Type of value.</param> public FieldNumeric(string NodeId, string FieldName, FieldLanguageStep[] StringIds, DateTime Timepoint, double Value, int NrDecimals, string Unit, ReadoutType Type) : base(NodeId, FieldName, StringIds, Timepoint, Type) { this.unit = Unit; this.value = Value; this.nrDecimals = NrDecimals; }
/// <summary> /// Numeric valued field. /// </summary> /// <param name="Node">Node</param> /// <param name="FieldName">Name of field</param> /// <param name="StringIds">Corresponding String IDs</param> /// <param name="Timepoint">Timepoint of field value.</param> /// <param name="Value">Value</param> /// <param name="Type">Type of value.</param> /// <param name="Status">Field status. Default value is <see cref="FieldStatus.AutomaticReadout"/>.</param> /// <param name="LanguageModule">Language Module to use for localization purposes. This parameter is optional. If /// not specified, or if empty or null, the language module of the metering library will be used.</param> public FieldNumeric(string NodeId, string FieldName, FieldLanguageStep[] StringIds, DateTime Timepoint, long Value, ReadoutType Type, FieldStatus Status, string LanguageModule) : base(NodeId, FieldName, StringIds, Timepoint, Type, Status, LanguageModule) { this.unit = string.Empty; this.value = Value; this.nrDecimals = 0; }
/// <summary> /// TimeSpan valued fields. /// </summary> /// <param name="Node">Node</param> /// <param name="FieldName">Name of field</param> /// <param name="StringIds">Corresponding String IDs</param> /// <param name="Timepoint">Timepoint of field value.</param> /// <param name="Value">Value</param> /// <param name="Type">Type of value.</param> /// <param name="Status">Field status. Default value is <see cref="FieldStatus.AutomaticReadout"/>.</param> public FieldTimeSpan(string NodeId, string FieldName, FieldLanguageStep[] StringIds, DateTime Timepoint, TimeSpan Value, ReadoutType Type, FieldStatus Status) : base(NodeId, FieldName, StringIds, Timepoint, Type, Status) { this.value = Value; }
private static FieldLanguageStep[] ParseStringIds (string s) { int i; if (string.IsNullOrEmpty (s)) return null; if (int.TryParse (s, out i)) return new FieldLanguageStep[] { new FieldLanguageStep (i) }; string[] Parts = s.Split (','); string[] Subparts; FieldLanguageStep[] Result = new FieldLanguageStep[Parts.Length]; int Pos = 0; int c; foreach (string Part in Parts) { if (int.TryParse (Part, out i)) Result [Pos++] = new FieldLanguageStep (i); else { Subparts = Part.Split ('|'); c = Subparts.Length; if (!int.TryParse (Subparts [0], out i)) continue; if (c == 2) Result [Pos++] = new FieldLanguageStep (i, null, Subparts [1]); else if (c == 3) Result [Pos++] = new FieldLanguageStep (i, Subparts [2], Subparts [1]); } } return Result; }
/// <summary> /// Boolean valued field. /// </summary> /// <param name="Node">Node</param> /// <param name="FieldName">Name of field</param> /// <param name="StringIds">Corresponding String IDs</param> /// <param name="Timepoint">Timepoint of field value.</param> /// <param name="Value">Value</param> /// <param name="Type">Type of value.</param> /// <param name="Status">Field status. Default value is <see cref="FieldStatus.AutomaticReadout"/>.</param> /// <param name="LanguageModule">Language Module to use for localization purposes. This parameter is optional. If /// not specified, or if empty or null, the language module of the metering library will be used.</param> public FieldBoolean(string NodeId, string FieldName, FieldLanguageStep[] StringIds, DateTime Timepoint, bool Value, ReadoutType Type, FieldStatus Status, string LanguageModule) : base(NodeId, FieldName, StringIds, Timepoint, Type, Status, LanguageModule) { this.value = Value; }