Свойства

Свойства: Обзор

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

Другое преимущество свойств состоит в том, что можно задать их с определенными приемлемыми (перечисленными) значениями, или пределы (ограничили), который может проверяться, прежде чем связанные команды отправляются в инструмент.

Компоненты свойства

Поведение свойства задано следующими компонентами.

Установите код

Код set задает код, который выполнен, когда свойство сконфигурировано с функцией set. Код set может быть задан как инструментальная команда, которая будет записана в инструмент, или это может быть задано как код MATLAB.

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

Если код set будет задан как инструментальная команда, то команда, записанная в инструмент, будет инструментальной командой, конкатенированной с пробелом и значением, заданным в вызове set. Например, код set для свойства DisplayContrast задан как инструментальная команда DISplay:CONTRast. Когда функция set ниже будет выполнена, инструментальной командой, отправленной в инструмент, будет DISplay:CONTRast 54.

set(obj, 'DisplayContrast', 54);

Получите код

Код get задает код, который выполнен, когда значение свойства запрошено с функцией get. Код get может быть задан как инструментальная команда, которая будет записана в инструмент, или это может быть задано как программный код MATLAB.

Примечание

Код, используемый для кода get вашего свойства и кода set, не может включать вызовы fclose или функций fopen на интерфейсном объекте, используемом, чтобы получить доступ к вашему инструменту.

Принятые значения свойств

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

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

  • Значение свойства, которое задано как двойное, может быть ограничено, чтобы принять, только удваивается в определенной области значений, или список перечислимых удваивается. Например, свойство могло быть задано, чтобы принять двойное в области значений [0 10], или свойство могло быть задано, чтобы принять одно из значений [1,7,8,10].

  • Значение свойства, которое задано как вектор символов, может быть ограничено, чтобы принять список перечислимых векторов символов. Например, свойство могло быть задано, чтобы принять векторы символов min и max.

Кроме того, свойство может быть задано, чтобы принять несколько определений значения свойства. Например, свойство могло быть задано, чтобы принять двойное расположение между [0 10] или векторами символов min и max.

Зависимости от значения свойства

Значение свойства может зависеть от значения другого свойства. Например, в управлении источником питания, свойство VoltageLevel может быть сконфигурировано к следующим значениям:

  • Двойное расположение между 0 и 10, когда значением свойства VoltageOutputRange является high

  • Двойное расположение между 0 и 5, когда значением свойства VoltageOutputRange является low

Когда VoltageLevel сконфигурирован, значение VoltageOutputRange запрошено. Если значением VoltageOutputRange является high, то VoltageLevel может быть сконфигурирован к двойному расположению между 0 и 10. Если значением VoltageOutputRange является low, то VoltageLevel может быть сконфигурирован к двойному расположению между 0 и 5.

Значение по умолчанию

Значение по умолчанию свойства является значением, что свойство сконфигурировано к тому, когда объект создается.

Значение только для чтения

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

Значение только для чтения

Описание

Никогда

Свойство может быть сконфигурировано в любом случае с функцией set.

В то время как открытый

Свойство может только быть сконфигурировано с функцией set, когда объект устройства не соединяется с инструментом. Объект устройства отключается от инструмента с функцией disconnect.

Всегда

Свойство не может быть сконфигурировано с функцией set.

Помогите тексту

Текст справки предоставляет информацию о свойстве. Эта информация возвращена с функцией instrhelp.

instrhelp(obj, 'PropertyName')

Примеры свойств

Этот раздел включает несколько примеров создания, установки и чтения свойств, с шагами для проверки поведения этих свойств.

Создание дважды ограниченного свойства

