logoff | Дата: Вторник, 28.02.2012, 12:10 | Сообщение # 1 |
Тамбов
Группа: Администраторы
Сообщений: 655
Репутация: 19
Статус: 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 |
Тамбов
Группа: Администраторы
Сообщений: 655
Репутация: 19
Статус: Offline
| примеры фильтров:
фильтр на состояние команды 1
and State=2 -- фильтр по сотоянию отправленой команды
фильтр по ответу команды 2 - не то значение которое должно быть, или нет ответа
and (proverka.Answer<>'OK CMD NUMBER="9616290000";' or proverka.Answer is null)
|
|
| |