Попросили коллеги разобраться с ненормальным данными в ST CrossPoint + StabLiner102. Оказывается что в CrossPoint как и старом добром Fleet`е произвольно прибавляется пробег. Судя по логам прибавляется пробег на значение внутреннего одометра пришедшее после включения прибора, т.е. ПО считает что должен придти 0, а приходит то что он накатал до выключения и прибавляет его в пробег. В техподдержке сказали что знают и пытаются исправить. Пока я в ручную пересчитываю приросты пробега в таблице SYS_DEV_ArchiveData.
Этот скрипт для номера АТ найдет в истории и укажет время где прирост между отбивками составил более 2км.
Код
use BN
go
declare @devCode int;
/*Номер прибора*/
set @devCode=10004041
declare @t table (
id int IDENTITY (1, 1) NOT NULL ,
teletime datetime,
run int);
declare @t1 table (
id int IDENTITY (1, 1) NOT NULL ,
run int);
declare @res table
(teletime datetime,
delta int)
insert into @t(teletime, run)
select tele_time,CurrentRun
from SYS_DEV_ArchiveData
where device_code=@devCode
order by tele_time
insert into @t1(run) values(0)
insert into @t1(run)
select run
from @t
insert into @res
select teletime, t.run-t1.run
from @t t left JOIN @t1 t1
on t.id=t1.id
where ABS(t.run-t1.run) >2000
select * from @res
order by teletime