Этот пример создает свойство, которое сконфигурирует контраст жидкокристаллического дисплея осциллографа Tektronix® TDS 210. Отображение осциллографа может быть сконфигурировано к значению в области значений [1 100]. В инструментальном редакторе драйвера MATLAB,

  1. Выберите узел Properties в дереве.

  2. Введите имя свойства, DisplayContrast, в текстовом поле Name и нажмите кнопку Add. Имя нового свойства, DisplayContrast, появляется в таблице Property Name.

  3. Расширьте узел Properties в дереве, чтобы отобразить все заданные свойства.

  4. Выберите узел DisplayContrast из свойств, отображенных в дереве.

  5. Выберите вкладку Code, чтобы задать set и команды get для свойства DisplayContrast.

    • Выберите Instrument Commands в поле стиля Свойства.

    • Введите DISplay:CONTRast? в Получить поле текста команды.

    • Введите DISplay:CONTRast в поле текста команды Набора.

  6. Выберите вкладку Property Values, чтобы задать позволенные значения свойств.

    • Выберите Double в поле Data Type.

    • Выберите Bounded в поле Constraint.

    • Введите 1.0 в поле Minimum.

    • Введите 100.0 в поле Maximum.

  7. Выберите вкладку "Общие", чтобы закончить задавать поведение свойства.

    • Введите 50 в текстовое поле Значения по умолчанию.

    • Выберите never в поле Только для чтения.

    • В текстовом поле Help введите Sets or queries the contrast of the LCD display.

  8. Нажмите кнопку Save.

Проверка Поведения Свойства.  Эта процедура проверяет поведение свойства. В этом примере именем драйвера является tektronix_tds210_ex.mdd. Связь с осциллографом Tektronix TDS 210 в первичном адресе 2 сделана через Измерение плата GPIB Корпорации Computing™ в параметре плат 0. Из командной строки MATLAB,

  1. Создайте объект устройства, obj, с помощью функции icdevice.

    g = gpib('mcc', 0, 2);
    obj = icdevice('tektronix_tds210_ex.mdd', g);
  2. Просмотрите свойство DisplayContrast и его текущее значение.

    obj.DisplayContrast
    ans =
        50
  3. Вызов set в списках свойств DisplayContrast значения, на которые можно установить свойство.

    set(obj, 'DisplayContrast')
    [ 1.0 to 100.0 ]
  4. Попытайтесь установить свойство на значения внутри и снаружи заданной области значений.

    obj.DisplayContrast = 17
    obj.DisplayContrast
    ans =
        17
    obj.DisplayContrast = 120
    ??? Invalid value for DisplayContrast. Valid values: a value 
    between 1.0 and 100.0.
  5. Просмотрите справку, которую вы записали.

    instrhelp(obj,'DisplayContrast') 
    DISPLAYCONTRAST  [ 1.0 to 100.0 ]
    Sets or queries the contrast of the LCD display.
  6. Перечислите характеристики DisplayContrast, которые вы задали в Значениях свойств и вкладках "Общие".

    info = propinfo(obj,'DisplayContrast')
    info =
                     Type: 'double'
               Constraint: 'bounded'
          ConstraintValue: [1 100]
             DefaultValue: 50
                 ReadOnly: 'never'
        InterfaceSpecific: 1
  7. Соединитесь со своим инструментом, чтобы проверить код get и set.

    connect(obj) 

    Когда вы выпускаете функцию get в программном обеспечении MATLAB, драйвер tektronix_tds210_ex.mdd на самом деле отправляет команду DISplay:CONTRast? в инструмент.

    obj.DisplayContrast
    ans = 
        17

    Когда вы выпускаете функцию set в программном обеспечении MATLAB, драйвер tektronix_tds210_ex.mdd на самом деле отправляет команду DISplay:CONTRast 34 в инструмент.

    obj.DisplayContrast = 34)
  8. Наконец, отключитесь от инструмента и удалите объекты.

    disconnect(obj)
    delete([obj g])

Создание перечислимого свойства

