1

JS - получение произвольных/административных полей

Тема: JS - получение произвольных/административных полей

https://sdk.wialon.com/api/index.html - тут есть описание как получить произвольное свойство, а как получить произвольное поле нет, а так же непонятно как получать административное поле

2

JS - получение произвольных/административных полей

Re: JS - получение произвольных/административных полей

из этого примера нашли как получать произвольные поля: https://sdk.wialon.com/playground/demo/unit_edit_fields
видно как в запросе указывается загрузка и административных полей, но через этот пример админ поля получить нельзя

3

JS - получение произвольных/административных полей

Re: JS - получение произвольных/административных полей

случайно получилось сделать наподобие произвольных полей:
sess.loadLibrary("itemAdminFields")
и метод getAdminFields

подскажите где можно получить документацию об этих библиотеках и их функциях?

4

JS - получение произвольных/административных полей

Re: JS - получение произвольных/административных полей

В reference SDK, к сожалению, перечислены только те методы/события, которые реализованы вручную. Есть набор сущностей, которые мы называем propitem'ами, которые содержатся в item'ах (объекты, группы объектов, пользователи, ресурсы, маршруты, ретрансляторы). Для них методы в SDK генерируются автоматически-динамически и средство генерации документации их не подхватывает.

Кусок кода, который добавляет эти свойства:

bindPropItem(wialon.item.Item, "flds", "customField", "item/update_custom_field");
bindPropItem(wialon.item.Item, "ftp", "FtpProp", "item/update_ftp_property");
bindPropItem(wialon.item.Item, "aflds", "adminField", "item/update_admin_field");
bindPropItem(wialon.item.Item, "pflds", "profileField", "item/update_profile_field");
bindPropItem(wialon.item.User, "usnf", "userNotification", "user/update_user_notification");
bindPropItem(wialon.item.User, "mapps", "mobileApp", "user/update_mobile_app");
bindPropItem(wialon.item.Unit, "cml", "commandDefinition", "unit/update_command_definition");
bindPropItem(wialon.item.Unit, "sens", "sensor", "unit/update_sensor");
bindPropItem(wialon.item.Unit, "si", "serviceInterval", "unit/update_service_interval");
bindPropItem(wialon.item.Resource, "unf", "notification", "resource/update_notification", "resource/get_notification_data");
bindPropItem(wialon.item.Resource, "ujb", "job", "resource/update_job", "resource/get_job_data");
bindPropItem(wialon.item.Resource, "zl", "zone", "resource/update_zone", "resource/get_zone_data");
bindPropItem(wialon.item.Resource, "zg", "zonesGroup", "resource/update_zones_group");
bindPropItem(wialon.item.Resource, "poi", "poi", "resource/update_poi", "resource/get_poi_data");
bindPropItem(wialon.item.Resource, "drvrs", "driver", "resource/update_driver");
bindPropItem(wialon.item.Resource, "drvrsgr", "driversGroup", "resource/update_drivers_group");
bindPropItem(wialon.item.Resource, "trlrs", "trailer", "resource/update_trailer");
bindPropItem(wialon.item.Resource, "trlrsgr", "trailersGroup", "resource/update_trailers_group");
bindPropItem(wialon.item.Resource, "rep", "report", "report/update_report", "report/get_report_data");
bindPropItem(wialon.item.Resource, "orders", "order", "order/update");
bindPropItem(wialon.item.Resource, "order_routes", "orderRoute", "order/route_update");
bindPropItem(wialon.item.Resource, "tags", "tag", "resource/update_tag");
bindPropItem(wialon.item.Resource, "tagsgr", "tagsGroup", "resource/update_tags_group");
bindPropItem(wialon.item.Route, "rr", "round", "route/update_round", "route/get_round_data");
bindPropItem(wialon.item.Route, "rs", "schedule", "route/update_schedule");

Для примера возьмём как-раз произвольные поля:

bindPropItem(wialon.item.Item, "flds", "customField", "item/update_custom_field");

Происходит следующее. У объектов wialon.item.Item появляются следующие методы:

  • getСustomField(id) — возвращает объект поля по идентификатору
  • getСustomFields() — возвращает объект с полями
  • createCustomField(json, callback) — создаёт поле
  • updateCustomField(json, callback) — изменяет поле
  • deleteCustomField(id, callback) — удаляет поле

Плюс ещё несколько (set/modify), которые используются внутри и лучше их не трогать.

