AutoGRAPH.NET Service — различия между версиями
Admin (обсуждение | вклад) (→Дальше) |
Ivan (обсуждение | вклад) |
||
| (не показаны 44 промежуточные версии 3 участников) | |||
| Строка 1: | Строка 1: | ||
| − | Сервис предоставляет WCF/JSON API для доступа ядру расчетов [[AutoGRAPH.NET|AutoGRAPH. |
+ | Сервис предоставляет WCF/JSON API для доступа ядру расчетов [[AutoGRAPH.NET|AutoGRAPH.Pro]]. Сервис обычно используется для интеграции в сторонние системы. Конфигурация схем выполняется с помощью ПО AutoGRAPH 7 WEB. Работает как сервис начиная с версий 2015.12.х. |
| + | |||
| + | [[File:AGNetService.png|RTENOTITLE]] |
||
== Минимальные требования к аппаратному и программному обеспечению == |
== Минимальные требования к аппаратному и программному обеспечению == |
||
| − | *RAM – от |
+ | *RAM – от 2 GB |
| − | *Windows 2008 или более новая |
+ | *Windows 2008 R2 или более новая |
| − | *.NET Framework 4. |
+ | *.NET Framework 4.6.2 или более новый |
| − | *установленный загрузчик данных ([[AGDataLoader|AutoGRAPH DataLoader]]) или [[AutoGRAPH_Server_5|AutoGRAPH Server |
+ | *установленный загрузчик данных ([[AGDataLoader|AutoGRAPH DataLoader]]) или [[AutoGRAPH_Server_5|AutoGRAPH Server 4.x или 5.x]] |
== Загрузка == |
== Загрузка == |
||
| − | + | Примеры: [http://agi.tk-chel.ru/install/service/AutoGRAPHServiceExamples.zip http://agi.tk-chel.ru/install/service/AutoGRAPHServiceExamples.zip] |
|
| − | |||
| − | Примеры: http://agi.tk-chel.ru/install/service/AutoGRAPHServiceExamples.zip |
||
| − | |||
| − | == Режим консоли == |
||
| − | |||
| − | В основном предназначен для отладки и тестирования. Достаточно просто запустить файл '''AutoGRAPHNETService.exe'''. |
||
| − | |||
| − | == Режим сервиса == |
||
| − | |||
| − | Устанавливается как сервис (служба) Windows и работает автономно. Командная строка для установки: |
||
| − | <pre>sc create AutoGRAPHNETService binPath= "C:\TK\WebMapK\Build-Svc\AutoGRAPHNETService.exe" |
||
| − | </pre> |
||
| − | |||
| − | <span class="marker"> между binPath= и полным путем - пробел </span> |
||
| − | |||
| − | == Дальше == |
||
| − | |||
| − | [[AutoGRAPH.NET_Service_Config|Конфигурация]] |
||
| − | |||
| − | [[AutoGRAPH.NET_Service_Methods|Методы сервиса]] |
||
| − | |||
| − | == Методы сервиса == |
||
| − | |||
| − | *[[AutoGRAPH.NET_Service_Login|Login]] [[File:Tag-new.png|RTENOTITLE]] – аутентификация и получение токена (в случае, если она включена) |
||
| − | *[[AutoGRAPH.NET_Service_EnumSchemas|EnumSchemas]] – получение списка доступных сервису схем |
||
| − | *[[AutoGRAPH.NET_Service_EnumDevices|EnumDevices]] – получение списка устройств схемы |
||
| − | *[[AutoGRAPH.NET_Service_EnumDrivers|EnumDrivers]] – получение информации о водителях в схеме |
||
| − | *[[AutoGRAPH.NET_Service_EnumGeoFences|EnumGeoFences]] – получение списка геозон схемы |
||
| − | *[[AutoGRAPH.NET_Service_GetGeoFences|GetGeoFences]] – получение информации о геозонах (точки для полигонов и т.д.) |
||
| − | *[[AutoGRAPH.NET_Service_EnumParameters|EnumParameters]] – получение списка параметров устройства в схеме |
||
| − | |||
| − | === Получение данных по приборам === |
||
| − | *[[AutoGRAPH.NET_Service_GetDevicesInfo|GetDevicesInfo]] – получение информации об устройстве в схеме |
||
| − | *[[AutoGRAPH.NET_Service_GetOnlineInfo|GetOnlineInfo]] – получение информации о последнем местоположении устройств |
||
| − | *[[AutoGRAPH.NET_Service_GetOnlineInfoAll|GetOnlineInfoAll]] – получение информации о последнем местоположении всех устройств |
||
| − | *''GetDataRanges – получение информации о загруженных данных для приборов (минимальная/максимальные доступные даты)'' |
||
| − | *[[AutoGRAPH.NET_Service_GetTrips|GetTrips]] – получение информации о рейсах приборов с текущими настройками схемы |
||
| − | *[[AutoGRAPH.NET_Service_GetTripTables|GetTripTables]] [[File:Tag-new.png|RTENOTITLE]] – получение табличных данных по рейсам приборов |
||
| − | *[[AutoGRAPH.NET_Service_GetTripsCustom|GetTripsCustom]] – получение информации о рейсах приборов с указанными геозонами |
||
| − | *[[AutoGRAPH.NET_Service_GetStage|GetStage]] – получение информации по одному отрезку для приборов |
||
| − | *[[AutoGRAPH.NET_Service_GetTrack|GetTrack]] – получение трека (даты/время, координаты, скорость) прибора |
||
| − | |||
| − | === Доступ к свойствам === |
||
| − | *[[AutoGRAPH.NET_Service_GetProperties|GetProperties]] – получение списка свойств и их значений устройства |
||
| − | *[[AutoGRAPH.NET_Service_GetProperty|GetProperty]] – получение значения одного свойства у списка приборов |
||
| − | |||
| − | === Выполнение отчетов === |
||
| − | *[[AutoGRAPH.NET_Service_EnumReports|EnumReports]] - получение списка доступных отчетов |
||
| − | *[[AutoGRAPH.NET_Service_GetReports|GetReports]] - выполнение нескольких отчетов и загрузка его в виде XML/PDF/DOCX/XLS/.../ZIP-файла (формат выполнения указывается) |
||
| − | *[[AutoGRAPH.NET_Service_GetReport|GetReport]] [[File:Tag-new.png|RTENOTITLE]] - выполнение одного отчета и загрузка его в виде XML/PDF/DOCX/XLS/.../ZIP-файла (формат выполнения указывается) |
||
| − | *[[AutoGRAPH.NET_Service_ExecuteReports|ExecuteReports]] - асинхронное выполнение отчета(ов) |
||
| − | *[[AutoGRAPH.NET_Service_GetReportsStatus|GetReportsStatus]] - получение состояния выполнения отчета(ов) |
||
| − | *''CancelReports - отмена выполнения отчета'' |
||
| − | |||
| − | === Получение информации из DDD-файлов тахографа === |
||
| − | *[[AutoGRAPH.NET_Service_GetCardStatistic|GetCardStatistic]] [[File:Tag-new.png|RTENOTITLE]] - получение информации по DDD-файлам указанной карты |
||
| − | *[[AutoGRAPH.NET_Service_GetCardStatisticAll|GetCardStatisticAll]] [[File:Tag-new.png|RTENOTITLE]] - получение информации по всем доступным DDD-файлам |
||
| − | *[[AutoGRAPH.NET_Service_GetCardRecords|GetCardRecords]] [[File:Tag-new.png|RTENOTITLE]] - получение информации из DDD-файлов указанных карт |
||
| − | |||
| − | === Прочее === |
||
| − | *[[AutoGRAPH.NET_Service_GetRoute|GetRoute]] – прокладка маршрута и получение этой информации в виде набора точек |
||
| − | *[[AutoGRAPH.NET_Service_WaitData|WaitData]] - ожидание получения новых данных |
||
| − | |||
| − | Также сервис поддерживает загрузку/выгрузку и получение списка схем. AutoGRAPH.NET начиная версии 2015.8.6 умеет работать с AutoGRAPH.NET Service как с веб-сервером. [[AutoGRAPH.NET_Service_WorkingSchemas|Подробнее здесь]]. |
||
| − | |||
| − | == Примеры == |
||
| − | |||
| − | [[Media:AutoGRAPHSvcTest.zip|Скачать проект для Visual Studio 2013/2015]] |
||
| − | |||
| − | [[Media:AutoGRAPHSvc_ExampleResults.zip|Скачать результаты выполнения (.XML-файлы примера)]] |
||
| − | |||
| − | [[Media:AutoGRAPHSvc.zip|Скачать файл прокси-класса AutoGRAPHSvc.cs]] |
||
| − | |||
| − | Скачать примеры (консольные и WinForms): http://agi.tk-chel.ru/install/service/AutoGRAPHServiceExamples.zip |
||
| − | |||
| − | <pre> |
||
| − | using System; |
||
| − | using System.Globalization; |
||
| − | using System.IO; |
||
| − | using System.Linq; |
||
| − | using System.Runtime.Serialization; |
||
| − | using AutoGRAPHService; |
||
| − | |||
| − | namespace AutoGRAPHSvcTest |
||
| − | { |
||
| − | class Program |
||
| − | { |
||
| − | static void Main(string[] args) |
||
| − | { |
||
| − | var svc = new AutoGRAPHSvcClient(); // создаем прокси-класс с адресом подключения по умолчанию |
||
| − | |||
| − | RSchema[] schemas; |
||
| − | using (var f = new TimeCalc("EnumSchemas")) // запрашиваем список доступных схем |
||
| − | schemas = svc.EnumSchemas(); |
||
| + | Доступ к тестовому сервису: |
||
| − | var currentSchema = schemas.FirstOrDefault(p => p.Name == "DemoCEBIT").Name; |
||
| + | [http://m.tk-chel.ru/ServiceWCF2.svc http://m.tk-chel.ru/ServiceWCF.svc] (WCF) |
||
| − | Guid[] currentDevices = null; |
||
| − | using (var f = new TimeCalc("EnumDevices")) |
||
| − | { |
||
| − | var devices = svc.EnumDevices(currentSchema); |
||
| − | foreach (var item in devices.Items) |
||
| − | Console.WriteLine("\t" + item.Name); |
||
| − | currentDevices = devices.Items.Where(p => p.Serial == 9999999 || p.Serial == 9999998).Select(p => p.ID).ToArray(); // выбираем только приборы с номерами 9999998 и 9999999 |
||
| − | } |
||
| + | [http://m.tk-chel.ru/ServiceJSON http://m.tk-chel.ru/ServiceJSON] (JSON) |
||
| − | using (var f = new TimeCalc("EnumGeoFences")) // запрашиваем список доступных в схеме геозон |
||
| − | svc.EnumGeoFences(currentSchema); |
||
| + | логин '''demo''' пароль '''demo''' |
||
| − | using (var f = new TimeCalc("GetDevicesInfo")) |
||
| − | svc.GetDevicesInfo(currentSchema); |
||
| + | == Режим работы (AutoGRAPH.Web) == |
||
| − | using (var f = new TimeCalc("EnumParameters")) // запрашиваем список параметров для ТС |
||
| − | svc.EnumParameters(currentSchema, currentDevices); |
||
| + | Начиная с версий 2015.12.х, AutoGRAPH.Web предоставляет API AutoGRAPH.NET Service по путям: |
||
| − | |||
| − | using (var f = new TimeCalc("GetOnlineInfo")) // запрашиваем онлайн-состояние ТС |
||
| − | { |
||
| − | var onlineInfo = svc.GetOnlineInfo(currentSchema, currentDevices); |
||
| − | var serializer = new DataContractSerializer(typeof (ROnlineInfo)); |
||
| − | foreach (var oi in onlineInfo) |
||
| − | { |
||
| − | var stm = new MemoryStream(); |
||
| − | serializer.WriteObject(stm, oi.Value); |
||
| − | var fileName = "OnlineInfo_" + oi.Key + ".xml"; |
||
| − | File.WriteAllBytes(fileName, stm.ToArray()); // записываем на диск в файл .xml сериализованное состояние |
||
| − | Console.WriteLine("OnlineInfo: {0}", fileName); |
||
| − | } |
||
| − | } |
||
| + | WCF: [http://имя-веб-сервера/ServiceWCF2.svc http://имя-веб-сервера/ServiceWCF2.svc] |
||
| − | using (var f = new TimeCalc("GetTrips")) // запрашиваем список рейсов за сегодня для ТС |
||
| − | { |
||
| − | var serializer = new DataContractSerializer(typeof (RTrips)); |
||
| − | var trips = svc.GetTrips(currentSchema, currentDevices, DateTime.Now.Date, DateTime.Now); |
||
| − | foreach (var trip in trips) |
||
| − | { |
||
| − | var stm = new MemoryStream(); |
||
| − | serializer.WriteObject(stm, trip.Value); |
||
| − | var fileName = "Trips_" + trip.Key + ".xml"; |
||
| − | File.WriteAllBytes(fileName, stm.ToArray()); // записываем на диск в файл .xml сериализованное состояние |
||
| − | Console.WriteLine("Trips: {0}", fileName); |
||
| − | } |
||
| − | } |
||
| + | 1C: [http://имя-веб-сервера/Service1C.asmx http://имя-веб-сервера/Service1C.asmx] |
||
| − | using (var f = new TimeCalc("GetTrack")) // запрашиваем треки за последние 5 дней для всех ТС, с номерами начинающихся 9999998 |
||
| − | { |
||
| − | var serializer = new DataContractSerializer(typeof(RTrackInfo[])); |
||
| − | var tracks = svc.GetTrack(currentSchema, currentDevices, DateTime.Now.Date, DateTime.Now); |
||
| − | foreach (var trip in tracks) |
||
| − | { |
||
| − | var stm = new MemoryStream(); |
||
| − | serializer.WriteObject(stm, trip.Value); |
||
| − | var fileName = "Tracks_" + trip.Key + ".xml"; |
||
| − | File.WriteAllBytes(fileName, stm.ToArray()); // записываем на диск в файл .xml сериализованное состояние |
||
| − | Console.WriteLine("Tracks: {0}", fileName); |
||
| − | } |
||
| − | } |
||
| − | Console.ReadLine(); |
||
| − | } |
||
| − | } |
||
| + | JSON: [http://имя-веб-сервера/ServiceJSON http://имя-веб-сервера/ServiceJSON] - рекомендуется к использованию |
||
| − | // простой класс для замера скорости выполнения блока |
||
| − | class TimeCalc : IDisposable |
||
| − | { |
||
| − | readonly DateTime DT; |
||
| − | readonly string name; |
||
| − | internal TimeCalc(string name) { DT = DateTime.Now; this.name = name; } |
||
| − | void IDisposable.Dispose() { Console.WriteLine(name + ": " + DateTime.Now.Subtract(DT).TotalSeconds.ToString("F3", CultureInfo.InvariantCulture)); } |
||
| − | } |
||
| − | } |
||
| − | </pre> |
||
| + | Подробее о механизме аутентификации Login [http://wiki.tk-chel.ru/index.php/AutoGRAPH.NET_Service_Auth здесь]. |
||
| − | [[Media:AutoGRAPHSvcTest.zip|Скачать проект для Visual Studio 2013/2015]] |
||
| + | == Работа с сервисом == |
||
| − | [[Media:AutoGRAPHSvc_ExampleResults.zip|Скачать результаты выполнения (.XML-файлы примера)]] |
||
| + | === [[AutoGRAPH.NET_Service_Methods|Методы сервиса]] === |
||
| − | По умолчанию используется HTTP binding, но ровно таким [https://msdn.microsoft.com/en-us/library/ms733027(v=vs.110).aspx же способом] можно включить и [http://wcfsecurity.codeplex.com/wikipage?title=Questions and Answers&referringTitle=Home=Home другие транспорты]. |
||
| + | === [[AutoGRAPH.NET_Service_Examples|Примеры]] === |
||
| − | == [[AutoGRAPH.NET_Service_Диагностика_неисправностей|Диагностика неисправностей]] == |
||
| − | + | === [[AutoGRAPH.NET_Service_Диагностика_неисправностей|Диагностика неисправностей]] === |
|
Текущая версия на 15:11, 6 октября 2020
Сервис предоставляет WCF/JSON API для доступа ядру расчетов AutoGRAPH.Pro. Сервис обычно используется для интеграции в сторонние системы. Конфигурация схем выполняется с помощью ПО AutoGRAPH 7 WEB. Работает как сервис начиная с версий 2015.12.х.
Содержание
Минимальные требования к аппаратному и программному обеспечению
- RAM – от 2 GB
- Windows 2008 R2 или более новая
- .NET Framework 4.6.2 или более новый
- установленный загрузчик данных (AutoGRAPH DataLoader) или AutoGRAPH Server 4.x или 5.x
Загрузка
Примеры: http://agi.tk-chel.ru/install/service/AutoGRAPHServiceExamples.zip
Доступ к тестовому сервису:
http://m.tk-chel.ru/ServiceWCF.svc (WCF)
http://m.tk-chel.ru/ServiceJSON (JSON)
логин demo пароль demo
Режим работы (AutoGRAPH.Web)
Начиная с версий 2015.12.х, AutoGRAPH.Web предоставляет API AutoGRAPH.NET Service по путям:
WCF: http://имя-веб-сервера/ServiceWCF2.svc
1C: http://имя-веб-сервера/Service1C.asmx
JSON: http://имя-веб-сервера/ServiceJSON - рекомендуется к использованию
Подробее о механизме аутентификации Login здесь.
