Привет!
У нас проблема с подключением прибора Owen TRM202 через потоки
вот исходный текст
Код:
unit ThRead1;
interface
uses
Classes,TIOOwenLib,Math,SysUtils,Windows;
type
TReadTEM1 = class(TThread)
private
{ Private declarations }
protected
function InitLib:Boolean;
procedure Execute; override;
function AOpenPort:Boolean;
end;
var S:Single;
Opened:Boolean=False;
implementation
uses Unit1;
{ Important: Methods and properties of objects in visual components can only be
used in a method called using Synchronize, for example,
Synchronize(UpdateCaption);
and UpdateCaption could look like,
procedure TReadTEM1.UpdateCaption;
begin
Form1.Caption := 'Updated in a thread';
end; }
{ TReadTEM1 }
function TReadTEM1.AOpenPort: Boolean;
begin
Result:=False;
if(OpenPort(0,2,0,1,0,0)<0) then
begin
// MessageDlg('Error open port!!!',mtError,[mbOK],0);
Exit;
end;
Result:=True;
end;
procedure TReadTEM1.Execute;
begin
{ Place thread code here }
if not Opened then
if(OpenPort(0,2,0,1,0,0)<0) then
begin
Exit;
end else Opened:=True;
res:=ReadFloat24(26,0,'Pv',S,-1);
if res>=0 then
frmMain.RzLEDDisplay1.Caption:=FloatToStr(RoundTo(S,-2))
else
frmMain.RzLEDDisplay1.Caption:='ERROR';
end;
Нам в потоке приходится постоянно открывать порт в следствии этого загружется машина. Вариант с таймером не подходить
PS. Одна программа должна считывать данные с 10 приборов в режиме
OnLine. Помогите. Спасибо.