Контракты статистик данных. СПИК
- 1 Контракт данных SpicAddonStatisticsResult
- 2 Контракт данных SpicConcreteStatisticsResult
- 3 Контракт данных SpicStatisticsChunkInfo
- 4 Контракт данных SpicStatisticsSession
- 5 Контракт данных SpicStatisticsSessionRequest
- 6 Контракт данных SpicStatisticsSessionResponse
- 7 Контракт данных SpicStatisticsOperationResult
- 8 Контракт данных SpicDiscreteSensorsStatistics
- 9 Контракт данных SpicDiscreteSensorsStatisticsResult
- 10 Контракт данных SpicDiscreteSensorStatistics
- 11 Контракт данных SpicDiscreteSensorValuePoint
- 12 Контракт данных SpicAnalogSensorValuePoint
- 13 Контракт данных SpicFuelFlowStatistics
- 14 Контракт данных SpicFuelFlowStatisticsResult
- 15 Контракт данных SpicFuelFlowStatisticsSensor
- 16 Контракт данных SpicFdStatisticsFuelEventType
- 17 Контракт данных SpicFuelingDefuelingStatistics
- 18 Контракт данных SpicFuelingDefuelingStatisticsEvent
- 19 Контракт данных SpicFuelingDefuelingStatisticsResult
- 20 Контракт данных SpicMotorModesStatistics
- 21 Контракт данных SpicMotorModesStatisticsResult
- 22 Контракт данных SpicMotorPeriod
- 23 Контракт данных SpicMotorPeriodType
- 24 Контракт данных SpicNavigationValidationStatistics
- 25 Контракт данных SpicNavigationValidationStatisticsResult
- 26 Контракт данных NavigationFiltrationStatisticsRequest
- 27 Контракт данных SpicLocation
- 28 Контракт данных SpicNavigation
- 29 Контракт данных SpicNavigationFiltrationStatistics
- 30 Контракт данных SpicNavigationFiltrationStatisticsResult
- 31 Контракт данных SpicNavigationFiltrationStatisticsSettings
- 32 Контракт данных SpicNavigationPoint
- 33 Контракт данных SpicNavigationValidationFilter
- 34 Контракт данных SpicTrackPeriodsFilter
- 35 Контракт данных SpicTrackPeriod
- 36 Контракт данных SpicTrackPeriodsStatistics
- 37 Контракт данных SpicTrackPeriodStatisticsResult
- 38 Контракт данных SpicTrackPeriodType
- 39 Контракт данных SpicTrackRecoil
- 40 Контракт данных SpicTrackPeriodMileage
- 41 Контракт данных SpicTrackPeriodsMileageStatistics
- 42 Контракт данных SpicTrackPeriodsMileageStatisticsResult
- 43 Контракт данных SpicOdometerStatisticsResult
- 44 Контракт данных SpicAnalogSensorsStatistics
- 45 Контракт данных SpicAnalogSensorsResult
Контракт данных SpicAddonStatisticsResult
// Результат добавления статистики к сессии построения статистики. SpicAddonStatisticsResult { // Статус операции. SpicStatisticsOperationResult Status // Сообщение об ошибке. string ErrorText }
Контракт данных SpicConcreteStatisticsResult
// Результат построения конкретной статистики, // которая должна отдаваться из менеджера построения статистики. // Является частью запроса. SpicConcreteStatisticsResult { // Информация о ходе построения конкретной статистики. SpicStatisticsChunkInfo ChunkInfo // Конкретная статистика. Если не получилось построить - null. IStatistics Statistics }
Контракт данных SpicStatisticsChunkInfo
// Информация о построении конкретной статистики. SpicStatisticsChunkInfo { // Период данной порции статистики. SpicDateTimeRange Period // Порядковый номер. int ChunkNumber // Является ли данная порция статистики последней. bool IsFinalChunk // Состояние задачи. SpicStatisticsOperationResult Status // Описание ошибки. string ErrorText }
Контракт данных SpicStatisticsSession
// Идентификатор сессии построения статистики В СПИК. SpicStatisticsSession { // Токен сессии. Guid StatisticsSessionId }
Контракт данных SpicStatisticsSessionRequest
// Запрос на открытие сессии для построения статистики. SpicStatisticsSessionRequest { // Период построения статистики. SpicDateTimeRange Period // Объект, по которому хотим строить статистику. SpicObjectIdentity TargetObject }
Контракт данных SpicStatisticsSessionResponse
// Результат открытия сессия для построения статистики. SpicStatisticsSessionResponse { // Сессия. SpicStatisticsSession Session // Состояние ответа. SpicStatisticsOperationResult OperationResult }
Контракт данных SpicStatisticsOperationResult
// Состояние выполнения операции при построении статистик SpicStatisticsOperationResult { string Value }
Параметр Value может принимать следующие значения:
- Ok - Готово
- Processing – Еще строится
- Error – Ошибка
- None – неизвестно.
Контракт данных SpicDiscreteSensorsStatistics
// Набор статистик по дискретным датчикам SpicDiscreteSensorsStatistics { // Статистики SpicDiscreteSensorStatistics[] Sensors }
Контракт данных SpicDiscreteSensorsStatisticsResult
// Результат запроса статистики SpicDiscreteSensorsStatisticsResult { // Информация о состоянии построения порции статистик SpicStatisticsChunkInfo ChunkInfo // Статистика. Если не получилось построить - null. SpicDiscreteSensorsStatistics Statistics }
Контракт данных SpicDiscreteSensorStatistics
// Статистика по одному сенсору. Каждому Points соответствует определенный дискретный датчик из карточки объекта. Например, если в карточке объекта первым дискретным датчиком указан Зажигание, то в ответе от СПИК он будет соответствовать первой выдаче Points. SpicDiscreteSensorStatistics { // Набор точек SpicDiscreteSensorValuePoint[] Points }
Контракт данных SpicDiscreteSensorValuePoint
// Точка статистики по дискретному датчику SpicDiscreteSensorValuePoint { // Момент получения значения DateTime Timestamp // Значение bool Value }
Контракт данных SpicAnalogSensorValuePoint
// Точка статистики по аналоговому датчику SpicAnalogSensorValuePoint { // Момент получения значения DateTime Timestamp // Значение double Value }
Контракт данных SpicFuelFlowStatistics
// Статистика по расходу топлива SpicFuelFlowStatistics { // Набор статистик по датчикам расхода топлива SpicFuelFlowStatisticsSensor[] Sensors // Суммарная статистика SpicFuelFlowStatisticsSensor Summary }
Контракт данных SpicFuelFlowStatisticsResult
// Результат запроса статистик SpicFuelFlowStatisticsResult { // Информация о состоянии построения порции статистик SpicStatisticsChunkInfo ChunkInfo // Статистика. Если не получилось построить - null. SpicFuelFlowStatistics Statistics }
Контракт данных SpicFuelFlowStatisticsSensor
// Статистика по датчику расхода топлива SpicFuelFlowStatisticsSensor { // Номер датчика int SensorNumber // Имя датчика string SensorTitle // Потребление за время движения, в литрах double? MovementConsumptionL // Потребление топлива за время активной работы двигателя, в литрах double? EngineActiveWorkConsumptionL // Потребление топлива за время холостой работы двигателя, в литрах double? EngineIdleConsumptionL // Общее потребление топлива, в литрах double? TotalConsumptionVolumeL // Общее потребление топлива, в килограммах double? TotalConsumptionWeightKg // Точки статистики SpicAnalogSensorValuePoint[] Points }
Контракт данных SpicFdStatisticsFuelEventType
// Тип события заправок/сливов топлива SpicFdStatisticsFuelEventType { string Value }
Параметр Value может принимать следующие значения:
- Fueling - Заправка
- Defueling - Слив
- None – неизвестно.
Контракт данных SpicFuelingDefuelingStatistics
SpicFuelingDefuelingStatistics { // Начальный объем в литрах. double? BeginFuelVolumeL // Конечный объем в литрах. double? EndFuelVolumeL // Минимальный объем в литрах. double? MinFuelVolumeL // Максимальный объем в литрах. double? MaxFuelVolumeL // Объем заправок в литрах. double? FuelingTotalVolumeL // Объемом сливов в литрах. double? DefuelingTotalVolumeL // Общий расход топлива в литрах. double? TotalFuelConsumptionL // Количество заправок. int FuelingCount // Количество сливов. int DefuelingCount // Топливные события. SpicFuelingDefuelingStatisticsEvent[] Events }
Контракт данных SpicFuelingDefuelingStatisticsEvent
SpicFuelingDefuelingStatisticsEvent { // Период происхождения события. SpicDateTimeRange Period // Период происхождения исходного события (для разделённых событий). SpicDateTimeRange OriginalPeriod // Время совершения события. DateTime Timestamp // Тип события. SpicFdStatisticsFuelEventType EventType // Начальный уровень топлива в литрах. double BeginFuelVolumeL // Конечный уровень топлива в литрах. double EndFuelVolumeL // Начальный уровень топлива в литрах для исходного события (для разделённых событий). double? OriginalBeginFuelVolumeL // Конечный уровень топлива в литрах для исходного события (для разделённых событий). double? OriginalEndFuelVolumeL // Место происхождения события. SpicLocation Location }
Контракт данных SpicFuelingDefuelingStatisticsResult
// Результат запроса статистик по заправкам и сливам топлива SpicFuelingDefuelingStatisticsResult { // Информация о состоянии построения порции статистик SpicStatisticsChunkInfo ChunkInfo // Статистика. Если не получилось построить - null. SpicFuelingDefuelingStatistics Statistics }
Контракт данных SpicMotorModesStatistics
// Статистика по режимам работы двигателя SpicMotorModesStatistics { // Периоды режимов работы SpicMotorPeriod[] Periods // Время работы двигателя TimeSpan EngineOnHours // Суммарное время с выключенным двигателем TimeSpan EngineOffHours // Время активной работы двигателя TimeSpan EngineActiveWorkHours // Время работы на холостом ходу TimeSpan EngineIdleHours }
Контракт данных SpicMotorModesStatisticsResult
SpicMotorModesStatisticsResult { // Информация о состоянии построения порции статистик SpicStatisticsChunkInfo ChunkInfo // Статистика. Если не получилось построить - null. SpicMotorModesStatistics Statistics }
Контракт данных SpicMotorPeriod
// Период работы двигателя SpicMotorPeriod { // Тип периода // Например, Активная работа, перевозка на трале SpicMotorPeriodType TypeId // Временные рамки периода SpicDateTimeRange Period // Состояние двигателя true - двигатель включен, false - иначе bool IsIgnitionOn // Состояние датчика активной работы, true - датчик активен, false - иначе bool IsActiveWork }
Контракт данных SpicMotorPeriodType
// Тип периода трека. SpicMotorPeriodType { string Value }
Параметр Value может принимать следующие значения:
- Unknown – Не удалось определить
- Movement - Движение
- TralMovement – Движение на трале
- ActiveWorkParking – Активная работа на стоянке
- ActiveWorkMovement – Активная работа в движении
- Parking - Стоянка
- IdleParking - Стоянка на холостом ходу.
- Break - Разрыв
- NoData – Нет данных
Контракт данных SpicNavigationValidationStatistics
// Статистика данных по навигации прошедших предварительную проверку. SpicNavigationValidationStatistics { // Количество валидных точек int ValidPointsCount // Количество невалидных точек int InvalidPointsCount // Точки навигации SpicNavigationPoint[] Points }
Контракт данных SpicNavigationValidationStatisticsResult
// Результат построения статистики по валидации навигационных данных SpicNavigationValidationStatisticsResult { // Информация о состоянии построения порции статистик SpicStatisticsChunkInfo ChunkInfo // Статистика. Если не получилось построить - null. SpicNavigationValidationStatistics Statistics }
Контракт данных NavigationFiltrationStatisticsRequest
// Запрос построения статистики по фильтрации навигационных данных NavigationFiltrationStatisticsRequest { // Сессия статистик SpicStatisticsSession Session // Настройки построения статистики SpicNavigationFiltrationStatisticsSettings Settings }
Контракт данных SpicLocation
// Координаты SpicLocation { // Широта double Latitude // Долгота double Longitude }
Контракт данных SpicNavigation
//Навигация SpicNavigation { // Координаты. SpicLocation Location // Высота в метрах double? AltitudeMeters // Курс (0 == North, 90 == East) short? Angle // Количество спутников byte? SatellitesCount // Скорость (Км/ч) double? Speed // Тип используемой навигационной системы (систем) string NavigationSystemType // Корректность навигационных данных (GPS Fix от терминала) bool? HardwareValidation }
Параметр NavigationSystemType может принимать следующие значения:
- Unknown
- Gps
- Glonass
- GpsGlonass
- Galileo
- Lbs
Контракт данных SpicNavigationFiltrationStatistics
// Статистика по фильтрации навигационных данных SpicNavigationFiltrationStatistics { // Точки навигации SpicNavigationPoint[] Points }
Контракт данных SpicNavigationFiltrationStatisticsResult
// Результат построения статистики по фильтрации навигационных данных SpicNavigationFiltrationStatisticsResult { // Информация о состоянии построения порции статистик SpicStatisticsChunkInfo ChunkInfo // Статистика. Если не получилось построить - null. SpicNavigationFiltrationStatistics Statistics }
Контракт данных SpicNavigationFiltrationStatisticsSettings
// Настройки построения статистики по фильтрации навигационных данных SpicNavigationFiltrationStatisticsSettings { // Параметры фильтрации точек SpicNavigationValidationFilter NavigationValidationFilter // Параметры фильтрации отрезков пути SpicTrackPeriodsFilter TrackPeriodsFilter }
Контракт данных SpicNavigationPoint
// Точка навигации SpicNavigationPoint { // Момент получения данных DateTime Timestamp // Координаты SpicNavigation Navigation // Валидность навигационной точки bool? IsNavigationValid }
Контракт данных SpicNavigationValidationFilter
// Параметры фильтрации навигационных данных SpicNavigationValidationFilter { // Исключить валидные точки bool ExcludeValidPoints // Исключить невалидные точки bool ExcludeInvalidPoints // Исключить точки, которые не получилось провалидировать bool ExcludeNotValidatedPoints }
Контракт данных SpicTrackPeriodsFilter
// Параметры фильтрации отрезков пути SpicTrackPeriodsFilter { // Исключить отскоки bool ExcludeRecoilPoints // Исключить точки остановок bool ExcludeNotMovePoints // Включить точки стоянок bool IncludeParkingPoints }
Контракт данных SpicTrackPeriod
//Период движения SpicTrackPeriod { // Тип периода. // Например, движение или стоянка. SpicTrackPeriodType Type // Временные рамки периода. // Периоды "стыкуются" без пропусков, т.е. время начала периода совпадает со временем // завершения предыдущего периода. SpicDateTimeRange Period }
Контракт данных SpicTrackPeriodsStatistics
// Статистика по треку SpicTrackPeriodsStatistics { // Периоды движения SpicTrackPeriod[] Periods // Отскоки SpicTrackRecoil[] Recoils }
Контракт данных SpicTrackPeriodStatisticsResult
// Результат построения статистики по треку SpicTrackPeriodStatisticsResult { // Информация о состоянии построения порции статистик SpicStatisticsChunkInfo ChunkInfo // Статистика. Если не получилось построить - null. SpicTrackPeriodsStatistics Statistics }
Контракт данных SpicTrackPeriodType
// Тип периода трека. SpicTrackPeriodType { string Value }
Параметр Value может принимать следующие значения:
- Movement
- Parking
- Break
- NoData
- Unknown
Контракт данных SpicTrackRecoil
// Отскок SpicTrackRecoil { // Период времени отскока SpicDateTimeRange Period }
Контракт данных SpicTrackPeriodMileage
SpicTrackPeriodMileage { // Тип периода. // Например, движение или стоянка. SpicTrackPeriodType Type // Временные рамки периода. // Периоды "стыкуются" без пропусков, т.е. время начала периода совпадает со временем // завершения предыдущего периода. SpicDateTimeRange Period // Пробег в данном периоде. // Вычисляется алгоритмом определения расстояния с учетом кривизны земли. double? MileageKm // Пробег в рабочее время, км double? WorkTimeMileageKm // Средняя скорость, км/ч double? AverageSpeedKmh // Минимальная скорость, км/ч double? MinSpeedKmh // Максимальная скорость, км/ч double? MaxSpeedKmh }
Контракт данных SpicTrackPeriodsMileageStatistics
// Статистики трека с пробегом по каждому периоду. SpicTrackPeriodsMileageStatistics { // Пробеги по периодам трэка. SpicTrackPeriodMileage[] PeriodsMileage // Общее время в движении. TimeSpan MovementDuration // Общее время на стоянках. TimeSpan ParkingDuration // Общее время в разрывах. TimeSpan BreakDuration // Общая продолжительность. TimeSpan TotalDuration // Пробег в движении, км. double? MovementMileageKm // Пробег в разрывах, км. double? BreakMileageKm // Общий пробег, км. double? TotalMileageKm // Пробег в рабочее время, км. double? WorkTimeMileageKm // Минимальная скорость, км/ч double? MinSpeedKmh // Максимальная скорость, км/ч double? MaxSpeedKmh }
Контракт данных SpicTrackPeriodsMileageStatisticsResult
// Результат построения статистики по треку с пробегом по каждому периоду SpicTrackPeriodsMileageStatisticsResult { // Информация о состоянии построения порции статистик SpicStatisticsChunkInfo ChunkInfo // Статистика. Если не получилось построить - null. SpicTrackPeriodsMileageStatistics Statistics }
Контракт данных SpicOdometerStatisticsResult
Внимание. В данный момент функционал контракта не доступен на сервере СКАУТ 365.
// Результат построения статистики по величине пробега, определённой по одометру SpicOdometerStatisticsResult { // Пробег, км double? MileageKm // Сообщение об ошибке. string Error; }
в json будет полученный ответ будет выглядеть так:
{ MileageKm: 235.76, Error = null } или так { MileageKm: null, Error = “NoData” }
В ПО выбор датчика определяется следующим образом:
- Если есть физические одометры (логический датчик), то берётся первый из них;
- Если нет одометров, то берём виртуальный одометр (логический датчик);
- Если нет виртуальных одометров, то берём общий пробег по CAN (логический датчик TotalMileage);
- Если не получилось выбрать ни одного датчика – возвращаем ошибку NoSensor;
- Если получилось выбрать, то переходим к определению значения.
Значение датчика определяется так:
- Если за заданный период нет ни одного значения – отдаём ошибку NoData;
- Если за заданный период есть хотя бы одно значение – отдаём последнее из них.
Обратите внимание!
Из-за особенностей работы ПО (расчёта статистики с учётом нахлёста в 12 часов), запрашивать данные с использованием статистики SpicOdometerStatisticsResult можно только за сутки. В случае запроса статистики за более короткий промежуток, или в случае отсутствия данных, показания будут переданы с некорректным значением времени.
Например: При запросе с 09.03.2017 00:00 по 10.03.2017 00:00 данных не будет (терминал их ещё не выгрузил), но в базе найдётся значение например за 08.03.2017 17:00 равное 32000 км, оно и будет выдано, но со временем 09.03.2017 00:00.
Чтобы избежать потенциальных проблем и не получить такое значение, рекомендуем делать проверку, получая статистики по периодам движения и стоянок и формируя запрос по статистике Одометра только по уже выгруженным на сервер данным.
Контракт данных SpicAnalogSensorsStatistics
//Статистика по аналоговым датчикам public class SpicAnalogSensorsStatistics { //Статистики по отдельным датчикам public SpicAnalogSensorStatistics[] Sensors } // Статистика по одному аналоговому датчику public class SpicAnalogSensorStatistics { //Коллекция значений public SpicAnalogSensorValuePoint[] Points //Номер датчика public ushort SensorNumber //Название датчика public string SensorName } // Запрос статистик по аналоговым датчикам public class SpicAnalogSensorsStatisticsRequest { //Сессия запроса статистик public SpicStatisticsSession Session //Настройки датчиков (необязательно) public SpicAnalogSensorsStatisticsSettings Settings } //Настройки запроса аналоговых датчиков public class SpicAnalogSensorsStatisticsSettings { //Коллекция номеров запрашиваемых датчиков (Если null или пустая коллекция - то будут запрошены все аналоговые датчики) public int[] SensorNumbers }
Контракт данных SpicAnalogSensorsResult
// Результат запроса статистик по аналоговым датчикам public class SpicAnalogSensorsStatisticsResult { // Информация о состоянии построения порции статистик public SpicStatisticsChunkInfo ChunkInfo // Статистика. Если не получилось построить - null. public SpicAnalogSensorsStatistics Statistics }