From OpenSCADAWiki
< Documents | Release 0.8.0
Це оновлення релізу 0.8 LTS виправляє біля 50 помилок та додає деякі удосконалення, які цілком ви можете почитати у протоколі змін оновлення.
API
!!!!:Зміни:
- Archive: Додано результат функції TMArchivator::put() для контролю завершення запису.
- SYS.Mess,Archive.DBArch: Тип рівня повідомлення у структурі TMess::SRec змінено з типу "Type" у int8_t для виправлення негативного рівня у DB.MySQL.
- SYS.XMLNode: У функції load() аргумент "full" замінено на "flg" з прапорцями: 0x01 - повний режим; 0x02 - не видаляти простори з початку та кінця тексту тега.
- Transport: Покращено конфігурацію зовнішніх хостів через обрання режимів "Користув.", "Системний", "Кормитув. та Системний" у загальній таблиці. Видалено функції: sysHost(), setSysHost(). Змінено функції: extHostList(), extHostGet(), extHostSet(), extHostDel().
- DAQ: API функцій "void vlSet();" розширено для визначення нового значення прямо і попередження його втрати.
Доповнення:
- SYS: Додано нові об'єкти блокування ресурсів MtxAlloc та MtxString.
- До ResAlloc додано lock() та unlock().
- TCntrNode: Додано базову функцію _ctrMkNode() та специфічну для встановлення аргументів ctrMkNode2() до оригінальної ctrChkNode().
- "TSYS::i{bits}_LE()", "TSYS::i{bits}_BE()", "floatBE{rev}()", "doubleBErev()" функції додано для опрацювання розташування байт.
- Додано нові глобальні функції до OSCADA простору імен: tm2s(), s2i() та s2r().
- TArrayObj: Додано нові функції прямого доступу arGet() та arSet(), для швидкого доступу із середини.
- XMLNodeObj: Додано нову функцію "childGet(string name, int num = 0)".
- Transport,Transport.*: До вихідного транспорту додано функції timings() та setTimings().
DB
- AGLKS.St.db: KeepAlive таймаут вхідного транспорту OPC_UA встановлено у 60, Клієнтські та Серверні сертифікати згенеровано із врахуванням всіх вимог та адресу встановлено у 127.0.0.1.
SYS
- адаптовано для опрацювання *.core файлів.
- TConfig,TValue,UI.{VCAEngine,Vision}: Додано підтримку редагованого переліку у конфігураційних полях та DAQ атрибутах за посередництвом TFld::SelEdit.
- Надано функції API користувача gmtime(), timegm(), strftimegm(), strptimegm() для опрацювання часу у GMT(UTC).
- DB,TVariant,DAQ.JavaLikeCalc,Special.FLibSYS: Встановлено прямий доступ до об'єкту простору імен TArrayObj, із середини.
БД
- FIX:DB.{SQLite,MySQL,PostgreSQL,FireBird}: Виправлено перевірку на відсутність ключа у БД для fieldSeek() та fieldSet().
- DB.{SQLite,FireBird,PostgreSQL,MySQL}: Змінено механізм відновлення підключення для мережевих БД на увімкнення вимкнених БД із toEnable() у циклі перевірки транзакцій.
- Проведено комплексні тести на відновлення втрачених підключень та загальний тест БД модуля Special.SystemTests.
- MTable::fieldDel() адаптовано для видалення записів з ключами реально відсутніми у таблиці БД.
- MySQL: Додано підтримку та використання транзакцій для підвищення продуктивності деяких сховищ БД.
DAQ
- BlockCalc: Додано опційний запис при зміні значення за вихідними зв'язками блоків. Розмір поля "VAL" для таблиці IO блоків збільшено із 20 до 10000 та "LNK" із 50 до 100.
- JavaLikeCalc.Array: Встановлено прямий доступ до властивостей об'єкта для підвищення продуктивності. FIX: Виправлено вставлення елементу об'єкта до масиву під час створення як "new Array(0, 1, 2, ar[0])".
- FIX:LogicLev: Тип "Відображення" виправлено та розширено для підключень до цільового параметру, оновлення та синхронізації переліку атрибутів у періоді обчислення.
- ModBus: Прибрано спробу підключення із функції start() об'єкту контролера.
- OPC_UA.{*,LibOPC_UA}: LGPL COPYING фйл додано до цієї бібліотеки.
- FIX: libOPC_UA виправлено у відповіді клієнтському сервісу "Write" і ще з десяток критичних виправлень.
- OPC_UA простори імен уніфіковано, а також NS_OPC_UA(0), NS_SERVER(1) та OpenSCADA_DAQ_NS(2) додано.
- Додано опрацювання часу життя сеансу.
- Ріст SubscriptionId та MonitoredItemId розпочато із '1', для виключення некоректного значення '0'.
- Додано визначення даних користувача та пароля у клієнтській частині програми та у тесті. Додано визначення політики у тестовій програмі.
- До об'єкту параметра клієнта додано огляд вузлів у одному рядку для вставлення у перелік опрацювання.
- FIX:System: Додано новий DA-тип "UPS", за посередництвом NUT-протоколу. Виправлено перевірку DA та їх створення за загальними параметрами, не за ідентифікатором параметру.
- BFN,DAQGate,ModBus,OPC_UA: Формування порушень стану підключення до віддаленого джерела уніфіковано.
Архів
- TMArchivator: Переписано архівацію повідомлень для перенадсилання повідомлень у буфері після відновлення підключення.
- FIX:Archive.*,Special.FLibSYS: Попереджено встановлення негативного значення періоду у буфері. TValBuf::vOK() розширено для перевірки вирівняного до періодичності буферу. setVals() адаптовано для запису невирівняного до границі [beg:end] шляхом округлення до періоду.
- *,DBArch: До TVArchEl::setValsProc() додано результат з метою контролю запису частини буферу до архіву, використано для перезапису до мережевої БД за посередництвом DBArch. Дозволено запуск архіваторів Значень та Повідомлень у випадку помилок у БД, передбачаючи відновлення підключення.
- *,UI.{Vision,WebVision}: Сервіс "/serv/val" адаптовано для повернення EVAL_STR як EVAL для всіх режимів подання даних.
Transport
- {SSL,Sockets}: KeepAlive параметри вхідного транспорту уніфіковано та додано описи. Типове значення KeepAliveTm встановлено у 60 для попередження зависання вхідного транспорту.
UI
- QTCfg: Перевірка та зміна поточної сторінки на її перейменування. Механізм підлаштування рядків та стовпчиків таблиці встановлено схожим на вигляд "Table" примітиву FormEl для UI.Vision. Додано підтримку встановлення значення записів у групу-обрання сторінок.
- Vision:
- FIX: Примітив "Текст" виправлено на предмет оновлення розміру шрифту під час зміни масштабу.
- Для захоплення об'єкту сеансу додано простий ресурс dataM (pthread_mutexattr_t) та використано для mOpen, mStProp.
- FIX: Сервіс <openlist path="/serv/pg"> виправлено на помилки відсутності віджетів сторінки та спробу перестворення сеансу.
- Для сторінок включених у контейнер встановлено прозору палітру фону.
- UI.{QTStarter,QTCfg,Vision}: Адаптовано для Qt5, виключаючи Phonon.
- VCAEngine,Vision,WebVision: Примітиви "Текст", "Протокол", "Документ", "Діаграма" переведено до індексів з types.h.
- VCAEngine,Vision: Додано новий вигляд "Таблиця" примітиву "FormEl".
- Vision,WebVision: Час слідкування для примітиву "Діаграма" та "Протокол" встановлено у час реально наявних даних.
Special
- FLibSYS: Додано уніфіковану функцію обчислення CRC().