Запись типового драйвера

Создание драйвера и определение его поведения инициализации

В этом примере общим «инструментом», которым вы управляете, является Microsoft® Internet Explorer® (IE), который представлен COM-объектом. (Этот пример работает только в Windows® систем.) Пройдя через пример, вы пишете простой MATLAB® типовой драйвер прибора, который позволяет программному обеспечению Instrument Control Toolbox™ взаимодействовать с COM-объектом. Используя как графический интерфейс, так и код командной строки, с драйвером вы создаете окно браузера IE, управляете его размером и указываете, какую веб-страницу она отображает. Принципы, продемонстрированные в этом примере, могут применяться при написании типового драйвера для любого вида инструмента.

В этом разделе вы создаете новый драйвер и задаете, что происходит при создании объекта для этого драйвера.

  1. Откройте MATLAB Instrument Driver Editor из Командного окна MATLAB.

    midedit
  2. Чтобы узнать, что этот драйвер является типовым драйвером, в редакторе драйверов приборов MATLAB выберите File > New > Generic driver, как показано на рисунке.

  3. Выберите File > Save as.

    Перейдите к директории, где вы хотите сохранить драйвер, и назовите его любое имя, которое вы хотите. В этом примере используется имя ie_drv. Помните, где вы спасли драйвер.

  4. Выберите Summary узел в окне редактора драйверов. Установите поля этой панели с любыми значениями, которые вы хотите. В этом примере используются следующие настройки:

    Производитель

    Microsoft

    Поддерживаемые модели

    IE

    Тип прибора

    Browser

    Версия драйвера

    1.0

  5. Выберите узел Initialization and Cleanup.

  6. Перейдите на вкладку Create.

    Здесь вы задаете код, который будет выполняться, когда этот драйвер используется для создания объекта устройства. Этот пример идентифицирует COM-объект для Internet Explorer и присваивает указатель этому объекту как Interface свойство создаваемого объекта устройства.

  7. Добавьте следующие строки кода на вкладку Create:

    ie = actxserver('internetexplorer.application');
    obj.Interface = ie);
  8. Перейдите на вкладку Connect.

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

  9. Добавьте следующие строки кода на вкладку Connect:

    ie = get(obj, 'Interface');
    ie.Visible = 1);
    ie.FullScreen = 0);

Первая линия становится ie в качестве указателя на COM-объект на основе назначения в коде Create. Две линии после этого задают видимость и размер окна.

Определение свойств

Запись свойств для типовых драйверов в MATLAB Instrument Driver Editor - это вопрос записи прямого кода.

В этом примере вы задаете два свойства. Первое свойство использует то же имя, что и соответствующее свойство COM-объекта; второе свойство использует другое имя по сравнению с соответствующим свойством COM-объекта.

Использование того же имени для свойства

Положение окна браузера IE определяется Top и Left свойства его COM-объекта. На следующих шагах вы делаете Top свойство доступное для вашего объекта устройства через ваш типовой драйвер. Для этого свойства имя свойства совпадает как в COM-объекте, так и в объекте устройства.

  1. Выберите Properties узел в дереве редактора драйверов.

  2. В поле Add property введите текст Top, и нажмите Add.

  3. Разверните Properties узел в дереве и выберите новый узел Top.

  4. Перейдите на вкладку Значения свойств. Ваше свойство может иметь числовое значение, соответствующее пикселям экрана. В данном примере можно ограничить значение свойства от 0 на 200.

  5. Убедитесь, что поле Data Type указывает Double. В поле Ограничение щелкните раскрывающееся меню и выберите Bounded.

  6. Сохраните Минимальное значение 0.0, и введите Максимальное значение 200.

    Окно редактора драйверов должно выглядеть следующим образом.

    Теперь, когда вы определили тип данных и приемлемые значения свойства, можно записать код, который будет выполнен каждый раз, когда свойство объекта устройства обращается к get или set.

  7. Перейдите на вкладку Код.

    Концепция чтения свойства довольно проста. Когда вы получите Top свойство объекта устройства, драйвер просто получает значение соответствующего Top COM-объекта свойство. Таким образом, все, что вам нужно в функции Get code, это идентифицировать COM-объект, чтобы получить информацию от.

  8. В нижней части функции на панели Get code добавьте следующий код:

    ie = obj.Interface;
    propertyValue = get(ie, propertyName);

    Первая линия становится ie как указатель на COM-объект. Помните, что Interface свойство объекта устройства устанавливается на это значение в коде Create драйвера. Вторая линия извлекает значение Top COM-объекта свойство и присваивает его propertyValue, который возвращается в get функция для объекта устройства.

  9. В нижней части функции на панели Задать код добавьте следующий код:

    ie = get(obj, 'Interface');
    ie.propertyName = propertyValue;

Использование другого имени для свойства

На предыдущих шагах вы создали в драйвере свойство объекта устройства, которое имеет то же имя, что и свойство COM-объекта, представляющего ваш инструмент. Можно также создать свойства с именами, не совпадающими с именами свойств COM-объекта. На следующих шагах вы создаете свойство под названием Vsize который соответствует свойству COM-объекта IE Height.

  1. Выберите Properties узел в дереве редактора драйверов.

  2. В поле Add property введите текст Vsize, и нажмите Add.

  3. Разверните Properties узел в дереве и выберите новый узел Vsize.

  4. Перейдите на вкладку Значения свойств. Это свойство может иметь числовое значение, соответствующее пикселям экрана, область значений вы задаете как 200 на 800.

  5. Убедитесь, что поле Data Type указывает Double. В поле Ограничение щелкните раскрывающееся меню и выберите Bounded.

  6. Введите Минимальное значение 200, и введите Максимальное значение 800.

  7. Перейдите на вкладку Код.

  8. В нижней части функции на панели Get code добавьте следующий код:

    ie = obj.Interface;
    propertyValue = ie.Height;
  9. В нижней части функции на панели Задать код добавьте следующий код:

    ie = get(obj, 'Interface');
    set(ie, 'Height', propertyValue);
  10. Сохраните драйвер.

Определение функций

Обычной функцией для Internet Explorer является загрузка веб-страницы. На следующих шагах вы создаете функцию, вызываемую goTo что позволяет перемещаться в Интернете с помощью браузера.

  1. Выберите Functions узел в дереве редактора драйверов.

  2. В поле Add function введите текст goTo, и нажмите Add.

  3. Разверните Functions узел в дереве и выберите новый узел goTo.

    Запись функций для типовых драйверов в MATLAB Instrument Driver Editor - это вопрос записи прямого кода.

    Ваш goTo функция требует только одного входного параметра: URL веб-страницы для перехода. Можно вызвать этот аргумент site.

  4. Измените первую линию панели кода MATLAB следующим образом:

    function goTo(obj, site)

    Переменная obj является объектом устройства, использующим этот драйвер. Значение site - вектор символов, переданный в эту функцию, когда вы используете этот драйвер. Ваша функция должна передать значение site для объекта COM IE. Поэтому ваша функция должна получить указатель на COM-объект, а затем вызвать метод IE COM Navigate2, передав ему значение site.

  5. Добавьте следующий код в нижней части функции на панели кода MATLAB:

    ie = obj.Interface;
    invoke(ie, 'Navigate2', site);
  6. Сохраните драйвер и закройте MATLAB Instrument Driver Editor.

    Теперь, когда ваш типовой драйвер готов, вы можете использовать его с Test and Measurement Tool или в командной строке MATLAB.

Для просмотра документации необходимо авторизоваться на сайте