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:
@@ -225,11 +225,9 @@ public static class RawTagCsvMapper
|
||||
arrayLength = (uint)n;
|
||||
}
|
||||
|
||||
if (TagArrayConfig.Validate(isArray, arrayLength) is { } arrErr)
|
||||
{
|
||||
return Invalid(rowNumber, cells, arrErr);
|
||||
}
|
||||
|
||||
// No positive-length requirement (lmxopcua#770): IsArray with a blank/0 ArrayLength is a
|
||||
// variable-length array (ArrayDimensions=[0]), which browse-commit and the composer both produce and
|
||||
// honour, so the export of such a tag must re-import. TagArrayConfig.Validate stays the editor's rule.
|
||||
json = TagArrayConfig.Set(json, isArray, arrayLength);
|
||||
|
||||
// Alarm flags — an alarm is authored iff Alarm.AlarmType is present.
|
||||
|
||||
Reference in New Issue
Block a user