Управляйте пользовательскими таблицами программно

Можно программно добавить пользовательскую таблицу в диалоговое окно маски и управлять ее свойствами с помощью интерфейса командной строки. Дополнительные сведения о создании пользовательской таблицы из редактора масок см. в разделе Настройка таблиц для маскированных блоков.

Добавление пользовательского параметра таблицы

Вы можете добавить пользовательский параметр таблицы в диалоговое окно маски с помощью следующих команд:

% Mask Object
maskObj = Simulink.Mask.create(gcb); 

% Add custom table parameter
tableParam = maskObj.addParameter( 'Name', 'myTable', 'Type', 'customtable' );

% Add values to the table
tableParam.Value = join( [ "{'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'} );
tableControl.addColumn( 'Name', 'Sample Time', 'Type', 'edit' );
tableControl.addColumn( 'Name', 'Data Type', 'Type', 'popup', 'TypeOptions', {'Inherit', 'FixedPoint', 'Double', 'Single'} );
tableControl.addColumn( 'Name', 'Sign', 'Type', 'checkbox' );
tableControl.addColumn( 'Name', 'Fraction Length', 'Type', 'edit' );

Установка и получение свойств таблицы

Можно выбрать значение камеры, если оно имело изменение, и задать новое значение для камеры в таблице с помощью следующих команд:

 % 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' );
 

Установите и получите спецификации уровня камеры

Можно задать и выбрать значение конкретной камеры в пользовательской таблице. Используются следующие команды:

% set value for a particular table cell
tableControl.setTableCell( [rowIdx colIdx], 'Type', 'checkbox', 'Value', 'off', 'Enabled', 'off' )

% get value from a particular table cell
tableCell = tableControl.getTableCell( [rowIdx colIdx] )
tableCell = 

  CustomTableParamCellObject with properties:

          Value: 'Inherit'
           Type: 'popup'
        Enabled: 'off'
    TypeOptions: {4×1 cell}

tableCell.Value = 'Value'

Примечание

  • The setTableCell и getTableCell API должны использоваться как часть обратных вызовов параметров маски при получении количества строк в таблице.

  • The setTableCell и getTableCell API отображает правильный результат только при открытии диалогового окна с параметром пользовательской таблицы.

Редактирование строк в пользовательской таблице

Можно вставлять, удалять, заменять и получать значение определенной строки в пользовательской таблице. Используются следующие команды:

% 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', "{ 'sig1', 'Input', 'Inherit', 'Inherit', 'on', 'Inherit' }" )

Похожие темы