コード例 #1
0
ファイル: FieldEnum.cs プロジェクト: mukira/Learning-IoT-HTTP
		/// <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;
		}
コード例 #2
0
ファイル: Field.cs プロジェクト: mukira/Learning-IoT-HTTP
		/// <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;
		}
コード例 #3
0
        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
    }
コード例 #4
0
ファイル: FieldEnum.cs プロジェクト: mukira/Learning-IoT-HTTP
		/// <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;
		}
コード例 #5
0
		/// <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;
		}
コード例 #6
0
		/// <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;
		}
コード例 #7
0
		/// <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;
		}
コード例 #8
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;
		}
コード例 #9
0
ファイル: Import.cs プロジェクト: mukira/Learning-IoT-HTTP
		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;
		}
コード例 #10
0
		/// <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;
		}