PDA

Просмотр полной версии : Простейший пример, Delphi, owen_io.dll



Zmiillo
30.03.2015, 16:02
Уважаемые разработчики. Только начал изучать вопрос получения данных с ОВЕН, но что-то не хватает смекалки. Кто может поделиться любой простейшей программкой по получении данных через owen_io.dll в Delphi, а то, как не возьмусь, не может выполнить функцию в динамической библиотеке

Zmiillo
27.04.2015, 15:16
Возможно, я где-то кардинально ошибаюсь, но вот так:

МВ110.224-4ТД, установленный конфигуратор его видит. Компорт11

Код Delphi

implementation

function SetupPort(n,speed,parity,bits,stop,converter:DWORD ):integer;stdcall external 'owen_io.dll';
function GetExtendedLastErr(): Integer;stdcall external 'owen_io.dll';

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
if SetupPort(10,9600,0,8,1,0)<0 then showmessage(inttostr(GetExtendedLastErr()));
end;

ОпенПорт и Сетап выдают ошибку -2, похоже это эквивалентно отрицательному значению ошибки 1, то есть устройство не найдено, хотя это мое предположение

В любом случае, выходит, библиотека работает, но не контактирует с устройством

Zmiillo
27.04.2015, 15:17
Может кто подсказать, в какую сторону копать?

KichkoSV
26.06.2015, 10:08
const

// speed
spd_2400 = 0;
spd_4800 = 1;
spd_9600 = 2;
spd_14400 = 3;
spd_19200 = 4;
spd_28800 = 5;
spd_38800 = 6;
spd_57600 = 7;
spd_115200 = 8;

// parity
prty_NONE = 0;
prty_EVEN = 1;
prty_ODD = 2;

// data bits
databits_7 = 0;
databits_8 = 1;

// stop bit
stopbit_1 = 0;
stopbit_2 = 2;

// Тип преобразователя интерфейса
RS485CONV_MANUAL = 0;
RS485CONV_AUTO = 1;
RS485CONV_MANUAL_DTR = 2;

таким образом имеем следующий вызов

if OpenPort( 10, spd_9600, prty_NONE, databits_8, stopbit_1, RS485CONV_AUTO ) <> 0 then begin
// обработка ошибки

end else begin
// успешное открытие порта

end;