В этом примере общим «инструментом», которым вы управляете, является Microsoft® Internet Explorer® (IE), который представлен COM-объектом. (Этот пример работает только в Windows® систем.) Пройдя через пример, вы пишете простой MATLAB® типовой драйвер прибора, который позволяет программному обеспечению Instrument Control Toolbox™ взаимодействовать с COM-объектом. Используя как графический интерфейс, так и код командной строки, с драйвером вы создаете окно браузера IE, управляете его размером и указываете, какую веб-страницу она отображает. Принципы, продемонстрированные в этом примере, могут применяться при написании типового драйвера для любого вида инструмента.
В этом разделе вы создаете новый драйвер и задаете, что происходит при создании объекта для этого драйвера.
Откройте MATLAB Instrument Driver Editor из Командного окна MATLAB.
midedit
Чтобы узнать, что этот драйвер является типовым драйвером, в редакторе драйверов приборов MATLAB выберите File > New > Generic driver, как показано на рисунке.
Выберите File > Save as.
Перейдите к директории, где вы хотите сохранить драйвер, и назовите его любое имя, которое вы хотите. В этом примере используется имя ie_drv
. Помните, где вы спасли драйвер.
Выберите Summary
узел в окне редактора драйверов. Установите поля этой панели с любыми значениями, которые вы хотите. В этом примере используются следующие настройки:
Производитель |
|
Поддерживаемые модели |
|
Тип прибора |
|
Версия драйвера |
|
Выберите узел Initialization and Cleanup
.
Перейдите на вкладку Create.
Здесь вы задаете код, который будет выполняться, когда этот драйвер используется для создания объекта устройства. Этот пример идентифицирует COM-объект для Internet Explorer и присваивает указатель этому объекту как Interface
свойство создаваемого объекта устройства.
Добавьте следующие строки кода на вкладку Create:
ie = actxserver('internetexplorer.application'); obj.Interface = ie);
Перейдите на вкладку Connect.
Здесь вы задаете код, который нужно выполнить, когда вы соединяете объект устройства с вашим инструментом или программным обеспечением.
Добавьте следующие строки кода на вкладку 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-объекте, так и в объекте устройства.
Выберите Properties
узел в дереве редактора драйверов.
В поле Add property введите текст Top
, и нажмите Add.
Разверните Properties
узел в дереве и выберите новый узел Top
.
Перейдите на вкладку Значения свойств. Ваше свойство может иметь числовое значение, соответствующее пикселям экрана. В данном примере можно ограничить значение свойства от 0
на 200
.
Убедитесь, что поле Data Type указывает Double
. В поле Ограничение щелкните раскрывающееся меню и выберите Bounded
.
Сохраните Минимальное значение 0.0
, и введите Максимальное значение 200
.
Окно редактора драйверов должно выглядеть следующим образом.
Теперь, когда вы определили тип данных и приемлемые значения свойства, можно записать код, который будет выполнен каждый раз, когда свойство объекта устройства обращается к get
или set
.
Перейдите на вкладку Код.
Концепция чтения свойства довольно проста. Когда вы получите Top
свойство объекта устройства, драйвер просто получает значение соответствующего Top
COM-объекта свойство. Таким образом, все, что вам нужно в функции Get code, это идентифицировать COM-объект, чтобы получить информацию от.
В нижней части функции на панели Get code добавьте следующий код:
ie = obj.Interface; propertyValue = get(ie, propertyName);
Первая линия становится ie
как указатель на COM-объект. Помните, что Interface
свойство объекта устройства устанавливается на это значение в коде Create драйвера. Вторая линия извлекает значение Top
COM-объекта свойство и присваивает его
propertyValue
, который возвращается в get
функция для объекта устройства.
В нижней части функции на панели Задать код добавьте следующий код:
ie = get(obj, 'Interface'); ie.propertyName = propertyValue;
На предыдущих шагах вы создали в драйвере свойство объекта устройства, которое имеет то же имя, что и свойство COM-объекта, представляющего ваш инструмент. Можно также создать свойства с именами, не совпадающими с именами свойств COM-объекта. На следующих шагах вы создаете свойство под названием Vsize
который соответствует свойству COM-объекта IE Height
.
Выберите Properties
узел в дереве редактора драйверов.
В поле Add property введите текст Vsize
, и нажмите Add.
Разверните Properties
узел в дереве и выберите новый узел Vsize
.
Перейдите на вкладку Значения свойств. Это свойство может иметь числовое значение, соответствующее пикселям экрана, область значений вы задаете как 200
на 800
.
Убедитесь, что поле Data Type указывает Double
. В поле Ограничение щелкните раскрывающееся меню и выберите Bounded
.
Введите Минимальное значение 200
, и введите Максимальное значение 800
.
Перейдите на вкладку Код.
В нижней части функции на панели Get code добавьте следующий код:
ie = obj.Interface; propertyValue = ie.Height;
В нижней части функции на панели Задать код добавьте следующий код:
ie = get(obj, 'Interface'); set(ie, 'Height', propertyValue);
Сохраните драйвер.
Обычной функцией для Internet Explorer является загрузка веб-страницы. На следующих шагах вы создаете функцию, вызываемую goTo
что позволяет перемещаться в Интернете с помощью браузера.
Выберите Functions
узел в дереве редактора драйверов.
В поле Add function введите текст goTo
, и нажмите Add.
Разверните Functions
узел в дереве и выберите новый узел goTo
.
Запись функций для типовых драйверов в MATLAB Instrument Driver Editor - это вопрос записи прямого кода.
Ваш goTo
функция требует только одного входного параметра: URL веб-страницы для перехода. Можно вызвать этот аргумент site
.
Измените первую линию панели кода MATLAB следующим образом:
function goTo(obj, site)
Переменная obj
является объектом устройства, использующим этот драйвер. Значение site
- вектор символов, переданный в эту функцию, когда вы используете этот драйвер. Ваша функция должна передать значение site
для объекта COM IE. Поэтому ваша функция должна получить указатель на COM-объект, а затем вызвать метод IE COM Navigate2
, передав ему значение site
.
Добавьте следующий код в нижней части функции на панели кода MATLAB:
ie = obj.Interface; invoke(ie, 'Navigate2', site);
Сохраните драйвер и закройте MATLAB Instrument Driver Editor.
Теперь, когда ваш типовой драйвер готов, вы можете использовать его с Test and Measurement Tool или в командной строке MATLAB.