Кроме того, если есть третий аргумент (вроде resource/get_zone_data), то появляется ещё метод:

  • getZonesData(ids, flags, callback) — принимает массив идентификаторов геозон, опциональный второй аргумент флагов, опциональный коллбек
5

JS - получение произвольных/административных полей

Re: JS - получение произвольных/административных полей

LogExpert пишет:

подскажите где можно получить документацию об этих библиотеках и их функциях?

В документации wialon.core.Session у метода loadLibrary перечислены все возможные аргументы, которые можно в него передать:

  • userNotifications - personal notifications plugin, applied to users, require wialon.item.User.dataFlag.notifications data flags
  • itemCustomFields - custom fields plugin, applied to all items, require wialon.item.Item.dataFlag.customFields data flags, custom field sample: {id: X, n: "name", v: "value"}
  • itemAdminFields - admin fields plugin, applied to all items, require wialon.item.Item.dataFlag.adminFields data flags, admin field sample: {id: X, n: "name", v: "value"}
  • itemProfileFields - profile fields plugin, applied to all items, require wialon.item.Item.dataFlag.profileFields data flags, profile field sample: {id: X, n: "name", v: "value"}
  • itemIcon - add functionality from MIcon to units and unit groups, require wialon.item.Item.dataFlag.image data flags
  • unitCommandDefinitions - unit command definitions plugin, applied to units, require wialon.item.Unit.dataFlag.commandAliases data flags, command definition sample: {id: X, n: "my command", c: "query_pos", l: "gsm", p: "", a: 0x1}
  • unitSensors - unit sensors plugin, applied to units, require wialon.item.Unit.dataFlag.sensors data flags, sensors sample: {id: X, n: "my sensor", t: "unk", d: "", m: "km/h", p: "param", f: 0, c: "", vt: 0, vs: 0, tbl: [[0, 1, 2]]}
  • unitServiceIntervals- unit service intervals plugin, applied to units, require wialon.item.Unit.dataFlag.maintenance data flags
  • unitTripDetector - unit trip detector functionality
  • unitMessagesFilter - unit messages filter functionality
  • unitReportSettings - unit report settings
  • unitFuelSettings - unit fuel settings
  • resourceNotifications - unit notifications, applied to resources, require wialon.item.Resource.dataFlag.notifications data flags
  • resourceJobs - jobs, applied to resources, require wialon.item.Resource.dataFlag.jobs data flags
  • resourcePois - POIs, applied to resources, require wialon.item.Resource.dataFlag.poi data flags
  • resourceZones - zones, applied to resources, require wialon.item.Resource.dataFlag.zones data flags, zone sample
  • resourceZoneGroups - zone groups, applied to resources, require wialon.item.Resource.dataFlag.zoneGroups data flag
  • resourceDrivers - drivers, applied to resources, require wialon.item.Resource.dataFlag.drivers data flags
  • resourceDriverGroups - driver groups, applied to resources, require wialon.item.Resource.dataFlag.driverGroups data flags
  • resourceTrailers - trailers, applied to resources, require wialon.item.Resource.dataFlag.trailers data flags
  • resourceTrailerGroups - trailer groups, applied to resources, require wialon.item.Resource.dataFlag.trailerGroups data flags
  • resourceAccounts - billing account, applied to resources
  • resourceReports - reports, applied to resources
  • unitEvents - unit events history
  • mobileApps - registered user mobile applications

Каждое поле, которое я написал в прошлом сообщении, появляется после вызова loadLibrary с тем или иным значением. Конкретное сопоставление не предоставлю, но они по названиям очень похожи.

Кроме того, там в документации есть классы, которые начинаются с буквы M, например, MUnitSensor, их методы так же подмешиваются в объект соответствующего типа в зависимости от вызванной loadLibrary. Для MUnitSensor это, например unitSensors.

6

JS - получение произвольных/административных полей

Re: JS - получение произвольных/административных полей

в продолжение
Каким образом зная идентификатор водители или прицепа внутри учетной записи - получить полностью сведения по водителю или прицепу.
Включая адм поля ???

7

JS - получение произвольных/административных полей

Re: JS - получение произвольных/административных полей

kravchik пишет:

в продолжение
Каким образом зная идентификатор водители или прицепа внутри учетной записи - получить полностью сведения по водителю или прицепу.
Включая адм поля ???

Вам нужно сделать запрос core/search_item относительно ресурса, в котором содержится водитель/трейлер/пассажир с соответствующим флагом данных (можно объединить сразу все три).

Поля при этом будут в поле jp (разделения на произвольные/административные как у объектов нет).