fix(authoring): CSV import accepts variable-length arrays; Plain MQTT isArray warns at authoring (lmxopcua#770)
CSV: IsArray with blank/0 ArrayLength is the variable-length shape browse-commit and the composer produce, so its own export now re-imports. Plain MQTT: MqttTagDefinitionFactory.Inspect (the driver's parse, consulted by the authoring inspector) now advises when isArray is set on a Plain-shaped tag; Sparkplug-shaped blobs stay quiet. Live Sparkplug array test and SDK reflection items remain open. Claude-Session: https://claude.ai/code/session_01GT67AEHd2Acv1YPwGfXEoV
This commit is contained in:
@@ -68,6 +68,18 @@ public sealed class RawTagCsvRoundTripTests
|
||||
AssertRoundTrip(DriverTypeNames.Galaxy, new[] { galaxy });
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Variable_length_array_round_trips_lmxopcua_770()
|
||||
{
|
||||
// IsArray with no ArrayLength is what browse-commit and the composer produce (ArrayDimensions=[0]);
|
||||
// the CSV import used to reject its own export.
|
||||
var variable = new RawCsvExportTag(
|
||||
null, "profile", "Float", TagAccessLevel.Read, false, null,
|
||||
"""{"nodeId":"nsu=urn:plc;s=Profile","isArray":true}""");
|
||||
|
||||
AssertRoundTrip(DriverTypeNames.OpcUaClient, new[] { variable });
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Export_header_matches_the_driver_column_dictionary()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user