СПИК. Запрос статистик по аналоговым датчикам

1. Авторизация.

Метод запроса: POST
Заголовки: 
Content-Type: application/json
Accept: json
Запрос: http://login.scout-gps.ru:8081/spic/auth/rest/Login 
Параметры запроса на примере пользователя demo

{
      "Login":"demo",
      "Password":"demo",
      "TimeZoneOlsonId":"Europe/Moscow",
      "CultureName":"ru-ru",
      "UiCultureName":"ru-ru"
}
Результат: токен авторизации SessionId
{
    "ExpireDate": "/Date(1584542119531 0300)/",
    "IsAuthenticated": true,
    "IsAuthorized": true,
    "SessionId": "618cdd8b-f3e1-4c72-817e-f57896e5ce0f",
    "UserId": 10,
    "UserName": "Демо Доступ (Продукты)"
}
2. Запрос списка объектов, чтобы узнать UnitId

Метод запроса: POST
Заголовки: 
Content-Type: application/json
Accept: json
ScoutAuthorization: SessionId (что получили на 1 этапе)
Запрос: http://login.scout-gps.ru:8081/spic/units/rest/getAllUnitsPaged
Параметры передаваемые в запрос: 

{
      "Offset":0,
      "Count":10
}

Результат: UnitId объектов доступных пользователю

Обратите внимание

UnitId - это не номер терминала, а номер объекта в базе данных.

{
    "Units":[
      {
            "Brand":"",
            "Color":"",
            "CompanyId":7,
            "Description":"",
            "GarageNumber":"",
            "Model":"",
            "Name":"БМ и КТ №1",
            "OlsonId":"",
            "Owner":"",
            "Power":"",
            "Registration":"",
            "StateNumber":"А001АА197",
            "UnitId":13635,
            "UnitTypeId":2,
            "VinNumber":"",
            "Year":""
       }]}
3. Открыть сессию статистик за нужный период по необходимому объекту и получить Session Id

Метод запроса: POST
Заголовки: 
Content-Type: application/json
Accept: json
ScoutAuthorization: SessionId (что получили на 1 этапе)
Запрос: http://login.scout-gps.ru:8081/spic/StatisticsController/rest/StartStatisticsSession
Параметры передаваемые в запрос:

{
     "Period":
     {
         "Begin":"/Date(1584428676205)/",
         "End":"/Date(1584515076205)/"
     },

     "TargetObject":
     {
          "ObjectTypeId":"0F1E3A4A-88F5-4166-9BE8-76033DD85D08",
          "ObjectId":"13635"
     }
}
Для справки

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

0F1E3A4A-88F5-4166-9BE8-76033DD85D08 (транспортное средство)
0783BE26-6398-480C-A88F-871438A01C36 (терминал)
54E3C5C5-7EFE-49B9-AE0E-F8C44D52FA36 (профиль терминала)

Результат запроса: StatisticsSessionId

{

"OperationResult":{"Value":"Ok"},

"Session":{"StatisticsSessionId":"34509186-69e0-4708-851d-61e49c01d223"}

}
4. Добавить в сессию статистик статистику по аналоговым датчикам по всем или выборочно

Метод запроса: POST
Заголовки: 
Content-Type: application/json
Accept: json
ScoutAuthorization: SessionId (что получили на 1 этапе)
Запрос: http://login.scout-gps.ru:8081/spic/AnalogSensor/rest/AddStatisticsRequest
Параметры передаваемые в запрос:

{

     "Session":{"StatisticsSessionId":"34509186-69e0-4708-851d-61e49c01d223"},

     "Settings":{"SensorNumbers":null}
// или если нужны определенные датчики:
// "Settings":{"SensorNumbers":["32768","32784"]}

}
Обратите внимание

Номера датчиков указываются те, которые отображаются в СКАУТ-Студио (Рисунок 1)

Рисунок 1 - номер датчика в СКАУТ-Студио

Результат запроса: статистика добавлена в сессию

{"ErrorText":null,"Status":{"Value":"Ok"}}
5. Запустить построение статистики

Метод запроса: POST
Заголовки: 
Content-Type: application/json
Accept: json
ScoutAuthorization: SessionId (что получили на 1 этапе)
Запрос: http://login.scout-gps.ru:8081/spic/StatisticsController/rest/StartBuild
Параметры передаваемые в запрос:

{"StatisticsSessionId":"34509186-69e0-4708-851d-61e49c01d223"}

Результат: 

{"Value":"Ok"}
6. Запросить результат

Метод запроса: POST
Заголовки: 
Content-Type: application/json
Accept: json
ScoutAuthorization: SessionId (что получили на 1 этапе)
Запрос: http://login.scout-gps.ru:8081/spic/AnalogSensor/rest/GetStatistics
Параметры передаваемые в запрос:

{"StatisticsSessionId":"34509186-69e0-4708-851d-61e49c01d223"}

Результат: значения датчиков

{
"ChunkInfo":
  {
   "ChunkNumber":0,
   "ErrorText":null,
   "IsFinalChunk":true,
   "Period":{"Begin":"\/Date(1584428676205)\/","End":"\/Date(1584515076205)\/"},
   "Status":{"Value":"Ok"}},
   "Statistics":
   {"Sensors":[
   {"Points":[],"SensorName":"","SensorNumber":0},
   {"Points":[],"SensorName":"","SensorNumber":1},
   {"Points":[],"SensorName":"","SensorNumber":2}]}
}