- Стан: тестування та після-складання ...
Загальний процес випуску, користувачам для оцінки ваших очікувань та розробникам для нагадування завдань:
1. Тиждень приготування та складання:
- Складання останньої Робочої (Work) SVN-ревізії для всіх оточень нерегулярного складання щоб забезпечити ранне та широке тестування прийдешнього LTS релізу.
- Анонсування початку процесу випуску:
- створення нової сторінки релізу або сторінки оновлення на Wiki;
- створення нової новини-сторінки на сайті OpenSCADA;
- створення нового повідомлення-посилання на новину-сторінку на FaceBook та LinkedIn;
- Злиття змін Робочої (Work) версії, або копіювання цілком дерева Робочої гілки, до LTS гілки-дерева.
- Внесення деяких змін, специфічних до LTS, стосовно підняття версії:
- оновлення configure.ac щодо версії випуску-оновлення та бібліотеки ядра;
- оновлення data/*.spec та data/{debian,debian_mod}/changelog стосовно нового номеру версії та доповнення протоколу змін файлів новими записами випуску-оновлення.
- Формування-доповнення ПротоколуЗмін LTS змінами з ПротоколуЗмін Work, групуючи зміни за розташуванням та сортуючи їх за станом виправлення та рівнем, із комбінування нових можливостей у одному елементі та без видалення будь-яких відмінних змін.
- Копіювання значних змін із сформованого ПротоколуЗмін LTS до відповідної сторінки релізу-оновлення, беручи зміни за рівнем більш або рівні "!!".
- Переклад сторінок релізу-оновлення, оновлення "Завдання (ToDo)" та "Дорожньої карти (RoadMap)".
- Генерація актуальної позамережевої документації використовуючи сервісну процедуру "EXT: Off-line documentation".
- Застосування-вивантаження змін LTS дерева до репозиторію та складання цього.
- Анонсування релізу-оновлення.
2. Тиждень(і) тестування та після-складання:
- Гаряче тестування збірок релізу.
- Завершення та виправлення перекладу ПротоколуЗмін та документації.
- Генерація актуальної позамережевої документації використовуючи сервісну процедуру "EXT: Off-line documentation".
- Застосування-вивантаження виправлень релізу до репозиторію та складання цього щодо другої збірки, і для кожного тижня виправлення критичних помилок — перший тиждень без критичних виправлень означатиме завершення випуску LTS, тож, КОРИСТУВАЧІ, тестуйте ретельно LTS реліз щоб потім не скаржитись на його кінцеву збірку!
Це оновлення релізу 0.9 LTS виправляє біля 70 помилок та додає БАГАТО удосконалень із декількома значними-концептуальними, з якими цілком можна ознайомитися у протоколі змін оновлення.
Linux Дистрибутив Автоматизації проєкту OpenSCADA
- оновлення TDE до 14.0.13;
- виправлення noatun, TDESVN, basket, KGpg, відтак доповнення колекції дистрибутиву новими латаними пакетами "tdesvn-trinity" та "basket-trinity";
- деяке вдосконалення та оновлення Апаратного Менеджеру TDE, KCalc, holiday_ua;
- завершення перекладу Українською для KDiff3 та showfoto;
- переклад сторінки підпроєкту Українською.
Основні WWW-ресурси, документація проєкту та підпроєктів
- цілковито переглянуто та перекладено Українською документ "Серверна та хостингова інфраструктура проєкту OpenSCADA";
- виправлення роботи Сайту у Web-оглядачах старих вбудованих пристроїв на кшталт Nokia N900, N9;
- відновлення Maemo 5 (Nokia N900) із перенесенням на Ланцюг-втулок CSSU-Thumb, заснований на GCC 4.7.2 від Linaro; та оновлення сторінки проєкту;
- цілковитий перегляд документу "API" у секції "Інтерфейс Управління та динамічне дерево об'єктів програми" та секцію "Сервісні команди-функції" перенесено туди як підсекцію, підсекцію "Сервісні команди-функції" цілком переписано і доповнено, та все це перекладено Українською;
- розпочато новий підпроєкт Відкритий Телефон — PinePhone;
- цілковитий перегляд та актуалізація "Як здійснити Створення модулю OpenSCADA";
- розпочато новий підпроєкт Графічне програмування ПЛК в OpenSCADA;
- скрипти складання проєкту Автоматичний Складальник OpenSCADA цілком переглянуто і уніфіковано із оновленням документації підпроєкту та її перекладом Українською.
Нові та значно оновлені частини
- Ядро OpenSCADA: 3:12:0 => 3:13:0
- (Оптимізація продуктивності інтерфейсу СВУ, Уніфікація асоційованих вихідних транспортів із вхідним ТА загального підключення вихідного транспорту, Переклад Повідомлень — виправлення концептуальних змін попереднього оновлення)
- Підсистеми "Транспорти" OpenSCADA: 18 => 19
- DAQ.DAQGate: 2.9 => 2.11
- DAQ.JavaLikeCalc: 5.4 => 5.5
- DAQ.LogicLev: 2.6 => 2.7
- {DAQ,Protocol}.ModBus: 3.4 => 3.6, 2.9 => 2.10
- Archive.FSArch: 3.7 => 3.8
- Transport.Sockets: 4.3 => 4.5
- UI.QTStarter: 5.12 => 5.14
- UI.QTCfg: 5.9 => 5.12
- UI.VCAEngine: 7.8 => 7.11
- UI.Vision: 8.0 => 8.6
- UI.WebCfgD: 2.3 => 2.4
- UI.WebVision: 6.6 => 6.8
- LibsDB.OscadaLibs.LowDevLib: 1.4 => 1.5
- mbBase: 1.0 => 1.2
- LibsDB.OscadaLibs.base.initConAssociateTrs: 1.1 => 1.2
- LibsDB.vcaBase.Main
- RootPgSo: 2.5 => 2.6
- storeHouse: 1.1 => 1.3
- {grpGraph,grpGraph10}: 1.4 => 1.5
- grpCadr: 1.2 => 1.3
- ElCadr: 1.2 => 1.4
- ElViewGraph: 1.3 => 1.4
- ResultGraphEl: 1.1 => 1.2
- anShow: 1.2 => 1.3
- anShow1: 1.3 => 1.4
- TextLab: 1.1 => 1.2
- ImgLab: 1.1 => 1.2
- LibsDB.vcaBase.mnEls
- El_Kran_Sh: 1.1 => 1.2
- Compressor: 1.1 => 1.2
- El_Kran_polozh: 1.0 => 1.1
- LibsDB.vcaBase.doc
- docAlarmsRep: 1.6 => 1.7
- docRepDay: 3.1 => 3.2
- docRepMonth: 3.1 => 3.2
- docRepYear: 1.2 => 1.3
- docUsersSet: 1.7 => 1.8
- docDin: 1.2 => 1.3
КОНЦЕПТУАЛЬНЕ > Оптимізація продуктивності інтерфейсу СВУ
- FXI:UI.VCAEngine:
- Адаптовано до опрацювання у дуже великих періодичностях та цілковитого вимкнення періодичного опрацювання:
- виправлено отримання періоду із власника віджету сеансу;
- доповнено встановленням періоду на стороні сеансу, функцією Користувацького API calcPer() віджету сеансу, розширено визначенням спеціальних значень періоду: PerVal_Sess(0), PerVal_Parent(-1), PerVal_UserMin(PerVal_Dis(-2)), PerVal_SessDef(-3);
- "Період обчислення" перейменовано у "Періодичне опрацювання" та його визначено як загальний параметр, тобто перенесено до вкладки загальної конфігурації та додано до віджетів сторінок проєкту та дочірніх віджетів бібліотечного віджету;
- об'єкт сеансу доповнено функцією Користувацького API period(), що повертає період сеансу;
- період сеансу очищено у статусі віджету сеансу.
- Зміна атрибуту "alarmSt" доповнена новою супровідною подією "ws_alarmChange".
- Адаптовано до опрацювання у дуже великих періодичностях та цілковитого вимкнення періодичного опрацювання:
- UI.Vision: Адаптовано до перейменування "Період обчислення" у "Періодичне опрацювання" та перенесення до вкладки головної конфігурації. Попереднє поле у вкладці "Опрацювання" встановлено приховуваним за відсутності у моделі СВУ.
- LibsDB.vcaBase,ModelsDB.{AGLKS.vca,Boiler.St}: Проєкти СВУ встановлено у період обчислення 250 мс. Обчислення групи контролю СВУ проєктів встановлено у 1000 мс.
- LibsDB.vcaBase:
- wlb_Main.RootPgSo: Адаптовано до функціювання у дуже великій періодичності та вимкнення періодичного опрацювання взагалі:
- доповнено продовженням негайних циклів до відкриття сторінки контейнеру при запуску та після навігації, використовуючи нову подію "usr_calc";
- доповнено перемиканням на швидкий цикл за миготіння порушення, використовуючи нову функцію calcPer();
- переключено на період опрацювання 1000 мс.
- wlb_Main.ElCadr: Адаптовано до функціювання у дуже великій періодичності та вимкнення періодичного опрацювання взагалі:
- доповнено продовженням негайних циклів використовуючи нову подію "usr_calc";
- доповнено перемиканням на швидкий цикл за миготіння порушення, використовуючи нову функцію calcPer();
- переключено на період опрацювання -1 (предок).
- wlb_Main.{grpGraph,grpGraph10}: Адаптовано до функціювання у дуже великій періодичності та вимкнення періодичного опрацювання взагалі:
- доповнено продовженням негайних циклів використовуючи нову подію "usr_calc";
- переключено на період опрацювання -1 (предок);
- період стеження примітиву Діаграма також прив'язано до періоду Віджету.
- wlb_Main.ElViewCadr: Адаптовано до функціювання у дуже великій періодичності та вимкнення періодичного опрацювання взагалі:
- доповнено перемиканням на швидкий цикл за миготіння курсору, використовуючи нову функцію calcPer();
- переключено на період опрацювання -1 (предок);
- tracing period of the Diagram primitive linked also to the Widget period.
- wlb_Main.storeHouse: Адаптовано до функціювання у дуже великій періодичності та вимкнення періодичного опрацювання взагалі:
- переключено на період опрацювання -2 (disabled);
- доповнено продовженням негайних циклів використовуючи нову подію "usr_calc".
- wlb_Main.ElViewGraph: Адаптовано до функціювання у дуже великій періодичності:
- доповнено продовженням негайних циклів під час очікування появи значень, використовуючи нову подію "usr_calc";
- доповнено перемиканням на швидкий цикл за миготіння курсору, використовуючи нову функцію calcPer();
- обчислення встановлено у 2000 мс через необхідність оновлення цього за зміни курсору тренду.
- wlb_Main.grph_panel: Доповнено збереженням періоду стеження пов'язаного примітиву Діаграма. Переключено на період опрацювання -1 (предок).
- wlb_Main.{grpCadr,ResultGraphEl}: Адаптовано до функціювання у дуже великій періодичності та вимкнення періодичного опрацювання взагалі:
- переключено на період опрацювання -1 (предок);
- період стеження примітиву Діаграма також прив'язано до періоду Віджету.
- wlb_Main.{TextLab,ImgLab},wlb_mnEls.{El_Kran_polozh,El_Kran_Sh,Compressor}: Адаптовано до функціювання у дуже великій періодичності та вимкнення періодичного опрацювання взагалі:
- доповнено перемиканням на швидкий цикл за миготіння курсору, використовуючи нову функцію calcPer();
- переключено на період опрацювання -1 (предок).
- wlb_Main.{anShow,anShow1}: переключено на період опрацювання -1 (предок) та доповнено перемикання на швидкий цикл (500 мс) за фокусом та миготінням порушення.
- wlb_doc.{docRepDay,docRepMonth}, wlb_Main.{graphSelPrm,doc_panel,accept,treeSelect,cntrPaspExt}, wlb_Main.{ViewCadr,ResultGraph}: Переключено на період опрацювання -1 (предок).
- wlb_doc.{docDin,docAlarmsRep}: Переключено на період опрацювання -2 (вимкнено).
- wlb_doc.docRepMonth: Виключено виконання при зупинці.
- wlb_doc.docRepYear: Доповнено одним негайним циклом після f_start, використовуючи нову подію "usr_calc". Вимкнено періодичне опрацювання.
- wlb_Main.userManager: Вимкнено періодичне опрацювання.
- wlb_Main.RootPgSo: Адаптовано до функціювання у дуже великій періодичності та вимкнення періодичного опрацювання взагалі:
КОНЦЕПТУАЛЬНЕ > Уніфікація асоційованих вихідних транспортів із вхідним ТА загального підключення вихідного транспорту
- FIX: Уніфікація опрацювання асоційованих вихідних транспортів вхідного транспорту Sockets щодо:
- Transport:
- перейменування функції TTransportIn::assTrO() у TTransportIn::associateTrO() та розширення створенням нових транспортів на початку і подальшим видаленням зупинених, та щойно створені транспорти доповнено читанням ІД ініціювального підключення із реєстрацією у параметрі підключення "initConID";
- нової функції TTransportIn::associateTr() та її варіанту Користувацького API SYS.Transport["Modul"]["in_Transp"].associateTr() із отримання об'єкту вихідного транспорту за його ІД Підключення;
- доповнення асоційованих вихідних транспортів із вхідного видаленням за неактивності від TTransportIn::keepAliveTm();
- нової функції Користувацького API SYS.Transport["Modul"]["in_Transp"].associateTrsList() як коректного варіанту назви до assTrsList();
- доповнення об'єкту вихідного транспорту функціями Користувацького API conPrm() та setConPrm() із доступу до параметрів підключення;
- зміни шаблону назви у "inA_ID_N" для асоційованих вихідних транспортів до вхідного;
- FIX:Sockets: Вхідні транспорти виключено від зайвого закриття сокетів у ініціативному режимі. Перевірка обмеження нових ініціативних підключень переміщено до ділянки загальної перевірки обмежень.
- LibsDB.OscadaLibs: tmplib_base.initConsAssignTrs: Перейменовано у initConAssociateTrs та адаптовано до використання функції conPrm("initConID") і associateTrsList().
- Transport:
- Загальне підключення вихідного транспорту:
- Transport:
- нової функції TTransportS::outAt() та її варіанту Користувацького API SYS.Transport.outAt() із загального отримання вихідного транспорту з уніфікованої адреси;
- переведення TTransportS::extHost() на використання TTransportS::outAt();
- Transport,UI.{QTCfg,WebCfgD}: Поле "Транспорт" таблиці зовнішніх хостів розширено визначенням адреси транспорту в уніфікованій-загальній формі та розширено специфічним до елементу вибором із підтримкою такої поведінки у загальних конфігураторах.
- DAQ.ModBus: Перший, кого переведено на використання уніфікованого підключення до вихідного транспорту.
- LibsDB.OscadaLibs: tmplib_DevLib.mbBase: Переключено на використання TTransportS::outAt().
- Transport:
КОНЦЕПТУАЛЬНЕ > Переклад Повідомлень (виправлення концептуальних змін попереднього оновлення)
- FIX:SYS:
- FIX: Попереджено розповсюдженню стовпця базової мови таблиці перекладів "Tr" у режимі перекладу ОДИНИЧНИЙ та базовій мові.
- FIX: EVal значення рядка "<EVAL>" додано до неперекладуваних для запобігання його перекладу у VCAEngine для NULL значень БД.
- FIX: Менеджер перекладу попереджено взагалі щодо зміни маркованої бази у читабельну форму, оскільки воно використовується як ключ.
- TFunction::operator=() завершено адаптацію до перекладу назв ВВ.
- Запис до конфігурації у XML попереджено щодо дублювання поля перекладу для конфігураційних контекстів.
- FIX:БД:
- FIX: Попереджено розповсюдженню стовпця базової мови у режимі перекладу ОДИНИЧНИЙ для вже перекладуваних БД, шляхом додання відмінного виявлення перекладуваних загалом БД та наявності стовпця перекладу.
- FIX: Виправлено помилку синтаксису БД при очищені полів перекладу рівних базі.
- FIX: Виправлено запис неперекладуваних рядків, очищенням всіх перекладів та запису у базу.
- FIX: Попередження перериванню сервісу БД за наявності помилкової БД, закриттям транзакції.
- FIX: Встановлення перекладу попереджено щодо встановлення дублювальних повідомлень до базових повідомлень; що завершує неперекладання "<EVAL>".
- FIX: Відсутність прапорця TFld::TransltText визначається як цілковита відсутність перекладу цього поля.
- FIX:DAQ::ParamTmpl:
- FIX: Виправлено щодо редагування назви ВВ у небазовому режимі динамічного перекладу.
- FIX: Виправлено опрацювання прапорця IO::TransltText для рядків.
- FIX: Сервісний запит "list:/DAQ/{MOD}/{CNTR}/prm_{PRM}[/prm_{PRM}]/%2fserv%2fattr" виправлено у перекладі назви атрибуту.
- FIX:Транспорти,UI.{QTCfg,Vision,WebCfgD}: Функцію TTransportS::extHostList() доповнено аргументом "lang" для отримання перекладеними назв віддалених хостів.
- FIX:Protocol.ModBus: Виправлено-адаптовано у динамічному перекладі назв ВВ.
OpenSCADA бібліотеки та проєкти
- FIX:LibsDB.OscadaLibs:
- Бібліотеку tmplib_LowDevLib доповнено шаблоном "BT: RDTech UM24C, UM25C та UM34C (RDTech)".
- Бібліотеку tmplib_DevLib доповнено шаблоном "Прилади ТОВ СЛОТ (SLOT)".
- FIX:LibsDB.vcaBase:
- wlb_Main.storeHouse: Значним чином розширено: реалізацією підтримки процедур для логічних стовпчиків; реалізацією звітності всієї видимої таблиці та обраного запису.
- FIX:wlb_doc.docRepDay: Дещо вдосконалено та доповнено щодо: групування стовпців у заголовку, прямого читання значень рядків, вимкнення кольорів у таблиці за EVAL шкали.
- wlb_doc.docUsersSet: Додано конфігурацію "Категорії повідомлень (messCat)".
API
!!!!:Зміни:
- SYS:
- Функції TSYS::id(), TSYS::name() і TSYS::user() встановлено постійними.
- Визначення SEC_XT, SEC_WR, SEC_RD перенесено із файлу tsecurity.h до tcntrnode.h та також там використано.
- ctrChkNode() очищено щодо аргументу "warn" через застарілість атрибуту "force".
- Запит Інтерфейсу Управління "chlds:/{nPath}/%2fobj" доповнено не створенням порожніх тегів піктограм "ico".
- NSTR_BUF_LEN(50) виокремлено у CFG_A_LEN (100) для використання у якості максимуму розміру атрибуту конфігураційної клітинки у XML.
- Аргумент "init" видалено із setIcoDir(), setDocDir(), setLang() із перенесенням під загальний механізм очищення.
- Доповнення перелічення MdfSYSFlds полями: MDF_Name, MDF_MESS, MDF_TR, MDF_DBG, MDF_RD.
- БД: Запит Інтерфейсу Управління "call:/BD/{MOD}/{DB}/%2fserv%2fSQL" доповнено опрацюванням атрибуту "intoTrans" як EVAL за відсутності та очищенням тексту запиту у відповіді.
- DAQ::Value: Сервісний запит "get:/serv/attr" Інтерфейсу Управління попереджено від очищення підтегів "el" за відсутності репрезентативного атрибуту, їх значення встановлюється у EVAL для коректного позначення опрацьованими у DAQ.DAQGate та не продовжувати їх запит у кожному циклі.
- Архіви-Історія: Тип зв'язку архіву значень "Пасивний атрибут параметру (TVArchive::PassiveAttr)" перейменовано у "DAQ атрибут (TVArchive::DAQAttr)". Тип зв'язку архіву значень "Активний атрибут параметру" перейменовано у "Активний DAQ атрибут" із позначкою ЗАСТАРІЛЕ.
- Транспорти: Функцію TTransportIn::assTrO() перейменовано у TTransportIn::associateTrO(). Віртуальну функцію ознаки The TTransportOut::isNetwork() перенесено до об'єкту TTypeTransport зі зв'язуванням старої на нову, для позначення усього модуля як мережа.
- UI.VCAEngine: Запит Інтерфейсу Управління "get:/UI/VCAEngine/%2fserv%2fwlbBr" доповнено не створенням тегів порожніх піктограм "ico".
Доповнення:
- SYS:
- Нова функція TSYS::ico() отримання піктограми.
- Назви стандартних дозволів доповнено _W_W_W(0222).
- TRegExp:
- Доповнено новим параметром 'U' (нежадібне) із перемикання режиму жадібності, разом із методом Користувацького API "ungreedy".
- Доповнено функцією mode(), аргументом "mode" у setPattern() і переліченням "Mode" із елементами: MD_8, MD_16, MD_32, MD_WCHAR, MD_SAVE.
- Функцію search() об'єкту доповнено аргументом "length" із повернення розміру виміряного блоку.
- XMLNode: Прапорці завантаження доповнено елементом відсутності прапорця LD_NO.
- TMess: Доповнено загальною міткою labStdOutTrs() до формату адреси функції уніфікованого вихідного транспорту.
- DAQ:
- Функцію зв'язування елементів DAQ розширено визначенням базового вузла у атрибуті "ndBase", щодо: ctrListPrmAttr(), daqAt(), prmAt(), attrAt().
- Об'єкт TPrmTempl::Impl доповнено новою функцією archAttrs() із оновлення-архівування атрибутів ЛогічногоРівня.
- Архіви-Історія: Об'єкт архіву значень TVArchive доповнено декларацією перелічення ServReqDtMode для Інтерфейсу Управління "get:/Archive/va_{ARCH}/%2fserv%2fval".
- Транспорти:
- Нова функція TTransportIn::associateTr() та її варіант Користувацького API SYS.Transport["Modul"]["in_Transp"].associateTr().
- Нова функція TTransportS::outAt() та її варіант Користувацького API SYS.Transport.outAt().
- Нова функція Користувацького API SYS.Transport["Modul"]["in_Transp"].associateTrsList() як варіант коректної назви до assTrsList().
- Об'єкт вихідного транспорту доповнено функціями Користувацького API conPrm() і setConPrm() доступу параметрів підключення.
- Функцію TTransportS::extHostList() доповнено аргументом "lang" для отримання перекладеними назв віддалених хостів.
- Префікси "in_" і "out_" винесено у визначення STR_IN_PREF і STR_OUT_PREF відповідно.
- Об'єкт TTransportS object доповнено переліченням LogType із елементами: LTP_BinaryText, LTP_Binary, LTP_Text.
- UI.VCAEngine:
- Доповнено встановленням періоду на стороні сеансу, функцією Користувацького API calcPer() віджету сеансу, розширено визначенням спеціальних значень періоду: PerVal_Sess(0), PerVal_Parent(-1), PerVal_UserMin(PerVal_Dis(-2)), PerVal_SessDef(-3);
- Об'єкт сеансу доповнено функцією Користувацького API period(), що повертає період сеансу.
- Зміна атрибуту "alarmSt" доповнена новою супровідною подією "ws_alarmChange".
Система
- FIX:Складання: configure.ac: Версію бібліотеки ядра збільшено до 3:13:0 та версію програми збільшено до 0.9.6. Модульну версію підсистеми "Транспорти" збільшено до 19.
- *: Більшість close(), iconv_close(), dlclose(), pclose() функцій доповнено перевіркою результату та попередженням про проблеми.
- .,DAQ.JavaLikeCalc: Додано отримання допомоги від другого рядка у Інтерфейсі Управління для: опису полів елементів (TFld) із DAQ-значеннями; назв ВВ функцій (TFunction) із побудовувачем зв'язків та атрибутів Логічного Рівня DAQ.
- FIX: Переписано функцію TCntrNode::nodeAt() для запобігання виклику віртуальної chldAt() під блокуванням mChM, чим попереджаючи деяким мертвим блокування у віртуальних визначеннях chldAt().
- Переглянуто усі шаблони у теках =Tmpl=.
- FIX: Вкладку "Станція", головної сторінки Інтерфейсу Управління OpenSCADA, доповнено інформацією системного часу та загалом реструктуровано.
- FIX:data/openscada-proj.in:
- Розширено новою змінною оточення OSCD_TAR_Args із визначення додаткових аргументів tar на кшталт --exclude та її типово встановлено у значення "--exclude=lock --exclude=ARCHIVES".
- FIX: Виправлено опис та використання змінних оточень OSCD_TAR_ComprPrg і OSCD_BackLim.
- У процесі уніфікації отримання загальної піктограми проєкту за назвою та ІД здійснено:
- для отримання піктограми також використано Назву Базовою Мовою, тож наразі перевіряється: Перекладена Назва, Назва Базовою Мовою, ІД;
- механізм отримання піктограми переведено на нову окрему функцію TSYS::ico().
- TRegExp: Доповнено підтримкою режимів 16 і 32 від бібліотек pcre16 і pcre32 відповідно та наразі лише для функції search().
Збір Даних
- Зв'язування Логічного Рівня доповнено формою представлення адреси через шлях із префіксом "prm:/node/node", тож підтримкою відносної адресації за "." і "..":
- функції зв'язування DAQ елементу розширено визначенням базового вузла у атрибуті "ndBase", для: ctrListPrmAttr(), daqAt(), prmAt(), attrAt();
- об'єкт TPrmTempl::Impl із реалізації DAQ-шаблону Логічного Рівня розширено підтримкою нового зв'язування.
- FIX: Встановлення зв'язків Логічного Рівня попереджено щодо очищення усього рядка після пробілу, за постійних зв'язком "val:".
- ModBus: Доповнено параметром "e" для перемикання послідовності байтів регістру у LE (молодший перший) загалом та BE (старший перший) для рядків. Розширення рядка регістрів доповнено кодуванням для вхідного перекодування.
- FIX:DAQGate:
- FIX: Категорії повідомлень у catsPat(), із отримання повідомлень джерела даних Об'єкту Контролера, переключено на генерацію власних деталізованих правил регулярних виразів із визначених віддалених контролерів — для запобігання отриманню надлишкових повідомлень.
- FIX: Вдосконалено-виправлено формування статусу Порушення Контролеру для декількох станцій, коли ПОРУШЕННЯ це за відсутності підключення з усіма станціями.
- Функцію sync() об'єкту контролера цілком переписано у секції "Видалення відсутніх віддалено параметрів" щодо:
- опрацювання станцій надання параметрів: цілковите видалення відсутніх станцій та параметрів без станцій;
- видалення вимкнених параметрів та логічних контейнерів за прапорцем "Дозволяти автоматичне видалення параметрів та атрибутів".
- OPC_UA: Завершено підтримку запису через специфічні прапорці режиму Стандартний і отримання типу із ВВ для Логічного режиму.
Архіви-Історія
- .,DAQ.{LogicLev,ModBus,OPC_UA}: Завершено уніфікацію архівування джерел Логічного Рівня із використанням лише прямого-пасивного архівування:
- об'єкт TPrmTempl::Impl доповнено новою функцією archAttrs() із оновлення-архівування атрибутів ЛогічногоРівня;
- тип зв'язку архіву значень "Пасивний атрибут параметру (TVArchive::PassiveAttr)" перейменовано у "DAQ атрибут (TVArchive::DAQAttr)";
- тип зв'язку архіву значень "Активний атрибут параметру" перейменовано у "Активний DAQ атрибут" із позначкою ЗАСТАРІЛЕ.
- FIX:FSArch:
- FIX: Попереджено доступ до files[iA] у ModVArchEl::setValsProc() поза блокування, використовуючи перемикання на читання.
- FIX: Попереджено доступ до "files" у ModMArch::checkArchivator() поза блокування.
- FIX: Блокування доступу до файлів цілковито переглянуто, включаючи пакування/розпакування, створення нових файлів, видалення старих у просторі блокуванням на Запис включно із перевіркою умов. Також видалено переблокування у циклах та індексах.
Транспорти
- FIX: Вихідні транспорти доповнено примусовою зупинкою за вимкнення-відключення системного об'єкту, не у деструкторі, що вже пізно та тут можуть втрачатися тримачі сокетів.
- Лог ВВ транспортів доповнено режимами "Бінарний і Текст", "Бінарний", "Текст", та його записом до файлу за вказанням розміру протоколу -1 для дуже великих.
- FIX:Sockets: Виправлено опрацювання нецілковитого запису у Вхідній частині, коли повідомлення обрізається по розміру буферу передавача TCP. Розмір вхідного буферу Вхідної частини прив'язано до контролю розміру буферу апаратного приймача, а внутрішній просто заморожено на розмірі буферу від стандартного рядка оскільки воно не критичне та не вимагає контролю.
Транспортні Протоколи
- ModBus: Доповнено параметром "e" для перемикання послідовності байтів регістру у LE (молодший перший) загалом та BE (старший перший) для рядків.
- HTTP: Доповнено HTTP Атрибутами вимкнення кешу WEB-Браузеру взагалі: "Cache-Control: no-cache, no-store, must-revalidate", "Pragma: no-cache", "Expires: 0".
Інтерфейс Користувача
- QTStarter,QTCfg,Vision: Загальне підсвічування синтаксису у SnthHgl::rule() переключено на основне використання PCRE у TRegExp, оскільки він ВП'ЯТЕРО ШВИДШИЙ і значно багатший порівняно із QRegExp; та QRegExp залишено для автоматичного увімкнення за відсутності бібліотек PCRE 32/16. Загальну бібліотеку Qt (lib_qtgen) доповнено статичними-зовнішніми функціями getFont() і getColor() із UI.Vision та об'єктом SnthHgl із UI.Vision і UI.QTCfg.
- QTStarter: Доповнено контролем сеансів дисплею, тобто відновленням сеансів.
- QTCfg: Доповнено реалізацією Улюблених сторінок. Елемент зображення доповнено функцією цілковитого очищення зображення.
- FIX:Vision:
- FIX: Усі контрольні "<info>" запити доповнено перевіркою наявності дочірніх вузлів для запобігання падінням у деяких випадках.
- Доповнено можливістю виклику інтерфейсів віддалених станцій шляхом обрання віддаленої станції у діалозі, щодо чого розширено діалог обрання користувача.
- Текстові області із підсвіченням синтаксису доповнено вбудованим варіантом.
- Елементи зображень (піктограми) діалогів елементів доповнено кнопкою меню із функціями: Зберегти, Завантажити, Очистити.
- Таблицю редагування Атрибутів Віджету доповнено багаторядковим редагуванням стовпця "Назва" та завантаженням контекстної допомоги для цього.
- Вигулькне меню проєкту, сторінок проєкту, бібліотек віджету та віджетів бібліотеки щодо додання віджетів із бібліотек позбавлено обмеження у 20 елементів через перенесення усіх їх до нового окремого пункту меню "... із Бібліотеки".
- FIX:VCAEngine:
- Піктограми проєктів та бібліотек віджетів переключено на завантаження загальної піктограми проєкту за відсутності локальної.
- Бібліотеки віджетів адаптовано до міжхостового копіювання.
- FIX: Генерацію примітиву Документ доповнено обмеженням розміру повторних блоків у limUserFile_SZ (10MB).
- FIX: Відкориговано поводження зі сторінками проєктів та віджетами бібліотек із початково помилковою адресою предка, щодо не видалення дочірніх віджетів та зміни їх предка із вказанням коректної адреси.
- FIX:WebVision:
- Доповнено реалізацією експорту "Документ - HTML,CSV" і "Таблиця CSV".
- Доповнено реалізацією друку "Документ" і "Основна Сторінка".
- Тип Таблиця примітиву FormEl додано відриванням заголовку таблиці за гортання великих таблиць додолу.
- FIX: Тип Таблиця примітиву FormEl вдосконалено та виправлено щодо:
- встановлення CSS властивості "white-space" у "pre-wrap";
- встановлення змін кольору під обраними клітинками;
- запобігання втраті фокусу одразу після входження у редагування клітинки;
- виправлення встановлення значення логічного за входження у редагування клітинки;
- перелаштування таблиці за зростання довжини таблиці.
- Встановлення закриття включених сторінок після декількох появ рядка (4) — для запобігання закриттю всіх сторінок за швидкої навігації.