AutoGRAPH.NET Service — различия между версиями

Материал из TK
Перейти к: навигация, поиск
(Дальше)
Строка 24: Строка 24:
 
</pre>
 
</pre>
   
<span class="marker">&nbsp;между binPath= и полным путем - пробел&nbsp;</span>
+
<span class="marker">между binPath= и полным путем - пробел</span>
   
 
== Дальше ==
 
== Дальше ==
Строка 32: Строка 32:
 
[[AutoGRAPH.NET_Service_Methods|Методы сервиса]]
 
[[AutoGRAPH.NET_Service_Methods|Методы сервиса]]
   
  +
[[AutoGRAPH.NET_Service_Examples|Примеры]]
== Методы сервиса ==
 
   
  +
[[AutoGRAPH.NET_Service_Диагностика_неисправностей|Диагностика неисправностей]]
*[[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;
 
 
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
 
}
 
 
using (var f = new TimeCalc("EnumGeoFences")) // запрашиваем список доступных в схеме геозон
 
svc.EnumGeoFences(currentSchema);
 
 
using (var f = new TimeCalc("GetDevicesInfo"))
 
svc.GetDevicesInfo(currentSchema);
 
 
using (var f = new TimeCalc("EnumParameters")) // запрашиваем список параметров для ТС
 
svc.EnumParameters(currentSchema, currentDevices);
 
 
 
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);
 
}
 
}
 
 
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);
 
}
 
}
 
 
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();
 
}
 
}
 
 
// простой класс для замера скорости выполнения блока
 
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>
 
 
[[Media:AutoGRAPHSvcTest.zip|Скачать проект для Visual Studio 2013/2015]]
 
 
[[Media:AutoGRAPHSvc_ExampleResults.zip|Скачать результаты выполнения (.XML-файлы примера)]]
 
 
По умолчанию используется HTTP binding, но ровно таким [https://msdn.microsoft.com/en-us/library/ms733027(v=vs.110).aspx же способом]&nbsp;можно включить и [http://wcfsecurity.codeplex.com/wikipage?title=Questions and Answers&referringTitle=Home=Home другие транспорты].
 
 
== [[AutoGRAPH.NET_Service_Диагностика_неисправностей|Диагностика неисправностей]] ==
 
 
Список возможных ошибок и особенностей конфигурации приведён [[AutoGRAPH.NET_Service_Диагностика_неисправностей|здесь]].
 

Версия 11:20, 19 октября 2015

Сервис предоставляет WCF/JSON API для доступа ядру расчетов AutoGRAPH.NET. Конфигурация схем выполняется с помощью диспетчерского ПО AutoGRAPH.NET. Работает в двух режимах – консольном и как сервис.

Минимальные требования к аппаратному и программному обеспечению

Загрузка

Последняя версия: 2015.10.19, http://agi.tk-chel.ru/install/service/AutoGRAPHService20151019.zip

Примеры: http://agi.tk-chel.ru/install/service/AutoGRAPHServiceExamples.zip

Режим консоли

В основном предназначен для отладки и тестирования. Достаточно просто запустить файл AutoGRAPHNETService.exe.

Режим сервиса

Устанавливается как сервис (служба) Windows и работает автономно. Командная строка для установки:

sc create AutoGRAPHNETService binPath= "C:\TK\WebMapK\Build-Svc\AutoGRAPHNETService.exe"

между binPath= и полным путем - пробел

Дальше

Конфигурация

Методы сервиса

Примеры

Диагностика неисправностей