Це оновлення релізу 0.9 LTS виправляє біля 70 помилок та додає БАГАТО удосконалень із декількома значними-концептуальними, з якими цілком можна ознайомитися у протоколі змін оновлення.
Linux Дистрибутив Автоматизації проєкту OpenSCADA
- оновлення TDE до 14.0.13 і 14.1.0 — адаптація усіх латок-виправлень та лише для Debian 11;
- ініціююче додання Календарної Системи від Створення Світу за якою рік 2023 є 7531;
- виправлення KDesktop, Апаратного Менеджеру TDE, noatun, TDESVN, basket, KGpg, KPDF, вимкнення мініатюр до відео, відтак доповнення колекції дистрибутиву новими латаними пакетами "tdelibs-trinity", "tdebase-trinity", "tdegraphics-trinity", "tdesvn-trinity" та "basket-trinity";
- деяке вдосконалення та оновлення KCalc, holiday_ua, korganizer;
- завершення перекладу Українською для KDiff3 та showfoto;
- складання пакетів із власними латками для Debian 11,10,9,8,7 перед адаптацією випуску TDE 14.1.0;
- перемикання Debian 9 бази на архівний репозиторій, після його офіційного архівування;
- доповнення дистрибутивів Debian 11,10,9 пакетами RHVoice — Синтезатор мови із багатьма голосами для десятку мов;
- переклад сторінки підпроєкту Українською.
Основні 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.12
- DAQ.JavaLikeCalc: 5.4 => 5.6
- DAQ.LogicLev: 2.6 => 2.7
- {DAQ,Protocol}.ModBus: 3.4 => 3.7, 2.9 => 2.10
- Archive.FSArch: 3.7 => 3.8
- Transport.Sockets: 4.3 => 4.5
- Protocol.SelfSystem: 1.9 => 1.10
- Protocol.UserProtocol: 1.5 => 1.6
- BD.PostgreSQL: 3.0 => 3.1
- UI.QTStarter: 5.12 => 5.14
- UI.QTCfg: 5.9 => 5.13
- UI.VCAEngine: 7.8 => 7.11
- UI.Vision: 8.0 => 8.6
- UI.WebCfgD: 2.3 => 2.5
- 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: Менеджер Перекладу:
- FIX: попереджено взагалі щодо зміни маркованої бази у читабельну форму, оскільки воно використовується як ключ;
- сповіщення щодо виправлень переведено на передачу їх користувачу через розширені попередження Інтерфейсу Управління;
- прапорець "chkAndFix" поділено на "chkAndFix" і "chkAndFixMB";
- конфігураційні поля перекладу TrPassN, TrChkAndFix, TrChkAndFixMB переміщено до динамічних змінних оскільки відсутня необхідність їх зберігати;
- позначку перекладу "<<<Незбіг джерел!!!>>>" перейменовано у "<<<КІЛЬКА ВАРІАНТІВ>>>".
- 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: Виправлено-адаптовано у динамічному перекладі назв ВВ.
- FIX:Користувацький Інтерфейс:
- FIX:VCAEngine: Виправлено динамічний переклад tr() щодо втрати перекладу після очищення кешу перекладу та розміщення зайвих повідомлень до таблиці проєкту "Trs".
- FIX:WebUser: Виправлено-адаптовано динамічного перекладу назв ВВ.
OpenSCADA бібліотеки та проєкти
- FIX:LibsDB.OscadaLibs:
- Бібліотеку tmplib_LowDevLib доповнено шаблоном "BT: RDTech UM24C, UM25C та UM34C (RDTech)".
- Бібліотеку tmplib_DevLib доповнено шаблоном "Прилади ТОВ СЛОТ (SLOT)".
- FIX:LibsDB.vcaBase:
- wlb_Main.storeHouse: Значним чином розширено: реалізацією підтримки процедур для логічних стовпчиків; реалізацією звітності всієї видимої таблиці та обраного запису.
- wlb_Main.RootPgSo: Метод "Сповіщення: тип 2 (МовленняТексту) (notify2)" розширено підтримкою RHVoice і доповнено вбудованим підсвітленням синтаксису для BASH. Метод "Сповіщення: тип 1 (Гудок) (notify1)" переписано щодо програвання тривалих зразків у фоні, тобто із контролем зупинки програвання семплу і перезапуску лише у цьому випадку. Також доповнено підсвітленням синтаксису.
- FIX:wlb_doc.docRepDay: Дещо вдосконалено та доповнено щодо: групування стовпців у заголовку, прямого читання значень рядків, вимкнення кольорів у таблиці за EVAL шкали.
- wlb_doc.docUsersSet: Додано конфігурацію "Категорії повідомлень (messCat)".
API
!!!!:Зміни:
- SYS,UI.{QTCfg,WebCfgD}: Код Запитів Управління TError::Core_CntrWarning розширено передаванням попереджувальних повідомлень у атрибуті "mtxt" зі збереженням основних даних.
- 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.
- Кодування TSYS::ShieldSimb функції TSYS::strEncode() перейменовано у TSYS::ShieldSymb, перенесено до функції TSYS::strDecode() і у TSYS::strEncode() доповнено загальним. Та функцію Користувацького API SYS.strDecode() доповнено методом декодування "ShieldSymb".
- БД: Запит Інтерфейсу Управління "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". Запит "connect:/serv/sess" доповнено атрибутом "onlyMy" для підключення лише до власних сеансів, а запит "get:/ses/ses" доповнено таким самим атрибутом для переліку лише власних.
Доповнення:
- SYS:
- Нова функція TSYS::ico() отримання піктограми.
- Назви стандартних дозволів доповнено _W_W_W(0222).
- TError: розширено новими конструкторами із аргументами типу "const string &" для необмежених рядків і зручності.
- 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:Складання:
- FIX:configure.ac: Версію бібліотеки ядра збільшено до 3:13:0 та версію програми збільшено до 0.9.6. Модульну версію підсистеми "Транспорти" збільшено до 19.
- FIX:Debian: Покращення та виправлення підпису DEB-пакетів усіх репозиторіїв.
- *: Більшість close(), iconv_close(), dlclose(), pclose() функцій доповнено перевіркою результату та попередженням про проблеми.
- *: Усі системні (SYS) конфігураційні параметри адаптовано для коректного утримання типових значень.
- .,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().
Бази Даних
- FIX:.,PostgreSQL: Дещо пом'якшено опрацювання порожнечі таблиці протягом проблем у DB.PostgreSQL щодо цього, тобто виключення наразі не генеруються.
- FIX:PostgreSQL: Перемкнено на стандартний спосіб виявлення відсутніх таблиць із їх створенням за "toCreate" та генерації виключення інакше, чим попереджаючи повідомленню "Таблиця порожня.".
Збір Даних
- Зв'язування Логічного Рівня доповнено формою представлення адреси через шлях із префіксом "prm:/node/node", тож підтримкою відносної адресації за "." і "..":
- функції зв'язування DAQ елементу розширено визначенням базового вузла у атрибуті "ndBase", для: ctrListPrmAttr(), daqAt(), prmAt(), attrAt();
- об'єкт TPrmTempl::Impl із реалізації DAQ-шаблону Логічного Рівня розширено підтримкою нового зв'язування.
- FIX: Встановлення зв'язків Логічного Рівня попереджено щодо очищення усього рядка після пробілу, за постійних зв'язком "val:".
- ModBus: Доповнено параметром "e" для перемикання послідовності байтів регістру у LE (молодший перший) загалом та BE (старший перший) для рядків. Розширення рядка регістрів доповнено кодуванням для вхідного перекодування. Доповнено параметром "Пропуск циклів для читання назад записаного" для контролю такої властивості окремого від асинхронного запису.
- FIX:DAQGate:
- FIX: Категорії повідомлень у catsPat(), із отримання повідомлень джерела даних Об'єкту Контролера, переключено на генерацію власних деталізованих правил регулярних виразів із визначених віддалених контролерів — для запобігання отриманню надлишкових повідомлень.
- FIX: Вдосконалено-виправлено формування статусу Порушення Контролеру для декількох станцій, коли ПОРУШЕННЯ це за відсутності підключення з усіма станціями.
- Функцію sync() об'єкту контролера цілком переписано у секції "Видалення відсутніх віддалено параметрів" щодо:
- опрацювання станцій надання параметрів: цілковите видалення відсутніх станцій та параметрів без станцій;
- видалення вимкнених параметрів та логічних контейнерів за прапорцем "Дозволяти автоматичне видалення параметрів та атрибутів".
- Функцію TMdContr::messSet() з встановлення повідомлень пов'язаних зі Збором Даних адаптовано до підтримки атрибутів у адресі параметрів для значущих атрибутів загальних-контейнерних параметрів, що необхідно для передавання повідомлень із верхніх станцій до нижніх.
- JavaLikeCalc: Розширення-завершення реалізації циклів об'єктів "for({var} in {obj}) {тіло циклу}" можливістю вказання Об'єкту <obj> як включеного через властивості або із результату. Постійні значення доповнено "null", як синонім до EVAL (EVAL_REAL).
- 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. Розмір вхідного буферу Вхідної частини прив'язано до контролю розміру буферу апаратного приймача, а внутрішній просто заморожено на розмірі буферу від стандартного рядка оскільки воно не критичне та не вимагає контролю.
Транспортні Протоколи
- FIX:SelfSystem: Значним чином переглянуто та виправлено реалізацію зовнішніх-вихідних підключень, доповнено перевіркою обмеження розміру заголовка.
- ModBus: Доповнено параметром "e" для перемикання послідовності байтів регістру у LE (молодший перший) загалом та BE (старший перший) для рядків.
- HTTP: Доповнено HTTP Атрибутами вимкнення кешу WEB-Браузеру взагалі: "Cache-Control: no-cache, no-store, must-revalidate", "Pragma: no-cache", "Expires: 0".
- UserProtocol: Вхідну частину розширено можливістю планування виклику користувацьких процедур у сервісному циклі, для фонового опрацювання деяких даних; також тут додано атрибут Об'єкту "Цей (this)".
Інтерфейс Користувача
- QTStarter,QTCfg,Vision: Загальне підсвічування синтаксису у SnthHgl::rule() переключено на основне використання PCRE у TRegExp, оскільки він ВП'ЯТЕРО ШВИДШИЙ і значно багатший порівняно із QRegExp; та QRegExp залишено для автоматичного увімкнення за відсутності бібліотек PCRE 32/16. Загальну бібліотеку Qt (lib_qtgen) доповнено статичними-зовнішніми функціями getFont() і getColor() із UI.Vision та об'єктом SnthHgl із UI.Vision і UI.QTCfg.
- QTCfg,WebCfgD: Уніфіковано у сповіщені помилок Інтерфейсу Управління протягом вдосконалення коду TError::Core_CntrWarning і QMessageBox доповнено детальним текстом за повідомлень довше за 255.
- 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) — для запобігання закриттю всіх сторінок за швидкої навігації;
- Вдосконалено опрацювання підключень звичайних користувачів до власних сеансів СВУ.
- WebUser: Розширено щодо можливості планувати виклику користувацьких процедур у сервісному циклі, для фонової обробки деяких даних.