Skip to content

Commit 2c0454f

Browse files
committed
More reworks.
1 parent ea85dc3 commit 2c0454f

File tree

9 files changed

+513
-252
lines changed

9 files changed

+513
-252
lines changed

src/SparkplugNet/VersionA/Data/KuraMetric.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public KuraMetric()
2828
/// </summary>
2929
/// <param name="dataType">The data type.</param>
3030
/// <param name="value">The value.</param>
31-
public KuraMetric(DataType dataType, object value)
31+
public KuraMetric(VersionADataTypeEnum dataType, object value)
3232
{
3333
this.SetValue(dataType, value);
3434
}
@@ -39,7 +39,7 @@ public KuraMetric(DataType dataType, object value)
3939
/// <param name="name">The name.</param>
4040
/// <param name="dataType">The data type.</param>
4141
/// <param name="value">The value.</param>
42-
public KuraMetric(string name, DataType dataType, object value)
42+
public KuraMetric(string name, VersionADataTypeEnum dataType, object value)
4343
{
4444
this.Name = name;
4545
this.SetValue(dataType, value);

src/SparkplugNet/VersionA/Data/ValueBaseVersionA.cs

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ namespace SparkplugNet.VersionA.Data;
44
/// Base class containing values using Sparkplug Version A.
55
/// </summary>
66
[Obsolete("Sparkplug version A is obsolete since version 3 of the specification, use version B where possible.")]
7-
public abstract class ValueBaseVersionA : ValueBase<DataType>
7+
public abstract class ValueBaseVersionA : ValueBase<VersionADataTypeEnum>
88
{
99
/// <summary>
1010
/// Gets or sets the integer value.
@@ -26,13 +26,13 @@ public abstract class ValueBaseVersionA : ValueBase<DataType>
2626
/// </summary>
2727
public override object? Value => this.DataType switch
2828
{
29-
DataType.Double => this.DoubleValue,
30-
DataType.Float => this.FloatValue,
31-
DataType.Int64 => this.LongValue,
32-
DataType.Int32 => this.IntValue,
33-
DataType.Boolean => this.BooleanValue,
34-
DataType.String => this.StringValue,
35-
DataType.Bytes => this.BytesValue,
29+
VersionADataTypeEnum.Double => this.DoubleValue,
30+
VersionADataTypeEnum.Float => this.FloatValue,
31+
VersionADataTypeEnum.Int64 => this.LongValue,
32+
VersionADataTypeEnum.Int32 => this.IntValue,
33+
VersionADataTypeEnum.Boolean => this.BooleanValue,
34+
VersionADataTypeEnum.String => this.StringValue,
35+
VersionADataTypeEnum.Bytes => this.BytesValue,
3636
_ => null
3737
};
3838

@@ -41,29 +41,29 @@ public abstract class ValueBaseVersionA : ValueBase<DataType>
4141
/// </summary>
4242
/// <param name="dataType">Type of the data.</param>
4343
/// <param name="value">The value.</param>
44-
public override IValue<DataType> SetValue(DataType dataType, object? value)
44+
public override IValue<VersionADataTypeEnum> SetValue(VersionADataTypeEnum dataType, object? value)
4545
{
4646
switch (dataType)
4747
{
48-
case DataType.Double:
48+
case VersionADataTypeEnum.Double:
4949
this.DoubleValue = value.ConvertTo<double>();
5050
break;
51-
case DataType.Float:
51+
case VersionADataTypeEnum.Float:
5252
this.FloatValue = value.ConvertTo<float>();
5353
break;
54-
case DataType.Int64:
54+
case VersionADataTypeEnum.Int64:
5555
this.LongValue = value.ConvertTo<long>();
5656
break;
57-
case DataType.Int32:
57+
case VersionADataTypeEnum.Int32:
5858
this.IntValue = value.ConvertTo<int>();
5959
break;
60-
case DataType.Boolean:
60+
case VersionADataTypeEnum.Boolean:
6161
this.BooleanValue = value.ConvertTo<bool>();
6262
break;
63-
case DataType.String:
63+
case VersionADataTypeEnum.String:
6464
this.StringValue = value.ConvertOrDefaultTo<string>();
6565
break;
66-
case DataType.Bytes:
66+
case VersionADataTypeEnum.Bytes:
6767
this.BytesValue = value.ConvertOrDefaultTo<byte[]>();
6868
break;
6969
default:

src/SparkplugNet/VersionA/PayloadConverter.cs

Lines changed: 33 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -112,34 +112,33 @@ public static VersionAProtoBuf.ProtoBufPayload.KuraMetric ConvertVersionAMetric(
112112
/// <returns>The <see cref="VersionAData.KuraMetric"/>.</returns>
113113
public static VersionAData.KuraMetric ConvertVersionAMetric(VersionAProtoBuf.ProtoBufPayload.KuraMetric metric)
114114
{
115-
var newMetric = new VersionAData.KuraMetric
115+
var newMetric = new VersionAData.KuraMetric()
116116
{
117-
Name = metric.Name,
118-
DataType = ConvertVersionADataType(metric.DataType)
117+
Name = metric.Name
119118
};
120119

121120
switch (newMetric.DataType)
122121
{
123-
case VersionAData.DataType.Boolean:
124-
newMetric.BooleanValue = metric.BooleanValue ?? default;
122+
case VersionADataTypeEnum.Boolean:
123+
newMetric.SetValue(VersionADataTypeEnum.Boolean, metric.BooleanValue);
125124
break;
126-
case VersionAData.DataType.Bytes:
127-
newMetric.BytesValue = metric.BytesValue ?? Array.Empty<byte>();
125+
case VersionADataTypeEnum.Bytes:
126+
newMetric.SetValue(VersionADataTypeEnum.Bytes, metric.BytesValue);
128127
break;
129-
case VersionAData.DataType.Double:
130-
newMetric.DoubleValue = metric.DoubleValue ?? default;
128+
case VersionADataTypeEnum.Double:
129+
newMetric.SetValue(VersionADataTypeEnum.Double, metric.DoubleValue);
131130
break;
132-
case VersionAData.DataType.Float:
133-
newMetric.FloatValue = metric.FloatValue ?? default;
131+
case VersionADataTypeEnum.Float:
132+
newMetric.SetValue(VersionADataTypeEnum.Float, metric.FloatValue);
134133
break;
135-
case VersionAData.DataType.Int32:
136-
newMetric.IntValue = metric.IntValue ?? default;
134+
case VersionADataTypeEnum.Int32:
135+
newMetric.SetValue(VersionADataTypeEnum.Int32, metric.IntValue);
137136
break;
138-
case VersionAData.DataType.Int64:
139-
newMetric.LongValue = metric.LongValue ?? default;
137+
case VersionADataTypeEnum.Int64:
138+
newMetric.SetValue(VersionADataTypeEnum.Int64, metric.LongValue);
140139
break;
141-
case VersionAData.DataType.String:
142-
newMetric.StringValue = metric.StringValue ?? string.Empty;
140+
case VersionADataTypeEnum.String:
141+
newMetric.SetValue(VersionADataTypeEnum.String, metric.StringValue);
143142
break;
144143
}
145144

@@ -151,34 +150,34 @@ public static VersionAData.KuraMetric ConvertVersionAMetric(VersionAProtoBuf.Pro
151150
/// </summary>
152151
/// <param name="type">The <see cref="VersionAProtoBuf.ProtoBufPayload.KuraMetric.ValueType"/>.</param>
153152
/// <returns>The <see cref="VersionAData.DataType"/>.</returns>
154-
public static VersionAData.DataType ConvertVersionADataType(VersionAProtoBuf.ProtoBufPayload.KuraMetric.ValueType type)
153+
public static VersionADataTypeEnum ConvertVersionADataType(VersionAProtoBuf.ProtoBufPayload.KuraMetric.ValueType type)
155154
=> type switch
156155
{
157-
VersionAProtoBuf.ProtoBufPayload.KuraMetric.ValueType.Bool => VersionAData.DataType.Boolean,
158-
VersionAProtoBuf.ProtoBufPayload.KuraMetric.ValueType.Bytes => VersionAData.DataType.Bytes,
159-
VersionAProtoBuf.ProtoBufPayload.KuraMetric.ValueType.Double => VersionAData.DataType.Double,
160-
VersionAProtoBuf.ProtoBufPayload.KuraMetric.ValueType.Float => VersionAData.DataType.Float,
161-
VersionAProtoBuf.ProtoBufPayload.KuraMetric.ValueType.Int32 => VersionAData.DataType.Int32,
162-
VersionAProtoBuf.ProtoBufPayload.KuraMetric.ValueType.Int64 => VersionAData.DataType.Int64,
163-
VersionAProtoBuf.ProtoBufPayload.KuraMetric.ValueType.String => VersionAData.DataType.String,
164-
_ => VersionAData.DataType.String
156+
VersionAProtoBuf.ProtoBufPayload.KuraMetric.ValueType.Bool => VersionADataTypeEnum.Boolean,
157+
VersionAProtoBuf.ProtoBufPayload.KuraMetric.ValueType.Bytes => VersionADataTypeEnum.Bytes,
158+
VersionAProtoBuf.ProtoBufPayload.KuraMetric.ValueType.Double => VersionADataTypeEnum.Double,
159+
VersionAProtoBuf.ProtoBufPayload.KuraMetric.ValueType.Float => VersionADataTypeEnum.Float,
160+
VersionAProtoBuf.ProtoBufPayload.KuraMetric.ValueType.Int32 => VersionADataTypeEnum.Int32,
161+
VersionAProtoBuf.ProtoBufPayload.KuraMetric.ValueType.Int64 => VersionADataTypeEnum.Int64,
162+
VersionAProtoBuf.ProtoBufPayload.KuraMetric.ValueType.String => VersionADataTypeEnum.String,
163+
_ => VersionADataTypeEnum.String
165164
};
166165

167166
/// <summary>
168167
/// Gets the version A ProtoBuf value type from the version A data type.
169168
/// </summary>
170169
/// <param name="type">The <see cref="VersionAData.DataType"/>.</param>
171170
/// <returns>The <see cref="VersionAProtoBuf.ProtoBufPayload.KuraMetric.ValueType"/>.</returns>
172-
public static VersionAProtoBuf.ProtoBufPayload.KuraMetric.ValueType ConvertVersionADataType(VersionAData.DataType type)
171+
public static VersionAProtoBuf.ProtoBufPayload.KuraMetric.ValueType ConvertVersionADataType(VersionADataTypeEnum type)
173172
=> type switch
174173
{
175-
VersionAData.DataType.Boolean => VersionAProtoBuf.ProtoBufPayload.KuraMetric.ValueType.Bool,
176-
VersionAData.DataType.Bytes => VersionAProtoBuf.ProtoBufPayload.KuraMetric.ValueType.Bytes,
177-
VersionAData.DataType.Double => VersionAProtoBuf.ProtoBufPayload.KuraMetric.ValueType.Double,
178-
VersionAData.DataType.Float => VersionAProtoBuf.ProtoBufPayload.KuraMetric.ValueType.Float,
179-
VersionAData.DataType.Int32 => VersionAProtoBuf.ProtoBufPayload.KuraMetric.ValueType.Int32,
180-
VersionAData.DataType.Int64 => VersionAProtoBuf.ProtoBufPayload.KuraMetric.ValueType.Int64,
181-
VersionAData.DataType.String => VersionAProtoBuf.ProtoBufPayload.KuraMetric.ValueType.String,
174+
VersionADataTypeEnum.Boolean => VersionAProtoBuf.ProtoBufPayload.KuraMetric.ValueType.Bool,
175+
VersionADataTypeEnum.Bytes => VersionAProtoBuf.ProtoBufPayload.KuraMetric.ValueType.Bytes,
176+
VersionADataTypeEnum.Double => VersionAProtoBuf.ProtoBufPayload.KuraMetric.ValueType.Double,
177+
VersionADataTypeEnum.Float => VersionAProtoBuf.ProtoBufPayload.KuraMetric.ValueType.Float,
178+
VersionADataTypeEnum.Int32 => VersionAProtoBuf.ProtoBufPayload.KuraMetric.ValueType.Int32,
179+
VersionADataTypeEnum.Int64 => VersionAProtoBuf.ProtoBufPayload.KuraMetric.ValueType.Int64,
180+
VersionADataTypeEnum.String => VersionAProtoBuf.ProtoBufPayload.KuraMetric.ValueType.String,
182181
_ => VersionAProtoBuf.ProtoBufPayload.KuraMetric.ValueType.String
183182
};
184183
}

0 commit comments

Comments
 (0)