каким образом считывать prevHardCounter ?Михаил Поляков писал(а):hardCounter - текущее значение data = UpdateData_LIR
prevHardCounter - предыдущее значение data
Проблема со считыванием данных с ЛИР-940Р
Модератор: Денис Кашин
-
- СКБИС
- Сообщения: 79
- Зарегистрирован: 06 фев 2008, 16:10
Код: Выделить всё
var
// Глобальные переменные
relativeCounter, prevHardCounterX, d, ReferentPoint:Integer;
const
MaxCounter=16777216; // = 1 shl 24 = 2^24
procedure TForm1.Timer1Timer(Sender: TObject);
var
StateByte, Ident : Byte;
hardCounterX, d,:Integer;
hardCounterX:= UpdateData_LIR (hFile, 2, ident, statebyte);
d:= hardCounterX - prevHardCounterX;
prevHardCounterX:= hardCounterX
if Abs(d) > (MaxCounter/2) then d:=d-sign(d)*MaxCounter;
RelativeCounter = RelativeCounter + d; // программно-аппаратный знаковый счетчик
if Ident=2 then begin
ReferentPoint = RelativeCounter; // координата референтной метки
end;
dLabel.Caption:=inttostr(RelativeCounter);
end;
Последний раз редактировалось Михаил Поляков 21 мар 2011, 09:20, всего редактировалось 1 раз.