Управляйте пользовательскими атрибутами для ссылок при помощи Simulink® Requirements™ API

В этом примере показано, как использовать Simulink® Requirements™ API, чтобы создать и справиться, пользовательские атрибуты для ссылки устанавливает и устанавливать значения пользовательского атрибута для ссылок.

Установите набор ссылки

Загрузите crs_req файл требования, который описывает систему круиз-контроля. Найдите набор ссылки под названием crs_req и присвойте его переменной.

slreq.load('crs_req');
ls = slreq.find('Type','LinkSet','Name','crs_req')
ls = 
  LinkSet with properties:

             Description: ''
                Filename: '/tmp/BR2021bd_1751886_255755/mlx_to_docbook2/tp29a5fee1/slrequirements-ex23809012/crs_req.slmx'
                Artifact: '/tmp/BR2021bd_1751886_255755/mlx_to_docbook2/tp29a5fee1/slrequirements-ex23809012/crs_req.slreqx'
                  Domain: 'linktype_rmi_slreq'
                Revision: 8
                   Dirty: 0
    CustomAttributeNames: {'Target Speed Change'}

Удалите пользовательский атрибут

Существует существующий пользовательский атрибут в наборе ссылки под названием Target Speed Change. Удалите пользовательский атрибут и подтвердите результаты путем проверки существующих имен пользовательского атрибута на набор ссылки.

deleteAttribute(ls,'Target Speed Change','Force',true);
ls.CustomAttributeNames
ans =

  0x0 empty cell array

Добавьте пользовательский атрибут каждого типа

Добавьте пользовательский атрибут каждого типа к набору ссылки. Создайте Edit пользовательский атрибут с описанием.

addAttribute(ls,'MyEditAttribute','Edit','Description',['You can enter text as' ...
    ' the custom attribute value.'])

Создайте Checkbox атрибут type и набор его DefaultValue свойство к true.

addAttribute(ls,'MyCheckboxAttribute','Checkbox','DefaultValue',true)

Создайте Combobox пользовательский атрибут. Поскольку правом преимущественной покупки должен быть Unset, добавьте опции 'Unset'AB, и 'C'.

addAttribute(ls,'MyComboboxAttribute','Combobox','List',{'Unset','A','B','C'})

Создайте DateTime пользовательский атрибут.

addAttribute(ls,'MyDateTimeAttribute','DateTime')

Проверяйте пользовательские атрибуты на набор ссылки. Получите информацию о MyComboboxAttribute чтобы видеть опции, вы добавили к Combobox атрибут.

ls.CustomAttributeNames
ans = 1x4 cell
  Columns 1 through 3

    {'MyCheckboxAttr...'}    {'MyComboboxAttr...'}    {'MyDateTimeAttr...'}

  Column 4

    {'MyEditAttribute'}

atrb = inspectAttribute(ls,'MyComboboxAttribute')
atrb = struct with fields:
           name: 'MyComboboxAttribute'
           type: Combobox
    description: ''
           list: {'Unset'  'A'  'B'  'C'}

Установите значение пользовательского атрибута для ссылки

Найдите ссылку в наборе ссылки и установите значение пользовательского атрибута для всех четырех пользовательских атрибутов, которые вы создали.

lk = find(ls,'SID',3);
setAttribute(lk,'MyEditAttribute','Value for edit attribute.');
setAttribute(lk,'MyCheckboxAttribute',false);
setAttribute(lk,'MyComboboxAttribute','B');

Установите MyDateTimeAttribute с желаемой локалью, чтобы гарантировать, что дата и время установлена в правильном формате в системах в других локалях. Смотрите Локаль для получения дополнительной информации.

localDateTimeStr = datestr(datetime('15-Jul-2018 11:00:00','Locale','en_US'),'Local');
setAttribute(lk,'MyDateTimeAttribute',localDateTimeStr);

Просмотрите значения атрибута.

getAttribute(lk,'MyEditAttribute')
ans = 
'Value for edit attribute.'
getAttribute(lk,'MyCheckboxAttribute')
ans = logical
   0

getAttribute(lk,'MyComboboxAttribute')
ans = 
'B'
getAttribute(lk,'MyDateTimeAttribute')
ans = datetime
   15-Jul-2018 11:00:00

Отредактируйте пользовательские атрибуты

