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/ru/uslugi/tekh-podderzhka/.
- Основную стартовую программу "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" допущены к многократному открытию сеансов при любых условиях.