Этот пример создает свойство, которое выберет и отобразит курсор осциллографа Tektronix TDS 210. Осциллограф позволяет два типа курсора. Это поддерживает горизонтальный курсор, который измеряет вертикальные модули в вольтах, делениях, или децибелах и вертикальном курсоре, который измеряет горизонтальные модули вовремя или частоту. В инструментальном редакторе драйвера MATLAB,

  1. Выберите узел Properties в дереве.

  2. Введите имя свойства, CursorType, в текстовом поле Name и нажмите кнопку Add. Имя нового свойства CursorType появляется в таблице Property Name.

  3. Расширьте узел Properties, чтобы отобразить все заданные свойства.

  4. Выберите узел CursorType из свойств, отображенных в дереве.

  5. Выберите вкладку Code, чтобы задать set и команды get для свойства CursorType.

    • Выберите Instrument Commands в поле стиля Свойства.

    • Введите CURSor:FUNCtion? в Получить поле Текста команды.

    • Введите CURSor:FUNCtion в поле Текста команды Набора.

  6. Выберите вкладку Property Values, чтобы задать позволенные значения свойств.

    • Выберите String в поле Data Type.

    • Выберите Enumeration в поле Constraint.

    • Введите none в Новое текстовое поле значения свойства и нажмите кнопку Add. Затем введите OFF в поле таблицы Instrument Value.

    • Так же добавьте значение свойства voltage с инструментальным значением HBArs.

    • Так же добавьте значение свойства time с инструментальным значением VBArs.

  7. Выберите вкладку "Общие", чтобы закончить задавать поведение свойства.

    • Введите none в текстовое поле Значения по умолчанию.

    • Выберите never в поле Только для чтения.

    • В текстовом поле Help введите Specifies the type of cursor.

  8. Нажмите кнопку Save.

Проверка Поведения Свойства.  Эта процедура проверяет поведение свойства. В этом примере именем драйвера является tektronix_tds210_ex.mdd. Связь с осциллографом Tektronix TDS 210 в первичном адресе 2 сделана через плату GPIB Measurement Computing Corporation в параметре плат 0. Из командной строки MATLAB,

  1. Создайте объект устройства, obj, с помощью функции icdevice.

    g = gpib('mcc', 0, 2);
    obj = icdevice('tektronix_tds210_ex.mdd', g);
  2. Просмотрите текущее значение свойства CursorType. Вызов get в списках объектов все его свойства.

    get(obj)

    Вызов get в списках свойств CursorType его текущее значение.

    obj.CursorType
    ans =
        none
  3. Просмотрите приемлемые значения для свойства CursorType. Вызов set в списках объектов все его устанавливаемые свойства.

    set(obj)

    Вызов set в списках свойств CursorType значения, на которые можно установить свойство.

    set(obj, 'CursorType')
    [ {none} | voltage | time ]
  4. Попытайтесь установить свойство на допустимые и недопустимые значения.

    obj.CursorType = 'voltage';
    obj.CursorType
    ans =
        voltage
    obj.CursorType = 'horizontal'
    ??? The 'horizontal' enumerated value is invalid.
  5. Просмотрите справку, которую вы записали.

    instrhelp(obj,'CursorType') 
    CURSORTYPE [ {none} | voltage | time ]
    Specifies the type of cursor.
  6. Перечислите характеристики CursorType, которые вы задали в Значениях свойств и вкладках "Общие".

    info = propinfo(obj,'CursorType')
    info =
                     Type: 'string'
               Constraint: 'enum'
          ConstraintValue: {3x1 cell}
             DefaultValue: 'none'
                 ReadOnly: 'never'
        InterfaceSpecific: 1
    
    info.ContraintValue
    ans = 
    'none'
    'voltage'
    'time'
  7. Соединитесь со своим инструментом, чтобы проверить код get и set.

    connect(obj) 

    Когда вы выпускаете функцию set в программном обеспечении MATLAB, драйвер tektronix_tds210_ex.mdd на самом деле отправляет команду CURSor:FUNCtion VBArs в инструмент.

    obj.CursorType = 'time'

    Когда вы выпускаете функцию get в программном обеспечении MATLAB, драйвер tektronix_tds210_ex.mdd на самом деле отправляет команду CURSor:FUNCtion? в инструмент.

    obj.CursorType
    ans =
    time
  8. Наконец отключитесь от инструмента и удалите объекты.

    disconnect(obj)
    delete([obj g])

Свойство стиля кода MATLAB

