From OpenSCADAWiki
API
!!!!:Изменения:
- SYS: Типовой конструктор ResMtx установлен в true для "isRecurs", поскольку это общая ситуация.
- Большинство функций добавления в контейнер узлов расширено возвратом результирующего идентификатора/имени созданного узла для: chldAdd(), TSecurity::{usrAdd(),grpAdd()}, TTypeBD::open(), TTypeTransport::{inAdd(),outAdd()}, TValue.chldAdd(), DAQ.{TController::add(),TParameter::add(),BlockCalc.blkAdd()}, TTypeArchivator::{messAdd(),valAdd()}, TArchiveS::valAdd(), UI.VCAEngine::{wlbAdd(),prjAdd(),WLib.add(),Project.add(),Project.Page.pageAdd()}, UI.WebUser.uPgAdd().
- TFld::Selected везде переименован в TFld::Selectable.
- Вариант специальной функции strMess() с ограничением размера результирующего сообщения удален и заменен функцией strEncode() с типом TSYS::Limit.
- chldList() и chldPresent() сделаны виртуальными.
- DAQ,Special: Атрибут "run_st" в TPrmTmplLib и TSpecial переименован в runSt.
- Archives: TArchiveS::messPut() очищено от аргумента "force".
- Protocols.HTTP: Функции пользовательского API pgAccess(), pgCreator() перенесены из TProtocol в TProtocolIn.
- Transports.In: Функция protocol() переименована в protocols() и удалена protocolFull().
Дополнения:
- SYS: Добавлен общий механизм замков через контейнер замков, функция commonLock().
- TConfig,*: Функции API пользователя для конфигурации TConfig::cfg() и TConfig::cfgSet() расширены контролем прав.
- Дополнено функциями TCfg::toDefault() и TConfig::cfgToDefault() сброса конфигурационного контекста к типовому.
- Объект TFunction дополнен признаком изменённости процедуры isChangedProg(), и флажок TFld::Selectable и функция ioAdd() дополнены результатом позиции добавленного ВВ.
- Запрос Интерфейса Управления "load" расширен определением выбранной БД в атрибуте "force", для осуществления такой операции над конкретным узлом.
- XMLNode: Функция получения атрибутов attr() расширена опциональным аргументом определения присутствия.
- "Массив (Array)" пространства пользователя расширен функциями indexOf() и lastIndexOf().
- Функция API пользователя SYS.fileRead() расширена аргументами смещения и размера блока чтения.
- Функция API пользователя strEncode() дополнена поддержкой вариантов "ToLower" и "Limit".
- API пользователя дополнено функцией strFromCharUTF() формирования строки из UTF-8, UTF-16, UTF-16LE, UTF-16BE, UTF-32, UTF-32LE, UTF-32BE.
- Дополнено определением периодичности сервисного задания SERV_TASK_PER=10.
- API пользователя дополнено функцией SYS.fileSize().
- Добавлена функция str2atime() для конвертации времени в строке во время от эпохи UNIX с поддержкой GMT.
- TError дополнено названиями кодов ошибок в перечислении "Codes", которые везде использованы.
- Специальные названия архивов дополнено названием ALRM_ARCH_CH_NM ("<alarmsChange>"), для простой смены присутствующих нарушений.
- Ограничения дополнены USER_ITS_LIMIT (1000000) для ограничения количества элементов вроде пользовательских массивов из DAQ.JavaLikeCalc.
- DB: Добавлен контроль закрытия транзакций в ядре OpenSCADA функциями trTm_ClsOnOpen(), trTm_ClsOnReq() и trPr_ClsTask().
- Добавлен контроль процесса пере-включения объектов БД функцией disabledByUser().
- Дополнено конфигурацией "Время жизни открытых таблиц", для закрытия неактивных таблиц функцией tblLifeTime().
- Атрибут TBD::mEn перенесён в защищённое пространство.
- Транспорты:
- In: Дополнено виртуальными функциями keepAliveReqs(), keepAliveTm() для правильного KeepAlive на Web.
- Out: Дополнено сервисом закрытия выходных транспортов согласно временем жизни (неактивности), сервисной функцией outLifeTime().
- Расширено полем общего контроля попыток в функции attempts().
- Унифицировано контролем времени последнего запроса в функции lstReqTm().
- Добавлена функция outAddrHelp() для получения общей помощи по адресу модулей выходных транспортов.
- Protocol.HTTP: Расширено функцией пользовательского API setUser() для изменения автентифицированного пользователя.
- DAQ: TController::alarmSet() расширено аргументом "force" для принуждения установки нарушений на объектах контроллеров в резервировании.
- DAQ-параметры дополнены функцией пользовательского API alarmSet() и функцией vlSetRednt() унифицированной записи значений в резервировании.
- TDAQS::rdRestDtTm() расширено возвратом double вместо float.
- Дополнено функцией пользовательского API daqAt().
- Функцию пользовательского API funcCall() расширено аргументом "err".
- JavaLikeCalc: Функции пользовательского API charAt() и charCodeAt() расширено поддержкой UTF. Функции пользовательского API расширено isNaN() для bool, integer, real, string (особенно для проверки чисел в строке).
- Архивы:
- Объекты TMArchivator и TArchiveS дополнено функцией redntTm() и rdTm() для получения последнего времени резервирования архивов сообщений.
- TArchiveS::rdRestDtOverTm() расширено возвратом double вместо float.
- Архивы значений дополнено общей опцией autoIdMode() режима формирования Идентификатора автоматически создаваемых архивов с вариантами перечисления AutoIdMode::{BothPrmAttrId,OnlyPrmId,OnlyAttrId}.
- Val: Добавлены функции API пользователя getVals() и setVals() для реализации общего механизма доступа к архивам/истории в массиве и с фиксированной периодичностью.
- UI: Декларацию контекстной документации из описания некоторых узлов унифицировано функцией TUIS::docKeyGet().
- VCAEngine: Добавлена функция пользовательского API уровня сеанса this.ownerSess().uiCmd(). Виджет исполнения дополнен функцией API пользователя this.attrList() для получения перечня атрибутов виджета.