Computed Attributes, Lists and Device Attributes

memesaregood3 years ago

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

memesaregood3 years ago

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

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

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

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

memesaregood3 years ago

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

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

Anton Tananaev3 years ago

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

memesaregood3 years ago

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

Anton Tananaev3 years ago

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

memesaregood3 years ago

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

memesaregood3 years ago

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

memesaregood3 years ago

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

Anton Tananaev3 years ago

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

memesaregood3 years ago

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

Anton Tananaev3 years ago

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

memesaregood3 years ago

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

memesaregood3 years ago

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