Контракты онлайн-данных с датчиками. СПИК
Контракт сервиса получения онлайн-данных с датчиками
Возвращает |
Метод |
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; } |