Computed Attributes, Lists and Device Attributes

memesaregood2 years ago

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

memesaregood2 years ago

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

abc.add(5);
abc[0];```

вернет ``parse error - ParseException (... < ComputedAttributesHandler:101 < AttributeResource:64 < ...)``
Anton Tananaev2 years ago

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

memesaregood2 years ago

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

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

Anton Tananaev2 years ago

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

memesaregood2 years ago

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

Anton Tananaev2 years ago

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

memesaregood2 years ago

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

memesaregood2 years ago

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

memesaregood2 years ago

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

Anton Tananaev2 years ago

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

memesaregood2 years ago

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

Anton Tananaev2 years ago

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

memesaregood2 years ago

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

memesaregood2 years ago

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