test(mqtt): Sparkplug array metrics in the simulator + live gate (lmxopcua#770)
The simulator now packs Int32/Boolean/Float/Double/String arrays per the Sparkplug B spec (independent of the driver codec) and seeds Profile, Flags and Curve in the standalone catalog. SparkplugLiveTests gains a live test that asserts typed int[]/bool[]/float[] values from the birth, a changed vector (including a different Boolean length) from alias-only DATA, the read path, and BadTypeMismatch for an array metric bound without isArray. Run against a throwaway local Mosquitto; mutation-checked (scalar binding / seed removed). Claude-Session: https://claude.ai/code/session_01GT67AEHd2Acv1YPwGfXEoV
This commit is contained in:
+6
-1
@@ -75,7 +75,12 @@ foreach (var node in nodes)
|
||||
new SparkplugMetricSeed("Pressure", 2, DataType.Double, 101.325d),
|
||||
new SparkplugMetricSeed("Count", 3, DataType.Int32, -42),
|
||||
new SparkplugMetricSeed("Running", 4, DataType.Boolean, true),
|
||||
new SparkplugMetricSeed("Serial", 5, DataType.String, $"{node}-001"));
|
||||
new SparkplugMetricSeed("Serial", 5, DataType.String, $"{node}-001"),
|
||||
|
||||
// Array metrics (lmxopcua#770): bind with "isArray": true.
|
||||
new SparkplugMetricSeed("Profile", 6, DataType.Int32Array, new[] { 1, -2, 300000 }),
|
||||
new SparkplugMetricSeed("Flags", 7, DataType.BooleanArray, new[] { true, false, true, true, false, false, true, false, true }),
|
||||
new SparkplugMetricSeed("Curve", 8, DataType.FloatArray, new[] { 0.5f, 1.25f, -2.5f }));
|
||||
|
||||
edge.SetDeviceMetrics(
|
||||
"Filler1",
|
||||
|
||||
Reference in New Issue
Block a user