From OpenSCADAWiki
Jump to: navigation, search

API
!!!!:Зміни:

  • SYS: TCntrNode::{chldDel,nodeDis}() переведено на пряме використання TCntrNode::EnDisFlag: NodeNoFlg, NodeRemove, NodeRemoveOnlyStor; та проміжок після > 0x100(TCntrNode::NodeSpecific) зарезервовано для специфічних вузлів, де TParamContr::EnDisFlag встановлено лише у NodeRemove_NoArch та Widget::EnDisFlag встановлено лише у Widget::{NodeRemove_NoDelMark,NoContainer}. Елементи TCntrNode::Flag перейменовано щодо SelfModify->Modified, SelfModifyS->ModifiedS, SelfSaveForceOnChild->SaveForceOnChild.
    • Функції сховку об'єкту DB(), fullDB() та setDB() розширено аргументом "qTop".
    • Назву підсистеми перенесено до виклику функції subName() та яку встановлено у "virtual" та "constant", так само як subVer() і subId().
    • Тип поля опису об'єкту TFld та поля назви об'єкту IO змінено у "string".
    • Результат TCntrNode::nodeNameSYSM() змінено у "string".
    • TMess: Функцію lang2CodeBase() поділено на загальну langBase() та доповнено функцією langToLocale(), отримання повної локалі за мовою із langBase().
      • Функцію lang2Code() розширено аргументами "user" та "onlyUser".
      • I18N() змінено у аргументах щодо "const string &mess" перший та mLang перенесено до другого, результат змінено у "string", також для TModule::I18N(), та оновлено всі визначення _().
      • Функції перекладу даних (короткі визначення) перейменовано у trD_L(), trD_U(), trD_LU(), trDSet_L(), trDSet_U(), trDSet_LU().
      • Видалено I18Ns().
      • labStorGen() поєднано із labStor() та тип міток labStor(), labSecCRON(), labSecCRONsel(), labTaskPrior(), labMessCat() змінено у "string"; доповнено міткою labStorGen().
      • lang2Code() та lang2CodeBase() перейменовано у langCode() та langCodeBase() відповідно для початку адаптації коду мови більш за 2 символи.
    • Безпека: Статичний метод "pHashMagic" перенесено до визначення SEC_HASH_MAGIC.
  • БД: Функції TBDS::{open,close}() перейменовано у TBDS::{tblOpen,tblClose}() та встановлено статичними.
    • TBDS::{dataSeek,dataGet,dataSet,dataDel,genDBGet,genDBSet}() переведено на бітові прапорці TBDS::ReqGenFlg (перейменовано із TBDS::ReqGen): NoFlg, NoException, OnlyCfg, UseTranslation (перейменовано із ReqGen::UseTranslation), UseCache, UseAllKeys.
    • TBDS::dbList() переведено на бітові прапорці TBDS::DBLsFlg: LsNoFlg, LsCheckSel, LsInclGenFirst.
    • Функції переведено у статичні: TBDS::{dbList,dataSeek,dataGet,dataSet,dataDel,dataDelTbl}(), TBDS::{fullDBSYS,fullDB}().
    • Функції доступу до загальних параметрів TBDS::genDBGet() та TBDS::genPrmSet() всюди перейменовано у genPrmGet() та genPrmSet().
  • DAQ: TTypeDAQ::compileFuncSynthHighl() перейменовано у TTypeDAQ::compileFuncSnthHgl() в процесі уніфікації назви.
  • Архіви-Історія: Визначення архіво-специфічних назв перейменовано для BUF_ARCH_NM, ALRM_ARCH_NM, ALRM_ARCH_CH_NM у ARCH_BUF, ARCH_ALRM, ARCH_ALRM_CH; та доповнено щодо ARCH_NOALRM ("<noalarms>").

