Доброго!
Есть такая проблема:
Для своих задач пытаемся использовать библиотеку owen_io.dll. IDE Delphi 2009. Опрашиваем счетчик СИ8. Функции ReadSI8BCD(1,0,'DCNT',dcnt); всегда возвращает -102, при этом функция ReadDTMR(1,0,hr,m,s,ms); работает прекрасно. Обе функции вызываются в одной программе последовательно. Промониторив порт, увидели, что функция ReadSI8BCD шлет в порт такой пакет #GHHGITVQUPKL. хотя по протоколу команда должна быть SHNJ. Прибор подключен к компьютеру через АС4. Используя сторонний терминал и посылая пакет собранный вручную получаем нормальный ответ в 10 из 10 случаев. Функция кривая или описание параметров в импорте?

Просим помощи в данном вопросе! Спасибо!
Код элементарный:
импорт
Код:
function OpenPort(n,speed,part,bits,stop,vid:DWORD): Integer; Stdcall; External 'owen_io.dll';
function ReadDTMR(adr,adr_type:DWORD;var hrs:Integer;var mins:Integer;var sec:Integer;var msec:Integer):Integer; Stdcall; External 'owen_io.dll';
function ReadSI8BCD(adr,adr_type:DWORD;command:PChar; var val:Integer):Integer; Stdcall; External 'owen_io.dll';
код
Код:
      writeln('Get data from CI8?(1-Yes/0-No)');
       readln(res);
       if res<>1  then exit;
       if(OpenPort(0,0,0,1,0,0)<0) then begin
                writeln('Error open COM-port');
                readln;
                exit;
        end;

        writeln('Reading counter data...');
        res:=ReadSI8BCD(1,0,'DCNT',dcnt);
        if(res>=0) then
           writeln('DCNT=',dcnt);
        else
           writeln('Error reading DCNT '+IntToStr(res));


        writeln('Press Enter to continue');
        readln;
        writeln('Reading CI8 timer...\n');
        res:=ReadDTMR(1,0,hr,m,s,ms);
        if(res>=0) then
           writeln(hr:3,':',m:2,':',s:2,':',ms:3)
         else
           writeln('Error reading timer data');