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: Проверка и смена текущей страницы при её переименовании. Механизм подстройки строк и столбцов таблицы установлено похожим на вид "Таблица" примитива "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().