Computed Attributes, Lists and Device Attributes

memesaregood 3 years ago

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

memesaregood 3 years ago

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

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

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

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

memesaregood 3 years ago

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

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

Anton Tananaev 3 years ago

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

memesaregood 3 years ago

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

Anton Tananaev 3 years ago

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

memesaregood 3 years ago

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

memesaregood 3 years ago

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

memesaregood 3 years ago

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

Anton Tananaev 3 years ago

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

memesaregood 3 years ago

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

Anton Tananaev 3 years ago

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

memesaregood 3 years ago

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

memesaregood 3 years ago

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