- Стан: тестування та після-складання ...
Загальний процес випуску користувачам для оцінки ваших очікувань та розробникам для нагадування завдань:
1. Тиждень приготування та складання:
- Складання останньої Робочої (Work) SVN-ревізії для всіх оточень нерегулярного складання щоб забезпечити ранне та широке тестування прийдешнього LTS релізу.
- Анонс початку процесу випуску:
- створення нової сторінки релізу або сторінки оновлення на Wiki;
- створення нової новини-сторінки на сайті OpenSCADA.
- Злиття змін Робочої (Work) версії або копіювання цілком дерева Робочої гілки до LTS гілки-дерева.
- Внесення деяких змін, специфічних до LTS, стосовно підняття версії:
- оновлення configure.ac щодо версії випуску-оновлення та бібліотеки ядра;
- оновлення data/*.spec та data/{debian,debian_mod}/changelog стосовно нового номеру версії та доповнення протоколу змін файлів новими записами випуску-оновлення.
- Формування-доповнення ПротоколуЗмін LTS змінами з ПротоколуЗмін Work, групуючи зміни за розташуванням та сортуючи їх за станом виправлення та рівнем, із комбінування нових можливостей у одному елементі та без видалення будь-яких відмінних змін.
- Копіювання значних змін із сформованого ПротоколуЗмін LTS до відповідної сторінки релізу-оновлення, беручи зміни за рівнем більш або рівні "!!".
- Переклад сторінки(ок) релізу-оновлення, оновлення "Завдання (ToDo)" та "Дорожньої карти (RoadMap)".
- Генерація актуальної позамережевої документації, використовуючи сервісну процедуру "EXT: Off-line documentation".
- Застосування-вивантаження змін LTS дерева до репозиторію та складання цього.
2. Тиждень(і) тестування та після-складання:
- Оновлення сторінки Завантаження.
- Анонсування релізу-оновлення, також на FaceBook і LinkedIn.
- Гаряче тестування збірок релізу.
- Завершення та виправлення перекладу ПротоколуЗмін та документації.
- Генерація актуальної позамережевої документації використовуючи сервісну процедуру "EXT: Off-line documentation".
- Застосування-вивантаження виправлень релізу до репозиторію та складання цього щодо другої збірки, і для кожного тижня виправлення критичних помилок — перший тиждень без критичних виправлень означатиме завершення випуску LTS, тож, КОРИСТУВАЧІ — тестуйте ретельно LTS реліз щоб потім не скаржитись на його кінцеву збірку!
- Оновлення бінарних копій стандартних бібліотек OpenSCADA: OscadaLibs.db, VcaBase.db, VcaElectroEls.db.
Це оновлення релізу 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) — для запобігання закриттю всіх сторінок за швидкої навігації.