16.12.2017
Эффективная Навигация М2М
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум (скрипты, вопросы...) » CyberFleet » Скрипты для CyberFleet, CrossPoint » Скрипт сравнения по прибору ответов на команды (последний ответ сравнивается с предпоследним)
Скрипт сравнения по прибору ответов на команды
logoffДата: Четверг, 03.05.2012, 11:23 | Сообщение # 1
Тамбов
Группа: Администраторы
Сообщений: 652
Репутация: 19
Статус: Offline
Скрипт по приведенному списку команд сравнивает ответы от прибора последний с предпоследним, и выводит разницу между ответами
только для приборов М2М Cyber GLX (GX)

Code
declare @t table (com nvarchar(100))

insert into @t values ('server?');
insert into @t values ('@VERSION?');
insert into @t values ('@RCV BOARD?');
insert into @t values ('RCV ATTEMPTS?');
insert into @t values ('SATELLITE SYSTEM?');
insert into @t values ('U BATTERY?');
insert into @t values ('VALID ZONE?');

insert into @t values ('COMMAND ATTEMPTS?');
insert into @t values ('MIC LEVEL?');
insert into @t values ('SPK LEVEL?');
insert into @t values ('PDP?');
insert into @t values ('LOGIN?');
insert into @t values ('PASSWORD?');
insert into @t values ('CHECK INT?');
insert into @t values ('COMMUNICATION INTERVAL?');
insert into @t values ('ROAMING ATTEMPTS?');
insert into @t values ('COMMUNICANION MODE?');
insert into @t values ('PRIORITY NETWORK?');
insert into @t values ('FORBIDDEN NETWORK?');
insert into @t values ('CONNECT ATTEMPTS?');
insert into @t values ('PACKET QUEUE?');
insert into @t values ('CMD NUMBER?');
--insert into @t values ('UART MODE?');
insert into @t values ('UART SPEED?');
insert into @t values ('UART WORD?');
insert into @t values ('UART STOP?');

insert into @t values ('UART PARITY?');
insert into @t values ('UART FLOW?');
insert into @t values ('UART XON?');
insert into @t values ('UART XOFF?');
insert into @t values ('UART USE?');
insert into @t values ('INV INP?');
insert into @t values ('PPR NUMBER?');
insert into @t values ('PULSEACC TIME?');
insert into @t values ('RPM THLD?');
insert into @t values ('DINP THLD?');
insert into @t values ('INP ARRAY?');
insert into @t values ('DIO RELATION?');
insert into @t values ('RING DOUT?');

insert into @t values ('AUDIO DOUT?');
insert into @t values ('AINP CFG?');
insert into @t values ('AINP USE?');
insert into @t values ('AINP THLD?');
insert into @t values ('IGNITION INP?');
insert into @t values ('ZERO SPEED?');
insert into @t values ('PARK TIME INT?');
insert into @t values ('START MOTION?');
insert into @t values ('RUN INT?');
insert into @t values ('PARK INT?');
insert into @t values ('DIST THLD?');
insert into @t values ('COURSE THLD?');
insert into @t values ('MAX SPEED?');
insert into @t values ('TRAVEL DIST?');
insert into @t values ('HDOP?');
insert into @t values ('VDOP?');
insert into @t values ('PACKET TOUT?');
insert into @t values ('TREMBLE INP?');
insert into @t values ('DOUT PULSE?');

insert into @t values ('LLSAVER TIME?');
insert into @t values ('LLS TYPE?');
insert into @t values ('LLSSTART DELAY?');
insert into @t values ('LLSFINISH DELAY?');
insert into @t values ('MEASURSTART INP?');
insert into @t values ('MEASURSTART DELAY?');
insert into @t values ('REFERENCE INP?');
insert into @t values ('NORMALIZE INP?');
insert into @t values ('AINPAVER TIME?');
insert into @t values ('AINPDATA INT?');
insert into @t values ('ROAMING COURSE?');
insert into @t values ('AVIALABLE NETWORK?');
insert into @t values ('LOW POWER PROTECT?');
insert into @t values ('TRUE POSITION?');
insert into @t values ('MERGE ARCPACKETS?');
insert into @t values ('SUSPEND SERVICE?');
insert into @t values ('2D ENABLE?');
insert into @t values ('LLS ADDRESS?');

declare @UserID int, @device_code varchar(16)
set @device_code='00163013'
set @UserID=(select id from bn.dbo.sys_Users where name='Админ'); -- получим ид пользователя с указанным именем  
if (@UserID) is null begin print ('Пользователь не найден!') return end;-- провка на пользователя, что он есть  

--insert into bn.dbo.FLEET_OutCome (UserID,dev_code,[CommandTemplID],Command,State,objectid)
--select @UserID,d.code,com.CmmandID,'23|'+rtrim(ltrim(oc.com))+'|',0,o.ObjectID  
--from @t as OC
--inner join bn.dbo.SYS_DEV_Device as d on d.code=@device_code and d.DeviceActive=1  
--inner join bn.dbo.FLEET_Object as o on o.device_id=d.id
--inner join bn.dbo.FLEET_Command as com on com.Device_id=d.id and com.CommandCode=10
--where o.ObjectActive=1

-- заполнение временной таблицы

declare @t1 table (Command nvarchar(4000),Answer varchar(256),DateAnswer datetime, rnum int)
insert into @t1  
select oc.Command,oc.Answer,oc.DateAnswer, ROW_NUMBER() over (PARTITION BY oc.Command ORDER by oc.DateWrite desc) as rnum from bn.dbo.FLEET_OutCome as oc
inner join bn.dbo.FLEET_Object as o on o.ObjectID=OC.ObjectID
inner join bn.dbo.SYS_DEV_Device as d on o.Device_ID=d.id and d.DeviceActive=1  
--inner join @t as t on '23|'+rtrim(ltrim(t.com))+'|'=oc.Command
where d.code=@device_code

select '23|'+rtrim(ltrim(t.com))+'|',t1.Answer,t1.DateAnswer,t2.Answer,t2.DateAnswer from @t as t
left join  @t1 as t1 on t1.Command='23|'+rtrim(ltrim(t.com))+'|' and t1.rnum=1
left join  @t1 as t2 on t2.Command='23|'+rtrim(ltrim(t.com))+'|' and t2.rnum=2
where t1.Answer<>t2.Answer -- фильтр, что ответы не равны


где
set @device_code='00163013' -- номер прибора
set @UserID=(select id from bn.dbo.sys_Users where name='Админ'); -- получим ид пользователя с указанным именем

использовался совместно с скриптом запроса ответов
 
Форум (скрипты, вопросы...) » CyberFleet » Скрипты для CyberFleet, CrossPoint » Скрипт сравнения по прибору ответов на команды (последний ответ сравнивается с предпоследним)
Страница 1 из 11
Поиск:

LogOff © 2017
Сайт создан в системе uCoz Рейтинг GPS Клуба. GPS навигаторы. GPS мониториг. GPS трекеры. ГЛОНАСС