Чтобы загрузить файл на сервер и распарсить его, используйте следующую сигнатуру resource/upload_tacho_file:
svc=resource/upload_tacho_file¶ms={"outputFlag":<uint>, "eventHash":<text>}
Чтобы привязать содержимое загруженного файла к водителю, используйте следующую сигнатуру:
svc=resource/upload_tacho_file¶ms={"itemId":<long>, "driverCode":<text>, "guid":<text>, "outputFlag":<uint>}
Параметр | Описание |
---|---|
itemId | id ресурса/учётной записи |
driverCode | код водителя |
guid | идентификатор переданного файла |
outputFlag | флаг ответа: 1 - получить заголовки ddd-файла (ddd header); 2 - получить activity |
eventHash | имя события, которое будет сгенери- ровано после прочтения данных |
Чтобы привязать содержимое файла к водителю, делайте следующее:
Request URL:https://hst-api.wialon.com/wialon/ajax.html?svc=resource/upload_tacho_file&sid=<sid> Request Method:POST Content-Type:multipart/form-data; boundary=----WebKitFormBoundary5QlpCrB8XAgXVIdR ------WebKitFormBoundary5QlpCrB8XAgXVIdR Content-Disposition: form-data; name="params" {"outputFlag":2,"eventHash":"jUploadForm1434694609224"} ------WebKitFormBoundary5QlpCrB8XAgXVIdR Content-Disposition: form-data; name="eventHash" jUploadForm1434694609224 ------WebKitFormBoundary5QlpCrB8XAgXVIdR Content-Disposition: form-data; name="upload_ddd"; filename="tacho_file.ddd" Content-Type: application/octet-stream ------WebKitFormBoundary5QlpCrB8XAgXVIdR--
В случае успеха, на запрос придет пустой json {}, а результат запроса можно будет получить из ответа на запрос avl_evts.
В полученном результате будет guid, который нужно использовать во второй сигнатуре метода для привязки содержимого файла к водителю.
Результат на ответ запроса avl_evts
{ "guid":<text>, /* идентификатор переданного файла */ "parseResult": { /* результат парсинга файла */ "an":<text>, /* контролирующий орган */ "c":<text>, /* страна */ "dc":<text>, /* код водителя, 14 символов */ "dn":<text>, /* имя водителя */ "la":<long>, /* время последней активности */ "ed":<long>, /* дата истечения */ "fa":<long>, /* время первой активности */ "id":<long>, /* id карточки */ "vb":<long>, /* действителен с */ "vl": [<text>] /* регистрационные номера транспортных средств */ "activity": { /* активность водителя; выводится, если указан outputFlag:2 */ "Availability": { "a":<uint>, /* действие водителя, по которому и происходит сортировка по Availability, Break/Rest и т.д.: 0 - break/rest, 1 - availability, 2 - work, 3 - driving */ "cs":<uint>, /* статус карты: 0 - вставлена, 1 - не вставлена */ "s":<uint>, /* слот водителя: 0 - водитель, 1 - второй водитель */ "st":<uint>, /* статус водителя: 0 - один водитель, 1 - команда */ "t":<uint> /* время */ }, "Break/Rest": { "a":<uint>, "cs":<uint>, "s":<uint>, "st":<uint>, "t":<uint> }, "Driving": { "a":<uint>, "cs":<uint>, "s":<uint>, "st":<uint>, "t":<uint> }, "Work": { "a":<uint>, "cs":<uint>, "s":<uint>, "st":<uint>, "t":<uint> } } } }