Доповнення:

  • SYS: Глобальні короткі функції доповнено s2l() та s2u().
    • Доповнено новою функцією strParseEnd() розбору рядків за роздільником із кінця.
    • Функцію pathLev() доповнено новим аргументом позиціювання зміщення на початок наступного елементу та що також доповнено у функції користувацького API parsePath() від DAQ.JavaLikeCalc.
    • TCntrNode доповнено функціями storage() та setStorage() для відстеження наявності даних вузла. TCntrNode::Flag доповнено елементом LoadForcibly. TCntrNode::modif() та TCntrNode::modifG() доповнено новим аргументом "forceLoad".
    • Додано змінну обмеження за часом "limCacheIts_TM" для обмеження кешу повідомлень.
    • Загальну функцію кодування strEncode() та відповідник API користувача доповнено варіантом "ShieldBin" захисту-екранування бінарних символів [\x0-\x8\xB-\xC\x0E-\x1F].
    • TMess: Доповнено функцією перевірки повідомлень щодо їх перекладуваності — isMessTranslable().
      • Доповнено функціями контролю кешу перекладу: translCacheGet(), translCacheSet(), translCacheLimits() та власним замком trMessCacheRes. Доповнено функцією translIdxCacheUpd() оновлення індексу та кешу оперативних перекладів повідомлень, і функціями translItSplit(), translItRemTrs() розділення елементів та видалення із Trs.
      • Доповнено щодо контексту перекладу новою функцією trCtx() та об'єктом TrCtxAlloc для утримання.
      • Доповнено для перекладу даних trD()->translGet() та trDSet()->translSet().
      • Доповнено перекладом системних повідомлень через передзбереження trS(), як ще одне посилання на I18N().
      • Доповнено функцією messLevelTest().
      • Структуру TMess::Type доповнено елементом "MaxLev" для визначення максимуму типів/рівнів повідомлень.
      • Визначення TMess доповнено mess_PreSave="<PSV>" та mess_TrModifMark="<!>".
    • XMLNode: Доповнено новою опцією зберігання BinShield(0x400) для контрольованого захисту-екранування бінарних символів [\x0-\x8\xB-\xC\x0E-\x1F].
    • TConfig,TCfg: Розширено новими параметрами TConfig::{trcSet,setTrcSet}(), TCfg::{isSet,setIsSet}() виявлення зміни конфігураційних полів та використання у частковому завантажені БД замість toDefault(); та TConfig::{noTransl,setNoTransl}() для глобального встановлення типового перекладу структури. Функцію TCfg::setExtVal() доповнено аргументом "toOne".
    • TError: Коди доповнено: DB_TrRemoved (22) для маркування видалення перекладу у БД, DB_ReadOnly (23) впроваджено у SQLite в процесі уніфікації, Core_NoNode (5) відсутності TCntrNode, Tr_ErrTransport (12) для маркування помилок транспорту, Tr_ErrResponse (13) та Tr_ErrDevice (14) для збільшення специфічних до транспорту помилок.
  • БД: TBDS::realDBName() доповнено аргументом зворотного перетворення.
    • Статичні методи TBDS доповнено новою функцією dbPart() отримання частин адреси сховища та доповнено новою функцією dataDelTbl() загального видалення таблиць, також у Конфігураційному Файлі.
    • Доповнено об'єктом елементу структури TTable::TStrIt.
    • Загальний SQL-код перенесено до нових функцій: TTable::fieldSQLSeek(), TTable::fieldSQLGet(), TTable::fieldSQLSet(), TTable::fieldSQLDel(); із прапорцями TTable::SQLReqFlag: SQLNoFlg, SQLOrderForSeek, SQLFirstSkipForSeek.
    • Декларація у ядрі щодо сервісних визначень, методів та функцій до загального SQL-коду: SEEK_PRELOAD_LIM, tblStrct, seekSess, connRes, fieldFix(), getSQLVal(), setSQLVal().
    • Доповнено функцією визначення пріоритету у переліку TBD::lsPr(), TBD::setLsPr() та віртуальною TTypeBD::lsPr().
    • Доповнено віртуальною функцією визначення властивостей БД — TTypeBD::features().
  • DAQ: Структуру IO::IOFlgs об'єкту TFunction::IO доповнено прапорцем IO::TransltText прямого маркування ВВ Рядку до перекладу.
    • Функцію {TController,TParameter}::messSet() доповнено транспортуванням повідомлень з гори до низу, а також функції Користувацького API SYS.DAQ["Modul"]["Controller"].messSet(), SYS.DAQ["Modul"]["Controller"]["Parameter"].messSet().
    • TCntrNodeObj доповнено функцією lang(), отриманою із другого рядка загального методу mUserLang.
    • Функції API Користувача доповнено funcSnthHgl() у об'єкті модуля Збору Даних і для отримання правил підсвітлення синтаксису модуля та мови.
  • Архіви-Історія: Доповнено варіантом функції "void TArchives::messPut( const TMess::SRec &rec, const string &arch = "" )".
  • Транспорти: Доповнено новою функцією extHostSeek().
  • UI: Доповнено параметром Конфігураційного Файлу "FontSnthHglCode" та відповідними функціями TUIS::fontSnthHglCode() і TUIS::setFontSnthHglCode().
    • VCAEngine:
      • Функції Користувацького API mime() та mimeSet() доповнено коректними еквівалентами resource() та resourceSet().
      • Об'єкт Проєкту доповнено сервісним запитом Інтерфейсу Контролю "read:/serv/access" щодо перевірки доступу читання.
      • Сервісний запит Інтерфейсу Контролю "get:/prm/cfg/prj" доповнено параметром "noName" для запобігання запиту назви проєкту.