From OpenSCADAWiki
< Documents | Release 0.8.0
Це оновлення релізу 0.8 LTS виправляє біля 50 помилок та додає деякі удосконалення, які цілком ви можете почитати у протоколі змін оновлення.
API
!!!!:Зміни:
- SYS: Ресурси конфігурації відокремлено у cfgRes(). ModSched: Відокремлено захоплення ресурсів у "schM".
- FIX:SYS: Функцію API користувача SYS.strDecode() виправлено на предмет використання аргументу 2 по замовченню.
- TCntrNode: Прапорці MkDisable, Disable, MkEnable, Enable перейменовано у DoDisable, Disabled, DoEnable, Enabled. Режим відкладеного видалення остаточно прибрано як прапорець NodeShiftDel, видалення останнього аргументу у функцій nodeDel() та chldDel().
Доповнення:
- SYS: Додано коротку функцію-посилання rRnd() на TSYS::realRound() (у області імен OSCADA). Додано статичний варіант функції TSYS::getCmdOpt_() для можливості використання із основної пускової програми. Об'єкт API користувача XMLNodeObj розширено функцією clear() для забезпечення швидкого очищення вузла від нащадків, тексту та/або атрибутів.
- TRegExp: розширено опцією 'u' для дозволу UTF-8 символів та встановлено її примусово для локалі UTF-8.
- Transport: Об'єкти API користувача доповнено функціями: In::{status,addr}, Out::{status,addr,timings}.
- Archive: Об'єкти API користувача доповнено функціями: TVArchive::{status,archivatorList,getVal}(), TVArchivator::status().
SYS
- Переключено на збірку за допомогою автоматичного побудовувача пакетів OpenSCADA та надання сервісних оновлень "0.8.13.{S}" користувачам, підписаним на технічну підтримку, oscada.org/ua/poslugi/tekh-pidtrimka/.
- Основну стартову програму "openscada" значним чином переписано для забезпечення створення справжнього режиму демону: перевірка та переключення у режим демону спершу; опрацювання CoreDumpAllow для залишеного в роботі процесу; перевірка та створення PID-файлу для робочого процесу; безпосередньо запуск ядра OpenSCADA.
- FIX:TCntrNode: Дозволено надання відключених вузлів (Disabled) у їх переліку, так як і перевірку на наявність.
- FIX: Попереджено падіння рано запущених функцій у load_() DAQ.JavaLikeCalc, за командним рядком "openscada --help". Підсистему DAQ встановлено у впорядковану та для визначення пріоритетного режиму модулів додано властивість модуля "HighPriority", для розташування їх першим.
- FIX: debian/rules спрощено та уніфіковано. Встановлено "dh_installinit --no-start" для попередження автоматичного запуску цього сервісу. debian/control: Додано залежності для збірки із Qt5.
- FIX:Скрипти ініціалізації:
- FIX:Debian: значно покращено, спрощено, адаптовано до PID та виправлено видаленням примусового встановлення LC_ALL, яке ламало індивідуальне встановлення LC_NUMERIC=C для відмінних від C, POSIX або Англійських локалей.
- ALTLinux: значно покращено, спрощено, адаптовано до використання PID та розширено аргументом "--retry TERM/30/KILL/5".
- Gentoo: значно покращено, спрощено, адаптовано до використання PID та очищено.
- RH: значно покращено, спрощено, адаптовано до PID та розширено аргументом "-d 30".
- TVarObj: Блокування ресурсів загальних даних об'єктів API користувача Res замінено на pthread_mutex_t, а також використано для підключення до об'єктів.
- signal() замінено на sigaction() та додано відновлення оригінальних обробників при руйнуванні TSYS.
- TArchives,TCntrNode,UI.VCAEngine: Вся решта операцій із TArrayObj пересунута до arGet() та arSet().
БД
- FIX:FireBird: Попереджено виправлення таблиць для ключів з типом blr_varying. Шаблон конфігурації AX_LIB_FIREBIRD дещо адаптовано для конфігурації та збірки із заголовками у */include/firebird, як у SuSE, та 64-бітними бібліотеками, як у Mandriva64.
- MySQL: Сенс поля адресу "імена" змінено у "вставки" (кодування-порівняння-рушій) для додання під час створення БД та команди SET.
- FIX:PostgreSQL: Додано обхід проблеми дублювання одних та опущення інших записів у запиті fieldSeek(), шляхом додання "ORDER BY" до цього запиту та примусового їх сортування. Залежності збірки у макросі AX_LIB_POSTGRESQL дещо виправлені у результаті.
- FIX:SQLite: Адаптовано до опису ключів як порядкова позиція ключа.
Збір даних
- FIX:ModBus,DAQGate,OPC_UA: Виправлено повернення після умови "!p->enableStat() || !p->owner().startStat()" у функції встановлення значення, для попередження наступного та реального запису.
- FIX:OPC_UA:
- FIX: libOPC_UA: Сервіс TranslateBrowsePathsToNodeIdsRequest виправлено для випадку некоректних шляхів, додано додаткові повідомлення налагодження.
- FIX: Виправлено очікування та збірку частин великих повідомлень вхідного протоколу.
- FIX: Вхід: Виправлено можливе відкидання зайвих частин запитів після повних запитів, які не потребують негайної відповіді та не є помилковими.
- FIX: Тип OpcUa_Int64 виправлено розширенням iN{u}() та oN{u}().
- Додано підтримку типу Масив(Array) простих типів, додано опрацювання AId_DataType для типу Array у серверній частині.
- Для контролю за обмеженнями додано вкладку "Дані", додано ліміт limRetrQueueTm() для контролю часу черги перенадсилання.
- До сервісу "RepublishRequest" додано та використано помилку OpcUa_BadMessageNotAvailable.
- Головне ціле змінено із OpcUa_Int32 у OpcUa_Int64.
- FIX:Siemens: Версію LibnoDave оновлено до 0.8.5 (остання від 05/17/13), виправлено приведення вказівника до цілого шляхом заміни приведення у long.
- ICP_DAS: оновлено libi8k.a та заголовки, сторожовий таймер EnableWDT() для LP-8x81 замінено на EnableSysWDT().
- FIX:JavaLikeCalc: Розширено командами віртуальної машини AddAss, SubAss, MulAss, DivAss для оптимального виконання операцій ++, --, +=, -=, *=, /=, одразу із дорівненням; значним чином для операцій з типом даних "Рядок" та попередження зайвого перевиділення пам'яті там з кожним додаванням. FIX: Функції віртуальної машини Дорівнює (Equal) та НеДорівнює (NotEqual) підлаштовано під можливість коректного опрацювання невизначених властивостей об'єкту шляхом загального опрацювання як Реальне для всіх типів окрім "Рядок". Встановлено використання загального тимчасового регістру для бінарних операцій типу "a = b+c+d+e;", значним чином з метою оптимізації швидкості у доданні рядків.
Транспорт
- Sockets: Додано властивість MSS для контролю за розміром TCP-сегменту на поганих каналах.
Архів
- FIX: Виправлено опрацювання mLastGet для значень, на предмет виключення запису до неактивного буферу.
- FIX:FSArch: Виправлено процедуру ремонту файлів значень для значень фіксованих типів та додано на кінець код ремонту для нефіксованого типу (як то рядок). Вдало виконано весь ланцюг тестів, всіх типів фіксації, для механізму послідовного пакування та виправлення помилок архівних файлів. Властивість командного рядку "copyErrValFiles" замінено наявністю теки "errors" для копіювання помилок сюди.
- FIX: Виправлено опрацювання видалення файлів за лімітом на предмет видалення свіжого-нового файлу архіву у випадку якщо їх два.
- FIX: Архівацію Рядків остаточно виправлено після попереднього неповного виправлення на предмет останнього значення.
- FIX: Додано перевірку на відсутність вільного простору сховища для попередження зависанню та втраті даних повідомлень та значень.
- Ліміт повідомлення у плоскому форматі розширено до 100000 символів.
- Додано вкладку "Файли" для повідомлень та значень із детальною інформацією про файли архіву.
Протокол
- SelfSystem: Додано властивість ЛімітОдногоХостаКористувача (SingleUserHostLimit) для контролю обмежень та повідомлення про помилку у випадку досягнення. Розширено статусом - Активні сеанси автентифікації.
- HTTP: Розширено статусом - Активні сеанси автентифікації.
Інтерфейс Користувача
- FIX:VCAEngine,Vision,WebVision:
- FIX: Для примітиву "Діаграма" розширено варіант адреси "data:{XMLNodeData}" на предмет можливості відсутності "tm", "tm_grnd" та встановлення їх у секундах, за атрибутом 's'. Виправлено назначення завантажених але не доданих у буфер значень, для варіантів прямої адресації "line:{value}" та "data:{XMLNodeData}".
- FIX: Вид "Кнопка" примітиву FormEl адаптовано до масштабування зображення до всього розміру віджету та дозволу накривати весь простір цього зображення.
- Додано підтримку типу "XY" до примітиву "Діаграма", де Y за непарними та X за парними параметрами.
- Додано правильне масштабування розміру вкладених віджетів за масштабуванням крайньої точки, для коректного підлаштування один до одного на будь-якому масштабі.
- До примітиву ElFigure додано атрибут "mirror" з метою надання можливості дзеркалювання виду примітиву. Для UI.Vision втілено тільки основні функції та деякі проблеми з дугою на разі наявно.
- FIX:QTStarter: Для очікування знищення UI завдання тайм-аут встановлено у 60 секунд та дозволена генерація виключення у випадку вичерпання часу знищення.
- FIX:QTCfg:
- FIX:LineEdit: Вигляд "Ціле" виправлено на предмет встановлення дозволених меж значень [-2147483647:2147483647]
- TextEdit: Встановлено примусове перенесення слів, значним чином для довгих описів. Додано вертикальну підгонку цих полів до повного розміру сторінки, для заповнених. Переписано для видалення внутрішнього розміщувача.
- FIX:VCAEngine:
- FIX: Виправлено посилання на атрибут віджету із віджету за допомогою "wdg:a_XXX" та попереджено його падіння у головному статусі.
- FIX: Операції API користувача mime() та mimeSet() використано, перевірено та виправлено на предмет редагування джерела примітиву "Діаграма", збереження у таблиці сеансу та відображення результату, для SVG.
- Захоплення ресурсу функції бібліотеки віджетів та проекту під час завантаження та включення за потребою для попередження багаторазового входу та виконання. Попереджає падіння та доступність неповних даних у віддалених виконавців сеансу проекту.
- FIX:Vision:
- FIX:FormEl: Виправлено випадкову різницю між реальним та видимим значенням, значним чином для дискретних видів ComboBox та CheckBox.
- FIX:ElFigure: Попереджено зависання на нульовій довжині між центром та першим радіусом. Тимчасово видалено із scaleRotate() та unScaleRotate() додання залишку розташування віджету у батьківському контейнері для попередження у деяких випадках щілин між заповненнями. Вихідні тексти значним чином почищено, у продовження. Деякі помилки виправлено. Почато втілення для віддзеркалення. Додано дещо розумніший контроль за контрольними точками 1 та 2 дуги.
- FIX: Попереджено подвійне звільнення у зв'язку із запізнілим відновленням користувача та пароля після зміни користувача на недозволеного для читання із сеансу проекту.
- FIX: Виправлено віддалене отримання переліку проектів та сеансів для відповідного користувача, у полі користувача запуску.
- FIX: Дозволені значення координат обмежено у [-1000000:1000000] у зв'язку замороження оновлення фігур у Qt через дуже великі значення.
- FIX: Видалено примусові та глобальні текстові стилі "font-weight", "font-style" примітиву "Документ" та встановлено їх тільки у випадку наявності відповідних властивостей у атрибуті шрифту віджету, щоб забезпечити належну роботу тегів "<B>" та "<I>".
- FIX: Повідомлення "Вичерпано час очікування" під час спроби відновлення запущеного сеансу, через фонове очікування завантаження даних проекту, придушено та попереджено закриття головного вікна.
- Друк та експорт примітиву "Документ" дозволено із контекстного меню. Друк по замовченню встановлено для одного та великого (не менш ніж вдвічі від головної сторінки) документу. Експорт по замовченню встановлено для одного та великого (не менш ніж вдвічі від головної сторінки) документа або діаграми.
- До статусу конфігураційної сторінки модуля додано перелік головних відкритих вікон, задля віддаленого контролю.
- WebVision: Користувач "root" або користувачі у групі "root" дозволені для багаторазового відкриття сеансів у будь-яких умовах.