i := 0;
t0 := Now;
while True do
begin
if ((Now-t0)*24*3600*1000 >= 200) then
begin
error := '[' + IntToStr(n) + ']';
Break;
end; while True do t0 := Now; ((Now-t0)*24*3600*1000 >= 200
t0 := Now;
while True do
begin
if ((Now-t0)*24*3600*1000 >= 200) then
begin
error := '[' + IntToStr(n) + ']';
Break;
end; while True do t0 := Now; ((Now-t0)*24*3600*1000 >= 200
var
port, n, i, j, k, c: Integer;
cmd: string;
buf: array[0..99] of Char;
buf1: array[0..19] of Char;
v0: double;
t0: TDateTime;
error: string;
seq: Integer;
begin
port := m_Comm.m_CommData.Port;
for n := First_Adam to Last_Adam do
begin
sio_flush(port, 2);
cmd := '#' + FormatFloat('00', n) + #13;
StrPCopy(buf, cmd);
i := Length(cmd);
if (sio_write(Port, buf, i) <= 0) then
Break;
for i := 0 to Length(buf)-1 do
buf[i] := 'A';
i := 0;
t0 := Now;
while True do
begin
if ((Now-t0)*24*3600*1000 >= 200) then
begin
error := '[' + IntToStr(n) + ']';
Break;
end;
j := sio_read(g_Measurement.m_Comm.m_CommData.Port, @buf[i], 10);
if (j >= 1) then
begin
i := i + j - 1;
if (buf[i] = #13) then
begin
k := 2; //从第二个字节开始
c := -1; //通道0
while (k < Length(buf)) and (buf[k] <> #13) do
begin
for j := 0 to Length(buf1)-1 do
buf1[j] := #0;
buf1[0] := buf[k-1];
j := 1;
while (buf[k] <> '-') and (buf[k] <> '+') do
begin
if (buf[k] = #13) then
Break;
buf1[j] := buf[k];
j := j + 1;
k := k + 1;
if k >= Length(buf) then
Break;
end;
if (buf[k] <> #13) then
k := k + 1;
c := c + 1;
buf1[j] := #0;
cmd := buf1;
try
v0 := StrToFloat(cmd);
seq := Log_No[n, c];
Real_Value[seq] := a2[Seq]*v0*v0 + a1[Seq]*v0 + a0[Seq];
except
Continue;
end;
end;
Break;
end; { end of if (buf[i] = #13) then}
i := i + 1;
end; {end of if (j >= 1) then}
end; { end of while True }
end; { end of for n := First_ADam }
if (Error <> '') then
MainForm.StatusBar1.Panels[3].Text := Error + '号前端通讯超时'
else
MainForm.StatusBar1.Panels[3].Text := '前端通讯正常';
end;整个过程如上 但里面的部分代码 不理解 请高手解读一下
i := 0;
t0 := Now;
while True do
begin
if ((Now-t0)*24*3600*1000 >= 200) then i := i + j - 1;
Real_Value[seq] := a2[Seq]*v0*v0 + a1[Seq]*v0 + a0[Seq]