Контракты статистик данных. СПИК
- 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
Контракт данных 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
{
// Количество валидных точек
int ValidPointsCount
// Количество невалидных точек
int InvalidPointsCount
// Точки навигации
SpicNavigationPoint[] Points
}
// Результат построения статистики по валидации навигационных данных
SpicNavigationValidationStatisticsResult
{
// Информация о состоянии построения порции статистик
SpicStatisticsChunkInfo ChunkInfo
// Статистика. Если не получилось построить - null.
SpicNavigationValidationStatistics Statistics
}
// Запрос построения статистики по фильтрации навигационных данных
NavigationFiltrationStatisticsRequest
{
// Сессия статистик
SpicStatisticsSession Session
// Настройки построения статистики
SpicNavigationFiltrationStatisticsSettings Settings
}
Контракт данных SpicLocation
// Координаты
SpicLocation
{
// Широта
double Latitude
// Долгота
double Longitude
}
//Навигация
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
{
// Точки навигации
SpicNavigationPoint[] Points
}
// Результат построения статистики по фильтрации навигационных данных
SpicNavigationFiltrationStatisticsResult
{
// Информация о состоянии построения порции статистик
SpicStatisticsChunkInfo ChunkInfo
// Статистика. Если не получилось построить - null.
SpicNavigationFiltrationStatistics Statistics
}
// Настройки построения статистики по фильтрации навигационных данных
SpicNavigationFiltrationStatisticsSettings
{
// Параметры фильтрации точек
SpicNavigationValidationFilter NavigationValidationFilter
// Параметры фильтрации отрезков пути
SpicTrackPeriodsFilter TrackPeriodsFilter
}
// Точка навигации
SpicNavigationPoint
{
// Момент получения данных
DateTime Timestamp
// Координаты
SpicNavigation Navigation
// Валидность навигационной точки
bool? IsNavigationValid
}
// Параметры фильтрации навигационных данных
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.
Чтобы избежать потенциальных проблем и не получить такое значение, рекомендуем делать проверку, получая статистики по периодам движения и стоянок и формируя запрос по статистике Одометра только по уже выгруженным на сервер данным.
<<Назад К оглавлению Далее>>
Для доступа к Базе Знаний пожалуйста авторизируйтесь на ресурсе СКАУТ-Университет.
Также в Базе Знаний есть специальная статья, описывающая операцию по восстановлению пароля.