Computed Attributes, Lists and Device Attributes

memesaregooda year ago

Антон, здравствуйте!
Поставили Traccar к себе на тест, эксперементируем с вычисляемыми атрибутами, но как-то не получается.
Как создать переменную списка в вычисляемом атрибуте? Такое выражение:
var l = []
возвращает nullptr.
Еще такой вопрос: как в вычисляемых атрибутах использовать атрибуты, живущие в устройстве? Включили в конфиге опцию processing.computedAttributes.deviceAttributes, но когда при создании вычисляемого атрибута тестируем, то опять NullPtr. Следовали этой теме, не помогло: https://www.traccar.org/forums/topic/set-variable-for-computed-attributes/.
Помогите, пожалуйста, разобраться

memesaregooda year ago

А такое выражение

var abc=[...]; abc.add(5); abc[0];

вернет parse error - ParseException (... < ComputedAttributesHandler:101 < AttributeResource:64 < ...)

Anton Tananaeva year ago

Я не уверен что переменные поддерживаются.

memesaregooda year ago

Ну в JEXL Syntax Documentation про это есть информация, даже примеры приводят. Я думал, что если про это говорят, то можно. Тем более, что базовые типы переменных (строка, число, булево) можно задекларировать без проблем.

Окей, это не так важно. Как использовать Device Attributes в Computed Attributes?

Anton Tananaeva year ago

Можно использовать как переменные.

memesaregooda year ago

Мы пробовали так:
В устройстве есть атрибут attr1, в нем что-то записано. Но когда мы в выражении пишем attr1 или device.attr1, оно возвращает nullptr. Что мы не так делаем?

Anton Tananaeva year ago

Если processing.computedAttributes.deviceAttributes включен, но attr1 должен работать.

memesaregooda year ago

DevOps пишет, что все включено:
<entry key='processing.computedAttributes.deviceAttributes'>true</entry>

memesaregooda year ago

Попробуем завтра ещё раз. Спасибо за кларификацию со списками.

memesaregooda year ago

Попробовали еще раз. Оказалось, что при включённой настройке не выполняются даже самые простые выражения, такие как true или 1. Если выключить processing.computedAttributes.deviceAttributes, то выражения выполняются.
Возвращает это: NullPointerException (ComputedAttributesHandler:67 < *:101 < AttributeResource:64 < ...). Баги Traccar?

Anton Tananaeva year ago

Вы точно последнюю официальную версию Traccar используете? Номера строк не совпадают.

memesaregooda year ago

5.3. Вижу, что вышла 5.5. Ставили установщиком. Как обновить траккар? Есть инструкция?

Anton Tananaeva year ago

Есть. Вы документацию посмотрели перед тем как спрашивать?

memesaregooda year ago

Действительно. Забыл, что она существует. Сейчас обновим.

memesaregooda year ago

Спасибо, Антон, что ткнул носом в версию! Обновили до последней, теперь вроде все как надо.