Свойства

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

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

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

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

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

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

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

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

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

set(obj,'DisplayContrast',54);

Получить код

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

Примечание

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

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

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

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

  • Значение свойства, которое определяется как double, может быть ограничено, чтобы принимать только doubles в определённой области значений или списке перечисленных double. Для примера свойство может быть определено, чтобы принять двойной в область значений [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 может быть сконфигурировано так, чтобы значение double варьировалось от 0 до 10. Если значение VoltageOutputRange является low, затем VoltageLevel может быть сконфигурировано так, чтобы значение double варьировалось от 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? в команда text.

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

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

    • Выберите Double в поле Тип данных.

    • Выберите Bounded в поле Ограничение.

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

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

  7. Выберите вкладку «Справка», чтобы завершить определение поведения свойства.

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

    • Выберите never в поле Read only.

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

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

Проверка поведения свойства.  Эта процедура проверяет поведение свойства. В этом примере имя драйвера tektronix_tds210_ex.mdd. Связь с осциллографом Tektronix TDS 210 по первичному адресу 2 осуществляется через плату Измерения Computing™ Corporation GPIB с индексом платы 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 признаки, определенные на вкладках Свойства Значений и Help.

    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? в поле Get Command text.

    • Введите CURSor:FUNCtion в поле Задать текст команды.

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

    • Выберите String в поле Тип данных.

    • Выберите Enumeration в поле Ограничение.

    • Введите none в текстовом поле New property value и нажмите кнопку Add. Затем введите OFF в поле Instrument Value.

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

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

  7. Выберите вкладку «Справка», чтобы завершить определение поведения свойства.

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

    • Выберите never в поле Read only.

    • В поле Текст справки введите 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 признаки, определенные на вкладках Свойства Значений и Help.

    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 не будет добавлен в поле Set code text.

    • Следующий код программного обеспечения MATLAB добавляется в текстовое поле Get code.

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

    • Выберите Double в поле Тип данных.

    • Выберите None в поле Ограничение.

  7. Выберите вкладку «Справка», чтобы завершить определение поведения свойства.

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

    • Выберите always в поле Read only.

    • В поле Текст справки введите 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 признаки, определенные на вкладках Свойства Значений и Help.

    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])