Свойства

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

Можно сделать программирование инструментов через объекты устройства легче и более сопоставимым при помощи свойств. Свойство может использоваться, чтобы запросить или установить инструментальную установку или атрибут. Например, пороговым уровнем осциллографа можно управлять со свойством под названием TriggerLevel, который можно считать или управлять с get или set функция. Даже если два различных осциллографа имеют различный триггерный синтаксис, можно использовать то же имя свойства, 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. Выберите вкладку Help, чтобы закончить задавать поведение свойства.

    • Введите 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 = 
    
      struct with fields:
    
                     Type: 'double'
               Constraint: 'bounded'
          ConstraintValue: [1 100]
             DefaultValue: 50
                 ReadOnly: 'never'
        InterfaceSpecific: 1
  7. Свяжите со своим инструментом, чтобы проверить set и get код.

    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. Выберите вкладку Help, чтобы закончить задавать поведение свойства.

    • Введите 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)
        ConfirmationFcn = 
        DriverName = tektronix_tds210_ex.mdd
        DriverType = MATLAB interface object
        InstrumentModel = 
        Interface = [1x1 gpib]
        LogicalName = GPIB0-2
        Name = scope-tektronix_tds210_ex
        ObjectVisibility = on
        RsrcName = 
        Status = closed
        Tag = 
        Timeout = 10
        Type = scope
        UserData = []
    
        SCOPE specific properties:
        CursorType = none
        DisplayContrast = 50

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

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

    set(obj)
        ConfirmationFcn: string -or- function handle -or- cell array
        Name: 
        ObjectVisibility: [ {on} | off ]
        Tag: 
        Timeout: 
        UserData: 
    
        SCOPE specific properties:
        CursorType: [ {none} | voltage | time ]
        DisplayContrast: [ 1.0 to 100.0 ]

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

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

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

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

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

    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 добавляется к Получить текстовому полю кода.

      % 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. Выберите вкладку Help, чтобы закончить задавать поведение свойства.

    • Введите 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)
        ConfirmationFcn = 
        DriverName = tektronix_tds210_ex.mdd
        DriverType = MATLAB interface object
        InstrumentModel = 
        Interface = [1x1 gpib]
        LogicalName = GPIB0-2
        Name = scope-tektronix_tds210_ex
        ObjectVisibility = on
        RsrcName = 
        Status = closed
        Tag = 
        Timeout = 10
        Type = scope
        UserData = []
    
        SCOPE specific properties:
        CursorDelta = 0
        CursorType = none
        DisplayContrast = 50
  3. Просмотрите CursorDelta текущее значение свойства.

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

    set(obj)
        ConfirmationFcn: string -or- function handle -or- cell array
        Name: 
        ObjectVisibility: [ {on} | off ]
        Tag: 
        Timeout: 
        UserData: 
    
        SCOPE specific properties:
        CursorType: [ {none} | voltage | time ]
        DisplayContrast: [ 1.0 to 100.0 ]
  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 = 
    
      struct with fields:
    
                     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])