DIS 2.23
New features
IDE
File editors: New menu command ‘Copy File Content to Clipboard’ [ID 23663]
When you right-click in the XML editor or the C# editor, you can now use the new Copy File Content to Clipboard command to copy the entire content of the file you are editing to the Windows clipboard, without needing to select all text first.
Also, from now on, DIS menu items that are not available will no longer appear grayed out. They will now be hidden instead.
Note
The Copy File Content to Clipboard command is not available when you are editing a Protocol.xml file. To copy the content of a protocol file, use the Copy Protocol to Clipboard command instead.
DIS Macros: New example macro ‘Basic UI’ [ID 23667]
In the DIS Macros tool window, a new ‘Basic UI’ example macro can now be found in the DIS Macros > Examples folder.
This macro shows you how to create a basic user interface using WPF code.
DIS now supports C# version 6 and above [ID 23745]
Up to now, DIS only supported C# version 4. From now on, it also supports C# version 6 and above.
When you open a Protocol.xml file of which the DMA version specified in the Protocol.Compliancies.MinimumRequired tag is equal to or higher than “9.6.11”, DIS will now set the language version of the C# projects to one of the following versions:
- C# 6.0 (when using Visual Studio 2015)
- C# 7.3 (when using Visual Studio 2017 or above)
Note
When no minimum required DMA version is specified in the protocol, then by default DIS will set the language version of the C# projects to 4.0.
‘Check for updates...’ command in DIS menu [ID 23883]
The Check for updates... command has now been moved from the Settings window to the DIS menu.
Also, in the Info tab page of the Settings window, you can now click Release notes... to open the release notes document of the DIS version you are using.
DIS Settings - Class Library: New ‘Enable Class Library feature’ option [ID 23791]
In the Class Library tab page of the DIS Settings window, it is now possible to either enable or disable the Class Library feature.
Table Editor: Table columns can now be deleted by pressing the DELETE key [ID 23957]
When configuring a table in the table editor, it is now possible to delete columns by pressing the DELETE key.
To delete one or more columns from a table, do the following:
In the All Columns section, select the column(s) you want to delete.
In the confirmation box, click Yes.
Validator
New and updated checks and error messages [ID 23509]
The following checks and error messages have been added or updated.
ID | Check | Error message |
---|---|---|
18.1.1 | CheckParameterIdAttribute | Missing attribute 'TreeControl@parameterId'. |
18.1.2 | CheckParameterIdAttribute | Empty attribute 'TreeControl@parameterId'. |
18.1.3 | CheckParameterIdAttribute | Untrimmed attribute 'TreeControl@parameterId'. Current value '{currentValue}'. |
18.1.4 | CheckParameterIdAttribute | Invalid value '{invalidValue}' in attribute 'TreeControl@parameterId'. |
18.1.5 | CheckParameterIdAttribute | Attribute 'TreeControl@parameterId' references a non-existing 'Param' with ID '{paramId}'. |
18.2.1 | CheckPathAttribute | Empty attribute 'Hierarchy@path' in TreeControl '{treeControlPid}'. |
18.2.2 | CheckPathAttribute | Untrimmed attribute 'Hierarchy@path' in TreeControl '{treeControlPid}'. Current value '{untrimmedValue}'. |
18.2.3 | CheckPathAttribute | Invalid value '{pathValue}' in attribute 'Hierarchy@path'. TreeControl ID '{treeControlPid}'. |
18.2.4 | CheckPathAttribute | Attribute 'Hierarchy@path' references non-existing IDs. TreeControl ID '{treeControlPid}'. |
18.2.5 | CheckPathAttribute | Attribute 'Hierarchy@path' references a non-existing 'Table' with PID '{paramId}'. TreeControl ID '{treeControlPid}'. |
18.2.6 | CheckPathAttribute | Duplicate ID '{duplicateId}' in 'Hierarchy@path'. TreeControl ID '{treeControlPid}'. |
18.2.7 | CheckPathAttribute | Untrimmed value '{untrimmedValue}' in attribute 'Hierarchy@path'. |
18.2.8 | CheckPathAttribute | Invalid value '{invalidPart}' in attribute 'Hierarchy@path'. |
18.3.1 | CheckIdAttribute | Missing attribute 'Table@id' in TreeControl '{treeControlPid}'. |
18.3.2 | CheckIdAttribute | Empty attribute 'Table@id' in TreeControl '{treeControlPid}'. |
18.3.3 | CheckIdAttribute | Untrimmed attribute 'Table@id' in TreeControl '{treeControlPid}'. Current value '{untrimmedValue}'. |
18.3.4 | CheckIdAttribute | Invalid value '{tableId}' in attribute 'Table@id'. TreeControl ID '{treeControlPid}'. |
18.3.5 | CheckIdAttribute | Attribute 'Hierarchy/Table@id' references a non-existing 'Table' with PID '{tablePid}'. |
18.4.1 | CheckParentAttribute | Missing attribute 'Table@parent' in TreeControl '{treeControlPid}'. |
18.4.2 | CheckParentAttribute | Excessive attribute 'Table@parent' in TreeControl '{treeControlPid}'. |
18.4.3 | CheckParentAttribute | Empty attribute 'Table@parent' in TreeControl '{treeControlPid}'. |
18.4.4 | CheckParentAttribute | Untrimmed attribute 'Table@parent' in TreeControl '{treeControlPid}'. Current value '{untrimmedValue}'. |
18.4.5 | CheckParentAttribute | Invalid value '{attributeValue}' in attribute 'Table@parent'. TreeControl ID '{treeControlPid}'. |
18.4.6 | CheckParentAttribute | Attribute 'Hierarchy/Table@parent' references a non-existing 'Table' with PID '{tablePid}'. |
18.5.1 | CheckConditionAttribute | Empty attribute 'Table@condition' in TreeControl '{treeControlPid}'. |
18.5.2 | CheckConditionAttribute | Untrimmed value '{untrimmedColumnPid}' in attribute 'Table@condition' in TreeControl '{treeControlId}'. |
18.5.3 | CheckConditionAttribute | Invalid value '{attributeValue}' in attribute 'Table@condition'. TreeControl ID '{treeControlPid}'. |
18.5.4 | CheckConditionAttribute | Attribute 'Hierarchy/Table@condition' references a non-existing 'Column' with PID '{columnPid}'. |
18.5.5 | CheckConditionAttribute | Invalid option '{optionName}' in attribute 'Table@condition'. TreeControl ID '{treeControlId}'. Current Value '{optionValue}'. |
18.5.6 | CheckConditionAttribute | Missing value '{valueName}' in attribute 'Table@condition'. TreeControl ID '{treeControlId}'. |
18.6.1 | CheckDetailsTableIdAttribute | Missing attribute 'LinkedDetails@detailsTableId' in TreeControl '{treeControlPid}'. |
18.6.2 | CheckDetailsTableIdAttribute | Empty attribute 'LinkedDetails@detailsTableId' in TreeControl '{treeControlPid}'. |
18.6.3 | CheckDetailsTableIdAttribute | Untrimmed attribute 'LinkedDetails@detailsTableId' in TreeControl '{treeControlPid}'. Current value '{untrimmedValue}'. |
18.6.4 | CheckDetailsTableIdAttribute | Invalid value '{attributeValue}' in attribute 'LinkedDetails@detailsTableId'. TreeControl ID '{treeControlPid}'. |
18.6.5 | CheckDetailsTableIdAttribute | Attribute 'ExtraDetails/LinkedDetails@detailsTableId' references a non-existing 'Table' with PID '{tablePid}'. |
18.7.1 | CheckDiscreetColumnIdAttribute | Missing attribute 'LinkedDetails@discreetColumnId' in TreeControl '{treeControlPid}'. |
18.7.2 | CheckDiscreetColumnIdAttribute | Empty attribute 'LinkedDetails@discreetColumnId' in TreeControl '{treeControlPid}'. |
18.7.3 | CheckDiscreetColumnIdAttribute | Untrimmed attribute 'LinkedDetails@discreetColumnId' in TreeControl '{treeControlPid}'. Current value '{untrimmedValue}'. |
18.7.4 | CheckDiscreetColumnIdAttribute | Invalid value '{attributeValue}' in attribute 'LinkedDetails@discreetColumnId'. TreeControl ID '{treeControlPid}'. |
18.7.5 | CheckDiscreetColumnIdAttribute | Attribute 'ExtraDetails/LinkedDetails@discreetColumnId' references a non-existing 'Column' with PID '{columnPid}'. |
18.8.1 | CheckParameterAttribute | Missing attribute 'Tab@parameter' in TreeControl '{treeControlPid}'. |
18.8.2 | CheckParameterAttribute | Empty attribute 'Tab@parameter' in TreeControl '{treeControlPid}'. |
18.8.3 | CheckParameterAttribute | Untrimmed attribute 'Tab@parameter' in TreeControl '{treeControlPid}'. Current value '{untrimmedValue}'. |
18.8.4 | CheckParameterAttribute | Invalid value '{attributeValue}' in attribute 'Tab@parameter'. TreeControl ID '{treeControlPid}'. |
18.8.5 | CheckParameterAttribute | Attribute 'ExtraTabs/Tab@parameter' references a non-existing 'Column' with PID '{columnPid}'. |
18.9.1 | CheckTableIdAttribute | Missing attribute 'Tab@tableId' in TreeControl '{treeControlPid}'. |
18.9.2 | CheckTableIdAttribute | Empty attribute 'Tab@tableId' in TreeControl '{treeControlPid}'. |
18.9.3 | CheckTableIdAttribute | Untrimmed attribute 'Tab@tableId' in TreeControl '{treeControlPid}'. Current value '{untrimmedValue}'. |
18.9.4 | CheckTableIdAttribute | Invalid value '{attributeValue}' in attribute 'Tab@tableId'. TreeControl ID '{treeControlPid}'. |
18.9.5 | CheckTableIdAttribute | Attribute 'ExtraTabs/Tab@tableId' references a non-existing 'Table' with PID '{tablePid}'. |
18.10.1 | CheckHiddenColumnsTag | Empty tag 'HiddenColumns' in TreeControl '{treeControlPid}'. |
18.10.2 | CheckHiddenColumnsTag | Untrimmed tag 'HiddenColumns' in TreeControl '{treeControlPid}'. Current value '{untrimmedValue}'. |
18.10.3 | CheckHiddenColumnsTag | Invalid value '{hiddenColumnsValue}' in tag 'HiddenColumns'. TreeControl ID '{treeControlPid}'. |
18.10.4 | CheckHiddenColumnsTag | Tag 'HiddenColumns' references non-existing IDs. TreeControl ID '{treeControlPid}'. |
18.10.5 | CheckHiddenColumnsTag | Tag 'HiddenColumns' references a non-existing 'Column' with PID '{columnPid}'. TreeControl ID '{treeControlPid}'. |
18.10.6 | CheckHiddenColumnsTag | Duplicate ID '{duplicateId}' in 'HiddenColumns'. TreeControl ID '{treeControlPid}'. |
18.10.7 | CheckHiddenColumnsTag | Invalid value '{invalidPart}' in tag 'HiddenColumns'. |
18.10.8 | CheckHiddenColumnsTag | Untrimmed value '{untrimmedValue}' in tag 'HiddenColumns'. |
18.11.1 | CheckOverrideDisplayColumnsTag | Empty tag 'OverrideDisplayColumns' in TreeControl '{treeControlPid}'. |
18.11.2 | CheckOverrideDisplayColumnsTag | Untrimmed tag 'OverrideDisplayColumns' in TreeControl '{treeControlPid}'. Current value '{untrimmedValue}'. |
18.11.3 | CheckOverrideDisplayColumnsTag | Invalid value '{attributeValue}' in tag 'OverrideDisplayColumns'. TreeControl ID '{treeControlPid}'. |
18.11.4 | CheckOverrideDisplayColumnsTag | Tag 'OverrideDisplayColumns' references non-existing IDs. TreeControl ID '{treeControlPid}'. |
18.11.5 | CheckOverrideDisplayColumnsTag | Tag 'OverrideDisplayColumns' references a non-existing 'Column' with PID '{columnPid}'. TreeControl ID '{treeControlPid}'. |
18.11.6 | CheckOverrideDisplayColumnsTag | Duplicate ID '{duplicateId}' in 'OverrideDisplayColumns'. TreeControl ID '{treeControlPid}'. |
18.11.7 | CheckOverrideDisplayColumnsTag | Duplicate OverrideDisplayColumns IDs for Table '{tablePid}'. TreeControl ID '{treeControlPid}'. |
18.11.8 | CheckOverrideDisplayColumnsTag | Untrimmed value '{untrimmedValue}' in tag 'OverrideDisplayColumns'. |
18.11.9 | CheckOverrideDisplayColumnsTag | Invalid value '{invalidPart}' in tag 'OverrideDisplayColumns'. |
18.11.10 | CheckOverrideDisplayColumnsTag | Duplicate OverrideDisplayColumns ID '{duplicateId}'. |
18.12.1 | CheckOverrideIconColumnsTag | Empty tag 'OverrideIconColumns' in TreeControl '{treeControlPid}'. |
18.12.2 | CheckOverrideIconColumnsTag | Untrimmed tag 'OverrideIconColumns' in TreeControl '{treeControlPid}'. Current value '{untrimmedValue}'. |
18.12.3 | CheckOverrideIconColumnsTag | Invalid value '{overrideIconColumnsValue}' in tag 'OverrideIconColumns'. TreeControl ID '{treeControlPid}'. |
18.12.4 | CheckOverrideIconColumnsTag | Tag 'OverrideIconColumns' references non-existing IDs. TreeControl ID '{treeControlPid}'. |
18.12.5 | CheckOverrideIconColumnsTag | Tag 'OverrideIconColumns' references a non-existing 'Column' with PID '{columnPid}'. TreeControl ID '{treeControlPid}'. |
18.12.6 | CheckOverrideIconColumnsTag | Duplicate ID '{duplicateId}' in 'OverrideIconColumns'. TreeControl ID '{treeControlPid}'. |
18.12.7 | CheckOverrideIconColumnsTag | Duplicate OverrideIconColumns IDs for Table '{tablePid}'. TreeControl ID '{treeControlPid}'. |
18.12.8 | CheckOverrideIconColumnsTag | Untrimmed value '{untrimmedValue}' in tag 'OverrideIconColumns'. |
18.12.9 | CheckOverrideIconColumnsTag | Invalid value '{invalidPart}' in tag 'OverrideIconColumns'. |
18.12.10 | CheckOverrideIconColumnsTag | Duplicate OverrideIconColumns ID '{duplicateId}'. |
18.13.1 | CheckReadonlyColumnsTag | Empty tag 'ReadonlyColumns' in TreeControl '{treeControlPid}'. |
18.13.2 | CheckReadonlyColumnsTag | Untrimmed tag 'ReadonlyColumns' in TreeControl '{treeControlPid}'. Current value '{untrimmedValue}'. |
18.13.3 | CheckReadonlyColumnsTag | Invalid value '{readonlyColumnsValue}' in tag 'ReadonlyColumns'. TreeControl ID '{treeControlPid}'. |
18.13.4 | CheckReadonlyColumnsTag | Tag 'ReadonlyColumns' references non-existing IDs. TreeControl ID '{treeControlPid}'. |
18.13.5 | CheckReadonlyColumnsTag | Tag 'ReadonlyColumns' references a non-existing 'Column' with PID '{columnPid}'. TreeControl ID '{treeControlPid}'. |
18.13.6 | CheckReadonlyColumnsTag | Duplicate ID '{duplicateId}' in 'ReadonlyColumns'. TreeControl ID '{treeControlPid}'. |
18.13.7 | CheckReadonlyColumnsTag | Untrimmed value '{untrimmedValue}' in tag 'ReadonlyColumns'. |
18.13.8 | CheckReadonlyColumnsTag | Invalid value '{invalidPart}' in tag 'ReadonlyColumns'. |
XML Schema
Protocol Schema: New elements [ID 23608][ID 23611]
The Protocol XML schema now supports the following elements:
- Protocol.Params.Param.Dashboard
- Protocol.Params.Param.Measurement.Discreets.Discreet.Tooltip
Protocol Schema: ArrayOptions.ColumnOption now preferred above ArrayOptions.ColumnOptions.ColumnOption [ID 23741]
When defining a table in a Protocol.xml file, there are two ways to specify <ColumnOption> elements:
Directly under the <ArrayOptions> element. Example:
<ArrayOptions ...> <ColumnOption ... /> <ColumnOption ... /> ... </ArrayOptions>
Grouped under a <ColumnOptions> element. Example:
<ArrayOptions ...> <ColumnOptions> <ColumnOption ... /> <ColumnOption ... /> ... </ColumnOptions> </ArrayOptions>
In Visual Studio, up to now, when you used the AutoComplete feature after entering part of an <ArrayOptions> element, it would automatically produce a structure with a <ColumnOptions> group element. From now on, it will produce a structure without a <ColumnOptions> group element.
Changes
Enhancements
Class Library: Element properties will only be retrieved when needed [ID 23514]
From now on, element properties will only be retrieved when needed.
Class Library: Exception thrown after detecting an element with duplicate properties will now also contain the name of the ID of the element [ID 23515]
The exception that is thrown when an element with duplicate properties is detected will now also contain the name and the ID of the element in question.
Fixes
Class Library: View name would be retrieved when it was already known [ID 22303]
Up to now, in some cases, the name of a view would be retrieved when it was already known. From now on, when the name of a view is already known, it will no longer be retrieved a second time.