1

Вопрос по экспорту объекта в WLP

Тема: Вопрос по экспорту объекта в WLP

Добрый день!
Возникла следующая проблема:

Пытаюсь выполнить экспорт объекта в WLP посредством SDK.

выполняю пошаговые запросы
core/search_item
core/get_hw_types
unit/update_hw_params
unit/get_report_settings
unit/get_messages_filter
unit/get_trip_detector
unit/get_fuel_settings

потом получившиеся результаты объединяю в один и выполняю exchange/export_json
в ответ на это получается файл всего с 1 стокой:
{"itemsType":"avl_unit","propName":"sys_unique_id","propType":"property","propValueMask":"70655","sortType":"sys_name"}

Опубликовать вложения

Иконка вложений WLP.txt 73.72 Кб, файл был скачан 1928 раз(а) 

2

Вопрос по экспорту объекта в WLP

(22/08/2014 10:57:08 отредактировано spev)

Re: Вопрос по экспорту объекта в WLP

В запросе exchange/export_json вы подаёте некорректный json.
Нельзя просто объединить результаты запросов нужно сформировать из них корректный json.

Для валидации json можете воспользоваться утилитой: http://jsonformatter.curiousconcept.com/

Telegram: Обновления Wialon, Wialon updates
Google Chrome Extensions: Wialon Units Map | Gurtam Forum Notifications | Wialon Apps Launcher
Evgenij Spitsyn, Developer, flespi team
3

Вопрос по экспорту объекта в WLP

Re: Вопрос по экспорту объекта в WLP

Исправил запрос - теперь json точ вточ как то что получается при просмотре под отладчиком в браузере. JSON валидный, но выходной файл не совпадает с тем, что приходит в мониторинге.
данные в файле.
что делаю не так теперь?

Опубликовать вложения

Иконка вложений new 4.txt 11 Кб, файл был скачан 996 раз(а) 

4

Вопрос по экспорту объекта в WLP

Re: Вопрос по экспорту объекта в WLP

Проверил утилитой http://tlrobinson.net/projects/javascript-fun/jsondiff/ параметр "json" и результат на выходе. Они идентичны, с точность до порядка следования ключей

Откуда такой странный ожидаемый результат? Например, advProps не фигурирует в отправляемых данных, откуда ему взяться в результате?

5

Вопрос по экспорту объекта в WLP

Re: Вопрос по экспорту объекта в WLP

Тогда непонятно что именно я должен запросить чтобы получить такой ответ? Просто все запросы которые я делаю взяты с отладки запроса из мониторинга. Какие тогда запросы необходимо выполнить чтобы полностью экспортировать объект?

6

Вопрос по экспорту объекта в WLP

Re: Вопрос по экспорту объекта в WLP

Все возможные данные описаны в документации на странице format/unit. Там же написано, что чтобы получить всё нужно указать "flags":0x3FFFFFFFFFFFFFFF.

Попробуйте сделать core/search_items указав "flags":0x3FFFFFFFFFFFFFFF, в ответе найти нужный объект и экспортировать его в файл

7

Вопрос по экспорту объекта в WLP

Re: Вопрос по экспорту объекта в WLP

Не помогает - Вы можете дать пример запросов - чтобы на выходе получить именно такой wlp? я в документации не нашел даже таких названий полей как general, advProps и т.д.

8

Вопрос по экспорту объекта в WLP

Re: Вопрос по экспорту объекта в WLP

Формирование данных для экспорта и их корректная обработка при импорте реализованы в самом интерфейсе wialon, а не sdk.
Запросы exchange/export_json и exchange/import_json только для отдачи Вашего json-а файлом и для получения json содержимого отправленного файла соответственно.
Т.е. если Вам нужно реализовать свой экспорт юнита в совместимый формат, который затем хотите импортировать через интерфейс wialon, Вы должны сформировать json со следующими полями:
{
    "sensors": [], // unit.getSensors() в виде массива!
    "fields": [], // unit.getCustomFields() в виде массива!
     "afields": [], // unit.getAdminFields() в виде массива!
     "aliases": [], // unit.getCommandDefinitions() в виде массива!
     "intervals":[], // unit.getServiceIntervals() в виде массива!
    "counters": {
        cfl: unit.getCalcFlags(),
        cnm: unit.getMileageCounter(),
        cneh: unit.getEngineHoursCounter(),
        cnkb: unit.getTrafficCounter()
    },
    "general": {
        n: unit.getName(),
        uid: unit.getUniqueId(),
        uid2: unit.getUniqueId2(),
        ph: unit.getPhoneNumber(),
        ph2: unit.getPhoneNumber2(),
        psw: unit.getAccessPassword(),
        hw: "!hw name!"
    },
    "reportProps": unit.getReportSettings(callback) // сначала выполнить функцию и получить данные, а затем заполнить поле
    "advProps": {
        "monitoring_sensor": unit.getCustomProperty("monitoring_sensor"),
        "use_sensor_color": unit.getCustomProperty("use_sensor_color"),
        "monitoring_sensor_id": unit.getCustomProperty("monitoring_sensor_id"),
        "track_sensor": unit.getCustomProperty("track_sensor"),
        "sensors_colors": unit.getCustomProperty("sensors_colors"),
        "sensors_colors_id": unit.getCustomProperty("sensors_colors_id"),
        "track_solid": unit.getCustomProperty("track_solid"),                       
        "solid_colors": unit.getCustomProperty("solid_colors"),
        "track_speed": unit.getCustomProperty("track_speed"),   
        "speed_colors": unit.getCustomProperty("speed_colors"),
        "label_color":  unit.getCustomProperty("label_color")};
        "msgFilter": unit.getMessagesFilter(callback) // сначала выполнить функцию и получить данные, а затем заполнить поле
    },
    "trip": unit.getTripDetector(callback), // сначала выполнить функцию и получить данные, а затем заполнить поле
    "fuel": unit.getFuelSettings(callback), // сначала выполнить функцию и получить данные, а затем заполнить поле

    "type": "avl_unit",
    "version":"b4"
}

Большинство полей необязательные.

Head of Wialon Local Department
Gurtam
9

Вопрос по экспорту объекта в WLP

Re: Вопрос по экспорту объекта в WLP

Пытаюсь сделать все тоже самое, но только через remote api. На sdk.wialon.com/wiki нет описания запросов для получения некоторых элементов.

Расскажите, пожалуйста, какие запросы и с какими параметрами нужно отправлять в remote api что бы получить элементы: "sensors",  "intervals", "hwConfig" и "driving".
Все остальное вроде получилось.

10

Вопрос по экспорту объекта в WLP

Re: Вопрос по экспорту объекта в WLP

Добрый день

Для получения данных необходимо добавить соответствующие dataFlags при получении объекта:
sensors - 0x1000
intervals - 0x8000

hwConfig и driving получаются отдельными запросaми:
1) unit/update_hw_params с параметром action=get
2) unit/get_drive_rank_settings

11

Вопрос по экспорту объекта в WLP

Re: Вопрос по экспорту объекта в WLP

Добрый день, так чем дело кончилось, получилось в итоге?

У меня такая же надобность, плюс бэкап пользователей и ресурсов.
Вызывать кучу функций как то не хочется....

Что то изменилось за пол года. Делаю для локала

спасибо