From OpenSCADAWiki
Это обновление релиза 0.8 LTS исправляет около 20 ошибок и добавляет некоторые улучшения, которые целиком вы можете почитать в протоколе изменений обновления.
API
!!!!:Изменения:
- SYS.TModule: Информационные атрибуты вроде m{Name} переименованы в mMod{Name}. Добавлено функцию modInfoMainSet() и использовано во всех модулях для установки основных информационных атрибутов модуля.
- TProtocolIn, Protocol.UserProtocol, Transport.*, DAQ.{ModBus,OPC_UA}: Установлено сохранение подключенного входного транспорта в протоколе как замкнутого заголовка вместо пути, с целью быстрого доступа, изменено функции API: open(), srcTr(), setSrcTr().
Дополнения:
- SYS: Добавлено объект ResMtx для объединения всех платформо-специфических реализаций мютекса. Добавлено функцию TSYS::taskUtilizTm() для получения использованного времени указанного задания. TElem: Ресурс элементов mResEl изменено с Res на pthread_mutex_t, и разрешено для публичного доступа. Добавлено реализации Функций конвертации специфического для аппаратной платформы порядка байтов, а именно: i16_LE(), i32_LE(), i64_LE(), i16_BE(), i32_BE(), i64_BE(), floatBE(), floatBErev(), doubleBE(), doubleBErev().
- DAQ.{LogicLev,ModBus}: Добавлено функции API пользователя, объекта параметра: attrAdd() и attrDel() для свободного управления атрибутами.
- Transports: Добавлено функцию API пользователя {TrOut}.start() для быстрого контроля состояния выходного транспорта.
- Protocol.{*,UserProtocol},Transport.{Sockets,SSL}: Добавлено функцию Protocol::waitReqTm() для контроля режима пула входного протокола.
SYS
- FIX:TVarObj: Предотвращено возможность двойного освобождения объекта. Исправлено EVAL результат функции TVarObj::propGet().
- Версию библиотеки ядра поднято до 2:3:0. Версию типа подсистем DB, DAQ, Archive, Protocol, Special, Transports, UI поднято до 7.
- Archive.FSArch,DB.DBF,DAQ.{Comedi,SMH2Gi}: Использование readdir_r() переписано для прямого выделения памяти структуры "dirent" и предупреждения проблем на других ОС, вроде QNX.
Сбор данных
- FIX:OPC_UA:
- FIX:libOPC_UA: Все ошибочные пустые строки (-1) заменены на пустой массив (0). FIX: Исправлено зацикливание на пустом перечне сервиса "Read". FIX: Исправлено обработку аутентификации для клиента на предмет сохранения текущего описания конечной точки, с целью дальнейшего получения "policyId" и использования в сервисе аутентификации. К части сервера добавлено новые типовые пространства имен: 2-"http://opcfoundation.org/UA/DI/, 3-"http://PLCopen.org/OpcUa/IEC61131-3/". Добавлено независимый контроль версии libOPC_UA. Добавлено специфичные типы значений OpcUa_IntAuto и OpcUa_UIntAuto для адаптивного выбора типа целого, значительным образом для предоставления целого не исключительно фиксированным int32 (int64). К части клиента, для контроля подключения, добавлено виртуальную функцию connect(), использовано в сервисе "CloseSecureChannel" для закрытия соединения.
- FIX:Клиент: Исправлено отображение кодов статусов для атрибутов контроллеров. Дополнение информации через: applicationUri(), productUri(), applicationName(). Для пустого "browseName", узлом обзора установлено использование "displayName". Исходные тексты тестового клиента несколько очищены и расширены.
- Сервер: Пространство имён OpenSCADA DAQ установлено в индекс 4.
- Siemens: Добавлено и проверено собственную реализацию ISO-TCP, значительным образом благодаря запросу Proviron Holding NV. Добавлено таймаут восстановления. Выполнено значительный пересмотр исходного кода на предмет захвата ресурсов, сообщений про ошибки и другого.
Transport
- FIX:{Sockets,Serial,SSL}: Resource of output transport lock into messIO() fixed, by no real a lock hold. Polling mode of the input protocol support is implemented. No request mode support is added and all modules adapted to it, in way of time argument less to zero set into the {TrOut}.messIO() function.
- Serial: Disconnect (transport stop) from output port added on read <= 0, which points to the device lost at all.
Протокол
- UserProtocol: Расширено входные запросы попыткой включения, значительным образом для обеспечения использования статических функций в процедурах протокола.
Интерфейс Пользователя
- FIX:UI.{Vision,WebVision}: Исправлено падение во время загрузки данных тренда в случае отсутствия значений (time = 0).
- QTCfg: Прогресбар занятости адаптировано на предмет первичной установки диапазона и его обновления на предмет максимума к текущему.
- Vision: Адаптировано для сборки с libphonon4qt5 и Qt5. Разрешено использование устаревших функций Phonon и Qt5.