Можно добавить пользовательскую таблицу на диалоговом окне маски программно и управлять его свойствами с помощью интерфейса командной строки. Для получения информации о составлении пользовательской таблицы из Редактора Маски смотрите, Настраивают Таблицы для Маскированных блоков.
Можно добавить пользовательский табличный параметр в диалоговое окно маски с помощью этих команд:
% Mask Object maskObj = Simulink.Mask.create(gcb); % Add custom table parameter tableParam = maskObj.addParameter( 'Name', 'myTable', 'Type', 'customtable', 'Evaluate', 'off' ); % Add values to the table tableParam.Value = "{ 'sig1', 'Input', 'Inherit', 'Inherit', 'on', 'Inherit'; 'sig2', ... 'Input', 'Inherit', 'Inherit', 'on', 'Inherit'; 'sig3', 'Output', '10', 'Inherit', 'off',... 'Inherit'; 'sig4', 'Output', '10', 'Inherit', 'off', 'Inherit' }";
Можно добавить столбцы в пользовательскую таблицу с помощью команды addColumn
:
tableControl = maskObj.getDialogControl('myTable'); tableControl.addColumn( 'Name', 'HDL Name', 'Type', 'edit' ); tableControl.addColumn( 'Name', 'I/O Mode', 'Type', 'popup', 'TypeOptions', {'Input', 'Output'} );
Можно выбрать значение ячейки, если оно имело изменение и устанавливало новое значение для ячейки в таблице с помощью этих команд:
% get values of the changed cell changedCells = tableControl.getChangedCells(); % get value of a particular cell tableControl.getValue( [rowIdx colIdx] ); % Set value for a particular cell tableControl.setValue( [rowIdx colIdx], 'Value' );
Можно вставить, удалить, подкачать и получить значение определенной строки в пользовательской таблице. Используемые команды:
% add a row to the table tableControl.addRow( 'sig5', 'Input', 'Inherit', 'Inherit', 'on', 'Inherit' ) % Insert a row at a specific location in the table tableControl.insertRow( rowIndex, 'insertSig4', 'Input', 'Inherit', 'Inherit', 'on', 'Inherit' ) % Remove a particular row tableControl.removeRow( rowIndex ) % Swap two rows tableControl.swapRows( rowIndex1, rowIndex2 ) tableControl.getSelectedRows()
ans = 3 4
Можно вставить, удалить, подкачать и получить значение определенного столбца в пользовательской таблице. Используемые команды:
% add a column to the table tableControl.addColumn( 'Name', 'HDL Name', 'Type', 'edit' ); % Insert a column at a particular location in the table tableControl.insertColumn( columnIndex, 'Name', 'HDL Name', 'Type', 'edit' ); % Remove a column from the table tableControl.removeColumn( columnIndex ); tableControl.getColumn( columnIndex ); For example, tableControl.getColumn( 4 )
ans = TableParamColumnInfo with properties: Name: 'Data Type' Type: 'popup' Enabled: 'on' TypeOptions: {4×1 cell}
Можно использовать set_param
и команды get_param
, чтобы установить или получить значения пользовательского табличного параметра, который вы создали в диалоговом окне маски.
get_param( gcb, 'myTable' )
ans = '{ 'sig1', 'Input', 'Inherit', 'Inherit',... 'on', 'Inherit'; 'sig2', 'Input', 'Inherit', 'Inherit',... 'on', 'Inherit'; 'sig3', 'Output', '10', 'Inherit', 'off',... 'Inherit'; 'sig4', 'Output', '10', 'Inherit', 'off', 'Inherit' }'
set_param( gcb, 'myTable', "{ 'Hello', 'Input', 'Inherit', 'Inherit',... 'on', 'Inherit'; 'sig2', 'Input', 'Inherit', 'Inherit', 'on', 'Inherit'; ... 'sig3', 'Output', '10', 'Inherit', 'off', 'Inherit'; 'sig4', 'Output', '10',... 'Inherit', 'off', 'Inherit' }" )
Настройте таблицы для маскированных блоков | SlexMaskingCustomTable