В Wialon можно назначать/снимать водителей, получать информацию по назначению/снятию водителей через различные запросы (текущее назначения, так и исторические). Ниже подробные примеры с описанием.
Узнаем назначения/снятия водителей для объекта через запрос svc=resource/get_driver_bindings в «unitId» указываем id объекта, в «resourceId» - id ресурса, в котором созданы водители. В параметре «driverId» указываем ноль, чтобы получить всех водителей, можно указать id конкретного водителя.
https://hst-api.wialon.us/wialon/ajax.html?svc=resource/get_driver_bindings¶ms={"resourceId":400,"unitId":4001,"driverId":0,"timeFrom":1615096800,"timeTo":1615355999}&sid=1ab5e2fa76e5a5a8d228767ff9d4ae4
Response
{"91":[{"t":1614357649,"u":400104356}]}
Где
Т.е данный водитель назначен на объект с 26го февраля.
Особенность этого запроса в том, что он также вернет один предыдущий статус водителя (назначение/снятие), не входящий в запрашиваемый интервал. Как в нашем примере - запрос за интервал с 7 марта, но т.к водитель уже с 26го февраля назначен на объект, значит до сих пор, т.е 7го марта он все еще на объекте, поэтому система вернула нам эту дату.
Получить информацию по этому водителю (имя, код, произвольные поля) можно через запрос core/search_items с флагом = 256
hst-api.wialon.com/wialon/ajax.html?svc=core/search_items¶ms={"spec":{"itemsType":"avl_resource","propName":"sys_name","propValueMask":"Pinch","sortType":"sys_name"},"force":1,"flags":257,"from":0,"to":200}&sid=41ab5e2fa76e5a5a8d228767ff9d4ae4
В ответе вернется весь список водителей данного ресурса, параметр «drvrs» в JSON, где каждое свойство 'N' = id водителя
К примеру,
"91":{ "id":91, "n":"Alex Makedony", "c":"4578", "jp":{ "HOSDriverId":"34840" }, "ej":{ }, "pwd":"", "ds":"", "p":"", "r":0, "f":1, "ck":0, "ct":1591723125, "mt":1591723215, "bu":400104356, "pu":0, "bt":1614357649, "bs":0, "pos":{ "y":0, "x":0 } }
Имя назначенного водителя Alex Makedony, код карточки = 4578
Пустой ответ {} обозначает, что за данный интервал не было назначено ни одного водителя, и также нет предыдущих назначений/снятий
В ответе может также вернуться история назначений нескольких или одного водителя (назначение/снятие)
К примеру,
{"4":[{"t":1614238047,"u":21728414},{"t":1615294868,"u":0}]}
Водитель был назначен Feb 25 2021 07:27:27 GMT+0 ( «t»:1614238047 ) и снят ( «u»:0 ) on Mar 09 2021 13:01:08 GMT+0 = «t»:1615294868
Или например история за месяц
https://hst-api.wialon.us/wialon/ajax.html?svc=resource/get_driver_bindings¶ms={%22resourceId%22:930849,%22unitId%22:21728414,%22driverId%22:0,%22timeFrom%22:1609730590,%22timeTo%22:1615337999}&sid=022d9a2cd00ab180126d0ed9f2c01df3
Ответ
{"4":[{"t":1608120592,"u":21728414},{"t":1609748526,"u":0},{"t":1609748535,"u":21728414},{"t":1609748585,"u":0},{"t":1614238047,"u":21728414},{"t":1615294868,"u":0}],"6":[{"t":1610616423,"u":21728414},{"t":1610616762,"u":0}],"9":[{"t":1614069254,"u":21728414},{"t":1614233926,"u":0},{"t":1614234031,"u":21728414},{"t":1614236654,"u":0},{"t":1614236684,"u":21728414},{"t":1614236900,"u":0}]}
3 водителя были назначены на объект (по каждому есть время снятия и назначения)
Другой запрос - resource/get_unit_drivers вернет текущего водителя на объекте, id которого указали в параметрах
https://hst-api.wialon.us/wialon/ajax.html?svc=resource/get_unit_drivers¶ms={%22unitId%22:4356}&sid=41ab5e2fa76e5a5a8d228767ff9d4ae4
{«4356»:[{«id»:«15»,«nm»:«Harold»,«ph»:«»}]} - водитель «Harold» сейчас на объекте
{} - пустой ответ значит, что сейчас на объекте нет никакого водителя.