Этот пример создает свойство, которое возвратит различие между двумя курсорами осциллографа Tektronix TDS 210. Осциллограф позволяет два типа курсора. Это поддерживает горизонтальный курсор, который измеряет вертикальные модули в вольтах, делениях, или децибелах и вертикальном курсоре, который измеряет горизонтальные модули вовремя или частоту. Предыдущий пример создал свойство, CursorType, который выбирает и отображает курсор осциллографа. В инструментальном редакторе драйвера MATLAB,

  1. Выберите узел Properties в дереве.

  2. Введите имя свойства, CursorDelta, в текстовом поле New Property и нажмите Add. Имя нового свойства, CursorDelta, появляется в таблице Property Name.

  3. Расширьте узел Properties, чтобы отобразить все заданные свойства.

  4. Выберите узел CursorDelta из свойств, отображенных в дереве.

  5. Выберите вкладку Code, чтобы задать набор и получить команды для свойства CursorDelta.

    • Выберите M-Code в поле стиля Свойства.

    • Поскольку свойство CursorDelta только для чтения, никакой программный код MATLAB не будет добавлен к текстовому полю MATLAB Set Function.

    • Следующий программный код MATLAB добавляется к MATLAB, Получают поле Текста функции.

      % Extract the interface object.
      interface = obj.Interface;
      
      % Determine the type of cursor being displayed.
      type = obj.CursorType
      
      % Based on the cursor type, query the instrument.
      switch (type)
      case 'none'
          propertyValue = 0;
      case 'voltage'
          propertyValue = query(interface, 'CURSor:HBArs:DELTa?');
          propertyValue = str2double(propertyValue);
      case 'time'
          propertyValue = query(interface, 'CURSor:VBArs:DELTa?');
          propertyValue = str2double(propertyValue);
      end

  6. Выберите вкладку Property Values, чтобы задать позволенные значения свойств.

    • Выберите Double в поле Data Type.

    • Выберите None в поле Constraint.

  7. Выберите вкладку "Общие", чтобы закончить задавать поведение свойства.

    • Введите 0 в текстовое поле Значения по умолчанию.

    • Выберите always в поле Только для чтения.

    • В текстовом поле Help введите Returns the difference between the two cursors.

  8. Нажмите кнопку Save.

Проверка Поведения Свойства.  Эта процедура проверяет поведение свойства. В этом примере именем драйвера является tektronix_tds210_ex.mdd. Связь с осциллографом Tektronix TDS 210 в первичном адресе 2 сделана через плату GPIB Measurement Computing Corporation в параметре плат 0. Из командной строки MATLAB,

  1. Создайте объект устройства, obj, с помощью функции icdevice.

    g = gpib('mcc', 0, 2);
    obj = icdevice('tektronix_tds210_ex.mdd', g);
  2. Просмотрите текущее значение свойства CursorDelta. Вызов get в списках объектов все его свойства.

    get(obj)
  3. Просмотрите текущее значение свойства CursorDelta.

    obj.CursorDelta
    ans =
        0
  4. Вызов set в списках объектов все его устанавливаемые свойства. Обратите внимание на то, что как свойство только для чтения, CursorDelta не перечислен в выводе.

    set(obj)
  5. Установка свойства к значению приводит к сообщению об ошибке.

    obj.CursorDelta = 4)
    ??? Changing the 'CursorDelta' property of device objects is not 
    allowed.
  6. Просмотрите справку, которую вы записали.

    instrhelp(obj,'CursorDelta') 
    CURSORDELTA  (double)  (read only)
    Returns the difference between the two cursors. 
  7. Перечислите характеристики CursorDelta, которые вы задали в Значениях свойств и вкладках "Общие".

    info = propinfo(obj,'CursorDelta')
    info =
                     Type: 'double'
               Constraint: 'none'
          ConstraintValue: []
             DefaultValue: 0
                 ReadOnly: 'always'
        InterfaceSpecific: 1
  8. Соединитесь со своим инструментом, чтобы проверить код get.

    connect(obj) 

    Когда вы выпускаете функцию get в программном обеспечении MATLAB, драйвер tektronix_tds210_ex.mdd на самом деле выполняет программный код MATLAB, который был задан.

    obj.CursorDelta
    ans =
        1.6000
  9. Наконец, отключитесь от инструмента и удалите объекты.

    disconnect(obj)
    delete([obj g])