PDA

Просмотр полной версии : Баг GetVersion()



aRRma99
19.03.2021, 14:14
Заметил странный баг в функции Codesys'а GetVersion(). Это которая добавляется если поставить соотв. галочку в "Информация об обьекте".

54071

Так вот я с помощью функции GetVersion() забираю себе версию ПО из среды и перевожу ее себе в строку и тд. Тут все ок.

54072

Но если в проект добавить объект "Alarm Configuration", то версия проекта становится некорректной (и название проекта тоже).

54074

При этом если открыть функцию в проекте, то там уже нормальные значения. (Но чую я что атрибут {attribute 'register_in_runtime'} меняет переменные при запуске приложения)

54073

Собственно кто ни будь встречался с таки? Баг или фича? Для единообразия хотелось бы в настройках проекта все менять, а не в коде каждый раз контролировать переменные.

Евгений Кислов
19.03.2021, 14:44
А зачем все это, если есть узел таргет-файла Info?
(к ARRAY [0..80] OF BYTE нужно привязывать STRING)

54080

Если говорить именно про наблюдаемую ситуацию - с точки зрения разработчиков она не является значимым багом и есть пути обхода:

54081

aRRma99
22.03.2021, 22:10
Смешно конечно. 4 года такую мелочь не пофиксить.... Это уровень. Проще уже было выпилить функциональность если она не очевидно работает. По сути от нее толку нет.

Евгений Кислов
23.03.2021, 06:25
Смешно конечно. 4 года такую мелочь не пофиксить.... Это уровень. Проще уже было выпилить функциональность если она не очевидно работает. По сути от нее толку нет.

Не очень понятно - что значит "толку нет"?
На приведенном скриншоте показано два варианта, которые позволяют использовать эту функциональность при наличии в проекте AlarmManager.

aRRma99
23.03.2021, 10:51
При наличии в проекте AlarmManager GetVersion() возвращает не верные значения. Вот и все. По вашим скринам видно что проблема известна уже 4 года, но немцы положили на нее болт. Соотв. проще убрать эти пункты меню, чтобы не вводить пользователей в заблуждение не очевидной функциональностью.

Евгений Кислов
23.03.2021, 11:13
При наличии в проекте AlarmManager GetVersion() возвращает не верные значения. Вот и все. По вашим скринам видно что проблема известна уже 4 года, но немцы положили на нее болт. Соотв. проще убрать эти пункты меню, чтобы не вводить пользователей в заблуждение не очевидной функциональностью.

По-моему, написать __POOL.GetVersion() вместо GetVersion() - несложно.
Впрочем, тут каждый, конечно, решает сам.