tbf/Config/Entities/Enums.cs

291 lines
6.5 KiB
C#
Raw Normal View History

///
/// Copyright (c) 2013-2015 Sensus Metering Systems
///
using System;
using System.Collections.Generic;
using System.Reflection;
namespace Config.Entities
{
/// <summary>
/// Helper class to assign descriptions to enum values
/// </summary>
public class Description : Attribute
{
public string Text;
public Description(string t)
{
Text = t;
}
}
public static class GetDescription
{
/// Extension method for enum-s
public static string ToDescription(this Enum en)
{
Type type = en.GetType();
MemberInfo[] memInfo = type.GetMember(en.ToString());
if (memInfo != null && memInfo.Length > 0)
{
object[] attrs = memInfo[0].GetCustomAttributes(typeof(Description), false);
if (attrs != null && attrs.Length > 0)
return ((Description)attrs[0]).Text;
}
return en.ToString(); /// Return ToString() value in case there is no description
}
}
2015-12-31 17:20:03 +00:00
/// <summary> Identifies the type of a database </summary>
public enum DBType
{
MySql, /// MySQL database
SQLite, /// SQLite
DbTypesCount,
}
2015-12-31 21:48:22 +00:00
/// <summary> Identifies the database based on the content </summary>
public enum DBKind
{
Config,
Results,
Count,
}
2015-12-31 17:20:03 +00:00
public enum ProcedureState
{
Active,
History,
Template,
Count,
}
2015-12-31 21:48:22 +00:00
/// <summary> Kind of meters for the procedure / test </summary>
public enum MetersKind
{
Single,
Combined,
HeatMeter,
}
public enum CompoundMeterId : byte
{
Single,
CompoundMain,
CompoundAux,
Compound,
}
public enum Medium
{
[Description("")] NotSpecified,
ColdWater,
HotWater,
Count
}
public enum Mounting
{
[Description("")] NotSpecified,
[Description("H")] H, /// horizontal
[Description("V")] V, /// vertical
[Description("S")] S, /// steig
[Description("F")] F, /// fall
Count
}
public enum TemperatureClass
{
[Description("")] NotSpecified,
[Description("T30")] T30,
[Description("T50")] T50,
[Description("T70")] T70,
[Description("T90")] T90,
[Description("T130")] T130,
[Description("T180")] T180,
[Description("T30/70")] T30_70,
[Description("T30/90")] T30_90,
[Description("T30/130")] T30_130,
[Description("T30/180")] T30_180,
[Description("30")] t30,
[Description("50")] t50,
[Description("70")] t70,
[Description("90")] t90,
[Description("130")] t130,
[Description("180")] t180,
Count
}
public enum FlowProfileSensitivityClass
{
[Description("")] NotSpecified,
[Description("U0")] U0, /// ?
[Description("D0")] D0, /// ?
Count
}
public enum PressureLossClass
{
[Description("")] NotSpecified,
[Description("dp63")] dp63, /// 0.063 MPa = 0.63 bar, TODO: Change to "Δp63"
[Description("dp40")] dp40, /// 0.040 MPa = 0.40 bar
[Description("dp25")] dp25, /// 0.025 MPa = 0.25 bar
[Description("dp16")] dp16, /// 0.016 MPa = 0.16 bar
[Description("dp10")] dp10, /// 0.010 MPa = 0.10 bar
Count
}
/// <summary> Maximum Admissible Pressure </summary>
public enum MaxAdmissiblePressure
{
[Description("")] NotSpecified,
[Description("MAP6")] MAP6,
[Description("MAP10")] MAP10,
[Description("MAP16")] MAP16,
[Description("MAP25")] MAP25,
[Description("MAP40")] MAP40,
Count
}
2015-12-31 21:48:22 +00:00
/// <summary> Transition step is finished when this condition is fulfilled </summary>
public enum StepCondition
{
None,
Scale1Empty,
Scale2Empty,
Scale3Empty,
AllScalesEmpty,
Count
}
public enum Publish : sbyte
2016-02-25 17:04:18 +00:00
{
#if MUNICH
2016-06-22 14:54:16 +00:00
/// nemecky
[Description("nie")] Never = 0,
[Description("immer")] Always = 1,
[Description("Bildschirm")] OnScreen = 2,
[Description("intern")] Internal = 3,
2016-06-22 14:54:16 +00:00
#elif CEVAK || BADGER_MALA_TRAT || BADGER_VELKA_TRAT
/// cesky
[Description("nikdy")] Never = 0,
[Description("vždy")] Always = 1,
[Description("na obrazovku")] OnScreen = 2,
[Description("interně")] Internal = 3,
2016-06-22 14:54:16 +00:00
#elif IPERLST || IPERLST_SPECIAL || SLM_50
/// slovensky
[Description("nikdy")] Never = 0,
[Description("vždy")] Always = 1,
[Description("na obrazovku")] OnScreen = 2,
[Description("interne")] Internal = 3,
#else
[Description("Never")] Never = 0,
[Description("Always")] Always = 1,
[Description("On screen")] OnScreen = 2,
[Description("Internal")] Internal = 3,
#endif
Count
2016-02-25 17:04:18 +00:00
}
public enum TestRedType
{
Fix,
/// etc.
Count,
}
public enum FQC1
{
FQC1,
FQP1,
Count,
}
public enum Progress
{
JustStarted,
TransitionBefore,
SwitchingFlowDetection,
FlowSetting,
Test,
TransitionAfter,
Completed,
Count,
}
public enum Device
{
Screen,
Printer,
Disk,
}
public enum PageOrientation
{
Portrait,
Landscape,
Count,
}
public enum UnitsVolume
{
Liter,
CubicMtr,
}
2015-12-31 21:48:22 +00:00
/// <summary> Possible modes of operation of components and devices. </summary>
public enum DebugMode
{
DetectedOff = -2,
DetectedOn = -1,
Normal = 0, /// Normal operation
AutoDetect, /// The component (device) will be auto-detected
FailureDuringOperation, /// Failure during operation -> disabled
Off, /// The component is off
Record,
Reply,
Simulate, /// Test bench simulation, this mode does not require any hardware
Inherit,
Count,
}
public enum LogLevel
{
Off,
Fatal,
Error,
Warn,
Info,
Debug,
All,
Count,
}
2015-12-31 21:48:22 +00:00
/// <summary> Arrangement of tests </summary>
public enum TestsArrangement
{
Rows,
Columns,
}
2015-12-31 21:48:22 +00:00
/// <summary> Arrangement of meters </summary>
public enum MetersArrangement
{
Vertically,
Horizontally,
}
public enum Alignment
{
Left,
Center,
Right,
Justified,
Count
}
}