2011-02-07 1 views
2

Я пытаюсь написать скрипт в Matlab, который взаимодействует со старым аппаратным обеспечением. Серийные процедуры ввода-вывода были написаны на BASIC и содержатся в файле .ocx. Раньше они вызывались в сценарии VB6.Использование команд в библиотеке OCX в Matlab

Я хотел бы иметь возможность вызывать скрипты в .ocx-файле изнутри matlab и выполнять всю пост-обработку. Я изучил элементы управления activex в Matlab, но они, похоже, сосредоточены на GUI и тому подобном.

Есть ли способ импортировать эти функции в Matlab? или нужно ли компилировать функции как что-то еще?

благодарит за ваше время!

ответ

2

Для этого вы должны использовать функцию actxcontrol. См:

http://www.mathworks.com/help/techdoc/ref/actxcontrol.html

управления ActiveX (ака * .ocx), как правило, предназначены для целей GUI, но они не должны быть. actxcontrol имеет ряд конструкторов - вам нужен только первый, который принимает только progid элемента управления (другие перегрузки указывают позицию, которая предназначена для элементов управления GUI).

Затем вы использовали функции interfaces и invoke для вызова методов в OCX.

+1

Обязательный комментарий: ActiveX/OCX - это серьезно устаревшая технология. Это может быть хорошей возможностью для вас взять логику, инкапсулированную в код BASIC, и перенести ее на нечто более современное (и тогда вы сможете получить еще несколько лет работы). – MusiGenesis

+0

Большое спасибо за помощь! Ты определенно прав, что все это устарело. К сожалению, время является фактором на данный момент, поэтому требуется краткосрочное решение. Поскольку у нас нет документации относительно последовательной связи, кроме того, что содержится в коде BASIC (у меня нет опыта). Вот почему мы хотим использовать существующую библиотеку. – James

+0

@James: Я понимаю вашу ситуацию, поэтому я не буду рекомендовать альтернативу, которая заключается в том, чтобы скомпилировать ваш Matlab-код как сборку .Net и включить его в приложение C#, которое обрабатывает материал последовательного порта. Это своего рода полная противоположность тому, что вы сейчас делаете, чтобы инкапсулировать материал последовательного порта в качестве COM-объекта и включать его в ваше приложение Matlab. – MusiGenesis

 Смежные вопросы

  • Нет связанных вопросов^_^