После того, как вы зададите пользовательский атрибут для набора ссылки, можно внести ограниченные изменения в пользовательский атрибут.

Добавьте описание в MyCheckboxAttribute и MyComboboxAttribute, затем измените список опций для MyComboboxAttribute. Поскольку вы не можете обновить значение по умолчанию Checkbox атрибуты, можно только обновить описание MyCheckboxAttribute. Просмотрите изменения.

updateAttribute(ls,'MyCheckboxAttribute','Description',['The checkbox value can be' ...
    ' true or false.']);
updateAttribute(ls,'MyComboboxAttribute','Description',['Choose an option from the ' ...
    'list.'],'List',{'Unset','1','2','3'});
atrb2 = inspectAttribute(ls,'MyCheckboxAttribute')
atrb2 = struct with fields:
           name: 'MyCheckboxAttribute'
           type: Checkbox
    description: 'The checkbox value can be true or false.'
        default: 1

atrb3 = inspectAttribute(ls,'MyComboboxAttribute')
atrb3 = struct with fields:
           name: 'MyComboboxAttribute'
           type: Combobox
    description: 'Choose an option from the list.'
           list: {'Unset'  '1'  '2'  '3'}

Найдите Ссылки тем Значением Пользовательского атрибута Соответствия

Ищите набор ссылки все ссылки где 'MyEditAttribute' установлен в 'Value for edit attribute.'

lk2 = find(ls,'MyEditAttribute','Value for edit attribute.')
lk2 = 
  Link with properties:

           Type: 'Derive'
    Description: '#8: Set Switch Detection'
       Keywords: {}
      Rationale: ''
      CreatedOn: 20-May-2017 13:14:40
      CreatedBy: 'itoy'
     ModifiedOn: 25-Aug-2021 21:19:18
     ModifiedBy: 'batserve'
       Revision: 5
            SID: 3
       Comments: [0x0 struct]

Ищите набор ссылки все ссылки где MyCheckboxAttribute установлен в true.

lkArray = find(ls,'MyCheckboxAttribute',true)
lkArray=1×11 object
  1x11 Link array with properties:

    Type
    Description
    Keywords
    Rationale
    CreatedOn
    CreatedBy
    ModifiedOn
    ModifiedBy
    Revision
    SID
    Comments

Ищите набор ссылки все ссылки где MyComboboxAttribute установлен в 'Unset'.

lkArray2 = find(ls,'MyComboboxAttribute','Unset')
lkArray2=1×12 object
  1x12 Link array with properties:

    Type
    Description
    Keywords
    Rationale
    CreatedOn
    CreatedBy
    ModifiedOn
    ModifiedBy
    Revision
    SID
    Comments

Удалите пользовательские атрибуты

Можно использовать deleteAttribute удалить атрибуты. Однако, потому что пользовательские атрибуты, созданные в этом примере, присвоены ссылкам, необходимо установить Force к true удалить атрибуты. Удалите MyEditAttribute и подтвердите изменение.

deleteAttribute(ls,'MyEditAttribute','Force',true);
ls.CustomAttributeNames
ans = 1x3 cell
    {'MyCheckboxAttri...'}    {'MyComboboxAttri...'}    {'MyDateTimeAttri...'}

Добавьте новый пользовательский атрибут, но не устанавливайте значения пользовательского атрибута для ссылок.

addAttribute(ls,'NewEditAttribute','Edit');
ls.CustomAttributeNames
ans = 1x4 cell
  Columns 1 through 3

    {'MyCheckboxAttr...'}    {'MyComboboxAttr...'}    {'MyDateTimeAttr...'}

  Column 4

    {'NewEditAttribute'}

Поскольку NewEditAttribute не используется никакими ссылками, можно удалить его с deleteAttribute установкой Force к false. Подтвердите изменение.

deleteAttribute(ls,'NewEditAttribute','Force',false);
ls.CustomAttributeNames
ans = 1x3 cell
    {'MyCheckboxAttri...'}    {'MyComboboxAttri...'}    {'MyDateTimeAttri...'}

Очистка

Очистите открытые наборы требования и наборы ссылки, и закройте открытые модели, не сохраняя изменения.

slreq.clear;
bdclose all;

Смотрите также

| | | | | |

Связанные примеры

Больше о