full server OLE Automation

Seryoga
Дата: 06.03.2003 17:13:52
Доброе время суток!
Возникла проблема с подключению к серверу ОЛЕ, вот инстракшн (ниже), помогите, плиз, разобраться как оно работает в дельфях.
Заранее спасибо!

FStScale.exe является полным сервером OLE автоматизации (full server OLE Automation), поэтому может использоваться и как самостоятельное приложение для индикации текущего веса на экране дисплея компьютера, и как компонента сложного многокомпонентного приложения, предоставляя свои свойства и методы внешним программам.

Сервер экспортирует четыре свойства, которые доступны как для чтения, так и для записи, и 3 метода.

Свойства:
- ComPort - номер COM-порта к которому подключен терминал ТВ-003/05Д;
- NumberTV - идентификационный номер весового терминала;
- Baud - скорость обмена данными терминала с компьютером (бод);
- Indication - количество знаков после запятой при индикации веса.
Параметр ComPort должен соотвествовать номеру реального COM-порта через разъем которого весовой терминал подключен к компъютеру. Параметры NumberTV, Baud, Indication должны соответсвовать значениям параметров весового терминала 16, 13, 2 (cм. документ “Терминал весовой “ТВ-003/05Д”; руководство по программированию и калибровке; Люберцы, 1999г; раздел 4, табл. 4.1).

Методы:
GetStaticWeight() - получить значение веса;
GetStatusWeight() - получить состояние весов (успокоение, брутто, нетто);
ResetScale() - обнулить показания (установка нуля).
Метод GetStaticWeight не имеет параметров и возвращает четырехбайтовое число с плавающей запятой, которое является значением веса.
Метод GetStatusWeight не имеет параметров и возвращает двухбайтовое целое число в младших трех битах которого содержатся признаки состояния весов:
бит 0 = 1 - вес не успокоился;
бит 1 = 1 - нетто-взвешивание;
бит 2 = 1 - брутто-взвешивание.
Метод ResetScale – не имеет параметров, не возвращает значение. Вызов этого метода приводит к обнулению показаний весового терминала, т.е. вес который в данный момент установлен на платформе весов, при дальнейших взвешиваниях учитываться не будет.

Имя сервера для программного доступа к его свойствам и методам - FStScale.Application . Необходимые для работы библиотеки – mfc42.dll, msvcrt.dll, msvcirt.dll, comm_drv.dll . Они должны находится либо в одном каталоге с сервером FStScale.exe, либо, и этот вариант предпочтительней, в каталоге C:\WINDOWS\SYSTEM\ , где C:\WINDOWS\ - каталог на Вашем компьютере в который установлена операционная система WINDOW 95 / 98 / NT .
Артем1
Дата: 06.03.2003 17:19:42
А в чем конкретно проблема?
Как подключиться к серверу OLE?
Выдает ошибки, их текст?
Seryoga
Дата: 06.03.2003 17:36:20
ну да, для начала - как подключиться

я поместил объект в контейнер и пишу

ves := olecontainer.oleobject.getweight();

он мне ответил - 'intreface not supported' или что-то вроде того

видать я неправ %)
nomshar
Дата: 07.03.2003 01:20:36
Первое. Зарегестрируй сервер. Когда это сделаешь, пиши, что выдаст дальше. Кстати, сервер, видимо внутренний, так что сначала импоритруй библиотечку, потом что-то вроде
type
....
private
MyInterf: InterfaceFromDLL;
...
end;


procedure Connect;
begin
MyInterF:= ClassOfInterfaceFromDLL.Create;
end;

procedure DisConnect;
begin
MyInterF:= nil;
end;

В принципе все, если я ничего не напутал.
Seryoga
Дата: 09.03.2003 14:36:50
ага... только вот у меня не DLL, а EXE. И я ХЗ как оттуда класс взять, честно скажу... Это программулина, которая запускаеися и VBA ее нормально использует с именем FStScale.Application.
Seryoga
Дата: 09.03.2003 15:41:05
ага, посмотрел соседний топик - с подключением допёр.

var vesy : OLEVariant;
ves : currency;
begin
vesy :=CreateOleObject('FStScale.Application');
ves := vesy.getstaticweight();
end;

вот только getstaticweight теперь не работает, хотя свойства доступны... пишет - не хватает аргументов %))) Хотя в VBA опять же всё было ОК. Стрянно...
А если через контейнер, его тогда можно запускать не отдельным окном а в контейнере, ды? Надо попробовать...
Seryoga
Дата: 09.03.2003 16:14:58
Тихо сам с собой... Всё, методы просто вызываются без ().
Остался один вопрос: а как закрывать открытый таким образом оле-сервер?

var vesy : OLEVariant;
ves : currency;
begin
vesy :=CreateOleObject('FStScale.Application');
ves := vesy.getstaticweight;
end;
babu
Дата: 11.03.2003 10:51:28
vesy:=Unassigned;
ILICHok
Дата: 14.02.2006 11:51:34
а не подскажете, где взять FStScale.exe?
Знаток
Дата: 27.02.2006 15:02:18
Хех... ) FStScale фирма Тензо-М продаёт за бабки :) как дополнение к весовому терминалу