Контракты онлайн-данных. СПИК

 

Контракт данных SpicOnlineData

// Онлайн-данные. 
SpicOnlineData 
{ 
    // Id терминала. 
    SpicDeviceId DeviceId

    // Адрес. 
    string Address

    // Время подключения. 
    DateTime? ConnectionDateTime

    // Дата последнего сообщения. 
    DateTime? LastMessageTime

    // Дата последнего обновления навигационных данных. 
    DateTime? NavigationTime

    // Количество сообщений. 
    int TotalMessages

    // Данные телеметрии. 
    SpicNavigation Navigation

    // Корректность навигационных данных. 
    bool IsNavigationValid 
}

Контракт данных SpicOnlineDataCollection

// Коллекция онлайн-данных 
SpicOnlineDataCollection 
{ 
    // Объекты, для которых получаются онлайн-данные 
    int[] Targets

    // Онлайн-данные для объектов 
    SpicOnlineData[] DataCollection 
}

Контракт данных SpicOnlineDataOperationState

// Состояние операции запроса онлайн-данных 
SpicOnlineDataOperationState 
{ 
    // Статус операции 
    SpicOnlineDataOperationStatus Status

    // Коды ошибок 
    int[] ErrorCodes 
}

Параметр ErrorCodes может содержать в себе следующие элементы: 

  • 200 (BadRequest) – Некорректный запрос.
  • 201 (RightsViolation) – Нарушение прав доступа.
  • 202 (InternalError) – Внутренняя ошибка сервера.
  • 203 (TerminalNotFound) – Не найден терминал.
  • 204 (SubscriptionNotFound) – Подписка не существует или устарела.
  • 205 (OnlineDataNotFound) – Онлайн данные отсутствуют.

Контракт данных SpicOnlineDataOperationStatus

// Статус запроса онлайн-данных 
SpicOnlineDataOperationStatus 
{ 
    // Значение 
    string Value 
}

Параметр Value может принимать следующие значения: 

  • None – Не определено.
  • Ok – Успех.
  • Error – Ошибка.
  • Busy – Сервер занят, повторить запрос.
  • PartialOk – Запрос исполнился только для части объектов.

Контракт данных SpicOnlineDataResponse

// Результат запроса онлайн-данных

SpicOnlineDataResponse 
{ 
    // Статус запроса 
    SpicOnlineDataOperationState State 
        
    // Коллекция онлайн-данных 
    SpicOnlineDataCollection OnlineDataCollection 
}

Контракт данных SpicOnlineDataSessionId

// Идентификатор сессии

SpicOnlineDataSessionId 
{ 
    // Идентификатор сессии 
    Guid Id 
}

Контракт данных SpicOnlineDataSubscriptionRequest

// Подписка на онлайн-данные

SpicOnlineDataSubscriptionRequest 
{ 
    // Идентификаторы объектов подписки 
    int[] UnitIds 
}

Контракт данных SpicOnlineDataSubscriptionResponce

// Ответ на запрос подписки

SpicOnlineDataSubscriptionResponse 
{ 
    // Идентификатор сессии 
    SpicOnlineDataSessionId? SessionId

    // Статус подписки 
    SpicOnlineDataOperationState State 
}