30.04.2017
Эффективная Навигация М2М
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум (скрипты, вопросы...) » CyberFleet » Скрипты для CyberFleet, CrossPoint » Скрипт контроля отправленной команды для всех приборов
Скрипт контроля отправленной команды для всех приборов
logoffДата: Вторник, 28.02.2012, 12:10 | Сообщение # 1
Тамбов
Группа: Администраторы
Сообщений: 645
Репутация: 17
Статус: Offline
Назначение:
Контроль отправки команды изменения параметра, и чтения значения параметра

Скрипт возвращает таблицу, где отражено две команды, причем первая параметр записывает, а вторая считывает
проверено на SQL standart
Code

use bn
select org.ShortName,o.ObjectGarNum,d.code,
otpr.Command Command
,otpr.State      
,proverka.Answer proverka
,cd.tele_time last_data
from dbo.FLEET_Object as O
inner join dbo.SYS_DEV_Device as D on d.id=o.Device_ID
left join dbo.SYS_OrgRequisite as org on org.id=o.OrganizationId
left join -- данные о последней отправленной команды изменения параметра
      (select ou.dev_code, ou.ObjectID, ou.Command, ou.state from [BN].[dbo].[FLEET_OutCome] ou
      inner join      
       (SELECT [dev_code]
          ,[ObjectID]
          ,MAX(idrec) idrec
          FROM [dbo].[FLEET_OutCome]
          where Command like '%cmd number=9616%'
          group by [dev_code]
          ,[ObjectID])      
       as otpravleno on otpravleno.idrec=ou.IDRec)
      as otpr on otpr.ObjectID=o.ObjectID and otpr.dev_code=d.code

left join -- данные о последней отправленной команды ЧТЕНИЯ параметра
      (select ou.dev_code, ou.ObjectID, ou.Answer from [BN].[dbo].[FLEET_OutCome] ou
      inner join      
       (SELECT [dev_code]
         ,[ObjectID]
         ,MAX(idrec) idrec
        FROM [dbo].[FLEET_OutCome]
        where Command like '%cmd number?%'
        group by [dev_code]
         ,[ObjectID])      
      as otpravleno on otpravleno.idrec=ou.IDRec)
as proverka on proverka.ObjectID=o.ObjectID and proverka.dev_code=d.code
                
left join dbo.SYS_DEV_CurrentData as CD on cd.ObjectID=o.ObjectID -- данные о последней связи
where o.ObjectActive=1
--and Command is null -- фильтр по не отправленным командам
and State=2 -- фильтр по сотоянию отправленой команды
order by org.ShortName,o.ObjectGarNum


на выходе
таблица с колонками:
организация, гаражный номер, код, команда1 (изменение параметра), состояние команды 1 (1 отправлено на сервер, 2 - ответ ОК, 3 - ошибка), Ответ команды команды 2, время последних координат.

Если под фильтр команд подходят несколько, то будет выбрана только последняя!!!
(например, отправляли две разных команды из КиберФлита - будет выбрана последняя команда)

Формат возврата таблички:

Фирма 44тк 00065000 23|cmd number=9616290000| 2 OK CMD NUMBER="9616290000"; 2012-02-28 12:17:26.000

на основании данного срипта был изменен скрипт отправки команды для M2M Cyber GLX
 
logoffДата: Вторник, 28.02.2012, 12:14 | Сообщение # 2
Тамбов
Группа: Администраторы
Сообщений: 645
Репутация: 17
Статус: Offline
примеры фильтров:

фильтр на состояние команды 1

and State=2 -- фильтр по сотоянию отправленой команды

фильтр по ответу команды 2 - не то значение которое должно быть, или нет ответа

and (proverka.Answer<>'OK CMD NUMBER="9616290000";' or proverka.Answer is null)
 
Форум (скрипты, вопросы...) » CyberFleet » Скрипты для CyberFleet, CrossPoint » Скрипт контроля отправленной команды для всех приборов
Страница 1 из 11
Поиск:

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