public void Add(string key, object value, StatusItemValueStatus status = StatusItemValueStatus.Unknown, bool plotEnabled = false)
 => Add(new StatusItemValue(key, value, status, plotEnabled));
Exemple #2
0
 public StatusPropertyAttribute(string name, StatusItemValueStatus status)
 {
     Name   = name;
     Status = status;
 }
Exemple #3
0
 public StatusPropertyAttribute(string name, StatusItemValueStatus status, bool plotEnabled)
 {
     Name        = name;
     Status      = status;
     PlotEnabled = plotEnabled;
 }
Exemple #4
0
        public StatusItemValueItem(string name, object value, StatusItemValueStatus status, bool plot)
        {
            Name = name;
            if (value == null)
            {
                Value    = null;
                RawValue = null;
                Type     = StatusItemValueType.Text;
                plot     = false;
            }
            else
            {
                switch (value)
                {
                case int intValue:
                    Type     = StatusItemValueType.Number;
                    RawValue = value;
                    Value    = intValue.ToString("0.####", CultureInfo.InvariantCulture);
                    break;

                case decimal decValue:
                    Type     = StatusItemValueType.Number;
                    RawValue = value;
                    Value    = decValue.ToString("0.####", CultureInfo.InvariantCulture);
                    break;

                case double doubleValue:
                    Type     = StatusItemValueType.Number;
                    RawValue = value;
                    Value    = doubleValue.ToString("0.####", CultureInfo.InvariantCulture);
                    break;

                case float floatValue:
                    Type     = StatusItemValueType.Number;
                    RawValue = value;
                    Value    = floatValue.ToString("0.####", CultureInfo.InvariantCulture);
                    break;

                case long longValue:
                    Type     = StatusItemValueType.Number;
                    RawValue = value;
                    Value    = longValue.ToString("0.####", CultureInfo.InvariantCulture);
                    break;

                case short shortValue:
                    Type     = StatusItemValueType.Number;
                    RawValue = value;
                    Value    = shortValue.ToString("0.####", CultureInfo.InvariantCulture);
                    break;

                case byte byteValue:
                    Type     = StatusItemValueType.Number;
                    RawValue = value;
                    Value    = byteValue.ToString("0.####", CultureInfo.InvariantCulture);
                    break;

                case uint intValue:
                    Type     = StatusItemValueType.Number;
                    RawValue = value;
                    Value    = intValue.ToString("0.####", CultureInfo.InvariantCulture);
                    break;

                case ulong longValue:
                    Type     = StatusItemValueType.Number;
                    RawValue = value;
                    Value    = longValue.ToString("0.####", CultureInfo.InvariantCulture);
                    break;

                case ushort shortValue:
                    Type     = StatusItemValueType.Number;
                    RawValue = value;
                    Value    = shortValue.ToString("0.####", CultureInfo.InvariantCulture);
                    break;

                case sbyte byteValue:
                    Type     = StatusItemValueType.Number;
                    RawValue = value;
                    Value    = byteValue.ToString("0.####", CultureInfo.InvariantCulture);
                    break;

                case DateTime date:
                    Type     = StatusItemValueType.Date;
                    RawValue = date.ToString("o");
                    Value    = date.TimeOfDay.TotalSeconds > 0 ? date.ToString("s") : date.ToString("yyyy-MM-dd");
                    break;

                case TimeSpan time:
                    Type     = StatusItemValueType.Time;
                    RawValue = time.TotalMilliseconds;
                    Value    = time.ToString();
                    break;

                default:
                    Type     = StatusItemValueType.Text;
                    RawValue = value.ToString();
                    Value    = value.ToString();
                    plot     = false;
                    break;
                }
            }
            Status = status;
            Plot   = plot;
        }