реклама на сайте
подробности

 
 
> COM технология + matlab
AlexyEM
сообщение Nov 13 2008, 19:19
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 23-08-07
Пользователь №: 30 024



обрисую суть проблемы:
есть прибор (измеритель комплексных коэффициентов передач и отражения Обзор 304/1) выполненный отдельным блоком (на нём только два входа/выхода и выключатель питания). К нему есть ПО которое осуществляет управление и отображение результатов измерения. производителем заявлена поддержка COM технологии в этом ПО для расширения возможности измерений и их автоматизации.

что мне нужно: из matlab хватать результаты измерений и неплохо бы управлять прибором.

что я понял, поизучав вопрос (с COM технологией до этого не сталкивался):
h = actxserver('obzor.automation'); - получили указатель на СОМ объект
дальше надо получить указатель на реализованный в этом объекте интерфейс. где взять его имя? и что делать дальше?

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

для экспериментов вот ссылка на ПО к прибору (~4Mb):
http://www.planar.chel.ru/Products/Measure...zor304_v1.2.zip

заранее благодарен откликнувшимся
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 5)
MosVit
сообщение Nov 21 2008, 16:17
Сообщение #2





Группа: Новичок
Сообщений: 8
Регистрация: 7-10-08
Пользователь №: 40 755



Если известны команды управления, то их можно вручную передать с матлаба:

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


В хелпе все написано.
Go to the top of the page
 
+Quote Post
AlexyEM
сообщение Nov 21 2008, 21:24
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 23-08-07
Пользователь №: 30 024



2MosVit: неее, не то. Вы путаете физический интерфейс COM(RS232) и программный интерфейс COM технологии, в рамках которой можно например, управлять одним приложением из другого или обмениваться данными между приложениями (COM, DCOM,DDE)(под виндой), даже если они написаны на разных языках, но поддерживают эту самую СОМ технологию и правильно зарегестрированы в системе

всё ещё жду помощи

Сообщение отредактировал AlexyEM - Nov 21 2008, 21:27
Go to the top of the page
 
+Quote Post
Builder
сообщение Dec 1 2008, 11:45
Сообщение #4


iBuilder©
****

Группа: Свой
Сообщений: 519
Регистрация: 14-07-04
Из: Минск
Пользователь №: 322



Цитата(AlexyEM @ Nov 13 2008, 23:19) *
что я понял, поизучав вопрос (с COM технологией до этого не сталкивался):
h = actxserver('obzor.automation'); - получили указатель на СОМ объект
дальше надо получить указатель на реализованный в этом объекте интерфейс. где взять его имя? и что делать дальше?

А там нет функции сохранения описания COM объекта в файл?
Помнится нужно было управлять вордом, тоже был напряг с описание функций, писал на Qt.
Так у Qt была функция сохранения имён/форматов в файл, сохранял, узучал, только это и помогло.
Попробуйте в этом направлении порыть. Если такого в Матлабе нет, попторуйте из С++ сделать
то что я делал, имена и форматы получите точно.
Go to the top of the page
 
+Quote Post
dxp
сообщение Dec 2 2008, 10:27
Сообщение #5


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



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

Для работы с СОМ серверами нужно извлечь type library. Вся эта инфа хранится прямо внутри самого сервера. Добыть можно специальными утилитами. Для каждого языка программирования (а часто и используемого тулчейна) эта утилита своя. Например, для Borland CBuilder это tlibimp.exe. Для Python'а есть утилита (скрипт) в составе pycom. И т.д.

Вообще, для нормальной работы с СОМ серверами нужно нормальное описание API - т.е. всех интерфейсов, которые поддерживает сервер. А type library - это уже непосредственно для работы - чтобы в свой код объявления вставлять, ведь описания словесного, что и как и для чего оно предназначено, там нет.

По СОМ есть неплохая книжка. Для общего развития тоже пойдет. Успехов.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
AlexyEM
сообщение Dec 2 2008, 17:21
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 23-08-07
Пользователь №: 30 024



всем большое спасибо за желание помочь

кажется разобрался: всё дело в том, что судя по всему, производитель прибора (серийное производство начато всего год назад) не дописал ПО в части СОМ (объект СОМ зарегистрирован в системе, а методов и функций в нем просто нет). Другой аналогичный прибор (ниже диапазоном) не вызывает проблем при внешнем управлением, и в документации всё описано. смотрел exeшники утилитой oleview - мои подозрения на недописаное ПО оправдались на сколько я могу судить находясь на моём уровне знания и понимания СОМ. Похоже надо ждать обновления ПО.

если у кого ещё есть мысли, с удовольствием выслушаю

Сообщение отредактировал AlexyEM - Dec 2 2008, 17:27
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 23:42
Рейтинг@Mail.ru


Страница сгенерированна за 0.01394 секунд с 7
ELECTRONIX ©2004-2016