Контракты онлайн-данных с датчиками. СПИК
Контракт сервиса получения онлайн-данных с датчиками
|
Возвращает |
Метод |
|
SpicOnlineDataWithSensorsSubscriptionResponse |
Subscribe(SpicOnlineDataWithSensorsSubscriptionRequest request) |
|
SpicOnlineDataWithSensorsOperationState |
Unsubscribe(SpicOnlineDataWithSensorsSessionId onlineDataSessionId) |
|
SpicOnlineDataWithSensorsResponse |
GetOnlineData(SpicOnlineDataWithSensorsSessionIdonlineDataSessionId) |
- 1 Подписка на получение онлайн-данных с датчиками. SpicOnlineDataWithSensorsSubscriptionResponse Subscribe(SpicOnlineDataWithSensorsSubscriptionRequest request)
- 2 Отписка от получения онлайн-данных. SpicOnlineDataWithSensorsOperationState Unsubscribe(SpicOnlineDataWithSensorsSessionId onlineDataSessionId)
- 3 Получение онлайн-данных. SpicOnlineDataWithSensorsResponse GetOnlineData(SpicOnlineDataWithSensorsSessionId onlineDataSessionId)
- 4 Таблица типов датчиков для передачи в запросе
- 5 Примеры реализации:
Подписка на получение онлайн-данных с датчиками. SpicOnlineDataWithSensorsSubscriptionResponse Subscribe(SpicOnlineDataWithSensorsSubscriptionRequest request)
Принимает:
Request – набор Id объектов мониторинга и набор типов датчиков (ushort[]), которые нужно получать вместе с онлайн-данными (один набор датчиков на все ТС).
Возвращает:
Идентификатор подписки.
Отписка от получения онлайн-данных. SpicOnlineDataWithSensorsOperationState Unsubscribe(SpicOnlineDataWithSensorsSessionId onlineDataSessionId)
Принимает:
onlineDataSessionId – идентификатор сессии получения онлайн-данных.
Возвращает:
Результат операции.
Получение онлайн-данных. SpicOnlineDataWithSensorsResponse GetOnlineData(SpicOnlineDataWithSensorsSessionId onlineDataSessionId)
Принимает:
onlineDataSessionId – идентификатор сессии получения онлайн-данных.
Возвращает:
Онлайн-данные, полученные по идентификатору подписки; содержит коллекцию Sensors. Для каждого датчика указывается его тип (ushort) (такой же, как в запросе), номер (ushort) и значение в строковом виде.
Обратите внимание!
Если в запросе передать несуществующий тип датчика, то ошибки не будет, в ответе передаются только значения настоящих датчиков, имеющихся у данного ТС.
Таблица типов датчиков для передачи в запросе
|
Датчик |
Номер |
|
Analog |
10000 |
|
Discrete |
20000 |
|
Speed |
30000 |
|
OpenCover |
30001 |
|
Power |
30002 |
|
Fuel |
30004 |
|
FuelCounting |
30005 |
|
температура |
30006 |
|
EngineSpeed |
30007 |
|
BarrelRotation |
30008 |
|
FuelFlow |
30009 |
|
AlertButton |
30010 |
|
CleaningEquipmentSensor |
30011 |
|
PassengerSensor |
30012 |
|
TruckSensor |
30013 |
|
AdditionalFuelSensor |
30014 |
|
Altitude |
30015 |
|
Ignition |
30016 |
|
ActiveWork |
30017 |
|
DrivingSafety |
30018 |
|
Digital |
30019 |
|
Accidents |
30020 |
|
MainPower |
30022 |
|
BackupPower |
30023 |
|
DriverId |
30024 |
|
FuelerId |
30025 |
|
FuelerSot |
30026 |
|
FuelerDut |
30027 |
|
FuelerSect |
30028 |
|
Angle |
30029 |
|
Odometer |
30030 |
|
SateliteCount |
30031 |
|
TotalFuelConsumption |
30032 |
|
EngineHours |
30033 |
|
AxleLoad |
30034 |
|
ParkingLights |
30035 |
|
DippedBeam |
30036 |
|
MainBeam |
30037 |
|
SeatBelt |
30038 |
|
CheckEngine |
30039 |
|
EngineTemperature |
30040 |
|
Stop |
30041 |
|
BreakSystem |
30042 |
|
BatteryCharging |
30043 |
|
SafetySystem |
30044 |
|
Pressure |
30045 |
|
EngineCoolantTemperature |
30046 |
|
TotalMileage |
30047 |
|
GsmLevel |
30048 |
|
Accuracy |
30049 |
|
BatteryLevel |
30050 |
|
ExternalPower |
30051 |
|
Movement |
30052 |
|
EmergencyLighting |
30053 |
|
FillingLeftModuleOpening |
30054 |
|
SwitchingComPump |
30055 |
|
FillingRightModuleOpening |
30056 |
Примеры реализации:
Пример реализации на C#
|
public class OnlineDataWithSensorsExample { //заглушка сервиса подписок на получение онлайн данных с датчиками private readonly SpicSoapOnlineDataWithSensorsServiceClient _dataServiceClient; public OnlineDataWithSensorsExample() { _dataServiceClient = new SpicSoapOnlineDataWithSensorsServiceClient();
} /// <summary> /// Метод получения онлайн-данных /// </summary> /// <remarks>Необходимо пройти авторизацию перед вызовом этого метода</remarks> /// <param name="unitIds">Идентификаторы объектов, по которым хотим получить онлайн-данные</param> /// <param name="sensorTypes">Идентификаторы типов датчиков, по которым хотим получить онлайн-данные</param> public SpicOnlineDataWithSensorsCollection GetOnlineDataWithSensors(int[] unitIds, ushort[] sensorTypes) { var subscription = new SpicOnlineDataWithSensorsSubscriptionRequest { UnitIds = unitIds, SensorTypes = sensorTypes }; var response = _dataServiceClient.Subscribe(subscription); var onlineDataWithSensors = _dataServiceClient.GetOnlineData(new SpicOnlineDataWithSensorsSessionId { Id = response.SessionId.Value.Id }); return onlineDataWithSensors.OnlineDataWithSensorsCollection; } } |
Пример реализации на JS
|
var session = subscribeOnServer(unitIds, sensorTypes); var onlineDataWithSensors = getOnlineDataOnServerWithSensors(session.Id); return onlineDataWithSensors; function subscribeOnServer(unitIds, sensorTypes) { return provider.POSTAuthorized(subscribeUrl, { UnitIds: unitIds, SensorTypes: sensorTypes }, getAuthorizationToken()).response.SessionId; } function getOnlineDataOnServerWithSensors(subscriptionId) { return provider.POSTAuthorized(getOnlineDataUrl, { Id: subscriptionId }, getAuthorizationToken()).response.OnlineDataWithSensorsCollection; } |