AlexyEM
Nov 13 2008, 19:19
обрисую суть проблемы:
есть прибор (измеритель комплексных коэффициентов передач и отражения Обзор 304/1) выполненный отдельным блоком (на нём только два входа/выхода и выключатель питания). К нему есть ПО которое осуществляет управление и отображение результатов измерения. производителем заявлена поддержка COM технологии в этом ПО для расширения возможности измерений и их автоматизации.
что мне нужно: из matlab хватать результаты измерений и неплохо бы управлять прибором.
что я понял, поизучав вопрос (с COM технологией до этого не сталкивался):
h = actxserver('obzor.automation'); - получили указатель на СОМ объект
дальше надо получить указатель на реализованный в этом объекте интерфейс. где взять его имя? и что делать дальше?
помогите пожалуйста разобраться или задать грамотный вопрос производителю.
для экспериментов вот ссылка на ПО к прибору (~4Mb):
http://www.planar.chel.ru/Products/Measure...zor304_v1.2.zipзаранее благодарен откликнувшимся
MosVit
Nov 21 2008, 16:17
Если известны команды управления, то их можно вручную передать с матлаба:
s = serial('COM1','BaudRate',19200,'Parity','none','StopBits',1,'DataBits',8);
s
%set(s1,'Parity','mark','DataBits',7);
%set(s,'BaudRate',19200,'Parity','none','StopBits',1,'DataBits',8)
%set(s,{'StopBits','RecordName'},{1,'nnn.txt'})
%set(s,'Parity')
fopen(s)
Прием даных:
out = fscanf(s,'%5d'); % распознавание передачи символов в ASCII
out
Передача даных:
Syntax:
fprintf(obj,'cmd')
fprintf(obj,'format','cmd')
fprintf(obj,'cmd','mode')
fprintf(obj,'format','cmd','mode')
В хелпе все написано.
AlexyEM
Nov 21 2008, 21:24
2MosVit: неее, не то. Вы путаете физический интерфейс COM(RS232) и программный интерфейс COM технологии, в рамках которой можно например, управлять одним приложением из другого или обмениваться данными между приложениями (COM, DCOM,DDE)(под виндой), даже если они написаны на разных языках, но поддерживают эту самую СОМ технологию и правильно зарегестрированы в системе
всё ещё жду помощи
Builder
Dec 1 2008, 11:45
Цитата(AlexyEM @ Nov 13 2008, 23:19)

что я понял, поизучав вопрос (с COM технологией до этого не сталкивался):
h = actxserver('obzor.automation'); - получили указатель на СОМ объект
дальше надо получить указатель на реализованный в этом объекте интерфейс. где взять его имя? и что делать дальше?
А там нет функции сохранения описания COM объекта в файл?
Помнится нужно было управлять вордом, тоже был напряг с описание функций, писал на Qt.
Так у Qt была функция сохранения имён/форматов в файл, сохранял, узучал, только это и помогло.
Попробуйте в этом направлении порыть. Если такого в Матлабе нет, попторуйте из С++ сделать
то что я делал, имена и форматы получите точно.
Цитата(AlexyEM @ Nov 14 2008, 01:19)

что я понял, поизучав вопрос (с COM технологией до этого не сталкивался):
h = actxserver('obzor.automation'); - получили указатель на СОМ объект
дальше надо получить указатель на реализованный в этом объекте интерфейс. где взять его имя? и что делать дальше?
Для работы с СОМ серверами нужно извлечь type library. Вся эта инфа хранится прямо внутри самого сервера. Добыть можно специальными утилитами. Для каждого языка программирования (а часто и используемого тулчейна) эта утилита своя. Например, для Borland CBuilder это tlibimp.exe. Для Python'а есть утилита (скрипт) в составе pycom. И т.д.
Вообще, для нормальной работы с СОМ серверами нужно нормальное описание API - т.е. всех интерфейсов, которые поддерживает сервер. А type library - это уже непосредственно для работы - чтобы в свой код объявления вставлять, ведь описания словесного, что и как и для чего оно предназначено, там нет.
По СОМ есть неплохая
книжка. Для общего развития тоже пойдет. Успехов.
AlexyEM
Dec 2 2008, 17:21
всем большое спасибо за желание помочь
кажется разобрался: всё дело в том, что судя по всему, производитель прибора (серийное производство начато всего год назад) не дописал ПО в части СОМ (объект СОМ зарегистрирован в системе, а методов и функций в нем просто нет). Другой аналогичный прибор (ниже диапазоном) не вызывает проблем при внешнем управлением, и в документации всё описано. смотрел exeшники утилитой oleview - мои подозрения на недописаное ПО оправдались на сколько я могу судить находясь на моём уровне знания и понимания СОМ. Похоже надо ждать обновления ПО.
если у кого ещё есть мысли, с удовольствием выслушаю