PDA

Просмотр полной версии : Работа с МДВВ



Алексей_К
18.03.2008, 13:08
Здравствуйте! Написал запрос чтения оперативного параметра с МДВВ в Delphi, ипользуя вашу библиотеку: res:=ReadUInt(0,adres,'r.Cou',value,-1);, при компилировании выдается ошибка о неправильном ипользовании формальных и фактических параметров: [Error] UFunc.pas(217): Types of actual and formal var parameters must be identical, перепробовал много чего... Ен подскажете в чем дело? Если не сложно, то вышлите мне пример работы с МДВВ на Delphi на почту: kashlev_alex@rambler.ru Заранее спасибо за ответ.

Алексей_К
18.03.2008, 15:55
С типами вроде разобрался, но обращение всеравно не работает...
Вот Функция обращения, порт №3, помогите пожалуйста, что не так? Перепробовал много всего... Выдает : "Ошибка данных!", значит не проходит само обращение к параметру, может дело в библиотеке? Если не сложно, еще раз просьба выслать пример работы с прибором МДВВ на Delphi на почту: kashlev_alex@rambler.ru

function ExitDan(adres:DWORD):string;
var
res:integer;
value:DWORD;
display:string;
begin
if(not InitLib) then
display:='Ошибка загрузки библиотеки';
if(OpenPort(2,9600,0,1,0,1)<0) then
display:='Ошибка открытия порта';

//Opros
res:=ReadUInt(0,adres,'r.Cou',value,-1);

if(res>=0) then
begin
display:=IntToStr(value);
end
else begin
display:='Ошибка чтения!';
end;

result:=display;
ClosePort;
FreeLib;
end;

Дмитрий Егоренков
19.03.2008, 11:59
> ReadUInt(0,adres,'r.Cou',value,-1);

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

а в следующий раз пишите, какую конкретно ошибку возвратила функция.

Алексей_К
19.03.2008, 12:26
Параметры не перепутал, 100%:

TProcReadUInt=function (adr_type,adr:DWORD;command:pchar;var value:DWORD;index:integer):integer;stdcall;

А если обходить условие проверки:

if(res>=0) then
begin
display:=IntToStr(value);
end
else begin
display:='Ошибка чтения!';
end;

А просто выводить этот параметр: display:=IntToStr(value);
, то возвращается число 258

У меня всетаки есть подозрения, что дело в библиотеке, она приспособлена для работы с МДВВ? т.к. последнее обновление ее было в 2006 г., а тогда такого прибора, насколько я знаю не продавалось.

Нет ли всетаки примера работы на Delphi с МДВВ?
А функция возвращает ошибку: -2.

Дмитрий Егоренков
19.03.2008, 13:50
это ошибка в примере. если вы посмотрите другие функции, они описаны правильно - сначала адрес, потом тип адреса.

библиотеке абсолютно все равно, с каким прибором работать.

Алексей_К
19.03.2008, 13:52
Разобрался, не без вашей помощи:
1) вы правы с параметром;
2) не было настроено констант под скорость.

С помощью кодов ошибок, выявил и устранил их.

Спасибо за помощь!