2022-08-08 Roman 0.9.5.2 - FIX:AGLKS.St: testCalc_prm.test: Fixed for the messages translation of some attributes. - FIX:SYS: Building: configure.ac: Fixed for some messages. - !!!!:FIX:DAQ.ParamTmpl: Fixed for the IO name edition in the non basic mode of the dynamic translation. - FIX:DAQ.System: The UPS source prevented from flooding in the debug mode. Most close(), iconv_close(), dlclose(), pclose() functions appended of checking the result and warning at problems. - !!!!:FIX:Archive.FSArch: Prevented for access to "files" in ModMArch::checkArchivator() outside the lock. - !!!!:FIX:Transports.Sockets: Fixed in processing the not complete writing for the Input part, when the message cuts on the TCP transmitter buffer size. !!: The input buffer size of the Input part bound to the hardware receiver buffer size control and the internal one just frozen to the standard string buffer len since that is not critical and need no control. The transport status appended of the system size of the input buffer and MSS. Most close(), iconv_close(), dlclose(), pclose() functions appended of checking the result and warning at problems. - UI.QTCfg: Improved some in the base fields alignment under single description, that is in RO-labels display. Label of the text fields aligned in the center vertically - !!!!:FIX:UI.Vision: All control requests "" appended of checking the child nodes presence to prevent crashes in some cases. !: The project and widget library tree's icons appended of the forcibly setting for clearing also. Prevented for exceptions in the function TBDS::genPrmSet(). - UI.WebCfgD: Appended "padding-right: 5px;" for all fields. 2022-07-24 Roman 0.9.5.1 - !:FIX:LibsDB.OscadaLibs: tmplib_DevLib.mbBase: Adapted to the builtin syntax highlighting for the attribute "Items set (items)". tmplib_base.ntf: For the server address in the SMTP HELLO request used the EMail sender address instead SYS.system("hostname -f").parse(0,"\n"), which can be wrong for the SMTP-servers. FIX:flb_servProc.wacko2media: fixed for the WHERE value's quotter of the SELECT SQL request. - !:LibsDB.vcaBase: wlb_Main.{alarmsAct,alarmsSt}: Adapted to the builtin syntax highlighting for the attribute "Highlight rules (highLght)". - FIX:AGLKS.St: Some fixed in the library vcaAGLKS description. - !:SYS,UI.Vision: Errors for control commands of the Control Interface to the redundant stations set to mark as warnings on the local ones. UI.Vision: The warnings are processed now as the local successful result only with notifying about the problem for the attributes modification and widgets removing. - SYS.TRegExp: The TRegExp object appended of a new option 'U' (ungreedy) of the greedy mode toggle, together the User API method "ungreedy". search() function of the object appended of an argument "length" of the measured block size return. - !:SYS.XMLNode: The saving option BinShield(0x400) appended of encoding-shielding of the wrong UTF-8 symbols, to prevent of XML-parsing errors on FireFox. - FIX:Transports,UI.{QTCfg,Vision,WebCfgD}: The function TTransportS::extHostList() appended an argument "lang" to allow the remote host names obtaining translated. - !!!:FIX:Transports: The output transports appended for the force stopping at the object system disable-disconnection, not in destructors what is late then there can be lost the socket handlers. - !!!!:FIX:Transport.Sockets: The input transports prevented at spare socket closing in the initiative mode. - Transport.SSL: The input transport stopping appended of termination client tasks like to Transport.Sockets. - DAQ: Text attribute fields disabled for the text width limit, for the builtin syntax highlighting mostly. - DAQ.DAQGate: Appended for messaging about disable parameters. Appended in the location information for group names of control parameters of the main control page of the DAQ parameter. - !!!!:FIX:Archive.FSArch: Prevented for access to files[iA] in ModVArchEl::setValsProc() outside the lock using the read-lock switching. - !!:UI.{QTStarter,QTCfg,Vision}: The QT-generic library (lib_qtgen) appended of the static-external functions getFont() and getColor() from UI.Vision and the object SnthHgl from UI.Vision and UI.QTCfg. The function SnthHgl::rule() some unified, made optimal and appended of commented code of using TRegExp instead QRegExp, and that commented due to difference of the position counting as completed UTF-symbols in QRegExp and chars in TRegExp (PCRE), but TRegExp using is still interested due to TRegExp (PCRE) functional is richer to QRegExp. - UI.QTCfg: The text fields with the builtin syntax highlighting appended of deep text cursor position restore at the syntax rules apply and in whole. - !!!:UI.Vision: The text areas with the syntax highlighting appended of the builtin variant. - UI.WebVision: The type ComboBox of the primitive FormEl appended for adding empty values to the list. 2022-05-31 Roman 0.9.5 - data/*.xml: The field MaxClientsPerHost of the Sockets.CNTR transport increased up to 10. - !!!!:FIX:SYS,DAQ.DAQGate: The controller objects fixed in call the parameter objects deletion for explict using the flag NodeRemove. - !!!!:SYS.TPrmTempl,DAQ.JavaLikeCalc,Protocol.ModBus: Restored in using the configuration field values at the fields move in other branch. - !:SYS: Fixed for some CLang compiling warnings from Sergij Doroska (mr_dsv). - !!:Transports: The UpRiseLev stations splited in the requesting transport per the first host of the "reforwardHost" address, than preventing the common connection hung at long connection to very far reforward missing station. - !:DAQ.DAQGate: The sync operation completely moved into the acquisition task at restart the enabled controllers. - !!!!:FIX:UI.VCAEngine: Processing the Attr::NotStored flag limited on the value change, not for the configuration like to the processing flag of direct accessing from the procedures. !: The container widgets and pages loading is set to enable new included widgets at loading the enabled containers. - !!:FIX:UI.Vision: The child widgets selection conception at the visual editing of the development mode was unified and fixed in a new part "Visual editing" of the UI.Vision module documentation. Some fixed and improved in the way: - prevented in the selection loss at the keyboard focus loss on navigation to some other items, so the selection saved at mouse clicking on that; - selection by window can be performed now starting the window draw from any unselected space and the new selected part can be appended to already present selection holding the Shift key; - shape of the mouse cursor of the primitive Box for the runtime mode prevented for set in the development mode. !!: Requesting of the widget attributes' values of the developed widget moved to a single big request, than the remote development is become much faster. Status of the opened windows in the module configuration page appended of the station name, for remote stations mostly and their multiple opening. - !:UI.WebVision: The type CheckBox of the primitive FormEl was some improved, simplified, centered vertically and allowed to the dynamic resize. !: The type LineEdit of the primitive FormEl was centered vertically by "margin: auto" and allowed to the dynamic resize for all views. The type ComboBox and List of the primitive FormEl inherited the height and width for the SELECT element. 2022-05-11 Roman 0.9.5 - !!!!:DOC: The "Quick start" manual completely revised and actualized for last 0.9.5 LTS changes. - DOC,LibsDB.{OscadaLibs,vcaBase,vcaElectroEls},data/*.spec,data/{debian,debian_mod}/control: The language Russian,Російська,Российский renamed to its true name mRussian. - !:LibsDB.OscadaLibs: flb_doc.diagram: Fixed in using the horizontal size at the required period (reqPer) calculation. - !!:SYS.TPrmTempl,DAQ.*: Fixed in the prestored system translation of configuration fields directly used at reading TFld::dscr(). - SYS: TCntrNode::storage() expanded for show to remove not the Generic Storage parts. TCntrNode::setStorage() expanded at setting to the queue in splitting the Generic Storage at setting its part and removing its parts at it setting. The User API function TVArchive::getVals() switched to the result value bufer in the FillLast mode, for the possible requested data period lesser than the real data, then fill holes in the previous value. - FIX:Security: The system users and groups is cleaned for the modification flag just after they new ones creation. - !!:FIX:DAQ.DAQGate: Fixed for several stations selection in the controller object. Allowed for sync the new parameter attributes during the enabling also, after moving that process also to the task. - UI.VCAEngine: The Project object appended a Control Interface service request "read:/serv/access", of checking the read access. The Control Interface service request "get:/prm/cfg/prj" appended an option "noName" for preventing the project name request, than preventing other projects spare loading here at the name obtaining. The project list requesting in the Project Session object prevented of requesting the project name to prevent other projects spare loading here at the name obtaining. The project and Widget Library enabling/disabling message set to the TMess::Info level. The Project Page and Widget Library Widget enabling/disabling appended of a TMess::Debug level message. - UI.WebVision: Checking the projects accessing moved to check the HTTP accessibility before the access checking in VCAEngine, than preventing other projects spare loading here at the name obtaining if there is no access on the HTTP level. 2022-04-22 Roman 0.9.5 - !!:LibsDB.OscadaLibs: tmplib_base.{anUnifSt,codeState}: Adapted to the syntax highlight builtin of the input preprocessing procedure. - !!:FIX:LibsDB.vcaBase: wlb_Main.storeHouse: Expanded and fixed for: - appended of the highlighting rules for column values with filter index or list; - removed for spare and wrong filtering of the special fields "*{ID}". wlb_Main.TextLab: Optionally enabled for the transitive translation in the status text which often comes from some DAQ-source. - AGLKS.St: ModBus_node.test updated during of the complete disabling the translation, the translation loading and registering. Cleaned from the table "FSArch_Pack". - !!!!:FIX:SYS: Fixed in the new values changing and saving for the MULTILANGUAGE mode: - at missing the BASE value there used the new set value as a BASE and it is registered in the messages index; - removed for the spare posttranslation in TFld::descr(); - the function TMess::isMessTranslable() switched to direct checking for the untranslatable symbols; - the function TMess::translSet() adapted for empty BASE what can appear at the new values setting; - the follow OpenSCADA Nodes adapted for setting new translated values, using trDSet("",{NEW_VAL}): TPrmTempl, TTransportS, DAQ.JavaLikeCalc::Func, Protocol.ModBus::Node, UI.VCAEngine::{Project,Widget}. - !!!!:FIX:SYS: Complete disabling the translation and registering in the message index at the loading for generic TConfig nodes with the JavaLikeCalc procedure text and a deprecated flag of enabling that procedure whole translation: - performed for: TPrmTempl, DAQ.JavaLikeCalc::Func, Protocol.{ModBus.Node,UserProtocol.UserPrt}, UI.VCAEngine.{LWidget,Page}. - the TCfg::setExtVal() function appended an argument "toOne" for reseting the extension mode to the One value instead the Two and that value is writed directly to the inherited TVariant container; - TCfg::operator=() switched to direct copy in the inherited TVariant container; - the copying function TConfig::exclCopy() provided in copy the external fields directly through TCfg::operator=() and prevented of double the copy in the common way. - !!!!:SYS,UI.{QTCfg,WebCfgD}: The OpenSCADA Control Interface for Tables expanded by the user commands. - SYS,DAQ.*,UI.VCAEngine: Status texts of different objects were unified in removing the symbol ":". - !!!!:FIX:SYS: Accessing the TMess::trMessIdx container in the control interface edition table moved to it complete copy under the lock trMessIdxRes and it copy using outside the lock, then preventing for dead locks at the DB access. - !!!!:SYS: The translation management table appended of the user functions "Split item" and "Remove from Trs" with implementing in new functions TMess::translItSplit() and TMess::translItRemTrs() respectively. - !!!!:FIX:DB: The TBD object appended an internal flag "mIsFirst" of control the object first enable and what used to prevent of the table "Trs" registering at each enable-connection-reconnection. - DAQ.{JavaLikeCalc,ModBus}: Prevented of the controller object disable and/or stop at the some configuration fields reloading witout a change. - !!:FIX:DAQ.JavaLikeCalc: Prevented in some resources lock of the library function at its program change, when performed the program compile at disabled function. New IO creation appended the new ID enumeration. - DAQ.DAQGate: Appended for rapid detection of the generic connections loss and marking all the parameter attributes to EVAL. - DAQ.ModBus: Prevented of setting alarms in the endrun stage. - Protocol.{ModBus,UserProtocol}: The whole translation flag is hidden for unset values. - !!:UI.QTCfg: The Tables appended of finding for pointed strings. - UI.VCAEngine: Widget attributes loading in the project execution context appended of the dynamic-data translation for the translatable strings. - UI.WebUser: The program text field was set to non translatable in whole. - FIX:UI.WebVision: Items of the type Combo of the primitive FormEl were set to reloading content at the init. Items of the type Table of the primitive FormEl appended for refiting at rows number change more than 3. 2022-04-10 Roman 0.9.5 - !!:LibsDB.OscadaLibs: tmplib_base.{digAlarm,anUnif}: Adapted to the syntax highlight builtin of the input preprocessing procedure. - !!:FIX:LibsDB.vcaBase: wlb_Main.storeHouse: Significantly expanded and fixed for: - the class field NAME unbound from the class common title specifying, for what there used the specific mark "*TITLE"; - the special class fields NAME and DESCR moved separately from the specific fields, marked as "*NAME" and "*DESCR" and adapted for redefinition they name and table properties; - the special fields "*{ID}" set to the forcibly creation together the class table and prevented from they removing; - prevented of removing the specific fields for all classes of the table "classes"; - the class fields appended of the possibility to specify they order in the third argument of the table properties as a position; - the class selection field fixed in listing more than one item; - enabling the class edition and selection fields moved in the constant execution for correct processing at the user change; - the class edition field allowed for the complete name. - FIX:SYS: The TRegExp::replace() function fixed in processing zero length replacing symbols, like to the line begin "^". - !!!!:FIX:DB.{SQLite,MySQL,PostgreSQL,FireBird}: Fixed in the function fieldFix() for correct processing of the multiple languages. - !!:DAQ: The User API functions appended of the function funcSnthHgl() in the DAQ module object and for obtaining the syntax highlight rules of the module and language. !!: TTypeDAQ::compileFuncSynthHighl() renamed to TTypeDAQ::compileFuncSnthHgl() in a way of the name unification. The text configuration field of the Logical Level parameters was cleaned for the columns limit. - !:DAQ.{ModBus,Siemens}: The attributes list field disabled for the translation. - !!:UI: TUIS::fontSyntHighlCode() and TUIS::setFontSyntHighlCode() renamed to TUIS::fontSnthHglCode() and TUIS::setFontSnthHglCode() respectively in a way of the name unification. !!: The Configuration File field "FontSyntHighlCode" renamed to "FontSnthHglCode" in a way of the name unification. - !!:UI.QTCfg: The text fields appended of checking and activation the builtin syntax highlight rules from the XML-tag "SnthHgl". - !:FIX:UI.WebVision: The type Table of the primitive FormEl expanded of detection the table refitting need at length change of the not fixed fields and of detection the table complete change in the edition mode. FIX: The combobox field fixed in calculating the vertical size from real row count. 2022-04-03 Roman 0.9.5 - FIX:LibsDB.vcaBase: wlb_Main.userManager: prevented in setting for edition the denied users at opening the page from that user. The table "Trs" appended of the message "Norm" translation. - SYS,DB,UI.Vision: The double messages removing button appended of a help message in the label labStorRemGenStor() with a warning of removing from the Generic Storage (*.*). - !!!:FIX:SYS,DB,Security: The messages translation appended-finished in synchronization the system prestored and the dynamic-data setting messages. !!:FIX:DB: The data setting function TBDS::dataSet() and TTable::fieldSQLSet() appended of treating the system prestored messages in writing the translated value. TMess::translGet() and TMess::translSet() appended of the system prestored messages detection and resolving. TMess::translSet() appended of just return the message at the base empty. TMess::I18N() appended of just return the message at the dynamic-data message setting. Security,UI.VCAEngine: Finished in the description field sync translation of the TUser and TGroup and the name field of the widget library for the system prestored and the dynamic-data. The TConfig control commands "get" and "set" allowed in the dynamic translation also for the non dynamic mode. - SYS: The "Target node does not have the required branch." error appended of the target node value and separated to the non writibility detection message. The error message "There is no access to create a real-time task ..." set just as a debug one. - FIX:DB: The data setting function TBDS::dataSet() expanded in dividing the message to the BASE one for the Configuration File. The data setting function TTable::fieldSQLSet() prevented in copy not translated messages in the INSERT part. - FIX:DAQ.DAQGate: Fixed in not sync the parameter content at the new ones, mostly at the sync period "-1". - FIX:Transport.SSL: Fixed in the message "The input transport closed by the error ..." correct generation to the transport status. And the message "BIO_should_retry: ..." set just as a warning one for the client certificate checking errors. - !:UI.QTStarter: The project list updation rewrote to use a separated QTimer for implementing the updating delay at some activity in the list. - !:FIX:UI.VCAEngine: Fixed in all resources copy at the project or widget library copy. - !:UI.Vision: The widgets copy allowed in copy to the project and the project page, with a separated option "As a page:" at copy to the page. - FIX:UI.WebVision: The Password view of the Line Edit type of the primitive FormEl fixed in setting the INPUT tag type to "password" for the RO mode also. FIX: The List and Combo type of the primitive FormEl prevented from appending empty rows from the empty selection value and the value correct processing. 2022-03-27 Roman 0.9.5 - FIX:LibsDB.vcaBase: wlb_Main.RootPgSo: Some unified in the terminator panel open before any content page. - !!:SYS,data/ModelsDB/{AGLKS/oscada_AGLKS.xml,Boiler/oscada_Boiler.xml}: The configuration parameter "Lang2CodeBase" renamed to "LangBase" with support "Lang2CodeBase" up to the 1.0 release. !!: TMess::lang2Code() and TMess::lang2CodeBase() renamed to TMess::langCode() and TMess::langCodeBase() respectively for starting the adaption to the language code more than 2 symbols, for what TMess::langCodeBase() was adapted already. - UI,SYS,DAQ.JavaLikeCalc: The subsystem configuration appended of the tab "Subsystem" and the configuration field "Syntax highlight font for code" in that for configuration of the corresponded font in OpenSCADA parts, which set to "monospace". - !:SYS: TConfig::objFunc() adapted to passing the language through the argument "user_lang" renamed from "user". !: The User API function TConfig::cfg() adapted to postranslation of the system translation of the translatable strings. - SYS: Appending the new error code TError::Tr_ErrResponse and TError::Tr_ErrDevice for more specific transport errors, initially in DAQ.ModBus. - SYS: The column "Path" of the "Shared libraries(modules)" table of the subsystem "Modules scheduler" renamed to "Source". - !:DAQ.ModBus: The connection errors caused by the transport configuration errors prevented of the alarm setting. Unified in specifying and using the error code TError::Tr_ErrDevice(14) and TError::Tr_ErrResponse(13). - !:FIX:UI.VCAEngine: The Attr::NotStored attributes prevented of the modification counter change than modification mark of them, and the primitive's "Diagram" attributes set to Attr::NotStored: "Cursor: seconds (curSek)", "Cursor: microseconds (curUSek)", "Parameter {N}: value (prm{N}val)" and "Parameter {N}: properties (prm{N}prop)". FIX:The openReg() request switched to the new open page always appearing on the top, also for registered before. User action messages of the sessions switched to generate from the sessions not projects. - !:UI.WebVision: In the XML-responses generation appended for coding the binary symbols by the options XMLNode::BinShield. 2022-03-14 Roman 0.9.5 - !!:FIX:DAQ: The service request "set:/val" of the TValue object fixed in the dynamic translation setting. - FIX:DAQ.DAQGate: Restored in the actual alarms first reading for the unlimited depth. 2022-03-07 Roman 0.9.5 - !!!:FIX:SYS: The TMess::mRes lock renamed to TMess::trMessIdxRes and limited in use only for TMess::trMessIdx, than preventing in lock at the DB accessing - the complex hangs on the MULTILANGUAGE projects. !!:FIX:SYS,*: labStorGen() merged to labStor() and that labels labStor(), labSecCRON(), labSecCRONsel(), labTaskPrior(), labMessCat() type changed to "string". !!:FIX: Security: Description of the user and group fixed in the prestored translation. FIX: Storage of the system users and groups moved to EMPTY to allow that loading from external storages. !!: Most TCntrNode::Flag items renamed SelfModify->Modified, SelfModifyS->ModifiedS, SelfSaveForceOnChild->SaveForceOnChild. !!: Force loading appended of the errors suppression for not modified nodes before that operation: - the structure TCntrNode::Flag appended of the item LoadForcibly; - TCntrNode::modif() and TCntrNode::modifG() appended of a new argument "forceLoad". TModSchedul::chkAllowMod() removed for spare variable "path_els" declaration. - DAQ,UI.VCAEngine: The enum TParamContr::EnDisFlag and UI.VCAEngine::Widget::EnDisFlag first item directly linked to the new item TCntrNode::NodeSpecific (0x100). - !:FIX:UI.VCAEngine: The pages appended in disable and clear the parent address at the page type change for Page::Template, Page::Link; also as the types exit from Page::Template and Page::Container appended of a suggestion to remove the branch pages. The subpages-branch loading allowed only for Page::Template and Page::Container and suppressed in whole of errors at pages appending to non containers by Engine::NoContainer. The object Engine appended of the own error codes ErrCodes with the items NotResLnk (link to TError::EXT) and NoContainer. - !:UI.WebCfgD: Improved in the table usability and mostly in the text edition: true width fitting, text cursor setting and tracing at the entry and Ctrl+Enter using setSelectionRange(). FIX: Fixed in processing empty "sel_list" of the editable combo. 2022-02-22 Roman 0.9.5 - New and significantly updated parts: - OpenSCADA Core: 3:11:0 => 3:12:0 - OpenSCADA "BD", "DAQ" subsystems: 14 => 15, 13 => 14 - DAQ.DAQGate: 2.5 => 2.9 - DAQ.JavaLikeCalc: 5.1 => 5.4 - DAQ.Siemens: 4.2 => 4.4 - {DAQ,Protocol}.ModBus: 3.3 => 3.4, 2.8 => 2.9 - {DAQ,Protocol}.OPC_UA: 2.5 => 2.6, 2.1 => 2.2 - Archive.FSArch: 3.6 => 3.7 - Archive.DBArch: 3.0 => 3.1 - Transport.SSL: 3.3 => 3.4 - Protocol.HTTP: 3.6 => 3.8 - Protocol.UserProtocol: 1.4 => 1.5 - BD.DBGate: 1.0 => 1.1 - BD.SQLite: 3.0 => 4.0 - BD.MySQL: 3.5 => 4.0 - BD.PostgreSQL: 2.5 => 3.0 - BD.FireBird: 2.5 => 3.0 - UI.QTStarter: 5.10 => 5.12 - UI.QTCfg: 5.6 => 5.7 - UI.WebCfg: 1.8 => 2.0 - UI.WebCfgD: 2.1 => 2.2 - UI.VCAEngine: 7.1 => 7.8 - UI.Vision: 7.14 => 8.0 - UI.WebUser: 1.4 => 1.5 - UI.WebVision: 6.2 => 6.6 - LibsDB.OscadaLibs.base.anUnif: 2.1 => 2.3 - LibsDB.OscadaLibs.servProc.docOffLine: 1.2 => 1.3 - LibsDB.OscadaLibs.Controller.test: 1.1 => 1.2 - LibsDB.vcaBase.Main - alarmsAct: 1.1 => 1.3 - alarmsSt: 1.2 => 1.4 - RootPgSo: 2.4 => 2.5 - ElCadr: 1.1 => 1.2 - TextLab,ImgLab: 1.0 => 1.1 - graphSelPrm: 1.4 => 1.5 - objProps: 1.1 => 1.2 - cntrRegul: 1.1 => 1.2 - LibsDB.vcaBase.mnEls.El_Kran_Sh,Compressor: 1.0 => 1.1 - LibsDB.vcaBase.doc - docAlarmsRep: 1.5 => 1.6 - docUsersSet: 1.5 => 1.7 - CONCEPTUAL > Common Conception of The Data Storage - the Сonception is commonly unified in the direct storage specification and definition the Generic Storage "*.*" as a combination of the Configuration File and the work Data Base, when the Configuration File is the priority one for accessing the allowed data and the work Data Base for new data; - TBDS::{dataSeek,dataGet,dataSet,dataDel,genDBGet,genDBSet}() moved to the bit flags TBDS::ReqGenFlg; - the TBDS::dbList() moved to the bit flags TBDS::DBLsFlg; - TCntrNode appended of the functions storage() and setStorage() for tracking the availability of node data in different storages and offer a queue of source DB for the mechanism of sequentially removing duplicates and they used in the object's storage functions DB(), fullDB(), setDB(); - the objects are adapted for tracking the multiple storages and are appended of the sequentially removing duplicates: Security.{User,Group}, Transport.{Input,Output}, DAQ.{Controller,TemplateLib}, Archives.{VArchive,VArchiver,MArchiver}, DAQ.JavaLikeCalc.Lib, Protocol.{ModBus,OPC_UA,UserProtocol}.*, UI.WebUser.Page, UI.{VCAEngine,Vision}.{WdgLib,Proj}; - the generic parameters accessing functions TBDS::genDBGet() and TBDS::genPrmSet() moved under the new storage conception using TBDS::dataGet() and TBDS::dataSet() respectively, and renamed to genPrmGet() and genPrmSet() everywhere; - most of the objects moved to use the new function dataDelTbl(): DAQ.{TController,TPrmTmplLib,JavaLikeCalc,LogicLev,BlockCalc,ModBus,Siemens,OPC_UA}, Archive.DBArch, UI.{VCAEngine,Vision}.{WdgLib,Proj}; - the functions moved and used everywhere as static ones: TBDS::{dbList,dataSeek,dataGet,dataSet,dataDel,dataDelTbl}(); - SYS,DAQ.{TemplateLib,JavaLikeCalc.Lib},UI.{VCAEngine,Vision}.{WdgLib,Proj}: the spare storage addresses with tables were shortened to the standard storage address with the table name unification, where the previous not standard names leave to be edited up to the 1.0 release; - Archive.DBArch,Protocol.HTTP: switched to select only DBs; - the root object of the DB subsystem appended of DB priority base [0...9] in the generic storages list and the TBD object appended of the configuration field "Priority in list" to control order of the databases from TBDS::dbList(), than control the loading order; - the "Work DB" configuration field changing disabled on the modification marking of all nodes; - the label TMess::labDB() separated to two ones: TMess::labStor() and TMess::labStorGen(); - the table "SYS" structure of the generic parameters moved to the static method "elSYS"; - storage functions {DB,tbl,fullDB}() set to constant: Security.{User,Group}, Transport.{In,Out}, DAQ.{TController,TPrmTmplLib,JavaLikeCalc}; CONFIGURATION FILE - the configuration parameters and tables implementing in the common context of the TBDS::data{Seek,Get,Set}() functions; - the constant NSTR_BUF_LEN used in detection whether write to attribute or text of the table field at writing to the configuration file; REFACTORING THE TCntrNode FLAGS - TCntrNode::{chldDel,nodeDis}() moved to direct use the new TCntrNode::EnDisFlag; - the flags TCntrNode::{NodeRemove,NodeRemoveOnlyStor} used everywhere of the function postDisable() checking and chldDel() call. - CONCEPTUAL > Significant Unification the Common SQL-code in the OpenSCADA Core - unification the table structure control by the structure item object TTable::TStrIt; - refactored, initially on SQLite, in the request lists form in the separate list variables; - common SQL-code moving to the functions: fieldSQLSeek(), fieldSQLGet(), fieldSQLSet(), fieldSQLDel(); - declaration in the core for the service definitions, methods and functions to the common SQL-code: SEEK_PRELOAD_LIM, tblStrct, seekSess, connRes, fieldFix(), getSQLVal(), setSQLVal(); - the fieldFix() appended an argument "langLs" of specifiyng need languages instead the argument "trPresent"; - unified in the setting message common processing: - detection of the double translation collumns to the default language was removed due to of there is no the default language now; - appended of treating direct (not translation) SET commands by setting fields marked as noTransl() to prevent of collisions at extended processing the translation; - the SET command unified in the translation states specifying; - the translation setting mechanism expanded for clearing the translation at setting not translable ones. - propagating in such way of the last MULTILANGUAGE support code in DB.SQLite; - DB.MySQL: Switched to the "ANSI_QUOTES" SQL mode in the unification way; - FireBird,MySQL,PostgreSQL: SQL SEEK,GET,SET commands some cleaned and updated for translation the SQL common commands. - CONCEPTUAL > Messages Translation TFunction::IO object appended the flag IO::TransltText of marking the translate String IO directly: - the types "String (translate)" and "Text (translate)" appended in: template object of DAQ-Parameter, TFunction object of DAQ.JavaLikeCalc, UI-Attributes of UI.VCAEngine; - the flag TFld::TransltText used in: value getting of TValue of DAQ-Atributes, DAQ-Attributes translation of DAQ.{LogicLev,ModBus,OPC_UA,Siemens}, UI-Attributes translation of UI.VCAEngine; - the value (TValue) of the DAQ-Atributes appended of the context information in the full text and translation; - set to the type "String (translate)" for: the field "colDscrCustNames" of wlb_Main.{alarmsAct,alarmsSt}. Expanding the execution environment of the OpenSCADA object functions by the language, for functions like to strftime(): - the object TCntrNodeObj and the function TCntrNode::objFuncCall() expanded in the argument "user" renaming to "user_lang" with pointing language in the second line; - DAQ.JavaLikeCalc: the TCntrNodeObj execution appended of the language; - SYS.strftime() appended of execution from the pointed language-locale. TUIS,UI.{QTCfg,Vision}: docGet() expanded by the language in the second line. FIX: The "Translations" tab expansion and fixing for: - the option "check for mismatch (TrChkUnMatch)" renamed to "check/fix (TrChkAndFix)" and expanded of the translation fixing functions: by propagation the translations to empty sources, clearing the double to base translations, merging the base messages as the translations; - fixed in the matching check for all languages and clearing the service flags; - information of the non matching was appended in the second message text; - the translation status appended of the short labels "SINGLELANGUAGE", "MULTILANGUAGE", "MULTILANGUAGE-DYNAMIC"; the message index; size of the cache and the translation context; - the base language configuration field of the MULTILANGUAGE modes expanded by list the project locales separated by ";"; - field of the translation manager languages moved under the data lock and is preset to langBase() languages; - FIX: the translation manager allowed also for non dynamic messages translation. FIX: Expansion the Data Messages Translation in the tree modes: SINGLELANGUAGE, MULTILANGUAGE and MULTILANGUAGE-DYNAMIC: - the user language obtaining unified in the function lang2Code(), expanded by the arguments "user" and "onlyUser"; - the lang2CodeBase() function separated to the common one langBase() and appended the function langToLocale() of obtaining the complete locale at language from langBase(); - the language field of the objects TSYS, TUser appended of the selection list from langBase(); - the translation cache significant extending and unification: - in the new TMess object's functions translCacheGet(), translCacheSet(), translCacheLimits() and the own lock trMessCacheRes; - extended by the message category for caching the system translations and users; - the cache limiting also appended by the time limit variable "limCacheIts_TM" for what it checked in the service task; - the TUser::lang() changing appended by the user language cache clearance. - appended for the translation context at the new function TMess::trCtx() and the object TrCtxAlloc for handling the context registration as user and language bound to the call thread: - _()->TMess::I18N() adapted in use the translation context at empty language field; - TCntrNode::cntrCmd(), Protocol.HTTP, UI.{Vision,WebVision,WebUser,WebCfg,WebCfgD} attached to use the translation context. - the DB type-module objects were appended by the specific information field "Features" of specifying the supported by DB features; - UI.QTCfg: the tree update enabled for the root page updation through the reconnection and the tree update at the user change; enabled for using the system language in the SINGLETRANSLATION mode for remote connections; - FIX:UI.VCAEngine: the project styles moved under a new storing table "{DB_TBL}_stls" and its structure with translation; - UI.{WebCfg,WebCfgD}: Generically adapted to the dynamic translation in the MULTILANGUAGE-DYNAMIC mode, using the HTTP-variable "lang", the user language and browser language; - the How to "Create multi language project" document was created. PRIMARY PROJECT OBJECTS - implemented for the base message and its translations mark as fuzzy - "" in the text end, at changing and warning the translation removing; - accessing the dynamic translation moved under the new functions trD()->TMess::translGet() and trDSet()->TMess::translSet(): TArchives,TDAQ,TTypeDAQ,TController,TParamContr,TFunction,TPrmTmpl,TTransports,DAQ.{BlockCalc,JavaLikeCalc}; - appended in the dynamic translation for: - DAQ-attributes name-description postranslation after the system translation and translation in the context help; - DAQ-attributes translation in the UserAPI functions: get(), set(), descr(); - DAQ.JavaLikeCalc: names setting part of the execution form moved to itself; - Protocol.{ModBus,OPC_UA,UserProtocol},UI.{VCAEngine,WebUser}. - adapted commonly to the new changing conception in the MULTILANGUAGE-DYNAMIC mode through "{base}\000{lang}\000{mess}" for which the INSERT command also adapted in copy the translation and/or BASE independently the start locale; - appended and used for a new function translIdxCacheUpd() of updating the operative translation messages' index and cache in the MULTILANGUAGE-DYNAMIC mode for the SET command; - appended of the translation copy in the SQL INSERT command and for the MULTILANGUAGE-DYNAMIC mode; - the configuration file appended of the MULTILANGUAGE-DYNAMIC mode support. INDIVIDUAL MESSAGES - "Trs" - UI.VCAEngine: appended of changing the storage just after the widget procedure compile for placing of the dynamic messages translation to the project storage; - the transitive dynamic translation prevented in appending the table "Trs" for messages available in other sources, so checking the message index before; - FIX: fixed for the new UserAPI messages registering in the MULTILANGUAGE-DYNAMIC mode; - appended for filtering the messages for they translatability before registering; - appended for the new messages early registering in the translation messages index just after appending to the storage table "Trs"; - LibsDB.vcaBase: - wlb_Main.ElViewGraph: enabled for the transitive translation in the tooltip and for the parameter description; - wlb_Main.objProps: enabled for the transitive dynamic translation. SYSTEM MESSAGES - implemented for a function of prestoring system messages translation trS(), where the base message just return with the catalogue information, that is "{base}\000{cat}" and what is translated really in second call inward the translation context or _(). In the background there is used Mess->I18N(), but for the specific language code mess_PreSave=""; - the system translation function TMess::I18N() was attached to the messages cache; - FIX: the common translation of system messages in TMess::I18N() completely prevented from translate empty ones; - the TFld and IO objects expanded in work with the prestoring system messages; - module info fields adapted to the MULTILANGUAGE-DYNAMIC mode; - Security: the system users and groups some renamed and enabled for the prestoring system translation; - FIX:UI.VCAEngine: name of the VCA-library object appended for the prestored translation and for the static libraries like to "Original widgets"; - UI.{QTCfg,Vision}: adapted to the control items obtain in language of the user and update the main window interface language at it change; - UI.Vision: appended in updation the toolbars at the user change, what also adapted for the dynamic translation; all development dialogs adapted for the dynamic translation. - UI.{QTStarter,QTCfg,Vision}: appended for the system Qt-messages translation relating to the selected user language, through the common application property "lang" for the Qt-translation reimplemented function QTranslator::translate(), and then the language commonly switched by the last interface and for all opened; the Starter Menu set for dynamic translation and updating. - CONCEPTUAL > Message Sublevels {Main}[0...9] and Unification for the User Messages Transferring - generic adaption to sublevels {Main}[0...9] of the main message levels [0...7]; - DAQ,DAQ.DAQGate: the function TController::messSet() appended of the messages transferring from the top to the down, so sinking down, making the function virtual one and redefine that in DAQGate, and defining also the new OpenSCADA control service request of the TController object "set:/serv/mess"; - DAQ: specified for the DAQ-transparency messages in the category form "{TP}{ModId}:{CntrId}[.{prm}][:{spec}]", appended of such messages creation function TController::messSet() and the User API functions SYS.DAQ["Modul"]["Controller"].messSet(), SYS.DAQ["Modul"]["Controller"]["Parameter"].messSet(); - LibsDB.vcaBase: - wlb_Main.{ElCadr,TextLab,ImgLab,cntrRegul},mnEls.{El_Kran_Sh,Compressor}: adapted for the user action messages forming by the new DAQ-function messSet() with the unified category structure for transferring between OpenSCADA stations of different levels; - wlb_Main.{alarmsAct,alarmsSt}: adapted to process of sublevels of the main levels with coloring all the levels; expanded by the new user field "Type" as name of the alarm level from the new configuration attribute "types"; - wlb_doc.{docUsersSet,docAlarmsRep}: appended in the DAQGate source complete scanning for whole transferring hierarchy; - wlb_Main.alarmsSt,wlb_doc.{docMessRep,docAlarmsRep}: adapted to the transferred messages by DAQGate; - wlb_Main.{alarmsSt,alarmsAct},wlb_doc.docMessRep: improved in the DAQGate source complete scanning for whole transferring hierarchy, also for user actions (OP). - OpenSCADA libraries and projects: !!!!:FIX:LibsDB.{OscadaLibs,vcaBase,vcaTest},{AGLKS,Boiler}.*: Appended, cleaned and fixed for the multilanguage messages by applying the new translation fixing mechanisms. !!:FIX:LibsDB.vcaBase,AGLKS.vca,Boiler.St: All project styles moved under a new storing table and its structure with translation. FIX:AGLKS.vca: The style rule 'labColorGrph1' fixed for the Default. !!!:FIX:LibsDB.vcaBase: !!:FIX:wlb_Main.{alarmsAct,alarmsSt}: The default sorting at the field of the alarm time set back to "1" as not default descending order. !!: wlb_Main.alarmsAct: Appended for the field "messCat" of specifying the alarm categories. !!:wlb_Main.{ElViewGraph,graphSelPrm}: Adapted to reset the trend item color to the default styled at setting that to empty; appended of the empty color processing as the default one also taken from the style. !!:FIX:wlb_Main.RootPgSo: Appended of complete updating at the user change, but language also can be changed, and the language. !: The Termination Control Panel call returned back to the unconditional call and directly at the events for open before any other control panels. FIX: Fixed in width setting of the view area buttons at updating after the user change. The Buzzer(1) notifier switched to the repeating mode. !:prj_tmplSO: The styled colors' transparency of trend items set to 150. !!:LibsDB.OscadaLibs: The "DB" field content and the table base ID of UserFuncLibs.{techApp,servProc,Controller} renamed to the standard one "flb_techApp", "flb_servProc", "flb_Controller" respectively. !!:tmplib_base.digAlarm: Expanded in the common attribute DESCR using for the specific parameters redefinition by the new fields "CustomFlds". !!:tmplib_base.anUnif: !!: Expanded in the common field DESCR using for the specific parameters redefinition by the new fields "CustomFlds" and "CustomAlarms". !!: Appended of the user procedure option "toSave" of force saving the object at the exit. !!:flb_servProc.docOffLine: Expanded for the index page accessing from any other pages. !:test.test: Appended of the commented parts of testing the string streams parsing by string.{parse,parseEnd,parsePath,parsePathEnd,parseLine}(). - API: !!!!:Changes: SYS: TCntrNode::{chldDel,nodeDis}() moved to direct use the new TCntrNode::EnDisFlag: NodeNoFlg, NodeRemove, NodeRemoveOnlyStor; and the space after > 0x100 was reserved for the node specific, where the TParamContr::EnDisFlag set only to NodeRemove_NoArch and Widget::EnDisFlag set only to Widget::NodeRemove_NoDelMark. Storage object's functions DB(), fullDB() and setDB() expanded of the argument "qTop". The subsystem name moved to the function subName() call and which set "virtual" and "constant", also as subVer() and subId(). The description field type of the TFld object and the name field of the IO object changed to "string". Result of TCntrNode::nodeNameSYSM() changed to "string". TMess: The lang2CodeBase() function separated to the common one langBase() and appended the function langToLocale() of obtaining the complete locale at language from langBase(). The function lang2Code() expanded by the arguments "user" and "onlyUser". I18N() changed in the arguments for "const string &mess" the first and mLang moved to the second, it result changed to "string", also for TModule::I18N(), and updated all definitions _(). The data translation functions (short definitions) renamed to trD_L(), trD_U(), trD_LU(), trDSet_L(), trDSet_U(), trDSet_LU(). Removed for I18Ns(). Security: The static method "pHashMagic" moved to the definition SEC_HASH_MAGIC. DB: The functions TBDS::{open,close}() renamed to TBDS::{tblOpen,tblClose}() and set to static ones. TBDS::{dataSeek,dataGet,dataSet,dataDel,genDBGet,genDBSet}() moved to the bit flags TBDS::ReqGenFlg (renamed from TBDS::ReqGen): NoFlg, NoException, OnlyCfg, UseTranslation (renamed from ReqGen::UseTranslation), UseCache, UseAllKeys. TBDS::dbList() moved to the bit flags TBDS::DBLsFlg: LsNoFlg, LsCheckSel, LsInclGenFirst. The functions moved as static ones: TBDS::{dbList,dataSeek,dataGet,dataSet,dataDel,dataDelTbl}(), TBDS::{fullDBSYS,fullDB}(). The generic parameters accessing functions TBDS::genDBGet() and TBDS::genPrmSet() renamed to genPrmGet() and genPrmSet() everywhere. Archives-History: Definitions of the archive specific names renamed for BUF_ARCH_NM, ALRM_ARCH_NM, ALRM_ARCH_CH_NM to ARCH_BUF, ARCH_ALRM, ARCH_ALRM_CH; and appended for ARCH_NOALRM (""). Appends: SYS: The global short functions appended of s2l() and s2u(). Appended of a new function strParseEnd() of parsing the separated string from the end. The function pathLev() appended of a new argument of position the offset to the next token begin and what also appended in the UserAPI function parsePath() of DAQ.JavaLikeCalc. TCntrNode appended of the functions storage() and setStorage() for tracking the availability of node data. The time limit variable "limCacheIts_TM" appended for the cache limiting. The common encoding function strEncode() and the User API one appended the variant "ShieldBin" of shield the binary symbols [\x0-\x8\xB-\xC\x0E-\x1F]. TMess: Appended for a function of checking the messages for them translatability - isMessTranslable(). Appended for functions of managing the translation cache: translCacheGet(), translCacheSet(), translCacheLimits() and the own lock trMessCacheRes. Appended for a function translIdxCacheUpd() of updating the operative translation messages' index and cache. Appended for the translation context at the new function trCtx() and the object TrCtxAlloc for handling. Appended for the data translation trD()->translGet() and trDSet()->translSet(). Appended for the prestoring system messages translation trS(), as an other link to I18N(). Appended for the function messLevelTest(). The TMess::Type structure appended of an item "MaxLev" of the maximum message types/levels specifying. The TMess definitions appended of mess_PreSave="" and mess_TrModifMark="". XMLNode: Appended of the new saving option BinShield(0x400) for controllable shield the binary symbols [\x0-\x8\xB-\xC\x0E-\x1F]. TConfig,TCfg: Expanded for new parameters TConfig::{trcSet,setTrcSet}(), TCfg::{isSet,setIsSet}() of detection the configuration field changing and using in the partial DB-loading instead toDefault(); and TConfig::{noTransl,setNoTransl}() for global setting the structure default translation. TError: codes appended of: DB_TrRemoved (22) for mark the translation removing in DB, DB_ReadOnly (23) introduced by SQLite at the unification process, Core_NoNode (5) of the TCntrNode missing, Tr_ErrTransport (12) for the transport errors mark. DB: The TBDS::realDBName() appended of the back conversion argument. The static methods of TBDS appended of the new function dbPart() of getting the storage address parts and appended of a new function dataDelTbl() of the common tables removing, also in the Configuration File. Appended for the structure item object TTable::TStrIt. Common SQL-code moving to the new functions: TTable::fieldSQLSeek(), TTable::fieldSQLGet(), TTable::fieldSQLSet(), TTable::fieldSQLDel(); with the flags TTable::SQLReqFlag: SQLNoFlg, SQLOrderForSeek, SQLFirstSkipForSeek. Declaration in the core for the service definitions, methods and functions to the common SQL-code: SEEK_PRELOAD_LIM, tblStrct, seekSess, connRes, fieldFix(), getSQLVal(), setSQLVal(). Appended of the list priority specifying functions TBD::lsPr(), TBD::setLsPr() and virtual one TTypeBD::lsPr(). Appended of the DB features specifying virtual function TTypeBD::features(). DAQ: TFunction::IO object's structure IO::IOFlgs appended the flag IO::TransltText of marking the translate String IO directly. The function {TController,TParameter}::messSet() appended of the messages transferring from the top to the down, and also the User API functions SYS.DAQ["Modul"]["Controller"].messSet(), SYS.DAQ["Modul"]["Controller"]["Parameter"].messSet(). The TCntrNodeObj appended of the function lang() obtained from the second line of the common method mUserLang. Archives-History: Appended of the function "void TArchives::messPut( const TMess::SRec &rec, const string &arch = "" )" variant. Transports: Appended of the new function extHostSeek(). VCAEngine: The User API functions mime() and mimeSet() appended of the correct equivalents resource() and resourceSet(). - SYS: !!!!:FIX:Building: configure.ac: Core library version rose to 3:12:0 and the program version rose to 0.9.5. !!!!: The module version of the subsystem "BD" rose to 15, the subsystem "DAQ" rose to 14. !!!!: The Debian 11 root file systems (chroots) are appended for build OpenSCADA; and Nokia N900 removed since the compiler crashes now constantly in several places. !!:data/*.xml: The TBDS Generic parameter "SYSStPref" removed. FIX:DAQ.OPC_UA,libOPC_UA,DAQ.Siemens: Restored in building by old GCC 3 compilers through PROTECTED sections accessing errors. FIX:UI.Vision: Restored in building with Qt lesser 4.6 in accessing QDesktopWidget().screenCount(). AUTOMAKE appended of the options "1.10 subdir-objects" to prevent the subdir object warnings. data/{debian,debian_mod}/changelog: Changed in the repository to LTS. data/oscada_start.xml: The FSArch archive renamed from "1second" to "1second (instantaneous)". !!!!:The source code messages and program documentation: !!!!: The "Program Manual" document appended of the new section "Execution the ready OpenSCADA project in the service-background space" and revised in the section "Startup and execution". !!!: The "Quick start" manual included the new section "Execution the ready OpenSCADA project in the service-background space" into own section "Background and remote execution — server, PLC execution environment and remote development". !!!: New document of the How to "Create multi language project" appended for downloading to offline. !!!: The whole source code labels like to ????, !!!!, ?!?! and they comments were revised. !!:UI.{VCAEngine,Vision}: The "Mime data" renamed to "Resources" and "Mime type" to "MIME". !:UI.{QTCfg,Vision}: "Collumns" renamed to "Columns". Finished in the replacing rom_as@oscada.org by roman@oscada.org for the service files. {DAQ,Protocol}.ModBus: Appended for the modules' name individual specifying and translation. UI.{VCAEngine,QTStarter,Vision,WebVision}: The Ukrainian word "проекту" renamed to "проєкту" everywhere. !!!!:FIX: The debug categories processing moved under own lock "dbgRes" instead "mRes", where the hungs are observed. !!!:.,DAQ.DAQGate: The messages redundancy and messages transferring in DAQ.DAQGate limited for depth of the requesting messages up to the restoring time or one hour. !!!: The archivers redundancy and DAQ.DAQGate switched in the initial messages requesting to: - request the active alarms; - request the archive in deep and up to the alarms requesting time, without the alarms activation; - ordinal-periodic request of the last messages, without the alarms activation. !!!:Protocol.HTTP,UI.{WebCfg,WebCfgD,WebUser,WebVision}: Appended of the previous user detection to mark that actions for HTTP-modules with moving the previous user authentication session closing after successful the new one. !!: All the HTTP-modules adapted to the user field in the HTTP-functions with the previous user in the second line. !!:FIX:WebVision: The previous user is used now for detection of the user change between the ordinal users and for single session, than prevent to create new sessions. The HTTP-functions HttpGet() and HttpPost() marked as deprecated and scheduled for removing after version 1.0. !!!: Expanding the binary symbols [\x0-\x8\xB-\xC\x0E-\x1F] shielding: !!:XMLNode: Appended of the new saving option BinShield(0x400) for controllable shield the binary symbols [\x0-\x8\xB-\xC\x0E-\x1F], what is significant for the WebBrowsers. !: The common encoding function strEncode() and the User API one appended the variant "ShieldBin" of shield the binary symbols [\x0-\x8\xB-\xC\x0E-\x1F]. !!:UI.WebCfgD: Appended of encoding the XML traffic for the binary symbols shielding using the new option "BinShield". DB.SQLite: The binary mode detection appended for the symbols range [\x0-\x8\xB-\xC\x0E-\x1F]. UI.QTCfg: The binary symbols encoding of the text fields moved to use the new variant "ShieldBin" of the TSYS::strEncode() function. !!!!:FIX: strParse() rewrote and tested in processing the group symbols merging at the scan; and strParse(), strLine(), pathLev() in position the offset to the next token begin and limiting in the down for 0; and pathLevEnd() in positioning the offset to the next token end and limited in the up for the size. !!: TModSchedul::chkAllowMod(),UI.QTCfg,Protocol.HTTP: switched in use TSYS::pathLevEnd() and TSYS::pathLev() in the new behaviour. !!!:.,DB,DAQ: The global configuration context copying mechanism (interstation) appended for the marking link to the last setting operation object, to easy postmarks setting. !!:DAQ: As a postmark to the saving DAQ-parameter object there appended the attribute "prmTp" with the parameter type, which is used next in true detection the parameter type changing at the following loading. !:FIX: The lock file processing-updating moved to update always, not only at the running, at the file availability, due to the possibility of multiple starting on VERY long starting projects. !: The OpenSCADA control request "list:/db/list" expanded of the optons support and the option "onlydb" for generation only the DB list. The TConfig object appended of the common "NoTransl" flag. TSYS::str2addr() expanded for reading the string address as uint64_t. - DB: !!:FIX: The TBDS::dataDel() fixed-appended in removing multiple items and appended of removing the empty table nodes of the Configuration File. !:FIX: Fixed in the function TTable::fieldSQLSeek() for anyway processing at empty requesting list. The TBD object prevented in reload from it for the project work DB. - DAQ: !!!:FIX: The controller objects manual start defined for some specific hot doings of the object enabling, when the doing was prevented from call twice at the normal start: - DAQGate: resync the remote source data at the sync period >= 0; - ModBus: force reformation of the acquisition blocks; - OPC_UA: force reformation of the monitored items list; - Siemens: force reformation of the acquisition blocks. !!: The "Return" type IO of the TFunction object was set to ReadOnly in the manual execution tab. The OpenSCADA control service requests "TController::get:/serv/mess", "TDAQS::list:/serv/PrmAttr" set to the early exiting by return. The attribute "work_lib_db" of the TPrmTmplLib object renamed to the standard "mDB". !:ModBus,OPC_UA,Siemens: Disabled for the links reconnection after the loadIO(true) call. .,JavaLikeCalc,UI.{VCAEngine,Vision}: The whole translation flag is hidden for unset values. !!!!:FIX:DAQGate: Appended of the asynchronous writing mode implementation. The configuration field of the remote stations selection moved in simple combobox. The controller object status appended of the counters of read/archive's/wrote values, read messages and the writing buffer status. !!:FIX: Fixed in reusing parameters with empty address for included ones and appended for clearing the address at the parameters copy, so you can now copy all controller objects with the parameter archives store. !!:FIX: Unified in the sync commonly and fixed in the attributes sync, with preventing in constantly sync of the missed on remote host parameters. FIX: The parameters is set to disabled at they missing on the remote host. FIX: Completely prevented of the missing parameters naming also after those copy. FIX: Removed for the periodic connection error messages and prevented of the connection restoring time miss at the start and the connection missing. !!:Siemens: Appended of the new option "Maximum size of the request block, bytes" of specifying the maximum requesting block, due to a problem observing when PLC returns the error "incorrect PDU size" at reading blocks about 200 bytes. Appended for the additional debugs. !:System: The init() function of the DA-sources appended of the updation mode, to update the subtype field "SUBT" mostly. The Disk SMART attribute's name appended of the code, for unknown parameters mostly. !:ModBus: The controller object status appended of the transport error state (code 12) and the writing buffer status in the asynchronous writing. The parameter objects error at the common controller errors is taken now directly from the controller object status. - FIX:Archives-History: Improved the archiver periodicity limiting in the archiver module before to correct apply the final value. - Transports: !:FIX: Propagation of the password hash of the OpenSCADA external hosts connection was fixed in the host creation and the same propagation expanded to all host connections with the equal connection user, by the new function extHostSeek(). External OpenSCADA hosts' table appended of checking the host ID presence at it change. !!!:SSL: Both input and output parts appended of the possibility to point the certificates and the key directly from an external file. !!: Appended for reloading the certificates file of the input transport at it change by the transport reconnect. Sockets: The source code was some cleaned and the socket closing of the input transport appended for the result checking. - Transport Protocols: !!:FIX:HTTP: Fixed in reading the "accept-language" HTTP variable only as the two symbol language code, then the common interface is translated also now on FireFox who sends there the country code also. Appended of detection and notification of login tries the unallowed users. !!:FIX:SelfSystem: In the input part switched to load the whole input message before checking the auth information, then preventing for strange error messages "Error the command format." for the message tail. - UI: !!!!:VCAEngine,Vision,WebVision: The "openlist:/serv/pg" control request appended in the attribute "pgGrp" of the opened page for detection several pages open in one container then open last one and close previous ones, to prevent mostly the included pages all close and allow of specifying-override the need pages open. !!!:Vision: Refactored also for early opening the restored and specified pages in the init procedure. !:FIX:Vision,WebVision: Switched to the complete reloading the pages got from the page cache due to the modification counter can be lost at the closing and the counter is reloading in whole. Prevented in disconnection the previous user at it change, since now the user changing doesn't perform it twice registering for using. The empty page group is meant now the "main" one to force the root page replace at starting from non empty page groups. The argument "FullTree" of requesting is removed for 0 value. !!!:QTStarter,WebVision,WebCfgD: Qt part, in the generic Qt Library, and Web appended for the table edition text apply at Enter and new line at Ctrl+Enter. !!:FIX:QTCfg,Vision: Prevented from hangs at stopping from a termination signal, from the console mostly, since locking the main Qt thread in modStop() without qApp->processEvents(). The List element context menu appended of the text item copy function. !:QTCfg,WebCfgD: Appended of sorting the external OpenSCADA hosts by name. Items of the List element enabled for the word wrapping. =Tmpl=,WebCg: Moved to use the actual HTTP-functions HTTP_GET() and HTTP_POST(). QTStarter: Prevented of the project list updating for the inactive window or the dialog invisibility. !!!!:VCAEngine: Finishing the changes obtaining in the runtime mode by the clocking cycles through, after observing the race condition on the attributes changing, which cause to do not update the value on visualizers: - rewrote for the modification control mechanism; - specifying the forming and fixed cycles; - reducing the main calculation clock to uint16; - dividing the changes clock value of attributes and the widget commonly to the forming (uint16) and the fixed (uint16) = uint32; - processing the changes clock value both at the modification and reading-checking; - support of reloading the main calculation clock and clearing the old changes clock value; - preventing the empty cycles for the common widgets requesting; - removed for code of the previous slide current mark mechanism of the attributes changing detection with the doubles. !!!: The Widget copy operation appended of copying the used widget resources (the Image type now only), and in that way there performed: - the Widget objects' function resourceGet() appended an argument and set for the "constant" qualifier; - the Widget objects appended of the function resourceSet() declaration and implementation; - the container function resourceDataSet() prevented in operating for just copied but not yet stored containers. !!:FIX: The "" mark setting for the removed inherited included widgets moved to the save function of the container widget, since that is lost at the copy operations and now you can easy undo/redo such widgets removing. !!:FIX: Fixed in the mime data copy at the widget libraries and the projects copy, moving the copy to the copy save, with expanding the mime operations for work with completely specified DBs. !!:FIX: Prevented in the attribute values inheriting for the output links, then do not write to DAQ the obviously wrong values at the hot edition of running projects and their items. !: The project copying operation appended of true treating the broken page links before copying the target link page. !: Manual enabling the visual items causes now for their reloading, due to the previosly loaded values loss at the inheriting, for: Widget Library and items, Project and items. !: The inheritance restoring operation, or the changes clearing, for the included visual items appended of the container inheritance restoring. !: DB of the original widget library is set to empty, to prevent of wrong removing at the work DB reloading. FIX: Prevented of the connected vizualizers count at the reconnection, from different user mostly. FIX: Fixed in the new styles creation and loading only allowed ones with control of the property values presence before reading and filling for missing at setting. FIX: Fixed in loading the CONSTANT attributes from the not empty configuration value due to the main value is not saved in such case. FIX: The widget libraries and projects copy fixed in the spare copy "DB_TBL". The global definitions in the common VCA file types.h appended for A_GEOM_MIN (-10000) and A_GEOM_MAX(10000) to use in the attributes A_GEOM_* and the UI.Vision module. Enabled for show the single not parameter configuration attributes in the "Links" tab and for the not show attributes mode. The project session calculation status appended of the counter value and the widget objects appended the modification counter status. The container object's functions mimeDataList(), mimeDataGet(), mimeDataSet(), mimeDataDel() renamed to resourceDataList(), resourceDataGet(), resourceDataSet(), resourceDataDel() respectively. Widget::{path,parentNm,setParentNm}(), Widget::mParentNmPrev renamed to Widget::{addr,parentAddr,setParentAddr}(). Widget::mParentAddrPrev. The attribute object appended of the visual state detection function isVisual() - used in the visualizers. !!:FIX:Vision: Fixed, or finished the implementation, for UNDO/REDO the removing operation of the inherited included Widgets of the Project Pages. !!: Adjusted in the focus policy to the UI.WebVision way and appended the focus force clearing at lost, to prevent the widget focus return at window activation, so you can use now the event "ws_FocusIn" in opening external subwindows. !: The parent field of the widgets was allowed for direct edition, not only selection, by moving to LineEdit. !: The container pages switching moved to switch only from the VCA-engine - just sending "pgOpenSrc" there. FIX: The view Table of the primitive FormEl fixed in the table refitting at adding first row and adding rows in whole. FIX: In the runtime fixed for the actual pages reopening and fitting the window size at the complete reconnection. Appended of updating the style name at the user change. The shape type changing appended of clearing all child objects after the shape destroy(), due to warnings of reusing-doubling like to QLayout. !!:FIX:WebVision: The session methods mUser and mUserOrig moved under the data mutex lock, due to there can be crashes at active user manipulations. !!:FIX: The view "Combo" of the type "Line" and the types "List" and "Combo" appended of creation value items missed in the selection list. !!:FIX: The popup windows of the calendar and editable combo appended of the geometry check than preventing the main window overflow; and the popup windows closing moved completely at a mouse button press outward the window, together other popup menus. !!:FIX: The focusing appended of force the focus to widget set in focus from the VCA-Engine acknowledge, but with checking that change to prevent the common style combo unroll at the focused field periodic update. !!:FIX: Improved and fixed in usability the view Table of the primitive FormEl and mostly in the text edition: - true width fitting and minimum height setting to 40 pixels, - FIX: fixed in specifying the column sorting value "0" as ascending-default and "1" as descending from the top, like to the UI.Vision behaviour and the numbers (integer,float) sort-comparing was implemented separately. !!: Appended for the FrontEnd status display in the session status field with that requesting-scheduling at display the field. !:FIX: The bordered line and Bezier prevented of drawing at equal first and end points, what causes of all the widget fill. FIX: Fixed in the button visible size update at it change in VCA, just setting its style to "width: inherit; height: inherit". - Special.FLibSYS: Some cleaned in the IO code. 2021-08-29 Roman 0.9.4.1 - FIX:LibsDB.OscadaLibs: base.ntf: The safe timeout of the template execution set to 120, since the early triggering for busy SMTP-servers. FIX: The SMTP notifier switched in removing the messages from queue also for the SMTP errors and with warnings about those, since observing some continual errors and flooding by the notifications. - FIX:AGLKS.St: OPC_UA.test.test: Expanded for use the type and RW parameter hints. vca: The style rule 'labColorGrph1' fixed for the Default. - !!!!:FIX:SYS: The module version of the subsystem "Archives" rose to 14. !!!: The redundancy requests prevented of the host multiple requests, by using a request lock "reqM", have to prevent of the redundancy connection sometime lost at changing the DAQ sources. FIX:TMess: The structure SRec appended for the default values in the constructor and by the comparing function. - FIX:DAQ,Archives,UI.QTCfg: DAQ-Parameters copy prevented from an error of presence already the binding archive. FIX:UI.QTCfg: Such errors also prevented on termination the group copying operation by a new acceptation dialogue. - !!!!:FIX:Archive,DAQ.DAQGate: TArchiveS::messPut() fixed in processing of messages setting at empty "arch". !!: The message redundancy improved in the last message control in preventing the dubles. !: Archive: Disabled for the first start replay of the local archive for active messages, since the alarms set and clear now forcibly. . !!:FIX:DAQ.{ModBus,OPC_UA,Siemens}: Switched to the possibility to work with empty template, just as the parameters container. FIX: The logical type DAQ-Attributes saving appended in miss disabling the translation. The DAQ-Parameters of the Ligical type appended for the common connection errors display in the attribute "err". FIX: DAQ.{ModBus,Siemens}: Added for clearing the call now flag at errors. - FIX:DB.DBGate,DAQ.DAQGate: Prevented of the host multiple requests, by using a request lock "reqM". - !:FIX:DAQ: The logical level implementation appended of the multilevel recursion detection for the logical level links. The function TPrmTempl::Impl::cntrCmdProc() set as the virtual one, to allow of implementing the DAQ-source specific. The DAQ-Parameter type switched to show the name always, not only at the selection. !!!!:FIX:Siemens: Appended for the Simple type of the DAQ-parameters. !!!: Appended for the data area specifying as a negative DB with code of this area, and the Flags/Marks processing (0x83) added in a specific way, by the prefix "F". !: Enabled for the parameters hierarchical including. FIX: Fixed in sending the opening connection requests at the connection lost in the ISO-TCP own implementation. The logical level parameters enabled to show the connection/acquisition errors in the "Error(err)" attribute. !!!!:FIX:{DAQ,Protocol}.OPC_UA: Appended for the Logical type DAQ-Parameters support. !!:FIX: Fixed for the mtxData locking in TMdContr::getValMIt(); !!: The Standard type DAQ-Parameters appended for the no requesting the metadata on the server mode and the attributes direct ID and name. !: The parameter side nodes browser expanded for checking the expanded nodes' list format in the presence detection. FIX:DAQ.OPC_UA: Fixed-finished in the parameter including support. TMdContr::getValMIt() some improved in the errors processing. The certificate and key disabled in show for the enabled/started objects. !!:FIX:DAQGate: Moved to the standard messages redundancy mechanism. !!: Prevented in remote requesting the main/own parameter attributes SHIFR, NAME, DESCR at the DAQGate cascading. The controller object status appended in display the sync state. LogicLev: Some reformatted in the functions loadIO() and saveIO() to uniformity with DAQ.{ModBus,OPC_UA,Siemens}. ModBus: The source code some cleared. - FIX:Archive.DBArch: Appended of detection some value sources freeze in the block archiving. - FIX:UI.{VCAEngine,Vision}: The field "Period of the calculating" of the tab "Processing" of the widget properties edition allowed to control constantly, independently at the procedure presence and for the included pages/widgets calculation common control. - !!:FIX:UI.VCAEngine: The VCA-styles appended of they updating at the user change in runtime and cleared by naming the special styles and they number limit. FIX: The applying order of the function Widget::inheritAttr() changed to all configuration before, in preventing the Widget::attrChange() invoking for old configurations, observed on Attr::setCfgVal() in writing 0 by already disabled/cleared links. FIX: Fixed in detection the page links recursion. - !!:UI.{QTStarter,QTCfg,Vision}: Cleaned from the Qt 5.15 warnings, resolving most of the deprecation messages. !!!:Vision: Parent of ModInspAttr changed to QAbstractItemModel, due to some new wrong reimplementation in QAbstractTableModel of Qt5.15, like to the previous one sibling() in Qt5.11. !!: The printing rewrote to use the new Qt5 class QPageLayout, for pages and diagrams. FIX: The Item Properties Edition Dialog prevented in loss changes of the tab "Processing" edition at switching to other tab and hot opening other items. FIX: The subwindows closing is set to real close not from the close event but the OpenSCADA control interface. !!:FIX:QTStarter: Fixed at last in preventing the program starting by the desktop session resoring, treating the signal saveStateRequest(QSessionManager&). Rewrote in the logo image placing, to prevent of use the Qt5 specific function instead QLabel::pixmap(). FIX:QTCfg: Fixed in broke names the selectable table columns after first incomplete "name-id" item. - FIX:UI.WebCfgD: Fixed in the table set value updation for table data come with the flag "noReload". - FIX:UI.WebVision: Appended of tracing the user changing in the standard way and of sending the "connect" request with the flag "userChange" for the user VCA-style change also. 2021-07-03 Roman 0.9.4 - FIX:LibsDB.OscadaLibs: The template library tests.test fixed in the IO "di" for the grouping. - FIX:LibsDB.vcaBase: Main.grpCadr: Cleared from spare modification and the group name set to "" for the unification. doc.docMessRep,Main.{alarmsAct,alarmsSt}: Expanded in detecion the current source name of violations after passing the multiple gates. - FIX:AGLKS.St: The DAQ-parameter LogLev.gen.P4 fixed in the violation borders specifying. - FIX:Archives: The archive object removing appended of switching to "Passive" and starting for stopped ones, to remove also from the storages for the archive objects with lost the source. !: The control interface button expanded for clearing the visible alarms, not all them only. - DAQ.{*,DAQGate}: Archive values requesting in redundancy and the gate cleared for setting some values to "0" for "sepReq", "hostTm" to decrease some the traffic. - !!:DAQ.DAQGate: The sync modes appended for a mode of preventing the sync in whole for the stored in the cache objects, allowing value -1 for the configuration field "Synchronization time with the remote station, seconds." - FIX:DAQ.Siemens: Fix the restoring connection time calculation for the acquisition periodicity not 1 second. - FIX:DAQ.OPC_UA: Fixed-finished in the parameter including support. - UI.QTCfg: The copy accepting dialog appended for the limiting of the display items list in 10. - FIX:UI.VCAEngine: Detection the group-parameter link status as OK appended for checking not only first sucesfully linked attribute. - !:FIX:UI.{Vision,WebVision}: The view Table of the primitive FormEl fixed in specifying the column sorting value "0" as descending and "1" as ascending from the top, and force of applying the attribute "sort" change. - FIX:UI.Vision: The copy widgets appended for udating at errors also, for the possible restoring of the inherited removing. 2021-06-21 Roman 0.9.4 - FIX:LibsDB.vcaBase: Main.ElViewGraph.lb_val.arg0cfg fixed in wrong translation to uk. - DAQ.DAQGate: The requestion function cntrIfCmd() appended for the argument "noConnect" of preventing the missed connections establish at the archive requesting now. - FIX:SYS: The "Translations" tab fixed in the option of checking for matching. - !!:DAQ: The DAQ-parameter object appended for an information field of the changing timestamp with it maximum value on the controller object, by the new DB configuration field "TIMESTAMP" of the parameter object. - FIX:DAQ.{ModBus,Siemens}: Appended for setting the modification flag of the target parameter at copy to it, for the Logical Level type. - UI.VCAEngine: Some unified in the links processing for translation String constants and "val:{Value}". - FIX:UI.Vision: Fixed in complete exiting from the edition mode of the primitive ElFigure included into the Box at focus lost. 2021-06-14 Roman 0.9.4 - New and significantly updated parts: - OpenSCADA Core: 3:9:0 => 3:10:0 - OpenSCADA "Transports" subsystem: 17 => 18 - {DAQ,Protocol}.OPC_UA,libOPC_UA: 1.7 => 2.1, 1.10 => 2.1, 1.2 => 2.1 - DAQ.ModBus: 2.12 => 3.1 - DAQ.Siemens: 3.5 => 3.6 - Transport.Sockets: 4.2 => 4.3 - Transport.Serial: 2.5 => 2.6 - Transport.SSL: 3.2 => 3.3 - UI.WebCfgD: 1.5 => 2.0 - UI.VCAEngine: 6.9 => 7.1 - UI.QTStarter: 5.8 => 5.9 - UI.QTCfg: 5.1 => 5.4 - UI.Vision: 7.7 => 7.13 - UI.WebVision: 5.8 => 6.2 - LibsDB.OscadaLibs.DevLib.IEC62056: 1.0 => 1.1 - LibsDB.vcaBase.Main: 2.0 => 2.1 - storeHouse: 1.0 - RootPgSo: 2.3 => 2.4 - OpenSCADA libraries and projects: !!:LibsDB.vcaBase,AGLKS.vca: Main.RootPgSo: Appended for: - the widget "alarms" on the primitive "Protocol" basis with the possibility of enable/disable; - appended for an optional function of returning to a default user after specified time of the inactivity in a new attribute "defUser"; - switched to a non relative algorithm of the main mnemonic scheme's vertical position and height calculation. !!!!:LibsDB.OscadaLibs: !!!!:DevLib.IEC62056: Rewrote in the synchronous (request-answer) mode for working multiple devices on the serial bus. !:FIX: fixed in using the true address mask 0x7F instead 0x3F. !: PrescrTempl.manager: appended for a feature of pausing prescriptions from the commands-steps. !: base.anUnif: appended for an option "Force NORM violation at the start" for the force NORM alarm messages generation at the start. FIX: base.ntf: in the notification part improved for the broken transports (after the long response time) processing. "NORMA" renamed to "NORM". !!!!:LibsDB.vcaBase: The library "Main" appended for the new page "StoreHouse (storeHouse)" implementation. !!:Main.RootPgSo: Periodicity of the frame execution rise to 1000 milliseconds after appending for events early processing. Switched mostly from the hotkeys "Ctrl+?" to "CtrlAlt+?". !: The template VCA-project adapted to the actual alarms table early appending in the vertical size scale 0.96. doc.{docRepInstVals,docRepDay,docRepMonth,docRepYear}: The reports with the SVG graph appended for the CSS option "text-align: center" to ensure it centring on FireFox. Main.cntrPaspExt: the "trendsList" table appended by the attribute "width='25%'" for the last two columns. Main.{RootPgSo,grpGraph,grpGraph,grpGraph10,ElCadr,grph_panel}: improved in the active elements true order (z) for correct tab focus sequence working. Main.ElViewGraph: Switched for the value display in the exponential form for the logarithmic scale. !!:AGLKS.vca: The project page /prj_AGLKS/pg_so/pg_4/pg_mn/pg_1 renamed to /prj_AGLKS/pg_so/pg_4/pg_mn/pg_CM101 like to other ones. All frames of the library "AGLKS" improved in the active elements true order (z) for correct tab focus sequence working. Main views of the compressors on the main page set active and linked to switch the detail signal object. The prescription frames prescrEdit and prescrRun appended to mnemonic schemes of the first signal object. - API: !!!!:Changes: SYS: The function TSYS::curTime() appended for an argument of the clock source specifying with using the function clock_gettime(). The EVAL_RFlt definition appended for the suffix "f". Mess: The translation function TMess::translSet() appended by an argument "srcFltr" of filtering at sources. Transports: The IO-log functions pushLogMess() appended by the arguments "data" and "dataDir". Appends: Mess: The data lock separated from all messages lock in dtRes. SYS: The user API functions appended by the function lang() of the system language fast obtaining. Appended for the function TSYS::curTimeN(). .,DAQ.{LogicLev,ModBus,Siemens}: Appended and used for a global constant DAQ_APER_FRQ of frequency of representing the aperiodic invokes, like to f_start, of the periodic processes. Security: The user object appended for a function auth() of the User API to authenticate at password. Transports: The input and output transport objects appended for the IO-log attributes: "mLogLstDt", "mLogLstDtTm". - SYS: !!!!:FIX:Building: configure.ac: Core library version rose to 3:10:0 and the program version rose to 0.9.4. data/Android/patches/openscada_oscada.xml.patch: The Android patch appended for the plain passwords restoring in the table ExtTansp. !!!!:The source code messages and program documentation: !!!!: rom_as@oscada.org replaced by roman@oscada.org in everywhere in the source. !!: The document "Modules/OPC_UA" complete revised for the modules version 2.1 and the translation. !!!!: The "Translations" tab restructured something, appended for the actual status, appended for some context help and the translations manager appended for: - limiting of the table form time in prmInterf_TM (7 seconds); - a configuration field of passing number the top messages; - translation setting only for the filtered sources; - checking the content for match only for the filtered sources; - pass the sources missing error. !!!: The translation function TMess::translSet() prevented from propagation the group messages changed not from the translation manager. !!:FIX:.,BD.LDAP,Archive.{DBArch,FSArch},DAQ.{ModBus,MMS},{DAQ,Protocol}.OPC_UA,UI.Vision: Some cleaned from the build warnings. !!:FIX: The common configuration field "WorkDir" was prevented from marking as modified one at the project switch than saving it in the configuration file. !!:FIX: The EVAL_RFlt definition appended for the suffix "f" to prevent of wrong comparing the double EVAL_RFlt with stored float values, fixes the archiver Archive.FSArch work with the float type values in the EVAL detection. !!:FIX:Mess: The data lock separated from all messages lock in dtRes to prevent the concurrently locks at active work with translations. The mLang2CodeBase, mLang2Code attributes switched to this new lock. !!: data/openscada-proj.in: Switched to linking user LibsDB content to the system RO-content-libraries instead the copying. FIX:DAQ,Transports: Fixed in the control fields "list:/redund/cntr/rdndt" and "list:/sub/ehost/mode" type "int" renaming to "dec". FIX: TCfg::setS() in the extended variant switched in writing to the TVariant container directly, for the extended values, than omitting the field wrong limits. The tab "Tasks" of the main control page moved after the tab "Translations". - DB: The generic DB saving function TBDS::dataSet() was prevented from creation the empty container tags in the config file at the flag "toChangeExistsCfg". FIX:PostgreSQL: The data type "timestamp with time zone" of the integer variant TFld::DateTimeDec replaced by "timestamp". FIX:MySQL: Disabled for the key size limiting depending they quantity. - DAQ: FIX: Insertion or creation new DAQ template items fixed in the ID indexing-enumerating for checking the items presence, the new inserted or added items appended for the default value (configuration value) copying. Value: The Value object prevented from storing NaN real values by replacing them to EVAL. !!:ModBus,Siemens: Switched in "f_frq" value form to use the real task execution information. !!!!:{DAQ,Protocol}.OPC_UA.{.,libOPC_UA}: Appended for the Publish service implementation, CHUNKS support on the DAQ-client part and the code coming refactoring in generic: CLIENT: - attributes (monitored items) adding moved from attrPrc() directly to enable() and which ensured to call at the controller object start - ... and the items processing improved in updating the description, flags and link; - values acquisition is unified in processing in the parameter function upVal() - ... and the values requesting by the controller object function getValMIt() with the Arrays support - ... than preparing closely for builtin the logical parameter type; - the DAQ-parameter objects enabled for including other parameters; - the EVAL setting and removing for all attributes tested for all modes; - structure variables in DAQ-parameters allowed to select them items separately, in the selection browser; - the variables list of the DAQ-parameters parsing set to complete parsing with passing empty lines; - the DAQ-controller object appended in closing the session and secure channel at it stopping; - the controller object common status appended for the detailed information about the used secure channel, session, subscription and the processing monitored items; - the request lock renamed to resOPC. SERVER: - the OPC-UA Server object appended for the common server status tab with information about activity of the secure channels; - the EndPoint Node object appended for the common status with information about activity of the sessions and subscriptions, also the subscription task period and time of execution. LIB: - unified in specifying the default value of the secure channel life time, what set to 300000 ms; - the default LifeTimeCounter of the subscriptions set to 2400; - the object NodeId appended for the function operator==() of direct comparing; - the function XML_N::childClear() appended by a result of returning the same XML_N object for concatenation; - the function curTime() appended for an argument of the clock source specifying with using the function clock_gettime(); - short functions appended for str2int() and str2uint(); - some fields renamed: publInterv to publInterval, cntrLifeTime to lifetimeCnt, cntrKeepAlive to maxKeepAliveCnt, maxNotPerPubl to maxNtfPerPubl, en to publEn; - fixing "POOL" word on "POLL". LIB_CLIENT: - Client::reqService() appended for the meta command "CloseALL" of closing current session and secure channel; - the main client services processing function protIO() adapted to work in the asynchronous mode (not requesting); - the function Client::messIO() expanded for the timeout argument with specifying the requesting mode also; - the channel writing and reading is separated in MSG packages processing; - adaption the secure messages to work with the mixed input buffer; - moving the main service request "OPN" under the messages processing due to the renewals sending inward the Publish activity. - implemented for the Publish service on the client side: - the "Client" object appended for the subobject "Subscr" implementation (but stored in Client::SClntSess) with the functions: activate(), monitoredItemAdd() and monitoredItemDel(); - the "Client" object appended for the function poll() with: - unifying the values reading both for the Read and Publish modes; - checking of loss all Publish requests during the OpcUa_ClntPublishResentCntr(2) keep alive count-time; - restoring the Publish pool. - the object Client::Subscr::MonitItem was added as the monitored items representer with the access under the client resource common lock; - the service requests appended for implementation, include processing the responses: CreateSubscription, DeleteSubscriptions, CreateMonitoredItems, Publish, Poll; - implemented and tested in the secure policies support at Publish; - the target Publish requests pool per subscription set in the virtual function publishReqsPool() with default value 2; - appended for the CHUNKS implementation both for requests and responses; - completely revised and cleared in the common requesting function reqService() from doubling the arguments and parameters: - appended for restoring sessions at reconnection the secure channel; - unifying the clearing of the current session and secure channel. - the client object appended by the common resources lock mtxData; - the message property "timeoutHint" set to 0 for all messages; - the Read request returned to the plain requesting with limition on CHUNKS only; - the error OpcUa_BadSecureChannelIdInvalid added for clearing the secure channel; - Client::SClntSess::{sessOpen,lstMessReq} renamed to {secChnlOpenTm,secLstMessReqTm} - ... and prevented from clearing in restoring the session and secure channel; - appended for debug message of the request errors. LIB_SERVER: - the server part adapted to work with UAExpert 1.5 for: - the attribute AId_Descr of the DAQ-value set to the type OpcUa_LocalizedText; - the integer types appended for declaration OpcUa_IntAuto and OpcUa_UIntAuto. - the subscriptions processing returned to they processing in a separate task and the function subScrCycle() for: - true counting all timeouts to disable; - processing the periodicity of subscription and publishing; - checking the assigned sessions and secure channels state to close the subscriptions. - but the publishing leave for processing in the input channel activity and the function Server::EP::publishCall() with preventing the Publish processing for wrong and foreign Subscriptions, by checking inPrtId, sesTokId and isSecCnlAct; - Session unification for: - link of the sessions to secure channels switched to single one instead an array; - the session checking of all messages appended of preventing of using foreign connections. - not final chunk packages switched to send directly, for not append to single TCP-package; - EP::mtxData lock switched to PTHREAD_MUTEX_RECURSIVE; - the secure channels limited in OpcUa_SecCnlLimit(10) and the publishes queue in OpcUa_ServerMaxPublishQueue(10); - EP::secSize() renamed to EP::secN() and there added EP::sessN(), EP::subscrN() and chnlList(); - Server.SecCnl.{TokenId,TokenIdPrev} renamed to Server.SecCnl.{tokenId,tokenIdPrev}. !!:ModBus: The output part of the protocol RTU variant appended for early termination of the package waiting of the standard functions [ERR,1...6,15,16], what increases the overall bandwidth twice. !!: IO of the Logical Level parameters enabled for the translation, for not linked strings and like to DAQ.LogicLev. !!: The DAQ attributes parsing switched to use TSYS::strLine() and TSYS::strParse() than allowing the symbol ':' in the name and empty lines in the text. FIX: Prevented from marking the not connected controller objects as NORM at them stopping. Appended for passing wrong items in the Standard Mode of the DAQ-parameters. !:FIX:DAQGate: Prevented from error processing of parameters from other DAQ.DAQGate controller objects with the broken link. FIX: Fixed in listing the DAQ-objects in control remotely through the OpenSCADA Control Interface. Siemens: The waiting connection cycle switched to use the common period or 1 second for aperiodic scheduling. - Archives-History: FIX: The value archives prevented from the atachment try of the missed archivers. Size of the field of the archivers list expanded up to 1000. !!!!:FIX:FSArch: Critical fixed in the value archive files processing, in try they ID write to NULL string. !!:DBArch: The message archivers appended for the configuration field "Unique and non duple messages for time and category only". !!:FIX: Fixed from crashes at the value archiver groups processing by not clearing the table field configs (TConfig) links under the locks and the unlocked function ModVArch::grpLimits() for reqRes. FIX:DBArch: Fixed in the default value of the field "Grouping limit of the parameters" setting to 100. The field "MIN" size decreased to 8 symbols and the field "TM" for no string type to 10 symbols. - Transports: !!!: The IO log, both input and output parts, expanded and appended of: - combining data of packages with even direction and address during prmWait_TM (5 seconds); - microseconds part of the time fixed for 6 symbols; - the data messages appended for the direction symbol; - of limiting the one processing block size by a new configuration field; - performance significantly rising by using the preliminary buffer. Sockets,SSL: The input transport polling mode switched to aligning at the period grid. !!!:FIX:Serial: The output transport fixed in the inter request waiting at the reqRetrMult*wCharTm processing as milliseconds. !!:FIX:Sockets: The error "Broken channel (32)" is detected at the writing, after disconnecting the server, so the reconnection attempts set to 2 at (kz <= 0). The messages "%s (%d)" some detailed to discern the reading and writing parts. - Protocols: FIX:HTTP: Fixed in the User API function messIO() for processing parts of the HTTP-request POST and they bounder set to the canonic form. SelfSystem: The SingleUserHostLimit default value increased up to 100. - UI: !!!!:FIX:Common review and refactoring the tables in Qt and Web both generically and in the view Table of the primitive FomEl of VCA: !!:QTStarter,QTCfg,Vision: The common library class TableDelegate significantly improved to work in QTCfg and Vision: - appended for the own user roles SelectRole, TextLimRole and OneLineString; - the cell paint appended for the background color by reading-applying the common roles; - the number types (integer and real) appended for force centring; - the string types appended by the options of alignment and wordwrapping from the role Qt::TextAlignmentRole; - appended for long text visible limit support by the own role TextLimRole and the default value 300 symbols by sizeHint() additional reimplementation. !!!!:FIX: The view "Table" of the primitive "FormEl": !!:VCAEngine,QTStarter,Vision,WebVision: Appended by the new cell type 't'-text mostly for allowing the edition confirming the type 's'-string by pressing Enter. !!:VCAEngine,Vision,WebVision: Appended of the column, row and cell space option "prec" of the real value precision control; and by the column and cell attribute "align" implementation. !!:WebVision,Vision: Appended for switching the tables in preventing of double storing the source content at the content size more for 10000. !!!!:FIX:Vision: Using the common table delegate with the feature of multiline edition. !!!!: Improved in the columns, rows and cells show at the table updating and commonly: - in limiting the visual size of the cell content in 300 symbols and the rows height in 70% from the whole table size; - more precision columns width alignment; - in fitting at the development mode and also at the vertical header show; - in the table close filling by consideration the visible vertical scrollbar size; - in fitting after the table whole resizing only, so allow the columns resizing manually also and to provide that true fitting always. !!!: Implemented for the light processing of the width changing and updating: - light edition without the columns refitting all updating time, only at: first row appearing, columns count change and the column title change, font change and resize; - apply the column force width and the row height calculation with limits independently from the common attribute "colsWdthFit" value; - setting the value, early resizing and the table fitting, moved to the space of the table content presence and after the sorting. !!: The export function in runtime append of export the view Table of the primitive "FormEl" in CSV. !: Improved in support the sorting of the table content per columns by preserving the scroll position and the sorting parameters before the sorting disabling during the updating time. Set to the first visible column for sorting at the sorting enable. !: Cleaned form spare role Qt::UserRole+5 of the previous value storing, but that do now the table delegate. FIX: Fixed in the table fitting, at fixed column widths in pixels, for taking in acount the widget scale same in the fitting function, after resizing. !!!!:WebVision: !!!!: Improved in the columns, rows and cells show at the table updating and commonly: - the not fitting mode (the attribute "colsWdthFit" missing) implementation, using the automatic table layout mode for calculation the fixed widths and next switching to the fixed table layout mode; - multiline text edition of the text cells in whole width and height of the cell, with the edition apply by Ctrl+Enter; - view limiting the string cells in 300 symbols; - display the boolean cells as an image at the TRUE state; - table cells in the editing mode allowed for the system-browser context menu. !!!: Implemented for the light processing of the width changing and updating: - the table changes detection and updating switched to the mode of not storing double source content. - prevented from the complete updating at the attribute "value" modification; !!!: Appended for the sorting support by columns. Set to the first visible column for sorting at the sorting enable. VCAEngine: Appended of limiting in processing the table content for direct apply the changes, only for it size lesser for limUserFile_SZ (1 MB). !!!!:WebCfgD: The table expandings for: - the big text content limiting in 300 symbols at the visibility; - the string type allowed for the multiline edition using TEXTAREA; - the type data "bool" is shown as an image, not "On" or "Off"; - centring the boolean, number, time and selectable content; - simplifying the table content edition for the types time, number and string by removing the apply and spin buttons. !:FIX:QTCfg: Improved in the table close filling by consideration the visible vertical scrollbar size and several iterations of the close collumns fitting also as in UI.Vision. FIX: The table rows heigh updating moved at all time the table udation. FIX:UI.QTStarter: The table delegate apply changes function TableDelegate::setModelData() adapted in storing the value type. !!!!:QTStarter,QTCfg,Vision: The common Qt-code of the OpenSCADA Qt-modules started in their moving to the new library files lib_qtgen.* what placed in the module QTStarter folder and linked in all Qt-modules, and that done for: external icoSize(), colorAdjToBack() and TableDelegate. FIX: OSCADA_QT::colorAdjToBack() some improved in moving the background value to 175, than at the value more the level, the text color preferred in setting the lower value and vice versa. VCAEngine,Vision: The service of activation runtime visualizer-specific attributes appended of the default value in the text, on the attribute "keepAspectRatio", wich is TRUE by default on UI.Vision. The frame calculation field "Period of the calculating, milliseconds" appended for a context help. !!!:VCAEngine: !!!!: Appended and enabled as a build option for the mark mechanism of the attributes changing without the doubles, by requesting the previous-completed cycles, than also preventing the need of detection the doubles in the visualisers and storing the big source content. The modification detection function modifChk() appended for an argument "isCnt" of specifying the containers. !!!: The projects runtime improved in changing parents of the processing pages on the fly. !!!: The session tasks execution appended of early execution at events presence. !!:FIX: The VCA-styles fixed in accessing to empty fields which don't load. !!: The "Diagnostic" page of the VCA-projects adapted to show the debug level messages at enable the debugging. !: The session debug messages appended for messages of the setting events. !!: The project session execution information appended for the real periodicity taken from the task, which also used in form value of the procedure attribute "f_frq". !:FIX: The service request "set:/serv/attr" to the sessions for a group of attributes appended by the events applying in the last of all other attributes setting. FIX: Some improved in the links processing only for constants. The included widgets, restored from the parent widget, is set to enabled after adding. Copying the container widgets and pages appended for checking and removing the child widgets, what removed on the source. Included widgets of the containers copying appended for adjustment the end position to ensure the visibility. !!:Vision: The property dialogues of the "Widgets" and "Projects / Widget libraries" appended for own statusbar and a button of context manual invoking. The TextEdit widgets switched to own statusbar of the property dialogues for the cursor position and what disabled in ToolTip. !!: The text code edition widget of the "Widgets" property dialogue appended in restoring the cursor position after apply or cancel. !: The text edition widget appended in the syntax highlight rules cleaning at the reloading. !: The mime data, style, diagnostic message table and the primitive Protocol switched to use the unified class TableDelegate with some centred columns. FIX: Fixed in enable the syntax highlighting for initially empty text elements. FIX: Processing the force widgets style switching to the system one QCommonStyle() or QPlastiqueStyle() of the buttons of the primitive FormEl is unified in reusing the system style objects and that disabled in the CSS styles using here due to color alpha lost. Title of the developing window appended for the remote host information. !!!!:FIX:WebVision: Appended for detection disappearing of the project execution session and return an error, in the common request "pgOpenList", and at dropping down the calculation counter "tmCnt". !!!!: The keyboard focus and events significantly improved for ensure that working in common by: - setting the "tabindex" attribute for all active widgets and for FormEl items specially - for the form elements; - appending the "tabindex" number calculation as a unique one for whole interface, than prventing the tab focus jumps; - processing the onfocus event for the own focus setting by setFocus(); - the view Button of the primitive FormEl appended for the keyboard events processing for down and up at the keys Space and Enter; - the primitive Diagram is simplified by removing the spare A item; - FIX: Fixed in the keyboard focus switching at mouse clicking on buttons with images. !!:FIX: Fixed in checking the removed widgets for all and the master page. !!:FIX: Fixed at last in plodding spare DIV items at the page changing in the page containers. !!:FIX: Prevented in cycling at presence the Web-session but missing the corresponded VCA-session. !: Improved something in the changed attributes processing, than doubling of processing such attributes. FIX: Fixed in form the configured width of the non string arguments of the primitive Text. FIX: Fixed in processing the processings counter "prcCnt" for the true processing. FIX: The servSet() function appended in the error 404 processing, emerged at the sessions accessing after they closing on the server side. FIX: The external windows as DIV closing set in sending only the closing signal to the model and real closing after it removing in the model to prevent sometime flicking. FIX: Widgets removing appended of removing the transparent DIV-frames. All items appended for the CSS property "pointer-events" treating in the value "all" for active, the master page and boxes with included pages; or "none" for all others. To ensure the pointer events pass through inactive elements to the active ones behind. The view LineEdit of the primitive FormEl set to update at the configuration change 'cfg'. The view LineEdit, TextEdit, Table of the primitive FormEl disabled for propagation the keyboard events in the edition mode, to prevent very big setting spare traffic. getXmlHttp() appended of counting and freeing the XML-request objects. The editable combobox fly menu size expanded up to 10 items in the vertical. !!!!:FIX:WebCfgD: Completely revised and expanded for: - the all internal tool actions moving to the implementation as buttons and the toolbar size set from 25 to 30 pixels; - removing the toolbar button images' size filtering-resizing on the server side; - page icon padding between the title set to 10 pixels; - the control page complete updating after the window resize; - the generic text edition field by TEXTAREA expanded for apply and cancel from the keyboard; - the hosts updating function bound to the double mouse click on the common space of the tree area; - FIX: the hosts updating function fixed in detection douple host items; - FIX: forced in the actual-selected item marking in the control tree after it rolling; - removing nodeText() and setNodeText() by direct using "innerText" and "textContent". FIX:QTCfg: Prevented from show empty field of the button area of the TextEdit widget in some cases. Appended for clossing the double configuration windows without the warning dialog. FIX:UI.QTStarter: Prevented from updating the starting window at it close-hide state. 2021-03-23 Roman 0.9.3.3 - !:LibsDB.OscadaLibs: PrescrTempl.manager appended for a feature of pausing prescriptions from the commands-steps. - !:Transports: Performance of the IO log preparing was significantly rised by using the preliminary buffer, so currently there is possible of observing logs on 1000 records. The IO log appended of limiting the one processing block size by a new configuration field. - DAQ.Value: The Value object prevented from storing NaN real values by replacing them to EVAL, detected on problems of writing by SQL from Archive.DBArch. - FIX:UI.QTCfg: Prevented from show empty field of the button area of the TextEdit widget in some cases. - !:FIX:UI.VCAEngine: The service request "set:/serv/attr" to the sessions for a group of attributes appended by the events applying in the last of all other attributes setting. 2021-03-01 Roman 0.9.3.2 - !!!!:FIX:Archive.FSArch: Critical fixed in the value archive files processing, in try they ID write to NULL string. - !!:FIX:UI.WebVision: Fixed at last in plodding spare DIV items at the page changing in the page containers, detected as changing the argument "pgBr" of the makeEl() function for the included page and it wrong processing by its container. - !!:DAQ.ModBus: The output part of the protocol RTU variant appended for early termination of the package waiting of the standard functions [ERR,1...6,15,16], what increases the overall bandwidth twice. !: The DAQ attributes parsing switched to use TSYS::strLine() and TSYS::strParse() than allowing the symbol ':' in the name and empty lines in the text. - UI.QTCfg: Appended for clossing the double configuration windows without the warning dialog. - UI.WebVision: The external windows as DIV closing set in sending only the closing signal to the model and real closing after it removing in the model to prevent sometime flicking. 2021-02-01 Roman 0.9.3.1 - FIX:SYS: TCfg::setS() in the extended variant switched in writing to the TVariant container directly, for the extended values, than omitting the field wrong limits. - FIX:DAQ: Insertion or creation new DAQ template items fixed in the ID indexing-enumerating for checking the items presence, the new inserted or added items appended for the default value (configuration value) copying. - FIX:DB.MySQL: Disabled for the key size limiting depending they quantity. - FIX:DB.PostgreSQL: The data type "timestamp with time zone" of the integer variant TFld::DateTimeDec replaced by "timestamp". - FIX:Archive.DBArch: Fixed in the default value of the field "Grouping limit of the parameters" setting to 100. - FIX:UI.VCAEngine: Some improved in the links processing only for constants. - FIX:UI.Vision: Processing the force widgets style switching to the system one QCommonStyle() or QPlastiqueStyle() of the buttons of the primitive FormEl is unified in reusing the system style objects and that disabled in the CSS styles using here due to color alpha lost. - FIX:UI.WebVision: The servSet() function appended in the error 404 processing, emerged at the sessions accessing after they clossing on the server side. 2020-12-28 Roman 0.9.3 - DB.{MySQL,PostgreSQL,FireBird}: Disabled for the direct string field size limiting since the CHAR(N) of the key fields is limited in the field itself and that performs the behaviour difference with SQLite. - data/ModelsDB/AGLKS/oscada_AGLKS.xml: The plain text paswords of the "ExtTansp" table of the subsystem Transports replaced by the hashed passwords. - !!:FIX:Security: Prevented from authentication in user interfaces by the ready password hash. - !!:FIX:UI: TUIS::docKeyGet() fixed from the user array objects leaking. 2020-12-27 Roman 0.9.3 - !!:FIX:Archive.DBArch: Fixed for only direct the values archiving in the group mode and when the values type may drop to the Integer type as the default one. !!:FIX: The value archiving in the group mode appended for removing the according table column at the archive removing, for the table column hot removing just after appending some new archive, than preventing the table early growing to the DB limit. 2020-12-20 Roman 0.9.3 - OpenSCADA libraries and projects: !!:FIX:LibsDB.OscadaLibs: The library DevLib appended by the template "MTP 4D (MTP4D)" and "ModBus base (mbBase)". !:FIX: DevLib.{DNP3,IEC62056} fixed in processing the output transport object placed as an attribute, but that allows to set only for Object, so EVAL was used here. base.initConsAssignTrs Appended for limiting the remote initiator ID in 20 symbols - OpenSCADA objects ID limit. FIX: The DAQ-template base.initConsAssignTrs some improved in detection duple connections. !!:FIX:LibsDB.vcaBase: The template project (tmplSO) cleaned from spare mnemos of the prescription management and the main page appended of the actual alarms-violations table. !!: The frame Main.RootPgSo unified for the notifiers in the generic attributes only for the VCA-server and notifiers Vision, WebVision: notify0, notify1 and notify2. !:FIX: Main.RootPgSo fixed in the second row of the signal objects processing and the rate of font height to width set to 0.75 from 0.8. The library "Main" appended by the notification 1 (one) static sample "ntf1". data/ModelsDB/AGLKS/St.db: The value archiver DBArch.1s switched to the group mode setting "GroupPrms" to 100. - API: !!!!:Changes: Archives-History: {TMArchivator,TVArchivator,TVArchive}::DB() set to the constant qualifier. Transports.{.,*}: The timeouts setting function setTimings() of the output transports expanded in the default timeouts difference for different protocols, by the argument "isDef". Appends: SYS.,*: The system wide limits and parameters moved to the user configuration area (the configuration file) for some allowed range. STD_WAIT_DELAY moved to prmWait_DL and changed to 0.1 seconds. The previous system wide limits' and parameters' definitions left for the external modules compatibility! TSYS appended for the function taskSendSIGALRM() of sending the termination signal "ALARM" to OpenSCADA tasks. TValFunc: Appended for a state of the function execution by the function isCalc(). Transports: The output transports expanded for a mark of the transport as Network one, by the function isNetwork(), in the User API also. - SYS: !!!!:FIX:Building: !!!!:FIX:configure.ac: Core library version rose to 3:9:0 and the program version rose to 0.9.3. data/openscada.ebuild: Updated for the last state. data/{oscada_plc.xml,oscada_server.xml,oscada_start.xml}: The disabled DBs appended for the description. data/{oscada_start.xml,ModelsDB/{AGLKS/oscada_AGLKS.xml,Boiler/oscada_Boiler.xml}}, data/Android/patches/openscada_oscada.xml.patch: The style "Typical TDE" appended for a color of the table throughrows. The style "Blue Darkness" appended for a color of the table throughrows. FIX:data/openscada-proj.in: Fixed in packing big crashreports. !!!!:{DAQ,Protocol}.ModBus: The subtype "_b" - bit type, expanded by moving the bit number to the register number field like to "R_b:123.12". Added by the flag "~" for inversion registers order of the complex subtypes in multiple registers, like to "_f". The flag "rw" separated to "r" and "w". !!!!: The module version of the subsystem "Transports" rose to 17. FIX:Function: Appended for detection the duple IOs at the IO context copy. FIX: The field "PASS" of the table "CfgExtHosts" expanded in its size up to 100. Appended at the rand() activation by srand() execution for the current time microsecond part. - DAQ: FIX: DAQ parameters appended in checking the parameter type on interstation copying for single parameters. !!:LogicLev,ModBus,Siemens: Appended for termination long time executed templates at the parameter disable, using new functions TValFunc::isCalc() and TSYS::taskSendSIGALRM(). !!:FIX:LogicLev: Removed for the calculation lock "calcRes", what used only in locking the writing to the parameter attributes during the calculation and what can be long. SMH2Gi: Some unified in the error messages of the communication. - Archives-History: !!:FIX: Obtained current values, in the active archiving mode, forced to the current time, what is significant for the dynamic attributes archiving. !!: The value archive configuration field "Mode of forming ID of the automatic created archives" expanded by the selection item "All controller, parameter and attribute ID", during the process of expanding the limit of the value archive ID to 50 symbols. !!!!:FIX:FSArch: Adaption to the ID size of the value archive more than 20 symbols, when its 14 extra symbols are stored in the reserve part (renamed to "archive_add") of the header and extra more in the filename. FIX: File time size of the value archivers limited in the top border at 366 days. FIX:DBArch: The parameter "Grouping parameters into single table" was set by default. Archiver objects copying improved for the address field copying. The DB field "CATEG" size of the messages expanded to 200, for long categories and UTF. - Transports: !!!:FIX: The function TTransportIn::assTrO() of processing input initiative connections complete revised to make new connection necessarily created as a new output transport, then preventing true finishing the present closed but not freed output transports. !!: The transport commands renamed from "Running" to "Connect" and the statuses renamed from "Started. " to "Receiving data. " and "Connected. ", from "Stoped. " to "Disconnected. ". FIX: The service "/log/log" limited in it processing for time STD_WAIT_TM (5 seconds) for very many and big requests. !!:FIX:{Sockets,SSL}: The default timeouts returned to "10:1". - Protocols: !!!!:HTTP: Appended for the dynamic cookie name and the User ID space, where the cookie name is "oscd_UID" and is used the User ID space in work with the common authentication sessions table, and the cookie name is "oscd_UID_{PrjNm}" in the work without that. !!:FIX: Multipart POST of the output function outMess() prevented in the end boundary placing and improved in the "Content-Disposition" form. !!: The User ID generation improved in generation different IDs for the different processes, limited in 1e6, and appended by the random and configurable User ID space [0...99] * 1e6, used in the work with the common authentication sessions table. !!:SelfSystem: Output transport specific timeouts are set to "20:2". !!:ModBus: Output transport specific timeouts are set to "5:0.1" for Network transports - isNetwork() and the protocol variant "RTU". - UI: !:FIX: TUIS::mimeGet() fixed in processing audio and video mimes. !!!!:VCAEngine,WebVision,Vision: The primitive "Media" appended by the type "Audio" and the type "Full video" renamed to "Video", which also implemented in WebVision and Vision. !!!!:QTCfg,Vision: Appended by a function of adjustion text colors to the background color - colorAdjToBack(), which used in correction the syntax highlighting and other dynamic colors to the palette changing. The custom color of the work space of the development window was disabled. !!!!:VCAEngine,Vision: Expanding the notifications implementation in way their implementation on WebVision, for: - using the standard way of the notifications obtaining through the corresponding attributes activation; - ntfReg() expanding for the negative type using in all types processing, freeing mostly, and some unification of the code; - expanding by the resource type obtaining in: - the service request "" of the OpenSCADA control interface; - an argument of the functions {ntfRes,commCall}(); - an argument of the notification procedures "resTp" what is return and placed to stdout (for Shell) for "doRes". - appending the notifiers by the flag "notifyServ" of the notification enabling on the VCA-server side; - VCA-server side appended for the field "resStatic" of the direct resource specifying (non dynamic); - appending the notification procedures' context for the two variables "resTp" and "prcID". FIX:Vision: The notifiers were fixed in processing all 8 ones. !!:FIX:UI.QTStarter: Appended for the start dialog periodic updating in the project list. FIX: Fixed in building with Qt 5.15. FIX:QTCfg: Set to update the current page content after errors in some commands. Some appended in way of an improvement try of the station icons updating. !!:FIX:VCAEngine: Fixed in crash at a widget link setting to "prm". !!: The resource requesting service "get:/wdg/res", Widget::resourceGet() and {WidgetLib,Project}::mimeDataGet() appended for requesting the resource parts, for big media files mostly. FIX: The operations of the quietance by the service request "" allowed for all by setting the reading permition. FIX: Source files listing of the primitive Media appended for "mp3;ogg;wav;ogv;mp4". !!:FIX:Vision: The call saveState() moved from the developing window destructor to the closing event, but a problem of empty context saving was observed after playing some media. !!: Appended of playing the notifications by the internal player at Phonon and not in the separate notification task. !:FIX: Fixed in media playing from the resource by VLC from Phonon. FIX: Alarms processing period some improved to be more predicted. FIX: Priority of registering the notifiers some fixed. FIX: Fixed in local filesystem URLs processing for MediaSource of Phonon. FIX: Temporary files of loaded from the mime table data of the types "Video" and "Audio" of the primitive "Media" are set to remove. The visual editing window title appended for the widget-page name. !!!!:FIX:WebVision: Implementing of the notifications support. !!!!: Implementation of the resources uploading in parts, for big media, by the HTTP parameter "Range: bytes=". !!:FIX: Fixed in the page cache spare cleaning for widgets from pages with common name to the remove page. FIX: The function setWAttrs() expanded in encoding the symbol '&' to the entity "&" of the string values. FIX: Fixed in the sessTime() specifying as time_t instead int. FIX: Prevented from potential cycling between "prj_" and "ses_" URLs at the UID inconsistence. The LineEdit type of the primitive "FormEl" appended for switching it to the modification mode at selection. Unified in the time constants specifying for: tmClearEdit, tmFullUpd, tmAlrmUpd. Information requests of the opening page moved under the common request "CntrReqs" together the notifier attributes activation. Styles of the popupmenu some improved. !!:WebUser: Adapted to the work with POST and the content in the body. 2020-11-15 Roman 0.9.2.3 - data/{oscada_plc.xml,oscada_server.xml,oscada_start.xml}: The disabled DBs appended for the description. - !!:FIX:UI.VCAEngine: Fixed in crash at a widget link setting to "prm". - FIX:Archive.FSArch: Forced to the value archive ID size in ARCH_ID_SZ, prepairing to such extending in the Work branch. 2020-10-20 Roman 0.9.2.2 - FIX:LibsDB.OscadaLibs: The DAQ-template base.initConsAssignTrs some improved in detection duple connections. - FIX:data/openscada-proj.in: Fixed in packing big crashreports. - FIX:DAQ: DAQ parameters appended in checking the parameter type on interstation copying for single parameters. - !!!:FIX:Transport: The function TTransportIn::assTrO() of processing input initiative connections complete revised to make new connection necessarily created as a new output transport, then preventing true finishing the present closed but not freed output transports. FIX: The service "/log/log" limited in it processing for time STD_WAIT_TM (5 seconds) for very many and big requests. FIX:Sockets,SSL: The default timeouts returned to "10:1". - FIX:Archive.DBArch: The parameter "Grouping parameters into single table" was set by default. - FIX:UI.VCAEngine: Source files listing of the primitive Media appended for "mp3;ogg;wav;ogv;mp4". FIX: The operations of the quietance by the service request "" allowed for all by setting the reading permition. - FIX:UI.Vision: Fixed in local filesystem URLs processing for MediaSource of Phonon. FIX: Temporary files of loaded from the mime table data of the types "Fill Video" of the primitive "Media" are set to remove. 2020-09-21 Roman 0.9.2.1 - !:FIX:LibsDB.OscadaLibs: DevLib.{DNP3,IEC62056} fixed in processing the output transport object placed as an attribute, but that allows to set only for Object, so EVAL was used here. base.initConsAssignTrs Appended for limiting the remote initiator ID in 20 symbols - OpenSCADA objects ID limit. - !:FIX:LibsDB.vcaBase: Main.RootPgSo fixed in the second row of the signal objects processing and the rate of font height to width set to 0.75 from 0.8. - data/ModelsDB/{oscada_start.xml,AGLKS/oscada_AGLKS.xml,Boiler/oscada_Boiler.xml}: The style "Blue Darkness" appended for a color of the table throughrows. - !:FIX:UI: TUIS::mimeGet() fixed in processing audio and video mimes. - FIX:Archive.FSArch: File time size of the value archivers limited in the top border at 366 days. - !!:FIX:DAQ.LogicLev: Removed for the calculation lock "calcRes", what used only in locking the writing to the parameter attributes during the calculation and what can be long. - !!:FIX:UI.Vision: Call saveState() moved from the developing window destructor to the closing event, but a problem of empty context saving was observed after playing some media. !:FIX: Fixed in media playing from the resource by VLC from Phonon. - !!:FIX:UI.WebVision: Fixed in the page cache spare cleaning for widgets from pages with common name to the remove page. 2020-08-23 Roman 0.9.2 - FIX:Archive.DBArch: Fixed for the message "Archiving time, milliseconds" removing the part ", milliseconds". 2020-08-16 Roman 0.9.2 - FIX:configure.ac: Got of the lost record of the new module DB.DBArch bilding. 2020-08-16 Roman 0.9.2 - OpenSCADA libraries and projects: !!!!:LibsDB.OscadaLibs: The Devices Library appended for the protocol IEC-62056 implementation (DevLib.IEC62056). !!:docOffLine: The offline documentation appended for the document "AGREEMENT ON TECHNICAL SUPPORT OF THE "OpenSCADA" SOFTWARE" version 2 and the new module DB.DBGate. JavaLikeCalc.Controller.text: The tests function appended for JavaLikeCalc internal functions' tests, including the recursion call. Some updated and fixed for versions, sponsority, status of the implementation. !!:FIX:LibsDB.vcaBase: !!:FIX:Main.alarmsSt: Some fixed for the original messages and the "quietation" completely replaced by "confirmation". !!:FIX: Restored in preventing the duplicate entries for new alarms in that category. Default value of the property alArch set to "FSArch.alarms". FIX:doc.docRepInstVals: The procedure translation was removed. doc.docUsersSet: The styles appended for a specific rule of the "Description" collumn - "TABLE.data TD:nth-child(5) { white-space: normal;}" Cleaned from the old procedure's state "Translate" setting for inherited pages in the projects. - API: !!!!:Changes: SYS: The station statuses unified in the function isRunning(), isFinalKill() and stopSignal(). TCfg::setReqKey() appended by a new argument "treatDep". DB: dataSeek(),dataGet(),dataSet(): Expanded for the local configuration context argument "localCfgCtx"; *,DB: TBDS::dataSeek() and TTable::fieldSeek() switched to the seek cache implementing in the corresponded modules. Appends: TMess,DB,DB.{SQLite,MySQL,PostgreSQL,FireBird}: TMess appended for a function of detection the configuration translation translCfg(), which used in all DB modules and in dataSet(). SYS: Appended for the global configuration context accessing functions cfgCtx() and setCfgCtx(). The loading and saving configuration appended for own lock TSYS->cfgLoadSaveM(). Appended for the function pathLevEnd() of the paths processing from the end. TRegExp: Appended by the function getPattern(). TFld: Appended for the combined string variant of the length field - lenS(). - SYS: !!!!:FIX: Building: !!!!:FIX:configure.ac: Core library version rose to 3:8:0 and the program version rose to 0.9.2. !!!!: Modules version of the subsystem "BD" rose to 14, of the subsystem "Transport" rose to 16. !!: data/ModelsDB/{AGLKS/oscada_AGLKS.xml,Boiler/oscada_Boiler.xml}: The input Sockets' transports unified in the names "WEB" and "CNTR". !!: data/ModelsDB/AGLKS/St.sql: The input SSL transports unified in the names "WEB" and "CNTR" and updated for the KeepAlive timeout setting in 60 and for the SSL-certificate. !!: data/{oscada_start,oscada_server,oscada_plc}.xml: The input WWW-transports are unified, where "WEB_1" renamed to "WEB" and "WEB_2" removed. !!: Appended for the disabled DB-entries of the standard OpenSCADA libraries. !!: /oscada_start.xml: Appended for the disabled input transports "WEB" and "CNTR". Appended for the value archivers FSArch.{SYS,alarms,actions} and message archivers FSArch.{1s,1m,1h}. data/Android/build.sh: Appended for build in the new module DB.DBGate. data/icons_src/splash.xcf, src/moduls/ui/QTStarter/images/splash.png: Some updated for the additional information placing about version the program and the OpenSCADA project. The splash image crop to remove the transparent shadow border. data/{debian,debian_mod}: /control: Appended for a dependency to libldap2-dev for DB.LDAP. /rules: Appended for including the new module DB.DBGate, building DB.LDAP and not building DAQ.BFN. /debian_mod/control: Appended for the external module openscada-db-ldap and removed for the external module "openscada-daq-bfn". data/openscada.spec: Appended for including modules to the OpenSCADA core library: - DB.DBF, DB.SQLite, DB.DBGate, DAQ.JavaLikeCalc, DAQ.LogicLev, - Transport.Sockets, Transport.Serial, - Protocol.SelfSystem, Protocol.UserProtocol, - Special.FLibComplex1, Special.FLibSYS Appended for building: --enable-LDAP --enable-MMS --enable-DiamondBoards --enable-ICP_DAS. !!!!:FIX:data/openscada-proj.in,UI.QTStarter: Implementation the builtin backuping. !!!!:FIX:data/openscada-proj.in: Appended for the commands "backup", "backupRestore", "backupList" to implement the project backups. FIX: The command "list" some improved to show the preinstalled and user projects. The "remove" command of the projects appended for removing backups of the project. Crash report files appended for GZIPing. !!!!:UI.QTStarter: Appended for the backup commands call from the project manager - list of the projects. !!!!:.,DB,DAQ.{LogicLev,ModBus,Siemens},UI.{QTCfg,WebCfgD}: Implementation the interstation copying mechanism of the control interface nodes: - appended for the global configuration context accessing functions cfgCtx() and setCfgCtx(); - the redundancy processing expanded in the command "save" redundancy only at missing the attribute "ctx"; - DB: dataSeek(),dataGet(),dataSet(): expanded for the local configuration context argument "localCfgCtx" in: - the configuration context processing together the global one SYS->cfgCtx(); - saving and restoring the TCfg structure. - DAQ.{LogicLev,ModBus,Siemens}: Some adapted for IOs copy. - UI.{QTCfg,WebCfgD}: Expanded and allowed for the interstation copy. !!!!:.,UI.QTStarter: OpenSCADA starting with a module as the GUI in the main thread significantly refactored for: - early registration the GUI module in the main thread directly by that module itself and in postEnable() function; - adaption the function perSYSCall() to use for update the GUI module in the main thread, its splash mostly, during the program starting and stopping (from the service task) and at the configuration loading (for switch to the starting splash); - enabling the messages dynamic display for the main thread execution mode; - unification of the splash display for the both modes; - removing the module specific in modStart() and modStop(). !!!!:.,Protocol.SelfSystem,DAQ.AMRDevs: Client accessing of the OpenSCADA control interface expanded by the multiple authentication, what prevents of using direct requests of the OpenSCADA control interface with the authentication in each the request, often for UI.Vision. !!:FIX:TRegExp: The patterns processing fixed appending the end symbol treating, so preventing TController::alarmSet() collisions in the objects strict detection. !!:FIX:LibsDB.OscadaLibs.doc.diagram,UI.{Vision,WebVision}: Prevented from the value scale double adjustment for the percent scale and appended for the value range expanding. !!:FIX: The function TCntrNode::isModify() processing for the children allowed only for nodes in the state "Enabled". FIX: The service task fixed in updating list of the processing subsystems. FIX:TFunction: Time limit of the functions manual execution some approximation to STD_WAIT_TM (5 second) to make it not lesser. FIX: Set in started at the direct execution enabling. FIX: The OpenSCADA tasks priority fixed for SCHED_FIFO in it display as 0. FIX: The User API function TArrayObj::indexOf() fixed in -1 converting to unsigned. FIX: TCfg::setReqKey() prevented from the flag "KeyUse" cleaning by a new argument "treatDep". FIX:.,UI.{QTCfg,WebCfgD}: The control node attribute "acs" appended for the maximum level permition in the high octet what used in the configurators. FIX:XMLNode: The function text() in the text taking mode from special parts "<*>" appended in reading the original text content at the children missing. FIX: The dynamic system properties mWorkDB, mSelDB and mMainCPUs moved under the data lock. data/icons_src/oscada.xcf: Appended for OpenSCADA backuping icon. TSYS::objFuncCall() moved to public. The original message "Accessing" renamed to "Accessible". TCfg::setExtVal() in FALSE appended for cleaning the string value from the extended parts. - DB: !!!!: A new module "DBGate" created. !!:FIX: TBDS::dataSet() expanded for setting only keys and viewed elements, like to other DB. !!:FIX: Appended for changing-saving the defined entries in the config file instead complete saving all their in the default DB. !!:FIX: The wrong started DB objects in the first fixed for try them next start tries. !!:FIX: DB loading is prevented from double loading from the config file and from DB for the equal entries. !!: The TBD object appended for the service control "call" requests support: "/serv/SQL", "/serv/fieldStruct", "/serv/fieldSeek", "/serv/fieldGet", "/serv/fieldSet", "/serv/fieldDel". What mostly designed and used in DB.DBArch! !:FIX: TBDS::dataGet() (and TBDS::dataSeek()) prevented from getting the previous value at loading from the config-file, by setting the default value. !:FIX: TBDS::{open,close}() fixed for true functional locking by the lock "resTbls". !!:FIX:SQLite: Detected and corrected of data losses with concurrence access, when a minor error of the not activated transaction "cannot commit - no transaction is active (1)" is generated, which, however, interrupts the data recording. FIX: The debugging key for tracing the SQL-requests renamed to "{ModId}_tracing". FIX: Fixed for some warning messages in the building. - DAQ: FIX: System messages of enabling, stopping, disabling controller objects are fixed. !!!!:FIX: JavaLikeCalc: The internal functions executing appended for storing the shared-own registers context, in two variants, for allowing the recursion primarily. FIX: Moving the calculation context modification to the option "modifCalc". FIX: The control interface command "/cntr/cfg/toFunc" some specified. - Transports: !!!!: The output transports unified by creation the connection parameters, by conPrm(), instead direct ones prm1() and prm2(). !!!!: The configuration option "START" was removed for the output transports as spare one and to prevent long starting. FIX: The IO log order inverted to the last in the end for the message parts visual concatenation. The "Request" tab appended in concatenation the response data at the request missing. !!!!:FIX:Sockets,SSL: To prevent the multiple execution of the high loading and long-time control requests the output transports switched to: - the default configuration for Tries=1, Timeouts="30:2"; - for the connection losses the tries number set to 2; - for the error "Timeouted" the connections also set to reconnect, besides the SOCK_FORCE type. FIX: The output transports appended for discard connections at the program stopping. - Protocols: !!:FIX:ModBus: The output requests of the TCP-variant appended for checking Transaction ID of the response packages. !!:FIX:SelfSystem: The output part expanded for checking correspondence of the responses to the requests by the request tag name. Appended for encoding special symbols of the user and password, and the empty password encoding as "". - UI: !!!:Vision,WebVision: The visualizer specific property "userSetVis" appended for password implementation after the direct user specifying and for applying all users. !:FIX:VCAEngine,Vision: The field of procedures translation fixed in the visibility processing and updating. WebCfgD,WebVision: Makefile.am: The procedure of building of the source code for JS and HTML files was some unified in the files complete processing by SED. !!!:FIX:QTStarter: The standard-system start/stop splash updated and appended for information about the program (the custom splashes also) and the OpenSCADA project, including the project icon. !!: Context menu of the project list appended for an item of removing not running projects. !:FIX: Fixed in applying the project specific splash at the project switch. FIX: Prevented from the information item "" processing of the profile combobox. - FIX:UI.QTCfg: Appended for oppressing messages about missed items of the combobox items. - !!:FIX:Protocol.ModBus: The output requests of the TCP-variant appended for checking Transaction ID of the response packages. - FIX:Transport.{Sockets,SSL}: The output transports appended for discard connections at the program stopping. 2020-06-15 Roman 0.9.1.3 - FIX:LibsDB.vcaBase.Main.alarmsSt: Some fixed for the original messages and the "quietation" completely replaced by "confirmation". FIX: Restored in preventing the duplicate entries for new alarms in that category. - !:FIX:DB: TBDS::dataGet() (and TBDS::dataSeek()) prevented from getting the previous value at loading from the config-file, by setting the default value. - FIX: UI.VCAEngine: The field "Completely translate the procedure" on the project side set to directly obtained, independently from the procedure inheritance. FIX: Opened pages processing of the session commands switched to from the end, due to the last opened pages place in the end. FIX: The user action time update appended also at requesting the complete pages tree in the service request "openlist:/serv/pg", what is a typical user action for WEB in reconnection to present session. - !!:FIX:UI.WebVision: The issue of closing all pages of the main page container with frozing the last loss page at fast page switching caught and fixed at last. !:FIX: The link to the user login page set to the session-project complete patch, to return back the session-project after the login. !:FIX: The original user setting moved to the common function userSet() in way of fixing the reconnection to the same session after changing-decreasing the user in "userSetVis". - !:FIX:UI.QTStarter: Fixed in applying the project specific splash at the project switch. 2020-06-01 Roman 0.9.1.2 - FIX:SYS: The User API function TArrayObj::indexOf() fixed in -1 converting to unsigned. - !!:FIX:DB: TBDS::dataSet() appended for changing-saving the defined entries in the config file instead complete saving all their in the default DB. !!:FIX: DB loading is prevented from double loading from the config file and from DB for the equal entries. !!:FIX: The wrong started DB objects in the first fixed for try them next start tries. !:FIX: TBDS::{open,close}() fixed for true functional locking by the lock "resTbls". - FIX:DAQ.JavaLikeCalc: Moving the calculation context modification to the option "modifCalc". FIX: The control interface command "/cntr/cfg/toFunc" some specified. - !!:FIX:UI.Vision: The user manual changing prevented from checking for the lesser or even permition. 2020-05-11 Roman 0.9.1.1 - FIX: data/openscada-proj.in: The command "list" some improved to show the preinstalled and user projects. - !!:FIX:SYS: The function TCntrNode::isModify() processing for the children allowed only for nodes in the state "Enabled". FIX:TFunction: Set in started at the direct execution enabling. FIX:XMLNode: The function text() in the text taking mode from special parts "<*>" appended in reading the original text content at the children missing. FIX:Transports: The IO log order inverted to the last in the end for the message parts visual concatenation. The "Request" tab appended in concatenation the response data at the request missing. FIX: The dynamic system properties mWorkDB, mSelDB and mMainCPUs moved under the data lock. - FIX:SYS,UI.{QTCfg,WebCfgD}: The control node attribute "acs" appended for the maximum level permition in the high octet what used in the configurators. - !!:FIX:UI.QTCfg: Fixed for the text field processing - updating with the previous syntax highlight rules, what causes the content visual corruption, and in the position restoring. - FIX:UI.WebCfgD: Fixed for the default target-group obtaining in itPaste(). Fixed for wrong call document.dlgWin.close(). 2020-04-27 Roman 0.9.1 - !:FIX:LibsDB.vcaBase: Main.userManager: Expanded by generation the operator action messages. Everywhere messInfo() of the operator actions "OP:" replaced to messNote(). Main.anShow1: The border width dislinked from the activity status. - Security: The user object expanded by the permition comparing function permitCmpr(). - !!!:FIX:DAQ,DAQ.{JavaLikeCalc,ModBus,Siemens},Protocol.UserProtocol,UI.WebUser: The templates implementation fixed in processing the links reconnections and the functions lnkInit() and initLnks() appended the forced relinking flag instead "checkNoLink". - !!:Protocol.HTTP: Appended for the user API function setUser() to change the authenticated user. - FIX:UI.VCAEngine: The widget processing state moved under the lock mCalcRes to ensure the start execution before any ordinal and the stop execution after any ordinal. The user last action time is initiated at the project session creation and connection. - UI.{Vision,WebVision}: The visualizer specific attribute "userSetVis" processing expanded by checking the directly set user for the lesser or even permition. - !!!:FIX:WebVision: Fixed for the POST requests correct result code 204. !!!: Appended for implementation the visualiser specific attribute "userSetVis". 2020-04-14 Roman 0.9.1 - FIX: The template "digitBlockUnif" of the library "base" fixed in own description, caused to the template loss. The function "diagram" removed from the JavaLikeCalc library "web". - LibsDB.vcaBase: Main.userManager expanded for the possibility to edit the unprivileged user own information and password. - !!:FIX:DAQ,DAQ.{LogicLev,ModBus,Siemens}: !!:FIX: The templates implementation fixed in editing the links configuration to force the template modification flag. !!:FIX: The value changing through the Control Interface forced to setting the parameter modification flag. LogicLev,ModBus,Siemens: Allowed for the parameter loading in the run, to reload the values context. - !!!:FIX:UI.WebVision: Fixed in work with some pages missing, at the runtime objects locking and the early linking mechanism improved in general. !!!: Significantly improved in the connection losses detection for the main page reload, for the cases of return back to already closed sessions in WebBrowser. The page of list the available projects and sessions appended for the actual user information. 2020-04-08 Roman 0.9.1 - OpenSCADA libraries and projects: LibsDB/*,{AGLKS,Boiler}: The Roman Savochenko EMail rom_as@oscada.org replaced by roman@oscada.org. !!!!:FIX:DB.LibsDB.{OscadaLibs,vcaBase}: Translation updating. !!!!:FIX:JavaLikeCalc.doc,doc: The user interface library "Documents" and the JavaLikeCalc "Reports' and documents' library" revised, improved, appended, documented and the documentation appended to offline. !!!!:FIX:doc: {docUsersSet,docAlarmsRep,docMessRep}: The field "Parameter" renamed to "Source" in the way of global unification of the alarm messages structure of the function alarmSet(). !!!!: Appended for implementing "Year report of the month values (docRepYear)" with a function of entering values in the manual mode, support for the manual values storing into the message archive, their display in the table and diagram. !!!!:{doc,docDin,docRep2WorkSh(renamed docRepSm2),docAlarmsRep,docRepInstVals(renamed docGasNodeMgn),docMessRep,docUsersSet, docRepDay(renamed docGasNodeDayA),docRepMonth(renamed docGasNodeMonthA),docRepYear(renamed docResourcesYear)}: made the JavaLikeCalc translation by tr(). !!!!:{docRepInstVals,docRep2WorkSh,docRepDay,docRepMonth}: Significantly rewrote, improved and made secondly usable, by allowing the DAQ-parameters connecting. !!:docMessRep: Appended for processing the remote stations as additional sources and anytime. !:docUsersSet: Appended for the user name. docGasNodeDayOrder moved to DB.LibsDB.vcaTest.test.docTestGasNodeDayRep. docAlarmsRep: Spare attributes "p*" removed. Improved for the space wrapping in the last two columns. !!!!:JavaLikeCalc.doc: Appended for implementing the "Diagram (diagram)" building in SVG. !!!!:PrescrTempl,prescr: The user interface library and the template library "Prescriptions" revised, improved, appended, documented and the documentation appended to offline. !!:PrescrTempl: Appended for the "Manager" template, moved from the controllers library. !!:prescr: Items of the library expanded for DB linking and the command and program tables automatic creation. PrescrTempl.Manager,prescr.{prescrRun,prescrRunSimple}: Expanded to pass commands in the pause mode. !!!!:DB.LibsDB.vcaElectroEls: The user interface library "Elements of the electric" revised, improved, appended, documented and the documentation appended to offline. !!!!: Appended for the four unified items: "Key, unified (keyUnif)", "Switch, unified (swUnif)", "General state, unified (stGenUnif)", "Area state, unified (stAreaUnif)". !!!:FIX:DB.LibsDB.OscadaLibs: !!: Updated for some messages. FIX: Most templates are fixed for the stored attribute values in one space ' '. The field "Alarms delay, s" renamed to "Violations delay, seconds" and such one for other languages. !!!!:FIX:base: The template library "Main library" revised, improved, appended, documented and the documentation appended to offline. !!!!:{anUnif,anUnifSt,manInUnif,digAlarm,codeState,pidUnif,pidUnifImp,SNMP,UPS}: Moved under the unified alarms forming and controlling mechanism. manInUnif: Expanded for alarms setting from the preprocessing custom procedure. !!!: Appended for the "initConsAssignTrs" template of the assigned output transports processing of the initial Sockets' connections for any type of the source objects, that is DAQ-modules and logical level controllers and parameters. !!!: Appended for the "codeState" template of the state forming by a code. !!!: Appended for the complex notifier implementation in the template "ntf", the separate JavaLikeCalc function and the user protocol objects "SMS" and "SMTP" are marked for obsolete. !!: Appended for the "UPS" template, moved from the "Industrial devices" library. !: The template "gasPoint" moved to the template library "tests". !:digAlarm: Prevented from alarms at the controller object errors. Improved for custom errors forming from the custom procedures. FIX:{digAlarm,manInUnif,anUnif,anUnifSt,codeState}: Fixed for blocking individual EVAL violations at the global PLC-object violations. FIX: All alarm forming templates prevented from the messages loss in the code of the messages opressing at global controller object errors (missing connections) if the previosly set message gone in the time of the connection missing. {anUnif,anUnifSt}: The imitation expanded for random offset. {digAlarm,codeState}: Prevented from call at the stopping. The templates "simleBoard" and "digitBlock" marked as obsoleted. !!!!:FIX:DevLib: The template library is a splitted part of the original library "Devices" under the name "Industrial devices", which revised, improved, appended, documented and the documentation appended to offline. !!!!:FIX:IEC60870: Appended for the separate time "tmPoolAll" of the period of the complete polling. !!: Appended for the package M_ME_TF_1, M_ME_NC_1 support, expanded for the SQ-mode support, tested for M_ME_TF_1 and M_ME_NC_1, M_ME_NB_1 in the SQ-mode, set AI to "real". !!: Appended for the option "syncTimePLC" to controll the PLC synchronisation. FIX: Fixed to send STOPDT at the template stop. Unified for moving the input value writing to the single function inVal() and the timestamp obtaining in the function getTm(). Appended for support the functions M_SP_TA_1, M_DP_NA_1, M_DP_TA_1. The IOA address is set for allow DEC, HEX and OCT views of the determining. !!!!: Appended for the true DCON implementation in the templates DCON_Prt, DCON_Prt_DI, DCON_Prt_AO, DCON_Prt_DO, the user protocol object "DCON" is removed. !!!!: Appended for a full featured implementation of the protocol OWEN in the data acquisition part. !!!!: Appended for the DNP3 implementation and it tested with outstation-demo from opendnp3. !!!: Appended for the counter modules Pulsar-M (pulsarM) implementation. !!: Appended for the ModBus scanner implementation as the template "ModBusScan". !!!:LowDevLib: The template library is a splitted part of the original library "Devices" under the name "Low-level devices", which revised, some improved, documented and the documentation appended to offline. !!!:FIX:{1W_DS9097,1W_DS9097U}: Fixed for the device family detection as the template 0x7F, detected on the last DS2413 with the first byte 0xBA. !!!: Appended for the template "MAX6675" implementation of the low-level SPI Cold-Junction-Compensated K-Thermocouple-to-Digital Converter. !!!: Appended for the template "SHT3x" implementation of the low-level humidity sensors. !!!: Appended for the templates ADS111x(ADS101x) and MCP4725 implementation of the low-level I2C chips. DS3231: Expanded for support DS1307. !!!:FIX:JavaLikeCalc.techApp: The JavaLikeCalc library "Technological apparatuses" documented and the documentation appended to offline. !!!:FIX: All Cyrillic symbols removed from identifiers of the models and all texts corrected. !!:tests: The template library "Tests" renamed from the library "S7". test: Some expanded for testing new functions of the module "DAQ.Siemens". !!:JavaLikeCalc.servProc: The JavaLikeCalc library "Service procedures" revised, some improved, documented and the documentation appended to offline. !!:docOffLine: Significantly expanded for detailing the error messages and placing the unfinished pages to the argument "pagesCur" for continue the termination. !: The final documents appended for the header and footer with the common OpenSCADA information and the language selector enabling. !: The links processing appended for http-tags support (http://URI#{tag}). !:wacko2media: appended for table headers true processing. !!:JavaLikeCalc.regEl: The JavaLikeCalc library "Regulation elements" documented and the documentation appended to offline. !!!!:FIX:DB.LibsDB.vcaBase: !!!!:FIX: Complete and significant cleaning from the Cyrillic symbols and improving in the original identifiers and messages, renaming their to English. FIX: Fixed for the message "reversed" translation. !!!!: Most standard cadres and widgets adapted to styles and the style "Light" created for all projects. The styles moved under a scheme of enabling styles at their presence instead disabling by "No style" and the style "Default" is appended. Call of the OS utility fixed by decreasing the length argument to 100000. Main.alarmsSt,doc.docAlarmsRep: Expanded by the attribute "messCat". The service call "/Transport/%2fsub%2fehost" appended for the attribute "upRiseSYS"=1, for accessing the ordinal users. !!!!:FIX:Main: The user interface library "Main elements" revised, improved, appended, documented and the documentation appended to offline. !!!!:FIX:{alarmsAct,alarmsSt}: !!!!: Expanded for support quittance-confirmation, comments and custom fields. !!: The field "Parameter (prm)" renamed to "Source" where placed all remoted and local sources. !:FIX: Fixed in using the view "Table" of the primitive "FormEl" for the attribute "fontColor" instead the correct "colorText". FIX:alarmsAct: Fixed for processing the custom fields. FIX: Prevented from very more expanding at appearing several events. FIX:alarmsSt: Fixed for pointing "messCat" in the alarms requesting. !!!!:RootPgSo: Improved for dynamically create signal objects, the number of which is limited only by the total length of the signal objects names and their two rows. The signal object buttons generating in the right of the logo is supported also. !!!!: The types of the views also unified for ID "view[1..6]", when user can their assign in self way. The compatibility with the original names of the views was saved, for present projects! Moved to use the new function uiCmd() of the project sessions to open pages, from the combo, what is the singe true method now of the linked pages openning from the user space. Improved for cleaning the control panel at changing content of the main container. Set to not active to disable the activity cursor. !!!!: Appended for: - the control panel-window "Graph parameter calculation (graphCalc)"; - the objects widget "Object properties (objProps)"; - the alarms frame "Alarms — report (alarmsStReport)"; - the widget "Image label (ImgLab)"; - the frame "Users manager (userManager)". !!:grph_panel: Appended for an independent button of switching to the cursor time instead the indirect switching at the depth of decreasing. The microsecond part of the cursor time improved for conditional display and set hidden at the big intervals. !!:ElViewGraph: Font size of the name decreased from 15 to 11 and trend color of the disabled items set to "gray". Expanded for the item color processing, from the style. !!: The prescription frames "prescrEdit", "prescrRun" and "prescrRunSimple" moved to the new library "Prescriptions (prescr)". !!:cntrRegul: The trends width increased to 2 pixels. !:FIX:graphSelPrm: Some fixed in forming the combobox. FIX: Fixed in the impossibility of searching into the parameters list, clearing the attribute "value" changes. FIX: Fixed for the item "" appending and the "event" generating. The DAQ items expanded for information of the controller object name. Appended for the colors obtaining from the linked cadre. !: {anShow,anShow1}: Expanded for the custom errors processing. FIX:calendar: Fixed for month start in Sunday (0) in the weeks form and background of the disabled items. FIX:cntrPaspExt: Fixed for the tab "Data" forming (hungs and generates more equal data) for bigger at 1 second periodicity of the data. Expanded for the trand width in 2 pixels. ElCadr: Epanded for the current text state show into the text command combobox. objProps: Expanded for the notification. grph_panel,doc_panel: Appended for the "Begin and depth" label and the depth fields moved to a single line. Expanded for the begin time, calculated from and to the depth. TextLab: Expanded for the activity cursor support. grpGraph,grpCadr,grpGraph10: The trends width increased to 2 pixels. !!!!:FIX:mnEls: The user interface elements library "Mnemo elements" documented and the documentation appended to offline. FIX:El_Kran_Sh: Fixed for the attribute "close" type changing from the type "String" to "Boolean". !:prj_archBrowser,prj_tmplSO: cleaned from spare records by the new function of UI.VCAEngine. !:prj_tmplSO: Significantly updated regarding the common libraries changes. Adapted to the new views model. !:DB.LibsDB.vcaTest: Significantly updated regarding the common libraries' changes. Procedure of the widget test.FormElTests completely rewrote. !!!!:FIX:Model.{AGLKS,Boiler}: Significantly updated regarding the common libraries' changes. !!!!:FIX: Significantly cleaned and all original identifiers renamed to English, during the documentation revision. !!!!:FIX: AGLKS.vca,Boiler.St: Adapted to the new changes of the main page. !!!!: The style "Light" created for all projects. The styles moved under a scheme of direct styles disabling at their presence instead "No style" and the style "Default" is appended. AGLKS.oscada_AGLKS.xml,Boiler.oscada_Boiler.xml: Default KeepAliveTime of the WWW-transports set to 60 seconds. St: Transport.Sockets addresses for the TCP-type simplified. !!!:FIX:Model.AGLKS: !!!:FIX:St: !!!: FSArch.1m: The strange and temporary message archivers removed: FSArch.{NetRequsts,test,StatErrors}, DBArch.test and added the actual ones: FSArch.{alarms,actions,SYS}, DBArch.SYS. FIX: The template property "tCmd" of the parameter LogLevPrm.gen.CB7 is set to 0. FIX: Fixed in the transport Serial.testRelease to prevent the writing to the system PTS /dev/pts/6, disabling it. FIX:UserProtocol_uPrt.test: Fixed for clearing the request. Some parameters appended for archiving "FSArch.1s". The ModBus protol nodes' table cleared. !!:FIX:vca: The analog parameters and graphics is relinked. FIX: Fixed for the original message "Pasport". The report documents of Day and Month reports switched to the dynamic mode, for Web mostly. Updated in links of the renamed document frames. The parameter LogLevPrm.gen.CB7 switched to the template base.digitBlockUnif. FIX:Model: Some fixed in the Ukrainian translation. FIX:Model.Boiler.St: Fixed for the original message "Pasport". The simple pasport cadre replaced by the extended one. FIX:prj_kotel9: Cleaned from spare records by the new function of UI.VCAEngine. Fitted to the new Main.RootPgSo changes and the main page standard geometry. - API: !!!!:Changes: SYS: The ResMtx default constructor set to true for "isRecurs" but it is the typical situation. The most functions of appending to the nodes container expanded for returning the result created node ID/name for: 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 everywhere renamed to TFld::Selectable. The special function strMess() variant with limiting in the result message size is removed and replaced by the function strEncode() in the type TSYS::Limit. chldList() and chldPresent() set to virtual. DAQ,Special: The attribute "run_st" in TPrmTmplLib and TSpecial renamed to runSt. Archives: TArchiveS::messPut() cleaned from the argument "force". Protocols.HTTP: User API functions pgAccess(), pgCreator() moved from TProtocol to TProtocolIn. Transports.In: The function protocol() renamed to protocols() and protocolFull() removed. Appends: SYS: Common locks mechanism is added by a locks container, the function commonLock(). TConfig,*: The user API functions TConfig::cfg() and TConfig::cfgSet() of the configuration expanded by the permition control. Appended for the configuration context resetting functions to defaults TCfg::toDefault() and TConfig::cfgToDefault(). TFunction object appended by a mark of the function procedure changing isChangedProg() and the flag TFld::Selectable and the function ioAdd() appended by the result for the appended IO position. The Control Interface request "load" expanded for specifying the selected DB in the attribute "force" to perform such operations for concrete nodes. XMLNode: The attributes getting function attr() expanded for the optional argument of the presence detection. The user space "Array" expanded by the functions indexOf() and lastIndexOf(). The user API function SYS.fileRead() expanded by the arguments of the reading block offset and size. The user API function strEncode() appended for support the variants "ToLower" and "Limit". The user API appended for the function strFromCharUTF() of forming string from UTF-8, UTF-16, UTF-16LE, UTF-16BE, UTF-32, UTF-32LE, UTF-32BE. Appended for the definition SERV_TASK_PER=10 of the service task periodicity. The user API appended for the function SYS.fileSize(). The function str2atime() is appended to convert from string time to the UNIX epoch time supporting GMT. TError appended for naming the error codes in the enum "Codes", which used everywhere. The special archive names appended for the name ALRM_ARCH_CH_NM ("") of just changing the presented alarms. The limits appended by USER_ITS_LIMIT (1000000) for limit the items number like to user arrays from DAQ.JavaLikeCalc. DB: Appended for the transactions closing control into the OpenSCADA core by the functions trTm_ClsOnOpen(), trTm_ClsOnReq() and trPr_ClsTask(). Appended for the DB-objects reenabling control at the function disabledByUser(). Appended for configuration of the "Opened tables lifetime" of the inactive tables closing by the function tblLifeTime(). The attribute TBD::mEn moved to the protected space. Transports: In: Appended by the virtual functions keepAliveReqs(), keepAliveTm() for the true KeepAlive on Web. Out: Appended for a service of closing output transports at the lifetime (inactivity) by the service function outLifeTime(). Expanded by the attempts field ot the generic control in the function attempts(). Unified for the last request time control in the function lstReqTm(). The function outAddrHelp() of taken common address help for the output transport modules was added. DAQ: TController::alarmSet() expanded for the argument "force" to force the alarms on the controller objects in the redundancy. The DAQ-parameter appended for the User-API function alarmSet() and the function vlSetRednt() of the unified values writing in the redundancy. TDAQS::rdRestDtTm() expanded from the float to double type return. Appended for the user API function daqAt(). The user API function funcCall() expanded by the "err" argument. JavaLikeCalc: The User API functions charAt() and charCodeAt() expanded to support UTF. The User API functions expanded by isNaN() for bool, integer, real, string (especially for checking numbers in the string). Archives: The objects TMArchivator and TArchiveS appended of the function redntTm() and rdTm() to obtain last time of the message archives redundancy. TArchiveS::rdRestDtOverTm() expanded from the float to double type return. Val: The value archives appended by the common option autoIdMode() of the mode of forming ID of the automatic created archives with the enum variants AutoIdMode::{BothPrmAttrId,OnlyPrmId,OnlyAttrId}. Val: The user API functions getVals() and setVals() added to implement generic archives/history accessing mechanism in an array and the fixed periodicity. UI: The inline documentation declaration from description some nodes is unified in the function TUIS::docKeyGet(). VCAEngine: The user API function this.ownerSess().uiCmd() added on the session level. The runtime widget appended of the user API function this.attrList() of obtaining list of the widget attributes. - SYS: !!!!:FIX: The source code messages and program documentation: !!!!:TMess: Appended for the environment variable LC_ALL cleaning and setting "LANG" if empty, to prevent from overriding LC_NUMERIC=C at the last. !!!!:FIX:.,*: Fixed for many original messages of the source code also during the most modules documenting. .,DAQ.{JavaLikeCalc,ModBus},Protocol.UserProtocol,UI.VCAEngine: The message "Translate program" of the DB field "PR_TR" translated to "Completely translate the procedure" everywhere. !!:FIX:DAQ.JavaLikeCalc: The JavaLikeCalc code translation by the function tr() fixed in creating the translations table "Trs" and entries here in the simple mode (single language). !!!!: The inline documentation: !!!!: The offline documentation appended by some OpenSCADA modules and most libraries of the internal procedures and graphical elements. !!: The common CSS-styles file of the offline documentation "doc/en/files/doc.css" improved in disable the transparent background color and some properties of the language selector. "DAQ", "DAQ.DAQGate" expanded by links to the resources. "Release 0.9" expanded for the participants list. !!!: Declaration from description some nodes is unified in the function TUIS::docKeyGet() and the nodes appended for that: - the DAQ-template and JavaLikeCalc libraries; - the VCA-libraries in UI.VCAEngine and UI.Vision. !!!:UI: TUIS::docGet() appended by a code of the LTS build checking and using the LTS frozen documentation on the OpenSCADA file-server. !!:FIX:DAQ.JavaLikeCalc,UI.VCAEngine: Fixed in the offline documentation declaration for "User_API". !!!!:FIX: Building: !!!!:FIX:configure.ac: Core library version rose to 3:7:0 and the program version rose to 0.9.1. FIX: Fixed for name of the required libldap library. !!!!: The source codes significantly cleaned at the building warnings of GCC 9 (CentOs 8). !!:UI.{QTCfg,Vision}: Adapted to build in the environment of Debian 10 for Qt5.11.3, GCC8 and an error about a conflict in the macro message() into StdLibC++ through Qt5. Archives: The friend function declaration archivatorDetach() cleared from specifying default values of the arguments, what may fix the compiling problem on GCC 9.1. !:FIX:data/: !:FIX:openscada.spec: Fixed for building on SuSE. !: Appended for the separate packages openscada-plc and openscada-server of the daemon mode executing. !:*.xml: Default KeepAliveTime of the WWW-transports set to 60 seconds. FIX:*.init: Fixed for initial projects starting in the daemon mode, by the command-line argument "--projUserDir". {debian,debian_mod}/control: Appended for the depending at libgd-dev, which actual one for Debian 10. The ".dump" command of sqlite3 3.27 significantly changed, needs now for the parameter "--newlines" and removes quotes around the table names. !!: Android: The behaviour of using the environment variable QT_SCALE_FACTOR on Android is observed, what set to 1.5 and the default font "Helvetica,12,-1" with QScrollBar CSS rule are removed. The building SDK parameters set to "". Android/build.sh: Improved in building under environments with the system Qt5 development files. !!!!: The module version of the subsystem "Special" rose to 12; of the subsystem "DB", "DAQ", "Archives" and "UI" rose to 13; of the subsystem "Transports" rose to 15. !!!!:FIX: Threading, tasks, realtime and locks: !!!!: Some common data resources of dataRes() replaced by own resources, mostly due to the observed locking problems in Protocol.HTTP and DAQ.ModBus. !!!!:FIX: Common locks mechanism is added by a locks container, the function commonLock(). !!:FIX: Transport.{Sockets,SSL}: Used for system functions like to getaddrinfo(), which is not multithreaded one. Used for the function crypt(). !!!!: The tasks planning appended for phasing their invoking, what make the CPU loading even. !!!:FIX: The function TCntrNode::nodeDis() waiting fixed for zero time and the function chldDel() set to no waiting by default. !!:FIX: Fix for the negative priority of the policy "BATCH". !!:Archive,DAQ.Controller: For the current time of messages and values mostly used TSYS::curTime()/1000000 instead time(NULL) due to the message and value time is in microseconds and mark by TSYS::curTime(). !: The ResMtx default constructor set to true for "isRecurs" but it is the typical situation. !: Appended for the definition SERV_TASK_PER=10 of the service task periodicity. FIX: The user function Array.concat() prevented from unlocked acces to the source array. FIX: The console help call by the key --help or -h fixed for unlocking the early loaded objects, stopping the subsystems forcely. The standard waiting time (STD_WAIT_TM) decreased to 5 seconds (from 10) and the standard interface waiting time (STD_INTERF_TM) set slightly more, that is 7 seconds. AutoHD::at() appended for the commented code of the crashes causing instead the exception "No init!", to observe the message cause. !!!!:FIX: Redundancy: !!!!:.,UI.{QTCfg,Vision,WebCfg,WebCfgD}: The function "Local primary commands transfer" of the redundant systems is unified and expanded for complete moving to TCntrNode::cntrCmd(), so the function works now for any calls also from the user programming environment. !!!!:Archives,DAQ.DAQGate: The messages bottom time border processing for redundancy and the DAQGate changed to use time of the last message to repeat it requesting for two time, to prevent the messages losses on the border. !!!!:FIX: The redundancy and DAQ.DAQGate restored for writing the big value archive's blocks, mostly in restoring the value archive parts. !!: The first alarms obtaining in the messages redundancy enabled only at presence the message archivers in the redundancy. !!: Placing messages to the archivers of the redundancy procedure TMArchivator::redntDataUpdate() changed to use the function put(), to do this operation atomically for all obtained messages under a lock. TController: The service "/serv/mess" changed to obtain the last message time from the last redundancy operation time for controller objects under redundancy and time(NULL)-1 else. !!!:DAQ,DAQ.*: Writing values in the redundancy is unified under the new function vlSetRednt(). !!: The service "TValue::get:/serv/attr" expanded to some spare request of the last requested value to prevent EVAL here at the connection loss. FIX: The redundancy processing procedure TController::redntDataUpdate() appended for the exceptions processing to prevent of not starting the DAQ-controller objects at errors in the archivers, mostly in Archive.DBArch. !:ParamContr::vlSetRednt(),DAQ.{LogicLev,Siemens},UI.{Vision,WebVision}: The runtime requests appended for "reforwardRedundOff"="1" to prevent their the redundancy in some parts. FIX: The main redundancy task fixed moving the declaration "XMLNode req("CntrReqs");" up to the same request, due to the possibility of back reading wrong responses. !!!!: The function strEncode() appended by the variant "Limit" to limit the string size counting for the UTF-8 variability, and such items moved to it instead removed limiting variant of the function strMess(): TConfig keys, DAQ-Template IOs, DB.SQLite, UI.QTCfg. !!!!:FIX: Configuration: !!!!:TConfig,TCfg: The key fields appended for their size limiting before cutting on the DB side. !!!!:*: Adapted in the adding functions to treat the ID or name forming and to limit its size, returning the result name to the creator, using the node function chldAdd() expanding in direct return the ID and to just remove the new node for equal ones. !!:DAQ: Identifiers of the logical level IO of the DAQ-templates expanded to the size limit up to 1.5*OBJ_ID_SZ=30 symbols and have added for these shrinking on creating. !!:Transports: Size of the output transports ID set to OBJ_ID_SZ*2, since it can be combined from the ordinal node ID and some prefix, in the automatic mode. !!: Appended by a function of setting the TCfg fields to the default value, to prevent loading values of previous records for miss fields. !!:TConfig,*: The user API functions cfg() and cfgSet() of the configuration expanded by the permition control. !!: The loading from selected DB improved in checking the DB enabling before, in the function TSYS::chkSelDB(). !!:TCntrNode,DAQ,DAQ.JavaLikeCalc: Appended for the function load__() to treat some doings in the loading end. !:FIX: Losses the configure file changes prevented by pre-saving all changes before it loading. FIX:TCntrNode: Prevented from left the modification mark after loading from a selected DB. !!!!: Control Interface: !!!!:*: Unified in the modification control of the node objects and cleaned the spare modifications, moving the calculation context modification to the option "modifCalc". !!:.,UI.{QTCfg,WebCfgD}: Tables expanded for difference help per columns and cells. !!:Transports: Table of the external OpenSCADA hosts expanded for the context help to the transport address cell, using the function outAddrHelp(). The generic help of the "Tasks" table moved to the concrete column "CPU set". !: The request "load" expanded for specifying the selected DB in the attribute "force" to perform such operations for concrete nodes. !!!!: The DAQ-templates and all their implementations appended by a function of selectable attributes creation from the template field "Value" of the two and three lines, TFunction::IO appended by the flag TFld::Selectable. !!!!: The unified DAQ-templates implementation TPrmTempl::Impl is finished and such items migrated and adapted to it: DAQ.{JavaLikeCalc,ModBus,LogicLev,Siemens}, Protocol.{ModBus,UserProtocol}, UI.WebUser. TPrmTempl::Impl::cntrCmdProc() expanded by the prefix "pref" argument. !!:FIX:DAQ,Archive.DBArch: The TElem copy constructor was implemented to fix problems into Archive.DBArch at multiple groups-tables in the group table mode. !!:Function,DAQ.{JavaLikeCalc,LogicLev,ModBus,Siemens}: Expanded for tracing the function program changing and hot restarting the executing procedures, by setting the flag "f_start". !!:TMess,XMLNode: Appended for the function setUTF8() of forming UTF-8 from their code, taken from XMLNode to use in other places. !:XMLNode: Appended for entities size limit and silence at incomplete ones. The attributes getting function attr() expanded for the optional argument of the presence detection. !: TError appended for naming the error codes in the enum "Codes", which used everywhere. !: The user space "Array" expanded by the functions indexOf() and lastIndexOf(). !:.,DAQ.JavaLikeCalc: The limits appended by USER_ITS_LIMIT (1000000) to limit the items number like to user arrays from DAQ.JavaLikeCalc. The arrays creating limited for USER_ITS_LIMIT and appended of processing the system exceptions with an error message and freeing the wrong arrays. FIX: Fixed from crashing at early exit in the lock-file presence. FIX: Fixed for the flags TFld::SelfFld and TFld::Selected setting into TFld::setFlg(). FIX: The internal program languages list, by the service "/plang/list" appended for the empty item "" to allow for reset the fields, mostly for VCA. The decompression function some appended for the initialization. The user API function cntrReq() improved for processing results of the remote requests. - Security: FIX: Prevented from empty users appending to groups and appended for the empty users processing in the group's users list. The user's DB-field "LANG" size expanded up to 50 and the user's group's DB-field "USERS" size expanded up to 1000000, for more users support. - DB: !!!!:FIX:*: The configuration context resetting function cfgToDefault() used in the function dataSeek() and fieldSeek() begin, due to it is an obligatory operation for the configuration file at least and must be done for the DB configuration also, for new fields. !!!!: Appended for the transactions closing control into the OpenSCADA core whether in the service task, for the timeout > 10 seconds, or in a different per DB task of fast transactions closing of the shared DBMS. For what appended the functions trTm_ClsOnOpen(), trTm_ClsOnReq() and trPr_ClsTask(). !!!: DB-objects appended for restoring their enabling after the connection loss (or other reason) for meaned to enable and not disabled by the user, by disabledByUser(). !!: Appended for configuration of the "Opened tables lifetime" of the inactive tables closing. TBD::postEnable() moved from private to protected. FIX: The function "Load the program from this DB" fixed for storing the node modification state. The SQL-requesting dialog appended for the time measurement. !!!!:FIX:{SQLite,MySQL,PostgreSQL,FireBird}: FIX: Prevented from wrong cleaning the table information for disabled DBs. The not string values cleared from the string brackets '{Value}' and that tested. The DBs loading function appended for resetting to default values before the next operation. !!!!:FIX:{MySQL,PostgreSQL,FireBird}: Improved and tested for hot restoring of the losses connections and without the data loss. Tables list obtaining of the DB switched to the indiferent mode to transactions. !!!!:FIX:FireBird: Restored for the main work in the primary keys requesting and adapted to FireBird version 3. !!!!:FIX:MySQL: Resolved for crashing in the built-in reconnection (by MYSQL_OPT_RECONNECT), which replaced for the own and hot reconnection. !!:FIX: Fixed for the error "BLOB/TEXT can't have a default value (1)" on modern MariaDB server versions, wholly removing the DEFAULT for TEXT. FIX: Appended for updating the table structure at ALTER errors. The default timeouts set to "10:5:5". tcon.reconnect replaced by mysql_options(&tcon, MYSQL_OPT_RECONNECT, ...); to provide building with MariaDB >= 2.4. !!!:SQLite: Appended for correct treating the locking of the SQLite DB files, at accessing to common libraries from different processes. - DAQ: !!!!:TController::alarmSet(): Expanded by implementing the alarms triggering conception, which means also of passing messages to the buffer for clearance the alarms only at the alarms presence. !!!!: Globally unified and completely described in the documentation for messages from the controller objects and DAQ-parameters, when the parameter-source in the message appended for the controller object name. !!!:FIX: Changed to use complete parameter ID-path, to prevent collisions in alarms from parameters with even IDs but different sources. !!:FIX:*: The property period() is set actual in early, at the configuration "SCHEDULE" changing, for true data period of the archives. !!: Expanded for early enabling the template libraries in the loading stage, initially for transport protocols based on the DAQ-templates. FIX:TParamContr,DAQGate: Fixed in the copying operation, disabling the destination node before. !: Appended for the attribute encoding into the common DAQ-path, to allow dots into the path. !: Appended for the user API function daqAt(). The message "Only attributes are to be shown" renamed to "Show attributes". The user API function funcCall() expanded by the "err" argument. The function of setting archive improved to back-using of identifier of new created value archive, for cleaning the identifier. LogicLev: Enabled for the possibility of the scheduling change at the running. !!!!:FIX:ModBus: !!!!:FIX: The mode "Asynchronous write" restored and tested in writing after restoring the connection, to use it for the losses preventing. !!!!: The asynchronous writing moved to the after requesting stage with oppresing-delay the writen values changing in the attributes, before the writing buffer clearance. FIX: Prevented from spare coils requesting after wrong asynchronous writing. !!:FIX: Fixed for work in the redundancy mode. !: Appended for the test behavior of closing PLC-alarms at it moving to the redundancy. Appended for writing into the logical context in the redundant mode. !!:FIX: The common function upVal() is separated to two functions upValStd() and upValLog() of the parameter types separate updating for the "Standard" firstly and the "Logical" type in the last, for cases of using data of the "Standard" type parameters in the "Logical" ones. !!: Expanded in work with wrong or empty connection transport, to allow it set-change from external procedures. !!: Expanded for the flag "s" of the strict requesting at the complex data. Appended by some context help. Period of the idle (waiting for connection) mode switched from the fixed periodicity in 1 (one) second to the main period. !!!:FIX:JavaLikeCalc: Expanded for try of the restoring the previous procedure executing at the new one error, mostly from DAQ-templates. !!:FIX: Fixed for crashing in the hot compiling, mostly at returning to the correct procedure after the wrong one compiling, in case of the procedure uses internal functions and possible external ones also due to missing for clearing "fPrmst". All these clearings are unified in the functions buildClear(), workClear(). !!: Set to stop the functions at the program source changing for apply the changes. !!:FIX: Prevented for the recursive call, observed on the recursive widgets creating in UI.VCAEngine. !: The User API functions charAt() and charCodeAt() expanded to support UTF. !: The User API functions expanded by isNaN() for bool, integer, real, string (especially for checking numbers in the string). !:FIX: Appended for disabling controller objects at changing the linked function/template. FIX: Fixed for the token name FUNCTION. FIX: Fixed for the comment expression "/*/" correct processing. The work registers object "RegW" appended for the debug counters, to monitor the objects leak. Some original messages expanded. Expanded for expressions with the keyword "var" processing at presence the same name variable "var". Appended for the copying functions of the controller objects. !!!:Siemens: Extended for direct specifying the data type of the link address. !!: LibnoDave updated to 0.8.5.1. The errors appended by the read code 0x3 - "An attempt to access outside the DB 'N' (200 family)". The own implementation of ISO-TSAP appended for errors processing of the functions requesting. !!!!:FIX:DAQGate: Expanded by an option and a function of placing different remote controllers to the virtual parameters. FIX: Fixed in storing duple parameters from different controller objects, preventing the RO attribute "SHIFR" reading. The parameters' attribute "err" set to "10:Data not available." after loading. FIX:System: Fixed for some translations. FIX:OPC-UA: reqService() prevented from accessing free transports and the exception "No init!". Forming for ID of the parameter attributes moved under the generic enumeration function TSYS::strLabEnum() and the qualifier digit is removed. FIX:DCON: Prevented from removing parameters from their processing at the controller object stopping. - Archives-History: !!!!:FIX:Mess: !!!!:FIX:TArchiveS::messGet(),/serv/mess: !!!!:/serv/mess: In put it is improved for independent writing to the archive and just to update the presented alarms. FIX:TArchiveS::messGet(): Expanded for sort the buffer messages and to prevent collisions at the clock correcting. Allowed for read only the buffer or the allarms table, mostly to fast control the alarms presence. !!: Messages of the function's Mess->put() macrosses "message", "mess_info", ... redirected to the buffer writing, to prevent of direct writing to the archivers. !!: TArchiveS::messPut() cleaned from the argument "force". FIX: Processing of the message buffer resize some fixed in checking the archiver headers and improved in the same processing code. !!!!:FIX:Val: !!!!:TVArchive::getVals(): Improved for processing not free buffers (for a fixed period) of the data requesting from the buffer and different archivers, using an intermediate buffer array which is back replayed at the end. !!:FIX: Improved for the limit processing independently for the buffer and the archivers and their periodicity, to work the long ranged and high periodicity data requests. The exceptions processing added here also. !!!:FIX: TValBuf.get() switched from the exceptions emitting to return EVAL at the requested data missing. !!!: The value archives appended by the common option "Mode of forming ID of the automatic created archives" with selection from the modes: "Both parameter and attribute ID", "Only parameter ID", "Only attribute ID". For the possibility to control the automatic archives naming. !!: TVArchive::{setVals(),setVal()}: Access to the archive writing functions restricted only for users in the group "Archive". FIX: Forced to the values buffer updating at the data period update. The value archive buffer errors of inserting too old values appended for the error code TError::Arch_Val_OldBufVl and it processing in TValue for cleaning the wrong buffers. Default precision of the service "/serv/val" values set to 15. Font size of the builtin diagrams builder of the values increased to 10 pixels. The object TVArchive appended for itself declaration as a part of the core object TCntrNode. The messages table of the Control Interface in the mode of alarms display appended for the "Delete" command to delete single messages. .,FSArch: Completed in renaming "Archivator" to "Archiver". !!!:FIX:FSArch: The XML mode of the messages appended by the positions cache. !!!:FIX: The messages archivation is significantly improved and fixed in placing several different messages in even time. !!!:FIX: Fixed for the info.db removing and processing by using the DB address as a unique essence instead limited DB-identifier, what currently is named through indexing the equal ones. !!:FIX: Fixed for archiving double messages in the mode of preventing the doubles - rewriting. !!:FIX: The archive folder creation moved in the begin, before the locking and the info.db creating. !: The messages archiver object is set to use globally the RW-lock in writing into put(). !!:FIX:DBArch: !!:FIX: Fixed for the value archives including to an archiver for the not grouped archiving mode. !!:FIX: Finally fixed for the single-value requests of the value archive, after the not full fix from 2018-02-23 only for the archiver data period 1 second. !!: Adapted to work in the only direct archive writing mode on the archives group mode for updating the meta at writing. FIX: Fixed in removing the archives group tables at removing the archiver. Some improved for the locking space of reqRes and accm. - Transports: !!!!:.,*: Expanded for support the multiple protocols selecting and the function protocol() renamed to protocols(). !!!: Appended for a service of closing output transports at the lifetime (inactivity) by the service function outLifeTime(), unified for the last request time control in the function lstReqTm(). !:.,Sockets,SSL: The output transports expanded by the attempts field of the generic control in the function attempts(). !!: The function outAddrHelp() of taken common address help for the output transport modules was added. !:FIX: Fix the terminating the transports loading at try to connect the missing transport modules. FIX: Fixed in the transports copying for additional parameters, by call load_(). *: The "Started" and "Stopped" messages appended the suffix "connected" and "disconnected" respectively. The debugs and exchanging log are cleaned from the timeouted messages in the not requesting mode. Some spare rules of the syntax highlighting of the log messages are commented. The transport type object appended for the common command-line help. !!!!:FIX:Serial: Fixed for the "Modem" mode of the output transports in the correct processing the function ResMtx::tryLock() result. FIX: The extended parameter "reqRetrMult" of the char symbol time of the output transport is fixed in the processing. !!: The flow control field moved to the options field due to a need with direct disabling some options like to -RS485. !!!:FIX:Sockets,SSL: Expanded for support IPv6 both for input and output transports using getaddrinfo(). !!: Appended for processing (connecting) all IP addresses resolved from the symbolic one, especially for the output transports. !!: The output transports appended for direct definition several host addresses. !!: The output transports improved in using the tries after the error "Reading timeouted." of responding to request. FIX: The "No data" reading message some fixed and expanded. !: Connection info of the output transports appended by the real connected IP-address. The output transport address expanded by global arguments which can be the timings and attempts. The output transports' IO log expanded for starting errors. !!!:FIX:Sockets: Fixed in processing the output transports with the address "SOCK:{N}" of the initiative connections to clean up the address by setting it to "SOCK:-1", then preventing of the restarting possibility with using already closed socket's handler but possible allocated already by another part of the program. !!: Address of the input transports in the TCP-mode can be expanded for addition parameters and currently the next one after the mode field is identification message of the initiative connection into the mode 2, so this mode expanded for sending identification messages after establish the initiative connections. !!: "TCP:" prefix of the addresses set to nonobligatory-optional. !!: The address mode of the input transports set to 1 (do not close, only by the KeepAlive parameters) by default. !!: The default port set to 10005. FIX: Input transports fixed in the status information for the establishing and processing the initiative connections. FIX: The output transports in the type "Forced sockets" prevented from saving. The session object cleaned from spare clntDetchCnt. The "IO log" expanded for some extra messages to the output transport starting stages. The waiting of any data after zero reading disabled due it proven the senselessness on VPN and other. !!:SSL: Appended for treating NO_*_METHOD for TLS1, TLS1_1, TLS1_2, DTLS1 and for direct support DTLSv1_2. !!: The default port set to 10045. The output transport status appended for the last connection time. Prevented from twice SSL_library_init() call at OpenSCADA projects switch due it cause some time to crashes, seen on Ubuntu 16.04. - Protocols: !!!!:FIX:HTTP: Appended for the true KeepAlive support by the input transport functions keepAliveTm() and keepAliveReqs(). !!: Expanded for the DB table "HTTP_AuthSessions" of the external authentication sessions. FIX: Fixed for the message "Wrong authentication from the user ..." not in a proper place. A detailed message of "Error loading the META header" added to detect source of the rarely warning message of parsing the template. Mime types cleaned from ";" and after it in the end. !!!!:FIX:ModBus: The input part expanded for the DAQ-templates using. !!: The data types list of the IO table appended by the type "Object". !!: The protocol variant recognising for input requests some improved for detecting difference RTU and TCP variants, appending to that the transport type. !: Expanded in limiting the ModBus frame size for workaround the bad hardware flood. FIX: Fixed for prevent the linked attributes translation of the Nodes. The program language editable selection set to the pure selection. Expanded for the Nodes time stamp. !!!!:UserProtocol: Expanded by the DAQ-templates support. Items identification of the protocols moved into the input protocol name after removing protocolFull(). !:SelfSystem: Expanded for the output transport attempts support. - UI: !!: FIX: TUIS::mimeGet() changed in the behaviour of determining the file extension "svg" as "image/svg+xml" for correct and multiple SVG files display on WEB. FIX:Vision,WebCfg,WebCfgD,WebVision,=Tmpl=: Fixed for the XHTML header on FireFox. WebCfgD,WebUser,WebVision: Adapted to the user API functions pgAccess(), pgCreator() moving from TProtocol to TProtocolIn and mime types cleaning from ";" and after it in the end. !!!:FIX:VCAEngine,Vision,WebVision: The variant "LineEdit" of the primitive "FormEl" appended for the view "Password". !!!:FIX: The VCA-styles moved under a scheme of disabling styles at their presence instead "No style" and fixed in the new items creating and at all. !!!:VCAEngine,Vision: All information moved to the status field for widgets, libraries and projects; what appended for the calculating procedure state - inherited, redefined. !!!!:FIX:VCAEngine: !!!!: Pages of the projects appended for the type "Link", to optimise the memory consumption on fully dynamic and highly replicated pages, on the project's session side. !!: The pages opening in the project's execution (sessions) improved to prevent spare and double opening and closing, which is critical one to manage the linked pages. !!!!:FIX: Many measures of the visual items edition in time of the project execution: !!!!:FIX: Fixed in deletion the project pages in time of the project execution, to prevent the objects lock and to provide their early linking for removing the session pages together the project pages. !!!!:FIX: Session objects moved under own data lock to prevent the dead locking in the complex situations due to the style calls uses indirect parent(). FIX: The runtime pages appended for the function lock in the call setProcess(), but in WebVision there can be concurrence access and for the linked pages it is oftener. Appended for tracing the procedure changing in the included procedures also. !!!: Optimisation the remote development: - the info control services "/prm/cfg/prj", "/page/page" appended by getting of number of the child pages in the attribute "chPgN" at setting "getChPgN"; - appended to prevent the widgets' icons transmitting in the control service "/serv/wlbBr" of the complete widgets' tree loading, setting the attributes "disIconsW", "disIconsCW". !!!: The project sessions of the VCA moved at the last from the modification control for the development mode. !!!: Expanded for the direct definition of the visualiser specific attributes, marking their by the prefix "vs_". !!:FIX: The project session command "close" of the service "/serv/pg" forced to processing, what actual to the linked pages. !!:FIX: The VCA pages loading procedure appended for cleaning the spare records and records of inherited but missed widgets of the "*_incl" table. !!:FIX: Fixed in the User API function tr() work from documents. !:FIX: Fixed in forming the processed ellements list at the runtime function start (f_start). !:FIX: The user API function uiCmd() added and its internal function uiComm() renamed to uiCmd() and fixed for empty source argument. FIX: Expanded for limiting the project widgets depth in 10 levels, mostly for limiting the recursion on the project sessions execution. FIX: Fixed for full access to the attributes of the service control request "/serv/attr" and not only "root:UI". FIX: Fixed in wrong group links display as "Custom: ..." for some empty links presence. FIX: Fixed in calculation of the maximum consumed time of the session items in the debugging. FIX: Fixed in the attribute "value" of the view "Edit line" of the primitive "FormEl" for the spare flag TFld::TransltText for not string types. FIX: Fixed for information of the heritors of the projects. FIX: pageList() appended for force cleaning the input argument since that can be passed for the container and template pages. FIX: Projects, Widget liraries and Widgets are fixed for the error message of creating already presented node. FIX: Fixed for the page status "Opened" only for the pages. FIX: Size of the Mime identifiers increased to 40. FIX: The User API function wdgAt() fixed for return zero at wrong connection. FIX: Prevented from copy not modified attributes at widgets copying. FIX: The allowed size for icons storing expanded to 100000. FIX: The user API function wdgAdd() fixed for the name setting after the new widget enabling. !: The runtime widget appended of the user API function attrList() of obtaining list of the widget attributes. !: The runtime procedures of the widgets are enabled for using the actual (for the last request) user and language, for dynamic translation. Widget procedures calculation period -1 means currently the value (not -1) from the parent widget-page. Prevented from save the value of inherited and linked attributes, seems it have not a sense but can significantly use the storage. The UI attributes object "Attr" appended for the debug counters, to monitor the objects leak. Finishing time of the task of generating documents of the primitive "Document" increased to 3*STD_INTERF_TM(7). Appended for some debug messages at the windows opening and closing. The attribute "tipTool" of the Widgets set to the "Text" type. The attribute "tSize" range of the primitive "Diagram" expanded for one year (32e6 seconds). Expanded for reading the visualiser specific attributes in the developing mode. The DB field "ATTRS" cleaned from the default value "*". Warning messages of the big number connections to the attributes moved behind the data lock. Pages list in the project set to access only for the page type "Template" or "Container". Reverted for the prcElListUpdate() first call from the calculating procedure due it performed into setProcess(). Removed for the spare field "Use" on the session widgets. Widgets prevented from names setting to their ID, at the copying mostly. !!:FIX:QTCfg,Vision: Fixed in processing the syntax highlighting of the text fields to load firstly the syntax rules and next the text, to prevent the text corruption in some cases, detected into the transport exchanging log and Qt 5.11. !!: Appended for buttons of the force loading and saving, into the menu. !!: Table forming improved for the allowed width getting from maximumViewportSize(). !!!!:FIX:Vision,WebVision: Improved for the scrollbar control of the included pages, to ensure they work separately, not two together. !!!!:FIX:ElFigure: The mirroring support is completed in the implementing for the common, shape Arc draw and it generic and image fills. !!:FIX: The filling by image prevented from lacks at accessing outside the image. !!!:FIX:Diagram: !!!:FIX:Trends: Expanded in the time scale building for many days with the time complete hiding and show the first value in the left, using the timezone offset. !!!: Appended for support the big time range intervals per month. FIX: Some improved in form the lowest value of the vertical scale. FIX: Fixed in show the first-left date-time item. !!: Disabled in limiting the requested archive values precision, for long counters. !!: Improved in the remote work on slow channels and with the value buffers period in 10 seconds. XY: Improved in removing the end position mark at the data natural order and its size decreased. !!:Text,Media,Box: Expanded to display the activity cursor. !!:FormEl: Some views (Line edit, Text edit, Combo box, List, Tree, Table) expanded for custom background and border by the visualiser specific attributes "vs_background", "vs_border". !!: Appended for the visualiser specific attribute "vs_winTitle" of the dynamic window title value. !!!:FIX:Vision: !!!: Optimisation the remote development: !!!: The projects tree switched to download the branches partially at expanding, to improve it work on slow connections. !!!: The widgets tree improved in the work on slow connections, disabling the widgets' icons downloading at the threshold of the complete tree downloading time more for 5 seconds and enabling that at the time less for 0.1 second. !:FIX: Prevented from updating selection of the developing widget, mostly for slow channells. FIX: True prevented from spare requests to the remote station at the windows moving. The item identifiers of the project tree forced to show and don't show. !!!: Expanded for the planning of the updating period depending to the real connection quality of the runtime mode, like to UI.WebVision. !!:FIX: Common fixes and improvements of the runtime window modes: !!:FIX: Manual scaling of the runtime window (for full-screen or maximise) improved and fixed in the processing the sign isResizeManual. !!:FIX: Fixed in starting to the full-screen mode and not full scaling at restoring to not zero window position. !:FIX: The widgets including fixed for resizing after his container resizing, has observed in a problem of direct opening included pages on the full screen. !!:FIX:FormEl: !!!:FIX:Table: Tables fitting improved to use maximum width from the widget size and the maximum view port, but the maximum view port only can be uninitiated here yet. Final fix for the tables fitting, moving the procedure in events: create, resize and show. !!:FIX: Prevented from casual crashing. FIX: Fixed for real hiding of the columns on Qt 5.11. FIX: Tables fitting prevented from use processEvents() due the possibility of the widget going in the closing. Improved in using the relative table column width. The mode of inactivity improved to remove all selecting and to restore edited values. !!:FIX:Date: Fixed for crashing at setting configuration. !:FIX:Button: Fixed for disabling at inactivity. Appended of setting the pointing cursor. FIX:LineEdit: Fixed for marging from the hidden icon size, for the spinned Real and Integer. FIX:Text: Fixed for show tooltips in the runtime mode. FIX:Time: Fixed in the value processing. !!:FIX: Fixed for the master page regular replacing (crashing) and scaling into the run-time mode. !!:FIX: The runtime executing was fixed from crashing in closing external windows at closing the main window. !!:FIX: Fixed in the properties edition dialogues of Pages/Libraries and Widgets for: - preventing for closing at Esc; - disabling for timeouted cancelling of the LineEdit; - unbinding the edited state from the visibility for TextEdit; - preventing from the changes loss into the tab "Process"; - appending for warnings about the inherited calculation procedure changing. !!: The focus control rewrote to the VCA-widgets specific one and not Qt-widgets, like to UI.WebVision, what prevents some problems. !!:ElFigure: The figure edition switched to the normal mode, without any transformation (rotation and mirroring). !: The Arc shapes allowed in connection each other in the fillings build, like to the sector diagram. !:FIX: Fixed in updating the target page after copying items caused to a warning of their restoring from the parent base. !:FIX: The operation of lowering down of the single attribute changes appended for requesting a confiramtion. !:FIX: Fixed in updating the geometry properties on the graphical widgets editing. FIX:Diagram: Export to CSV for the diagrams improved for replacing the original EVAL value to the string "Empty". Have cleared from the Cap Style specific on Qt5 and Qt4. FIX: Fixed for the global state updating, appending the selected item modify state. FIX: Fixed for the context menu in the edition, for the item "Copy". FIX: Fixed for new created widgets selecting in the visual widgets developing mode. FIX: The external windows are set to force closing before their deleting, for saving the window position. FIX: Fixed in removing the selection dots at the included widget removing in the graphical widgets editing. FIX: Prevented from processing operations of the widgets arrangement in the inactive windows. FIX: Table forming prevented from the fliclking. FIX: Performs the focus moving to the active subwindow at the drag and drop from the widgets inspector. !: Appended for an option of the module to drop widget styles to the common one for some specific widgets in the runtime. !: The big texts editing dialog set for allowing access to other main windows. Time of the automatic cancel of the line editable fields of the runtime increased to 10 seconds. The items ID generation at placing pages to the project changed to start from the source page original ID, not index 1. The text fields of description the libraries and projects expanded for the word wrap. The procedure language combobox appended for the tooltip of resetting the procedure at the empty value selecting. The primitive "FormEl", "Diagram", "Protocol" expanded for the font scaling and control, mostly to improve in Android. The pages cache of the sessions appended for the pages number limit control, its information appended to the sesion information and it improved in whole. The projects tree and the widget libraries tree is disabled for the selection loss at the focus loss. The field "Inherit" of the Widget addition dialog set to be hiden at copying/adding to the widgets containers. !!!:FIX:WebVision: !!!:FIX:Main operation: !!!:FIX: The JS function servSet() of writing to the server switched to the synchronous mode to prevent loses. !!!: The main checking of the background objects is made unified and expanded for support the optional background objects, to decrease the overall number of the background objects, where the obligatory currently are: "ElFigure", "Diagram", "Document", "FormEl"; and the optional is only "Text". Background objects of the Web-sessions appended of the objects counter, to their allocation control and debug. The post requests default response returned to the result "204 No Content" due problems with the mode "Load" of the view "Button" of the primitive "FormEl". !!!: The main window vertical expanding threshold set to 10% of the window decreasing size at 50% for shrinking, to prevent flicking on FireFox for notes about block the external windows. !!: The built-in scaling mode set to use-enable in relation from window.devicePixelRatio equal to 1, on the WebBrowser level. !!:FIX: Restored in the full widgets tree reloading to restore the function of removing missed widgets in the visualiser at their removing into the VCA-engine. !!:FIX: Prevented from spare and separate requesting of the included pages' content, in the starting. !!:FIX: Improved for the focus control behaviour and fixed to prevent mouse events to behind pages. External windows of the interface prevented from flicking by it real closing after missing this page in the VCA-engine. Some improved for the updating periodicity calculation for it limits after restoring the long missed connections. Expanded for SVG-files processing by setting the attribute "preserveAspectRatio" to "none". !!!: Appended for the pages cache be controlled in the lifetime and the pages maximum number, both on the server and WebBrowser side, then the module is more suitable now to work in the operative mode! The cache information appended for the sesion information. The server side yet can work with old modified interface JS files, in the old unlimited cache mode! !!!:Sessions control: !!!: Expanded for the possibility of the opened sessions manual closing from the administrator user. !!:FIX: The ordinal users prevented from connection to foreign sessions. !!:FIX: The main requesting code of GET significantly simplified to prevent of reconnections to the VCA-sessions without the local ones. !!: Appended for the state of the opened sessions on the control page, including the connected project and the user. Unified for the ROOT users processing. !!!:FIX:Status bar: !!!: Appended for the alarm level with a function of the global quietation, sending "ws_alarmLev". !!!: Expanded for the VCA-styles support in their display and changing. !!:FIX: Fixed in form the statusbar size, updating and preventing from its flicking at the master page updating. !!!!:FIX:FormEl: !!!:FIX:{Tree,Table}: Are fixed for true counting the border width and padding in the result geometry. !!!:FIX:Tree: Fixed for processing the empty string in the end. !!: Appended for scaling the control tree images. FIX: Fixed for the default italic style of the font. FIX: Fixed in processing wrong current values. !:FIX:Table: !: Default styles of the border and background moved from the JS-code. FIX: Fixed to apply the table columns widths for tables without the horizontal header, copying the style to the first row. FIX: Prevented from updating the editing tables. FIX: "word-break: break-all" removed from the table styles. Editing boolean fields set clean. Improved to gain focus at entering to edit a cell for the hotkey operations, the boolean type appended for the hotkey operations. Improved for the real type represent. FIX:Date: Fixed in the calendar for month start in Sunday (0) in the weeks form and background of the disabled items. FIX:Button: Fixed for hiding the overflowed context in the standard buttons, observed on Chrome. Appended for the visualiser specific attribute "vs_goHttpUrl" for going by the external links. FIX:ComboBox: Fixed for guaranty updating at the value changing. FIX:List: Multiple items selecting is fixed. FIX: Prevented from creating items in the attribute "value" at missing, as into UI.Vision. Set to updating at the value changing, to take in acount the specific background color of the selected items. FIX:Line: Fixed in the variants Integer and Real in the spin box on the scrolling frames. FIX: Fixed for the previous value saving after operations in the spin box. FIX:Combo: Fixed for small selection list of the editable combobox. The Apply button set for adaptive from the built-in scale rate. CheckBox: Appended for scaling the element. !!: Expanded for setting the VCA visual elements at the "class" attribute to "Primitive {WPrimitive}" and the "id" attribute to the widget identifier like to "wdg_{id}", for simplifying the customisation. !:FIX:ElFigure: The primitive source code is significantly cleaned. FIX: Prevented from crashing at coming the POST requests firstly. !:FIX: The JS setting function setWAttrs() fixed for encoding the special symbols "<>". !:FIX: Prevented from crashing in the VCAObj destructor at the cache clearance in the multithreads. !: Appended for the new parameter "Resizing raster images on the server side." to control the images transformation on the server side. FIX:Media: The variant "Animation" is improved by disable the animated images scaling on the server side, thus preventing the animation lost. FIX:Text,FormEl: Expanded for NaN and EVAL processing of integer values. FIX:Diagram: The view "Trends" fixed in endMarkBrd of the endpoint date and time. FIX: Prevented from the ToolTip setting at the empty attribute 'tipTool'. FIX: Prevented from couple processing of the included pages and their opening both for including and as an external window. FIX: Improved for style of the PopUp menu and Calendar dialog window. Scroll areas of the popupmenu select are set to be hidden. The exceptions processing of the function getXmlHttp().send() removed due to at the connection exceptions the main loop is just stopped and no exceptions generated. The UI objects "VCAObj" and "VCASess" appended for the debug counters, to monitor the objects leak. Document: Appended for checking to availability the common attribute "tipTool" and the document object. The service operations "connect" and "disconnect" appended for the true user and sender information for the VCA-engine. Appended for the message "View access is not permitted" translation. !!!:FIX:QTStarter: The function updLookFeel() fixed for the void return type. !!: Right mouse key and context menu emulation is added at holding the left mouse key during the time set by the command line option --simulRightMKeyTm. This time set to 2 seconds for Android. FIX:WebCfgD: Some fixed-improved in the table cells editing. !!:FIX:QTCfg: !!:FIX: Fixed for applying forgotten changes of the editable widgets at switching to a different node. !!:FIX: The TextEdit items fixed for the editing sate detection, what is unbidden from the visibility. !!: The Node groups hint is added for a command of the node adding. !!: The moving operations, in the configuration table, expanded by the hot keys "Ctrl+Up" and "Ctrl+Down". !!: Optimisation the remote work: !!: Prevented from the navigation tree updating at selecting any item. !!: Makes slower the cycle of the periodic updating after the busy dialog appearing. Pages content updating at the item selection into the control tree moved to the timeouted update due releasing mouse events loss for the right mouse key emulation. !!: Set fast for the closing time of the configurator window with many OpenSCADA inactive external hosts, by early notifying the host tasks. FIX: Fixed for empty item name for one item selection and in the item deletion dialog. FIX: Fixed for true striction of the removing nodes list into the requesting dialog. FIX: Fixed for processing of selection lists of the combo. The approving dialog of the nodes removing limited in big lists of the selected nodes. Set to disable "actUpdate" at the periodic update. Window title of the busy progress bar set directly. !!!!:WebUser: Expanded by the DAQ-templates support. - !!!:FIX:Special.FLibSYS: FIX:IO: write() fixed for the default data type obtain, wrong data type obtaining set safe. !!!:CRC: Completed by using normal polynomials, the input and output references and the XOR for output. !!:VArchObj: Access to the archive writing functions restricted only for users in the group "Archive". For the current time of values used TSYS::curTime()/1000000 instead time(NULL) due to the value time is in microseconds. 2018-06-21 Roman 0.9.0 - FIX:data/openscada_mod_ALT.spec: The openscada-server package fixed for including the file oscada_server.xml. Switching to openscada_LTS was moved to the building script, together with the repository Debian packages. 2018-06-19 Roman 0.9.0 - DOC: Fix all documents for wrong deleting "", detected on FireFox. 2018-06-18 Roman 0.9.0 - Build: Set ALTLinux repository packages to the name "openscada_LTS". - DOC: Updating "To do" and appending "Updating_0.8.0_LTS". 2018-06-17 Roman 0.9.0 - Release of OpenSCADA 0.9 LTS. 2018-06-15 Roman (stable) - DOC: The document "Modules/BFN" translated to Ukrainian and revised. - DB.OscadaLibs: servProc.releaseTests: Significantly expanded for the tests after their execution before 0.9 LTS. servProc.{wacko2media,docOffLine}: Appended for description. - DB.Model.AGLKS.St: Appended by some nodes for the release tests: Sockets.{in_testRelease,in_testRelease1,in_testRelease2}, SSL.in_testRelease, Serial.in_testRelease DBArch.1s set to address "SQLite.arch" and to enabled at launch. - FIX:SYS:ChangeLog: Some fixed for the text after 0.8.20 LTS. FIX:data/openscada_start.in: Fixed for the new busy checking. data/ModelsDB/AGLKS/oscada_AGLKS.xml: Appended by some DB for the release tests: {SQLite,MySQL,PostgreSQL,FireBird,DBF}.testRelease. The DB SQLite.arch is added, its address set to "arch.db" and, it set to enabled at launch. TCntrNode: Changed for using the definition STD_WAIT_TM(10) instead DEF_TIMEOUT(2) and DEF_TIMEOUT_EXIT(60). TCntrNode::chldDel() prevented from exceptions in the mode DoDisable. FIX: Some original messages next improved. Some control interface properties (ID, NAME, DESCR) set to relation with the DB configuration, for: TFunction, TPrmTmpl, JavaLikeCalc.FLib. FIX: The function TMess::codeConv() prevented from error messages due a recursion at wrong codepage. - SYS.TFunction,UI.QTCfg: The control field "rows" of the control interface expanded for true processing, as a hint. - !:FIX:Archives: The archivers' objects copying prevented from startup and fixed for copying addition properties. - FIX:DB: Fixed for reloading databases at the configuration file reload. - Transports: The external hosts of OpenSCADA prevented from changing the modification time and reconnections at the loading. - !!!:DB.SQLite,DAQ.BFN,Protocol.HTTP,UI.{WebCfgD,WebVision}: Revised for all messages and the documentation. - !!:FIX:Transport.{Sockets,SSL,Serial}: Preventing, by processing, the executions at closing the input protocol. - Transport.Sockets: Appended by the IO log for UDP requests. - !:FIX:UI.QTCfg: Fixed for crashes at going to in the list by double-click. - FIX:UI.{QTCfg,Vision}: Fixed for crashes at the module detaching. - UI.VCAEngine: Duplicated for the user API function alrmQuietance() to the old one alrmQuittance() and the service "quietance" to the old one "quittance". - UI.{WebCfg,WebCfgD,WebUser,WebVision}: The module information fields "Name", "Author", "Description" prevented from duplication. - FIX:UI.WebVision: Fixed for the status bar scaling, checking for availability and help processing. Header of the protocol table set to hidden at its disabling. 2018-06-05 Roman (stable) - !!:DOC: The document "UI.Vision" is fully revised and translated to Ukrainian. - SYS,UI.{QTCfg,Vision}: Some original messages next improved. - Archive.FSArch: Last entry of the direct specified permition of the creating file replaced to SYS->permCrtFiles(). - UI.QTStarter: Resolved for QStyle direct declaration but it is needed some time. - UI.Vision: Finished for revision the translation to German. 2018-05-29 Roman (stable) - !!:DOC: The document "UI.VCAEngine" is fully revised and translated to Ukrainian. - FIX:DB.Model.{AGLKS,Boiler}.St: Some original messages fixed. - !!:SYS.*: Command line help unified in the function optDescr() for getting the hierarchical help in a string and for its printing in single place of the function TSYS::load_(). !!: A new command-line argument --consoleCharSet added for control the console charset, for console messages and help. TCntrNode: The message "Expecting release %d users!" appearing set seldom and with period 1 second. - FIX:DAQ.JavaLikeCalc: Fixed for translation and output links setting from the table edition. - FIX:UI.{VCAEngine,Vision}: Fixed and expanded for original messages. - FIX:UI.Vision: Fixed for closing child windows on QNX, commenting pg->setAttribute(Qt::WA_DeleteOnClose) FIX: Fixed for fit main page to the main window size on small screens - prevents from appearing scroll bars. FIX: Fixed for crash on main runtime window close with palyback of the primitive "Media" in the types "Animation" and "Full video". - !!:UI.WebVision: Expanded for own statusbar support, currently only with the user information and the status messages. 2018-05-18 Roman (stable) - !!:DOC: The document "VCAEngine (VCA)" is started for revision. - data/debian: Expanded by appending the package openscada-plc. - SYS.XMLNode: isspace() replaced by own implementation isSpace(), mostly for QNX where isspace() is broken for UTF-8. - !!:DAQ.{TPrmTempl,JavaLikeCalc}: Finished and tested at the implementing the class TPrmTempl::Impl of the using unification of the DAQ templates. Access to the links moved under the critical section. - Protocol.HTTP: Expanded using the project icon as the main module icon. 2018-05-14 Roman (stable) - !!:DOC: The document "DAQ" is fully revised. - DAQ.{*.ModBus},Protocol.UserProtocol,UI.{VCAEngine,WebUser}: Internal programming languages list made plain, moved to the generic request "/plang/list" and used everywhere. - !!:DAQ.TPrmTempl: Started for expanding of the using unification by the class TPrmTempl::Impl creation, due the planes for exptend some OpenSCADA parts by the DAQ templates: DAQ.JavaLikeCalc, Protocol.{ModBus,UserPrt}, UI.WebUser; and for parts already using the DAQ templates: DAQ.{LogicLev,ModBus,Siemens}. - !!:DAQ.JavaLikeCalc: Initially extended for using the DAQ templates. The functions selection list made plain one and appended by the DAQ templates. - FIX:UI.QTCfg: Fixed for crashes at opened warning-error dialogs. Going to branches through the list set for placing the previous address to the back list. - !!:UI.Vision: The requisting into different thread set to be enabled at the unpublic command line option "ReqInDifThread" but Qt loss releasing mouse events now, into event(). Then, by default the requisting into different thread is disabled now. 2018-05-11 Roman (stable) - !!:DOC: The document "DAQ" is mostly revised. - !!!:FIX:Archive.FSArch: Cache access moved under a critical section, for preventing crashes at high load. - DAQ.GPIO: SUNXI part expanded by the ports J,K,L,M,N,O. - !!:DAQ.SNMP: Expanded for the connection error control at the parameter level. - !!!:FIX:UI.{QTStarter,QTCfg,Vision}: All Qt objects removing moved to use deleteLater(), for safe removing under processEvents() call from the requesting in different thread. - !!!:FIX:UI.Vision: The primitive "Diagram" and "Box" fixed after wrong improving in the tracing call on close but for the development mode. 2018-05-05 Roman (stable) - !!:DOC: The documents fully revised: Archive.FSArch, DAQ.{LogicLev,DAQGate,ModBus,GPIO}, Transport.Sockets. - FIX:DB.Model.AGLKS.St: DAQ.LogicLev.experiment fixed for the reflection DB specifying as "LogLevPrmRefl_experiment". - !!:SYS,Archive.FSArch,DB.SQLite,DAQ.{DAQGate,GPIO,LogicLev},Transport.Sockets: Some original messages next improved. - FIX:Protocol.UserProtocol: Prevented from breaking all next starting protocols after one error starting. - !!!:FIX:UI.QTCfg: Fixed, in the closing mostly, for processing of requests into the different threads in way of the function implementation for the runtime mode of UI.Vision. The fit of the vertically scalable items made more precision. Added for HTML encoding into the HTML helps. - !!!:FIX:UI.VCAEngine: Archive mode of the primitive "Document" fixed by the specific attributes set to the new mode Attr::NotStored. - !!!:UI.Vision: Requests of the runtime mode moved to different thread. Notificators switched to direct requests, behind the different thread. The primitive "Diagram" and "Box" improved for late enabling (after whole loading) in the runtime mode, mostly for slow and bad remote connections. Access to user's name and password moved under the critical section. 2018-04-27 Roman (stable) - data/openscada-proj: Expanded by the command "update" of updating the configuration 0.8.0 LTS to 0.9. - !:FIX:SYS.Archives: Fixed for archivers loading at some archive module missing. - !:FIX:SYS.TCntrNode: Appended by the definition "DEF_TIMEOUT_EXIT(60)" for use the timeout of the nodes disable/remove at the program exit. Mostly to prevent crashes at the exit when there some long-time procedures executed. - !:FIX:TRegExp: UTF8 flag force setting at UTF8 system locale is prevented at the reason of there impossible disable the flag for non-UTF8 source. The attribute "err" added to the result array of the match() request. - DAQ.{DAQGate,MMS,ModBus,OPC_UA}: TSYS::sysSleep() in idle (missing connection) replaced to TSYS::taskSleep() for correcting the maximum requesting time. - !!!:DAQ.GPIO: Expanded by the OrangePi (SUNXI) support and unification the user static functions. - DAQ.ModBus: Some original messages expanded. - !!:DAQ.SMH2Gi: Expanded for SMH4 support. - FIX:UI.QTCfg: Take in account the item's description set after its zero value. Forming item's WhatsThis and ToolTip some improved. - FIX:UI.Vision: Translation some fixed. 2018-04-22 Roman (stable) - !!!!:DOC: The document "Release_0.9" has formed and the document "DAQ.GPIO" added. - !!:SYS: DAQ.BCM2835 renamed to DAQ.GPIO and expanded for different boards support. - SYS: The DB selection item "*.*" removed for the main page. - DAQ: create() and destroy() of TTypeParam moved from constructor and destructor of TParamContr to postEnable() and preDisable() respectively, to prevent access to unformed object of TParamContr. - !!!!:UI.QTCfg: Fully revised for the original text messages. Representing for help unified for "StatusTip", "ToolTip" and "WhatsThis" in one function "setHelp()". "ToolTip" limit set for control by a new configuration parameter "ToolTipLim", which is 150 by default. "ToolTip" expanded for HTML labels. - FIX:UI.QTStarter: Fixed for original Qt-messages translation into the main-threading mode. - !!!:FIX:UI.VCAEngine: Prevented from saving not enabled yet items at "enableByNeed". - !!:FIX:UI.Vision: Scaling the main runtime window made absolute from the window original size. Some original messages yet improved, sync with QTCfg and the translation to German advanced. 2018-04-16 Roman (stable) - FIX:data/openscada-proj: "dPrjUser" fixed for set to "~/.openscada" at the variable missing. - !:SYS: "OpenSCADA system" in headers and sources fully renamed to "OpenSCADA". - FIX:UI.WebVision: Primitive "FormEl" processing into the server side moved into a critical section. 2018-04-10 Roman (stable) - FIX:Archive.FSArch: Third argument of the function open() with the option O_CREAT. - !!!!:DOC: "Quick Start" revision and it translation to Ukrainian finished at last. - FIX:DB.LibsDB.vcaBase: The "Analog show" widget translation expanded for the whole expression. The widget "Cooler (cooler2)" renamed to "Cooler 2". Main.{grpGraph,ViewCadr,grpGraph10}: Direct links to "name" replaced by the dynamic one "this.attr("name")", due it processing can be lost sometime. Main.RootPgSo: Prevented for locking all pages of selected signal object (SO). - FIX:DB.Model.AGLKS.vca: All links to the ball cranes were updated. - FIX:data/openscada-proj.in: Fixed for the negative result code of the return operation. - !!!!:SYS,UI.{VCAEngine,Vision}: The term "quittance" renamed to "quietance", from the word "quiet" which is a logical one for the alarms. - !:SYS: main.cpp improved for the original messages. "OpenSCADA system" in headers of the source files mostly renamed to "OpenSCADA". - FIX: Archives: The archivers' objects copying prevented from copy the configuration field "ADDR". - !!!!:Archive.FSArch: Hardly prevented from the configuration field "ADDR" changing both for messages and values. A procedure of the configuration field "ADDR" checking for duplicates added. - !!:FIX:DB.{SQLite,MySQL,PostgreSQL,FireBird}: Translation columns creation at the table fixing added for already and partial translated tables into the non multi-language mode. An additional debug tracing label added. - !!:DAQ.{DAQGate},UI.{VCAEngine,Vision}: Fully revised for the original text messages. - DAQ.JavaLikeCalc,UI.QTStarter: Some revised for the original text messages. - UI.QTCfg: Appended by the navigation tree refreshing after the error copying. - !!!!:UI.{VCAEngine,Vision}: The projects expanded by the using sessions accounting for new pages hot enabling on the sessions. The "Use" field also added for the widgets libraries, as a count of whole using of their widgets. - !!!!:FIX:UI.VCAEngine: FIX: Fixed for accessing to the wrong created session items. Attr::ProcAttr was also appended to the direct inheriting like to the links. - UI.WebVision: The attribute "value" clearance was added after accomplishing the mode "Save" of the view "Button" of the primitive "FormEl". 2018-04-01 Roman (stable) - !:DOC: "Quick Start" continued to revision ongoing of it translation to Ukrainian, in the part 4. - FIX:DB.LibsDB.OscadaLibs: Some original messages are fixed. - SYS: "Template library" renamed to "Templates library". The expression "Gather task priority" replaced in whole to "Priority of the acquisition task". The Ukrainian word "Включено" replaced in whole to "Ввімкнено" and "Виключено" to "Вимкнено". - !!:Archive.FSArch,DAQ.{LogicLev,ModBus}: Fully revised for the original text messages. - FIX:UI.VCAEngine: The attribute "value" of the primitive "FormEl" prevented from the modification flag set at the type change. - UI.Vision: The mode "Load" of the view "Button" of the primitive "FormEl" expanded for use mime and placing the selected file name to the header. - !!!:UI.WebVision: The modes "Menu", "Load" and "Save" of the view "Button" of the primitive "FormEl" are implemented. Some properties of the primitive "FormEl" were fixed to detect the changes. The tree view implementation was set the generic one for use in two places. 2018-03-24 Roman (stable) - !:DOC: "Quick Start" continued to revision ongoing of it translation to Ukrainian, in the part 3. - !!!:SYS: The option --enable-QtMainThrd of the configure time of the building was replaced by the execution command-line option --QtInNotMainThread of the module UI.QTStarter. And Qt working into the main thread is the default mode. - DB.LibsDB.OscadaLibs: DAQ templates base.{manInUnif,anUnif,anUnifSt} expanded for NORM messages oppressing also at wrong connections to the source. - FIX:DB.LibsDB.vcaBase: doc.{docGasNodeDayA,docGasNodeMonthA} fixed for the archival mode and improved for the dynamic mode. - SYS: *.desktop.in fixed for the original name and description. data/{openscada.spec,openscada_mod_ALT.spec,openscada_mod_RH.spec}: The daemon mode init script "oscadad" and "openscadad" renamed to "openscada-server" and separated to "openscada-plc" for the generalization. data/oscada_start.xml: the input transports were commented due to clarify the default configuration file of the desktop mode. data/openscada_start.in: expanded to check for "lock" file of the new project manager. - FIX:SYS.*: The function cmdOpt() set to return empty strings at the empty command-line parameter. The function cmdOptPresent() is used only for the parameter presence checking. - FIX:UI.VCAEngine: Restored and fixed for hot tracing into sessions of changes into widget's links. The session project forbidden to edition into the enabled mode. - !:FIX:UI.Vision: The copy command final rised before the cut one. The InputDlg widget expanded for controlled save and restore the window size, for very expanded ones on the example of the fullsized text edition. FIX: The view "Button" of the primitive "FormEl" forcing to its background color fixed for set the default color. - !!:UI.WebVision: The view "Button" of the primitive "FormEl" some improved and expanded for the extended mode "Save" support. Tracing for the main window resizing set only for the height and with 10% margin in decreasing. 2018-03-16 Roman (stable) - !!:DB.LibsDB.vcaBase: doc.{docGasNodeDayA,docGasNodeMonthA} significant expanded for work in the dynamic mode also. - !!!:FIX:SYS.Android: Expanded for: deep attenuation of the look, building with the official NDK r13, building and signing the release target, setting the package version to 0.9. FIX: For condition variables where CLOCK_MONOTONIC was selected but CLOCK_REALTIME used. Setting for locale added as setlocale(LC_CTYPE, "C.UTF-8"); for Android >= 5. - !:SYS,UI.QTStarter: Generic font was added to the list of the look control fields, initially for Android. - UI.QTCfg: Set adjustable to the generic font real size for: the control tree and the splitter width, the main window initial size. Loading of the "endRunTimer" is decreased. - FIX:UI.QTStarter: Prevented from open the QTStarter main window after successful log in into the QTCfg module. - UI.VCAEngine: Prevented from the missing attributes warnings at switching the primitive "Document" to the dynamic mode. - UI.Vision: Set adjustable to the generic font real size for: the tree view. The view "Button" of the primitive "FormEl" forced to its background color changing by using CSS also, which is needed for the Qt Widgets style "GTK+". - FIX:UI.WebVision: The primitive "Text" disabled from padding arguments by " " and " " used instead. Tracing added for the Web-browser main window resize and the OpenSCADA main page reloading. 2018-03-09 Roman (stable) - SYS,UI.QTStarter: Android look adapted to a default custom theme and CSS. - !!:DOC: Off-line documents Documents/How_to/{Cyclic_programming,Debug,Transferring_project_configuration,Build_from_source,Crash_report,Create_module} are appended by the prefix "How_to_". - DB.LibsDB.OscadaLibs: DAQ templates base.{manInUnif,anUnif,anUnifSt} are appended by checking their execution controller state for oppressing their violations about wrong connections to the source. - FIX:DB.LibsDB.vcaBase: Wrong "tittle" renamed to "title". - DATA.icons,UI.{QTCfg,QTStarter,Vision}: Some low-resolution images of GUI toolbars expanded up to 64x64 dimension in way of the Android look improving. - Archives: Clean up of the current violations table was added by a new button. - DAQ.JavaLikeCalc: The function String.toInt() of the user API set to the base "10" by default. The user API expanded by functions {Boolean,Integer,Real}.{toReal,toInt}(). - !!!:UI.{QTStarter,QTCfg,Vision}: Size of icons and sub-fonts made adaptive from the main-system font real size, for: the title font, toolbars' icons, the navigation tree's icons; by the new function icoSize() and in way of the adaption to Android. !!:Force switching to the style QPlastiqueStyle() (Qt4) or QCommonStyle() (Qt5) was removed by presence of OpenSCADA control of the look and feels. Moving dialogs to the centre of the screen was added for Android. - !:UI.QTCfg: The images "ok.png" and "identity.png" removed and replaced. The fitting mechanism of the scalable items was made faster. - UI.QTStarter: An icon "it_add.png" was added for the button "Create-update a project". Using of the native menu-bar of Android disabled by the attribute Qt::AA_DontUseNativeMenuBar. - !!!!:UI.{VCAEngine,Vision,WebVision}: The primitive "Text" was appended by an attribute "inHtml" and the support of display HTML. - UI.Vision: The images "it_*.png" renamed to "v_it_*.png". The images "ok.png" removed and replaced. 2018-03-04 Roman (stable) - !!:DOC: Appended by Documents/How_to/{Cyclic_programming,Debug,Transferring_project_configuration,Build_from_source,Crash_report,Create_module},Documents/API. - DB.LibsDB.OscadaLibs: servProc.docOffLine appended by the documents Documents/How_to/{Cyclic_programming,Debug,Transferring_project_configuration,Build_from_source,Crash_report,Create_module},Documents/API(EN) for the offline documentaion list. servProc.docOffLine switched more to the default language "en" for common images and generic documents - only in English. - !!!!:SYS,UI.QTStarter: The manager of the OpenSCADA projects expanded for: data/Android/AndroidManifest.xml: data/openscada-proj.in: The user directory of OpenSCADA projects allowed for disabling, setting to priority before the system one and placing to FAT. The user directory of OpenSCADA projects set to "/storage/sdcard0/.openscada". data/debian[_mod]/*.init: Set for disable the user directory of OpenSCADA projects. - !!!!:SYS,DAQ.{*,JavaLikeCalc,SNMP},UI.QTStarter: Most original messages at last improved and corrected. - !!:SYS,DB.DBF,Archive.FSArch,UI.Vision: Generic control for permition of created files by OpenSCADA, added by the command-line parameter "--permCrtFiles" and the function TSYS::permCrtFiles(). - !!:Archive.FSArch: New objects of archivers sets to the default path of storage "ARCHIVES/MESS/" for the projects of OpenSCADA. Archive files renamed from the format "%F %T" to "%F %H.%M.%S" to allow their creation on FAT. - FIX:DAQ.ModBus: Fix for copy parameters of the logical type at the links initiate after. - FIX:UI.QTCfg: Vertically scalable elements fixed for guaranty the previous fit reset before the same fitting. - UI.QTStarter: The look and feel are made for renewing on the go. The manager of the OpenSCADA projects merged the user and system directories of the projects and was set for the projects sorting. The function "Create-update a project" was moved as an independent button, after the projects list. 2018-02-23 Roman (stable) - !:DOC: Appended by Works/To_do,Documents/How_to/{Install,Live_disk,Violations,_alarms_and_notifications}. - DB.LibsDB.OscadaLibs: servProc.docOffLine appended by the documents Works/To_do,Documents/How_to/{Install,Live_disk,Violations,_alarms_and_notifications} for the offline documentaion list. servProc.docOffLine switched to the default language "en" and the missed pages link to there. - SYS:*.spec,debian/control: Translation packages set for dependent from English one. - !!!!:SYS,UI.QTStarter,DAQ.System: QtSensors support was added for the sensors reading into UI.QTStarter and a shared object preparing for DAQ.System and the user API. - !!:SYS: The folder "data/Android" of configuration of the OpenSCADA building for Android was added. data/openscada-proj.in was adapted and its permition checking and setting to the executable was added for call from Android. The command-line argument --modDir was added as a copy of the configuration file parameter "ModDir". - SYS: The function cmdOptPresent() was added for the user projects directory role next expanding. - SYS: ARM CPU-frequency reading expanded in reading "scaling_cur_freq" which available for the ordinal users. - !:FIX:Archive.DBArch: Fixed for single-value request of the value archive. - FIX:UI.QTStarter: Visibility of the button of the OpenSCADA projects call some fixed for Android. 2018-02-09 Roman (stable) - !:DOC: "User API" revision finished. - SYS: data/{debian,debian_mod}/control,data/openscada.ebuild,data/*.spec: somewhat updated for some packages description. - SYS: TODO was updated for re-link to the online document. README was updated. - PrmTmpl,DAQ.JavaLikeCalc,UI.VCAEngine: The document "User API" call from some pages of the configurators of OpenSCADA was added. - !:UI.{QTStarter,QTCfg,Vision}: Qt Windows show mode support was added by the commandline parameter --showWin, for initial and allowed to change from. - !:UI.Vision.ElFigure: Some properties of the common part of the developing mode were moved to the private widget part - for allowance of the feature of the parallel edition at widgets of the primitive execution. 2018-02-02 Roman (stable) - !:DOC: "Program Manual" revision and it translation to Ukrainian finished at last. "UI.QTStarter" significant revised and actualised. - DB.SQLite: Expanded for an error message mark as "Read Only". - Transport.{Sockets,SSL}: The connection error of the outgoing transport was expanded by details. - FIX:UI.QTStarter: Some original messages were fixed. 2018-01-28 Roman (stable) - !:DOC: "Program Manual" continued to revision ongoing of it translation to Ukrainian. - SYS: The meaning of the OpenSCADA station ID set more clear and associated to the station role that is: WorkStation, ServerStation, PLCStation, SimulatorStation. For the main roles WorkStation, ServerStation, PLCStation there were added some representative icons and the station icon set check to its name before. - !!!!:SYS, UI.QTStarter: UI.QTStarter expanded by the Look and Feel control itself and its profiles support from the configuration file table "LookFeel" of the module. Currently to the table "LookFeel" added three pallete profiles of the configuration files oscada_start.xml, oscada_AGLKS.xml, oscada_Boiler.xml. Most of the standard configuration files of OpenSCADA revised for their properties translation and the original messages. - !!!!:SYS: All command line help messages of the core library and modules of OpenSCADA fully revised for the original texts and their translation to Ukrainian, Russian and German. - !!:SYS,Archive.{DBArch,FSArch}: Most original messages and help ones of the subsystem "Modules scheduler", "User interfaces", "Special" and some others were fixed and improved. - SYS: The station name "Empty Station" renamed to "Initial Station". - !:Special.SystemTests: Especially significant revised for all command line help messages. - UI.VCAEngine: The syntax highlight rules of CSS expanded for comments by /* */ of the primitive "Document". - UI.WebCfgD: Renamed from "Dynamic WEB configurator" to "Program configurator (Dynamic WEB)". 2018-01-19 Roman (stable) - DB.AGLKS.St.db: ModBus tests expanded for reading a big PDU by the register 100 reading. - SYS:data/{debian,debian_mod}/rules: The configuration appended by the argument "--disable-static" to disable the static library of the OpenSCADA core build. - !:DOC: "Program Manual" continued to revision ongoing of it translation to Ukrainian. - !!:SYS,Archive.{DBArch,FSArch}: Most original messages and help ones of the subsystem "Archives-History" and some others were fixed and improved. - FIX:UI.QTStarter: Prevent from a multiple entry from processEvents() manual call, observed on QTCfg. - !!:UI.VCAEngine: Implemented for hot update of the widget procedures of the runtime mode. - !:FIX:UI.Vision: Prevented from the runtime window manual resize drop at the user change. !:The view "List" of the primitive "FormEl" rewrote to implement the light updating, for mobile devices like to Maemo, MeeGo. 2018-01-13 Roman (stable) - DB.AGLKS.St.db: Appended by the documented Logical Level parameter experiment.CB7. - !:DOC: "Program Manual" continued to revision ongoing of it translation to Ukrainian. - SYS:Changelog: Some messages are fixed. - SYS,DAQ.{BFN,BlockCalc,DAQGate,FT3,JavaLikeCalc,LogicLev,ModBus,OPC_UA,Siemens},Protocol.UserProtocol,UI.{VCAEngine,Vision,WebUser}: "ID" renamed to "Identifier". - SYS: Help messages of the subsystem "Data acquisition" are improved. - !:FIX:SYS: Final counters dysplay set before the object "Mess" deletion. - !!:Transport.Serial: Added measuring of the maximum char symbol time of the output transports in the requesting mode in the Debugging. Char timeout calculation expanded for take in account whether the device is local (ttyS{X}) where the char timeout multiply to 3 for not local ones. - !!!:UI.{QTStarter,QTCfg,Vision}: The QTStarter menu forming yet one time changed for make the actions independent but the problem of the native menu bar forming in Unity. QTStarter toolbar forming moved direct to the end module. Force visibility of the menubar disabled for the native menu bar. - UI.QTStarter: Qt Style and StyleSheets are temporary added, before full implementation of the custom look and fill control by itself. Icon of the system tray and the main selection dialog appended for the custom project icon by its identifier. - UI.Vision: Main window of the runtime mode set to readjust at the user change. Main menu of the main window of the runtime mode set to the not disabling mode. 2017-12-27 Roman (stable) - FIX:DB.LibsDB.vcaBase: doc.{docGasNodeDayA,docGasNodeMonthA} Fix the summary document generation data for the account hour 0. - SYS:*.spec,debian/*.links: Final switch straight links from "openscada_start" to "openscada". - SYS.{Mess,DAQ,Archives,Transports}: Expand for subsystem specific unloading by implement the function unload() for cleaner complex OpenSCADA projects switch. - SYS: "EmptySt" renamed to "InitSt" as the initial station by default. - FIX:DAQ.DAQGate: Fix for attributes in EVAL for the stopped and disabled modes. - !!!!:UI.QTStarter: Expanded for close (windows) and starting into the system tray. !!!!: Significantly revised for the interface fully creation into the Qt events loop of exec() and WinControl functions moved to the StApp descendant of QApplication. Menu of QTStarter with the Qt modules list was unified as the static storage of the actions for extending menus and toolbars of windows of the Qt modules and the system tray icon. Set icon of the QTStarter dialog to one of the actual project. - !!:FIX:UI.Vision: Maximising, Full-screen, return to the original size of the runtime windows of the visual projects made true and unified at last. 2017-12-22 Roman (stable) - !!:FIX:DB.LibsDB.OscadaLibs: flb_doc.getVal fix for wrong archivators work out. - FIX:SYS: FIX:openscada.spec: Fixed for building on %_vendor == "redhat" and oscada_plc.xml appended beside oscada_server.xml. FIX:*: Some build warnigs are fixed. *: Unwrapping all the shortcuts "(sec)" to ", seconds". !!:XMLNodeObj,XMLNode: Full children clear set from the end for much speed up. Changelog: Some messages are fixed. Some original help messages fixed. Add debug counters clean up into unload(). - DB: Spare configuration area of the table object "/prm/cfg" removed. - FIX:Archive.DBArch: Appended by wrong archives pass of the values. - FIX:Archive.FSArch: Archive files multiple pack-unpack prevented. - DB.SQLite: Requests "BEGIN;" and "COMMIT;" moved under the critical section "connRes". - Protocol.HTTP: mNoFull renamed to mNotFull. - !!:Transport.{Sockets,SSL,Serial}: Output transports were appended by the responsible time measurement in the Debug mode. - !!:FIX:UI.QTCfg: Prevent error messages at resizing and make it after 0.5s. !!:FIX: Fix vertical scalable widgets "Tables" and "Lists" by their placing at the end of the widgets stack. 2017-12-16 Roman (stable) - DB.LibsDB.OscadaLibs: servProc.docOffLine appended by the documents Modules/{Quick_start,How_to}(without Ukrainian still) for the offline documentaion list. - DB.AGLKS.vca: Table "prj_AGLKS_incl" clear from spare records with "ATTRS"='' from old versions of OpenSCADA. - DB.Boiler.St: Table "prj_kotel9_incl" clear from spare records with "ATTRS"='' from old versions of OpenSCADA. - !:DOC: "Program Manual" continued to revision ongoing of it translation to Ukrainian. Appended by Modules/{Quick_start,How_to}(without Ukrainian still). - !!:FIX:SYS,UI.QTStarter: The new project manager adapted to lighter reloading at the projects switching in way of holding UI.QTStarter that fix some Qt configurations exactly for Maemo and seems for Android. Then the reloading performs now on the subsystems level with holding some modules. FIX: Checking filesystem items of projects for presence some fixed. - !!!!:SYS: Switch to the new projects manager: - for desktop files: openscada.desktop, openscada_AGLKS.desktop, openscada_Boiler.desktop; - initial scripts of the daemon mode: debian/openscada-server.init; - new configuration files of the projects "server" and "plc" of the daemon mode and their appending to debian and RPM packages, for: oscada_server.xml, oscada_plc.xml; old direct configurations of this mode must be in function; - the default configuration file oscada.xml moving to the exclusively projects initial configuration where only module ui_QTStarter.so allowed to a project fast selection; - the projects managing external script openscada-proj adapted to create projects' folders at their configuration file only availability, mostly for the daemon mode projects "server" and "plc"; -the old project manager script openscada_start left to the compatibility of the early created *.desktop links. - !!:FIX:SYS.*: Full switch to cmdOpt() from getCmdOpt() and some command-line options ongoing processing fix from early direct using of the system function: --messlev, --modPath. - !!!!:FIX:SYS: XMLNode fixed from spare string size reserving in encoding of the serialization which caused to its performance significant degradation especially on big trees. It must significant rise overall performance in network interaction by XML. - SYS.*: Unwrapping all the shortcuts "(s)" to ", seconds". - SYS: Redundancy appended by the maximum value of measuring of the processing time. - Archives.*: Values and messages archivators appended by the maximum value of measuring of the processing. - DAQ.AMRDevs: Finish of translation to German. - !!:Transport.*: Appended by measurement of the current and maximum time of requesting to protocol, in the "Debug (0)" mode. - !!:UI.QTStarter: Set holded at reloading by signal SIGUSR2 of projects reloading. Self menu for other modules made single one and placed also into property "menuStarterAddr" of the application main object. Made some optimal for busy screen devices like Nokia N900. - !!:FIX:UI.VCAEngine: Document processing tasks closing at executions prevented by these executions processing. !!: Different big (from the main task of the session) perioded widgets processing adapted to execution into different phases then to make the main task loading plainer and lesser at all. - !!FIX:UI.Vision: Runtime menu creation moved to whole mode that is full creation at needs and full clearing at not needs, for prevent the menu show at its inactive mode into some environments like Maemo and Unity. In that menu creation there is used the property "menuStarterAddr" of the QTStarter menu from the main object of the application. 2017-12-08 Roman (stable) - DB.LibsDB.OscadaLibs: DevLib.Nik2303I improved for natural termination criterion checking by Ruslan Yarmoliuk . servProc.docOffLine appended by the documents Modules/{BFN(without Ukrainian still),SoundCard,SMH2Gi} for the offline documentaion list. - DB.AGLKS.St: A preconfigured sound controler object of DAQ.SoundCard set to "default". - !:DOC: Appended by Modules/{BFN(without Ukrainian still),SoundCard,SMH2Gi}. - !!!!:SYS,UI.QTStarter: Built-in manager of projects of OpenSCADA implementation is finished for: - implementing of the platform specific placed to the script openscada-proj which also can be used independently and supports commands: list, proc, create, remove; - directory of user projects set configurable by a command-line argument --projUserDir; - multiple start preventing implemented by functions prjLockUpdPer(), prjLock() and a command-line argument --projLock; - icons and statuses added to prolect's items of the list of selection; - the actual project manager in a BASH script yet allowed but it will be switched to the new built-in at next turn-commit and currently you can see it simple call "openscada". - SYS: Command-line option --coreDumpAllow replaced by --noCoreDump to generate core dumps by default. - SYS,DAQ.{BlockCalc,DAQGate},Protocol.{ModBus,OPC_UA,UserProtocol},UI.VCAEngine: State lablel "Enable" renamed to "Enabled". - !!:FIX:DAQ.SoundCard: Significant revised and fixed for work with the real hardware and virtual ones like PulseAudio and tested on sample rates up to 192000. - FIX:UI.WebVision: Calendar dialog closing fixed and set at the clear timeout also and set it to 10 seconds. 2017-12-02 Roman (stable) - FIX:UI.QTStarter: Fix build for Qt5 in the main thread. - FIX:DB.LibsDB.OscadaLibs: servProc.docOffLine appended by the documents Modules/{Vision(without Ukrainian still),WebCfgD,WebCfg,WebVision,WebUser} for the offline documentaion list. - !!!!:DB.LibsDB.OscadaLibs: DevLib is appended by implementing of electricity counters Nik2303I from Ruslan Yarmoliuk . - !:DOC: Appended by Modules/{Vision(without Ukrainian still),WebCfgD,WebCfg,WebVision,WebUser}. - SYS: Default DB of the config file oscada.xml changed to the same config file, mostly to prevent empty DB files creation at initial configurations. - !!!!:SYS,UI.QTStarter: Initial support of projects OpenSCADA was added in way of which there appended: - strEncode() expanded by the mode "ToLower" for conversion to lower register; - command-line options preloading and direct access-modification by a new function cmdOpt(). - subsystem's modules unloading by unload(); - stopping by user's signals into stop(), where SIGUSR2 reserved for projects switching; - projects managing core functions: prjCustMode(), prjNm(), prjSwitch(); - UI.QTStarter: list of projects of OpenSCADA for controlled switching from initial (only a project selection) or other project; - the actual project manager in a BASH script yet allowed and here left to implement: RW projects copy, new projects creation at template, locking from multiple starting of single project. - DAQ.JavaLikeCalc: "Compile error ..." information expanded by the function ID. - !:FIX:UI.Vision: State of opened windows appended by their users. Main dialogs of the developing mode size and splitter's properties storing and restoring were added. Qt > 5.3 fix for wrong QAbstractTableModel::sibling() implementation by it reverting to QAbstractItemModel implementation. 2017-11-25 Roman (stable) - FIX:DB.LibsDB.OscadaLibs: servProc.docOffLine appended by the documents Modules/{VCAEngine(without Ukrainian still),QTStarter,QTCfg,FLibSYS,SystemTests,FLibMath,FLibComplex1} for the offline documentaion list. - !:DOC: "Program Manual" continued to revision ongoing of it translation to Ukrainian. Appended by Modules/{VCAEngine(without Ukrainian still),QTStarter,QTCfg,FLibSYS,SystemTests,FLibMath,FLibComplex1}. - !:DB.SQLite: Journals removing before open any DB was added. - !!:DAQ.{BlockCalc,DAQGate,DCON,LogicLev,Siemens,System}: The deprecated attribute "Clock period (ms)" removed. - Special.SystemTests: Some original messages fixed. - UI.{QTCfg,Vision}: Main window (developing for Vision) size and splitter's properties storing and restoring were added. - UI.QTCfg: Pages refresh at vertical size changing was added. Stop for cyclic refreshing at wait dialog termination was added before same termination. 2017-11-17 Roman (stable) - FIX:DB.LibsDB.OscadaLibs: LowDevLib.BME280 next some fixed by Arcadiy Kisel. FIX: servProc.wacko2media appended for processing "__", "!!(color)!!" and fixed for unpaired paddings before list symbol " *". servProc.docOffLine appended by the documents Modules/{ICP_DAS,Siemens,DiamondBoards,Comedi} for the offline documentaion list. The execution limit next rose to 240 seconds. - DB.LibsDB.vcaBase: Main.cntrPaspExt expanded to parameter name into the title. - !:DOC: "Program Manual" continued to revision ongoing of it translation to Ukrainian. Appended by Modules/{ICP_DAS,Siemens,DiamondBoards,Comedi}. - SYS: --enable-QtMainThrd set conditional in it default value that is "yes" for Qt5 and "no" for Qt4. - FIX:Archive.FSArch: Translation to German some fixed by Oleksiy Bondarchuk. - !!:FIX:DAQ.{DCON,ModBus,Siemens}: Mutex objects "enRes" and "reqRes" set to recursive ones by Alexey Bondarchuk. - Special.SystemTests: The name and description some expanded. - !!:FIX:UI.Vision: Main window restored for correct title into the runtime mode. !!:FIX: View "Text" of the primitive "FormEl" is fixed for crashes at placing on external windows of the runtime mode. Spare Mutex Objects removed from the object "UserStBar". 2017-11-14 Roman (stable) - FIX:DB.LibsDB.OscadaLibs: LowDevLib.BME280 fixed from SYS.Transport.SerialnodeAt(). - !!:SYS.TConfig: Prevented from recursive entry to cfgChange() by a flag mInCfgCh. - FIX:SYS.Security: Prcessing of plain passwords storing was fixed for hashe's salt limit in 8 symbols. - FIX:Transport.Serial: SPI_MODE_0 using set to a direct number "0" but some environments miss the definition. 2017-11-10 Roman (stable) - !!:DB.LibsDB.OscadaLibs: servProc.docOffLine appended by the document Modules/SNMP for the offline documentaion list. The execution limit rose to 180 seconds. All templates of the library "LowDevLib" fixed for connection to a transport using nodeAt(). The templates libary "LowDevLib" appended by a new template "BME280" of the chip BME280 support implementation from Arcadiy Kisel. - !:DOC: "Program Manual" started to revision ongoing of it translation to Ukrainian. Appended by Modules/SNMP. - SYS,DAQ.SNMP: Some original messages were fixed. - SYS.Function: Number of manual calculations of internal procedures set to 1 again, by default. - SYS.Security: In hashed passwords their allowed to store in plain, mostly for the storages which are primarily in edition. - !!:Transport.Serial: Expanded for initial support the bus "SPI". - UI.{VCAEngine,Vision}: Deleted widgets from inherited containers resoring was added at alike widget creation try, instead incomprehensible messages. That is the first service used the warnings mechanism of the control interfase of OpenSCADA! 2017-11-03 Roman (stable) - !!!!:DOC: OpenSCADA switched to a new scheme of the project off-line documentation forming directly from the project Wiki just by the OpenSCADA procedure "docOffLine" execution. Then folders doc/{en,uk,ru} of the source texts tree of the project were cleaned from previous old documentation in PDF and generated for a new one in HTML. The new off-line documentation is not a completed one and will be appended in way of readiness of the documentation sorce on Wiki of the project! - !!!!:DB.LibsDB.OscadaLibs: The part of low level devices of the parameters template "DevLib" disjoined into a different library "LowDevLib" and the remained part was mostly updated and translated. JavaLikeCalc library "Service procedures(servProc)" appended by the function "wacko2media" of Wiki syntax convertion from WackoWiki to MediaWiki and by the function "docOffLine" of the project offline documentation generation from the project Wiki. - !:SYS: Original messages of the program core some updated and number of calculations of internal procedures set to 1, by default. - !:SYS,UI.{QTCfg,QTStarter,Vision}: Off-line documentation call adapted to the new new scheme of the project off-line documentation forming. - !!!:SYS.XMLNodeObj: Appended by an user API function getElementsBy() of XML nodes list obtaining by tag name or some attribute value. - SYS.TArrayObj: arSet() adapted to the array end appending by a negative index. - !!:FIX:SYS.XMLNode: Unified and fixed in serialization to XHTML for: preventing self-finished tags for "script", "div; preventing of symbols "'" and '"' encoding into text (also for generic XML); UTF8 symbol 0xA0 encoding to " ". - !!:FIX:Archive.FSArch: Some messages expanded for more information. Name of objects of archive files moved under resource by using MtxString. Added checking and clearing for zero archive files. Buffers of archivation of messages and of info-files of values set safer, for possible random data reading. Checking for parameters of value archives added to prevent crashes at wrong ones of deep broken archives. - DAQ.JavaLikeCalc: Original messages some updated. - FIX:UI.QTCfg: Prevented from high load at the respond waiting progress dialog. 2017-10-21 Roman (stable) - !!!!:DB.LibsDB.{OscadaLibs,vcaBase}: JavaLikeCalc.Controllers.prescr and Main.{prescrEdit,prescrRun,prescrRunSimple} expanded for backgrounded steps support and some fixes about pauses. - FIX:UI.Vision: View "CheckBox" of the primitive "FormEl" processing fixed for signals preventing at set value from the model. - FIX:UI.VCAEngine: Attribute "var{X}val" of the primitive "Text" set to translated for strings. 2017-10-11 Roman (stable) - SYS,DAQ.{MMS.libMMS,OPC_UA.libOPC_UA}: After adaption to build for OpenWrt and with uCLibC, resourcesAllow true checking some changed but it has yet problems with Automake 1.9. - FIX:SYS.Mess: {mLang2CodeBase,mLang2Code} moved under the data resource. Strings' encoding disabled for language "C" and the encoding "ASCII". - FIX:SYS.Security: Fixed for crash on try login at not initiated empty password with its hashing support. Functions crypt_r() and crypt() processing was added. - Special.FLibSYS: Function str2real() moved to use s2r(). 2017-10-06 Roman (stable) - SYS: In way of adaption to build for OpenWrt and with uCLibC there was made: - resourcesAllow true checking for build without the resources (folders "data" and "doc"), mostly by problems at "automake" here execution; - librt checking changed from the function clock_gettime() to clock_nanosleep(); - for libcrypt checking there used function "crypt"; - including to src/tmess.h; - checking for __UCLIBC__ into TUser::auth(); - iconv buffer set to "const char *". - SYS,UI.QTStarter: Word "system" mostly replaced by the word "program". - !!!!:SYS,DAQ.{AMRDevs,FastWel,ICP_DAS,SMH2Gi}: A self implementation was added and used for the function atof() and strtod() in the function TSYS::str2real() and its shortcut s2r() and for understand both radix symbols of float point value that is "." and ",". That doing was made in way of switching to native LC_NUMERIC value but here yet present other problems: scanf() for floats and external environments work, like JavaScript of WWW. - DAQ.{MMS.libMMS,OPC_UA.libOPC_UA}: Function TSYS::str2real() and its shortcut s2r() placed and used to the independent library. - FIX:SYS: Call for online documentation fixed for the main page "Documents/". - SYS,Transport: Offset part in left added to binaries decoding by the argument's value "". - FIX:SYS.XMLNode: Encoding UTF code 0xA0 to " " replaced to " " but " " caused errors on pure XML (not XHTML), observed on UI.WebCfgD. - DAQ.BlockCalc: Attributes description format some rewrote. - !!:Special.FLibSYS: VArch::set() expanded for single value writing to the archivator of the archive. - UI.{QTCfg,WebCfgD}: Scalable items set optimal for vertical fitting, but straight increasing per 5 pixels too slow on some graphical environments like virtual machines and VNC. - FIX:UI.{VCAEngine,Vision,WebVision}: Adapted to mark service commands, like primitive's "Diagram" tracing", to "noUser" and doesn't perform updating UserActTm on their. 2017-09-23 Roman (stable) - SYS.DB: Height of the field of the SQL requests decreased to 2 rows. - SYS: Binaries decoding expanded by the argument's value "" for text field in right forming. - FIX:SYS: Call for online documentation fixed for correct translation of opened document's page and for some pages: "Documents/Program_manual". - !!!!:SYS.Transports,Transports.*: Generic IO log for both input and output transports was added into the core and all transport modules. Resource lock object nRes renamed to assTrRes, its type changed to ResMtx and function nodeRes() removed for the input transport object. Manual requests result of the output transports in binary mode switched to the new variant "". - Protocol.ModBus: Resource object nodeRes() (nRes) replaced by the system one dataRes(). - Protocol.SelfSystem: Some renamed. - Archive.FSArch,Protocol.{ModBus,HTTP},UI.{QTCfg,QTStarter,Vision,WebVision},Special.SystemTests: Some source codes cleaned. 2017-09-14 Roman (stable) - FIX:SYS: Disable wrong DB.LDAP building for all Debian based. - DB.LibsDB.vcaBase: export="1" for all documents with values was added. - SYS: Checking for ldap.h for module DB.LDAP was added. - SYS: data/debian/control: Appended by a commented dependency for libldap2-dev. - !:SYS,UI.{QTCfg,QTStarted,Vision}: The online documentation call was switched for call ones from the new Wiki but some pages are not alowed here now before them moving. - !!:DB: Tables' content display set to configurable limited, by default it is 100 rows. - FIX:SYS.TRegExp fix in function match(), for hang and crash prevent. - !!:DB.{SQLite,MySQL,PostgreSQL,FireBird}: Preloading of fieldSeek() set limited on 100 records, for long unterminated hangs prevent. - UI.QTCfg: Shorted long helps for ToolTips were appended by "Shift+F1". - UI.WebCfgD: Adapted to hierarchical help pages, for symbol "/" encoding. 2017-09-08 Roman (stable) - !!:DB.LibsDB.vcaBase: doc.docGasNodeMgn fixed for the table title. - !!!!:DB: A new module LDAP was added. 2017-08-25 Roman (stable) - !!!!:SYS.Transports,Transports.*,DAQ.{AMRDevs,DCON,MMS,OPC_UA,SMH2Gi,Siemens,ICP_DAS,FT3},Protocol.{ModBus,HTTP,SelfSystem,UserProtocol}: The generic accessing lock of the outgoing transport was moved to mutex and the argument "noRes" was removed from the function messIO() to prevent from unexpected outcomes from the critical section of requests. - DB.LibsDB.OscadaLibs: The template base.gasPoint was expanded for connection to a real diaphragm. - !!:DB.LibsDB.vcaBase: doc.{docGasNodeDayA,docGasNodeMgn,docGasNodeDayOrder} was adapted to generic nodes link as a template and the translations were fixed. All documents of the library "Documents" were some updated and their procedures were set to not translated. - FIX:DB.Model.AGLKS.{St,vca}: Generic flow-account node was linked to diphragm PP1 of the model of the technological process AGLKS both for the DAQ object and its documents. - SYS.TFunction: Expanded by a field language for functions lang(), setLang(). OpenSCADA control items from "/tr/langs" of the tab "Translation" of the main page were moved to permition RWRW__. - DAQ.JavaLikeCalc: Expanded in translation command tr() for set and use force language. - !:Protocol.HTTP: Expanded by a list of users allowed for auth. - !!!!:Transport.{SSL,Sockets}.out: Transport's functional lock of resources was merged with reqRes(). - Transport.Serial.out: Input buffer clear set to double one and moved closer before same writing. - !!:UI.VCAEngine: Next level of improving of dynamic messages translation for requesting user and language: into primitive "Document" and its procedure, session attributes. !: Added control for user action by its last action time. Appended by user functions of the session space: reqTm(), reqUser(), reqLang(), userActTm(). FIX: Restored for values and configurations translation of user's attributes. - !!: UI.Vision: Added control for the runtime user by a visualizer specific attribute "userSetVis" of the main page and by expanding of the user's status widget and the selection dialog. 2017-08-18 Roman (stable) - FIX:DB.Model.AGLKS.vca: Signal objects KM101 name translation was also fixed. - !!!!:SYS,DB.*,DAQ.{BFN,BlockCalc,JavaLikeCalc,LogicLev,ModBus},Protocol.{ModBus,OPC_UA,UserProtocol},UI.VCAEngine: The flag TCfg::TransltText was moved to TFld::TransltText and used instead TFld::NoStrTransl also which removed. - !!!!:FIX:SYS,*: The dynamic messages translation mostly finished and expanded after gettext adaption to the dynamic messages translation: !!: Gettext translation was expanded by language selection different from system one into functions TMess::I18N(), TMess::I18Ns() and their moving to not static ones, TModule::I18N(). !!:*,UI.VCAEngine: Functions set of the dynamic translation was expanded for complex translation by pointed language and user next; by functions: trLU(), TMess::translGetLU(), trSetLU(), TMess::translSetLU(). !!: The OpenSCADA control interface was expanded by generic attribute "lang" additional to "user" one for the dynamic messages language checking firstly. FIX: The config file accessing functions were fixed and closely adaptred to the dynamic messages translation. !!:TModule,DAQ.JavaLikeCalc,Special.SystemTests,UI.{QTCfg,QTStarter,VCAEngine,Vision,WebCfg,WebCfgD,WebUser,WebVision}: modInfo(): expanded for name syntax "{NAME}[:{lng}]" and request for information translation in pointed language. TModule: Twice translation try was disabled for modules - first is self and second is from core. FIX:DB.{SQLite,MySQL,PostgreSQL,FireBird}: Dynamic messages translation saving was fixed for not base languages. !!!!:Protocol.HTTP,UI.{WebUser,WebVision}: Expanded for multi-languages interface by: URL parameter "lang", auth user's language, Web browser's language. Templates also set to support multilanguage. !!!!:UI.Vision: Mostly adapted to system menus and dialogs dynamic messages translation of the run-time interface. Left untranslated only Qt-internal messages which unalowed to dynamic translation and without all system locale changing! 2017-08-05 Roman (stable) - DB.LibsDB.vcaBase: Main.TextLab adapted for only color dynamic control. doc.{docGasNodeDayA,docGasNodeMonthA} significant expanded for new methods, to control archivator and the report hour. - DB.LibsDB.vcaElectroEls: Expanded by new widgets: Transformer (tr), Transformer (tr1), Switch (sw). - FIX:DB.Model.AGLKS.vca: Signal objects KM102, KM201, KM202, KM301, KM302 name translation was fixed. - FIX:UI.VCAEngine: Improper pages closing was fixed for multiple container pages. 2017-07-28 Roman (stable) - !!:DB.LibsDB.OscadaLibs: flb_doc.{getVal,sumVal,averVal} were significant cleaned, rewrote and expanded but with back compatibility saving. - !!:FIX:DB.LibsDB.vcaElectroEls: Significant clearing and full translation were finished. Procedure of the item "Key" was fixed. - Archives: Tabs "Messages archive" and "Value archives" of the control page were renamed to "Messages" and "Values" respectively. - !!!!:FIX:DAQ.JavaLikeCalc: The resource fRes() dead locking was prevented after the wrong optimization. - FIX:UI.QTCfg: Function ConfApp::pageDisplay() double call sometime was prevented. - UI.WebVision: The source code was some cleared. 2017-07-21 Roman (stable) - SYS: "langinfo.h" and "syscall.h" were set for conditional one, initially for Android original NDK. __ANDROID_API__ getting was added to deep control for conditions of Android, initially it is for pthread_condattr_setclock(). - !:UI.Vision: Working without printers by QT_NO_PRINTER was added, initially it is for Qt 5.8 on CrystaxNDKr10. 2017-07-14 Roman (stable) - !!:DB.LibsDB.vcaElectroEls: Significant cleared and expanded. Will be continued to finish the cleaning and translation. - UI.VCAEngine: Limit of the generic attributes "geomXsc" and "geomYsc" was expanded from [0.1:100] to [0.01:100]. - FIX:UI.Vision: ID of copying and moving widgets was set to encode for TSYS::oscdID to prevent errors here for wrong symbols. FIX:Included widgets resizing and moving in the developing mode by keyboard were fixed for mouse cursor position changing even to the widget's changes. !!!:FIX: Main window maximising and opening to full-screen were fixed to prevent the operations by the visualizer specific attribute "runWin" working only from the master page. The main window size was set to fit the master page size after return from maximising or the full-screen and opening in the original size. - FIX:UI.WebVision: Text of buttons into the custom mode was fixed for next line symbol "\n" and words breaking at overflow by CSS property "word-break". 2017-07-05 Roman (stable) - FIX:DB.LibsDB.vcaBase: doc.docMessRep was final fixed for filtering by level, for all languages. - FIX:DB.LibsDB.vcaElectroEls: Fixed for procedures of the last items: "stGen", "stGen1", "conBus". - SYS.acinclude.m4: Macro AX_PTHREAD was updated to last version. - SYS:Changelog: Significant cleaned in process of releasing 0.8.18 LTS. - SYS,DAQ.OPC_UA.libOPC_UA: ieee754.h included to adapt for float point in IEEE754. - DAQ.{LogicLev,ModBus}: Values size of the stored attributes of the logical parameters expanded from 200 to 1000000. - FIX:DAQ.LogicLev: Fixed for uninitiated access to "err(f_err)" attribute into the debug mode. - FIX:{DAQ,Protocol}.ModBus: The extended type "String" was fixed to ModBus register's natural order in "BigEndian", seen on Sycon Instruments STM-3. FIX:Syntax highlighting was fixed for four digits-registers for extended types "_u4", "_d". - UI.QTCfg: Binary data representation changed to view "B[{ByteStream}]". - FIX:UI.{Vision,WebVision}: Some original messages were fixed. - UI.Vision: Items visibility were restored for editing widget and for: "VisItClear", "VisItChDown", "VisItProp". 2017-06-30 Roman (stable) - SYS:data/{debian,debian_mod}/control: Build with MariaDB as a variant of MySQL was added. - SYS:Changelog: Significant cleaned in process of releasing 0.8.18 LTS. - FIX:DAQ.DAQGate: Was finally fixed and tested for hierarchical parameters processing for levels more at 2. - SYS.Transport.SSL: The method "SSLv2" was finally removed but it is not secured and fully removed from OpenSSL 1.1. - UI.QTStarter: A first module starting at empty list of started modules was disabled. - FIX:UI.VCAEngine: The translations were some fixed. - FIX:UI.Vision: Images of primitive "Media" clean at an empty string set was added. - FIX:UI.WebCfgD: Table of the table items wrong indent was fixed. - FIX:UI.WebVision: Scale dimension was increased to 3 digits after dot for correct scaling to big screen. 2017-06-23 Roman (stable) - DB.LibsDB.vcaBase: doc.docMessRep was fixed for filtering by level. - DB.LibsDB.vcaTest: test.gen was decreased to fit the cadre into project AGLKS. - FIX:DB.Model.AGLKS.vca: The project was fixed for "frame" removing from pasport's widget. - SYS: An command-line option "lang" was added, initially for Android. Generic integration to call from Android JNI finished. - SYS.SSL,Transport.SSL: Symbol for checking SSL library changed to "SSL_free" but SSL_library_init missed on OpenSSL 1.1. The method "SSLv2" was removed (commented) but it is not secured and fully removed from OpenSSL 1.1. - SYS: Values' (attributes of parameters of DAQ) info were appended by state "Read only". - FIX:DAQ.DAQGate: Was fixed for hierarchical parameters processing for levels more at 2. Expanded for allow write to configure's attributes "NAME" and "DESCR". - UI.{VCAEngine,Vision,WebVision}: An attribute "mult" was added to view "List" of the primitive "FormEl" to able multiple lines selection. 2017-06-21 Roman (test) - DB.LibsDB.vcaBase: Main_io.cntrPaspExt was expanded for: full-frame mode of "View" at other modes hide, hidden attributes list support into "hideAttrs", removing "frame". - FIX:SYS: Qt checking macro was fixed for Qt4 checking before. - SYS: TMess::getUTF8() function was added and used for UTF-8 symbols detect into XMLNode::encode(). - FIX:Transport.out: User API function messIO() was expanded for return string type everywhere. - !!!:XMLNode: User API function text() was expanded by argument "full" for all child's texts combine. Functions save() and saveNode() set to constant ones. !!!: The serializer was expanded to true check for UTF-8 symbols and " " processing in function encode(). !!: The parser was expanded for entity " " processing on UTF-8. - DAQ.DAQGate: Size of the configuration field STATIONS was decreased to two rows. - !!!:UI.QTCfg: Scalable vertically items were finished to implement their true fitting for: texts, tables and lists. 2017-06-16 Roman (stable) - DB.LibsDB.vcaBase: Icons of views of the main page were restored to opaque but not in full size, for buttons' background seeing. - DB.LibsDB.vcaElectroEls: Was appended by some new items. - FIX:SYS,DAQ.JavaLikeCalc,Protocol.{ModBus,UserProtocol}: Some original massages were fixed. - Protocol.{ModBus,UserProtocol},UI.WebUser: Expanded for tracing and notification for program's changing. - UI.QTCfg: Text items size was fixed. - UI.QTStarter: Splash ensuring was disabled for Qt starting not into main thread. - FIX:UI.Vision: Separator "\n" was set for encoding by TSYS::base64 to storages. FIX:Opening to developing windows fitting was set conditional for an active and maximised window miss but there has a problem in Qt. - UI.WebCfgD: Acknowledgement buttons of text items moved to left, for big screens. - UI.WebVision: Switched to use filters for display inactive images into buttons. 2017-06-09 Roman (stable) - !!!:FIX:SYS: A new configure option --with-qt5 was added for Qt5 forcely checking and using. A new configuration option --enable-QtMainThrd was added to switch the module UI.QTStarter for working in main thread of the program. A new configuration option --disable-CoreLibVersion was added to disable version of the core library. Android messages support was added. Modules separator of option "ModDir" of OpenSCADA was changed to ';'. FIX: The function TSYS::sysTm() was set adaptive one for the task "SYS_HighPriority" execution. - DAQ.JavaLikeCalc: Entry to procedures of the module set more optimal by direct locking the critical section. - FIX:DAQ.LogicLev: The parameter's debug mode was disabled for passive modes (f_err is EVAL) of the parameters but the debug message accumulates into the attribute "err". - !!!:Protocol.HTTP,UI.{WebUser,WebVision}: ACL support was added to control access and visibility of items of indexes of Web resources. - FIX:UI.QTCfg: sizeHint() and minimumSizeHint() processing was fixed. - !!!!:FIX:UI.QTStarter: Two modes of execution Qt were added, first is old one into different thread (by default) and second is new one into main thread (by the configure option -enable-QtMainThrd). FIX: Splash set to passive one for second mode. - UI.WebVision: Font of title of the child's windows was set to 12pt. 2017-06-02 Roman (stable) - !!!!:DB.LibsDB.OscadaLibs: DevLib is appended by implementing of electricity counters Mercury 200 and 230 from Arsen Zakojan . - FIX:DB.Model.AGLKS.vca: Fixed for a spare horizontal line. - !!!:FIX:SYS.ModSchedule: Modules closing at exit was set to all the modules closing firstly and next all the module's libraries unlinking. For fix like to WebKit crashes at exit. !!!: Modules scanning procedure was expanded by the module's name template into the end of the path, mostly for Android where all libraries place into one folder. Function ScanDir() and CheckFile() were renamed to dirScan() and fileCheck() respectively. - !!!!:FIX:SYS: Some original messages were fixed. !!!!: The system core in generic expanded for support main thread monopoly modules, like Qt GUI main thread into QtStarter. Generic service calls moved to a different thread "SYS_Service". The main function main() appended to OpenSCADA core library for builds for Android. - FIX:DAQ.ModBus: Managing of duplicate attributes of the standard parameter was fixed. - FIX:Special.FLibComplex1: The translation was some fixed. - !!!!: UI.QTStarter: Moved to Qt execution into the main thread by main thread monopoly modules mechanism of OpenSCADA core. - UI.VCAEngine: Links checking for activity was added to the dynamic linking mechanism. - FIX:UI.Vision: Icons setting of internal windows moved before the window show, for the development mode. - FIX:UI.WebVision: The property "wordWrap" of primitive "Text" support was added. 2017-05-26 Roman (stable) - DB.LibsDB.vcaBase: A new cadre "Main.alarmsAct" of table of active alarms is added and used into main page of the project AGLKS. A new cadre "doc.docMessRep" of unified protocol of messages is added and used into the project "archBrowser". The generic page implementing expanded by buttons of views hide at pages miss here. The project "archBrowser" moved to an unmodified main page, graphics group "grpGraph10" using and a new cadre "doc.docMessRep" appending to generic messages observe. Translation some updated. - FIX:Archive.FSArch: Fix for translation. - FIX:UI.Vision: Fixed for opened to edition widgets size on big screens. 2017-05-19 Roman (stable) - DB.LibsDB.vcaBase: Main.objProps adapted to the first column hide. - Archive.{DBArch,FSArch},DAQ.LogicLev: Some original messages were fixed. - !!!:Archive.FSArch: Expanded for INFO files store into a standalone DB file of SQLite into the archivator's folder. - FIX:UI.WebVision: Borders and transparent backgrounds processing was fixed. Spaces processing for primitive "Text" was set to "white-space: pre-wrap". 2017-05-12 Roman (stable) - !!:FIX:DB.LibsDB.vcaBase: Main.RootPgSo some fixed for the combobox with the allowed for directly select pages. FIX: Main page of the project "archBrowser" expanded for the combobox with the allowed for directly select pages. !!:Projects "tmplSO" and "archBrowser" were switched to the extended pasport of the standard parameters. The external pasport (Main.cntrPaspExt) adapted some to display by UI.WebVision. - !!:DB.ModelsDB.{AGLKS.vca.db,Boiler.St.db}: The Project was switched to the extended pasport of the standard parameters. - FIX:DAQ.DAQGate: Requests were fixed after moving to different station. - FIX:DAQ.System: Some warnings from Valgrind were fixed. - !!!!:FIX:Transport.SSL: Fixed into client's part for correct free which caused for crashes and blockings. !!!!: Wide tested on browsers Chrome, FireFox; for file handlers free and into Valgrind. - FIX:UI.VCAEngine: Some original messages were fixed. - UI.Vision: The view "Table" of the primitive "FormEl" was expanded for field "width" equal to 0 processing to hide the column. - UI.WebCfgD: The navigation tree and dialogs forming were some improved. - !!!!:FIX:UI.WebVision: View "Tree" of the primitive "FormEl" implemented. FIX: Dialogs, small built-in windows, forming was some fixed and improved. FIX: System context menu oppressed for active widgets. FIX: View "Table" expanded for columns hide by field "width" equal to 0 and the selection loss was prevented. 2017-05-05 Roman (stable) - DB.LibsDB.vcaBase: Main.RootPgSo expanded by yet one pages navigation element that is combobox with the allowed for directly select pages. - SYS: The generic node was expanded by a user API function "messSys". - !!:FIX:Transport.SSL: Fixed for SSL_free() missing and variables "ctx", "ssl", "conn" clean at second start, into the output part. - !!:FIX:UI.WebCfgD: The "Table" element processing for big content was some improved and fixed for key items edition. 2017-04-21 Roman (stable) - UI.WebVision: Items edition implemented for the view "Table" of the primitive "FormEl". 2017-04-14 Roman (stable) - DAQ.ModBus: Set for using ID at empty Name part of DAQ. - UI.WebVision: Active mode for selection for the view "Table" of the primitive "FormEl" implemented, Next task are edition of content of the cells of the table... 2017-04-07 Roman (stable) - SYS:configure.ac: Checking for "libintl" was changed for function "libintl_bindtextdomain" and checking for libiconv was moved before. - FIX:DB.LibsDB.vcaBase: Main.objProps fixed for checking to the write mode. - UI.Vision: X scaling used into result column width of the view "Table" of the primitive "FormEl". - UI.WebVision: Context display for view "Table" of the primitive "FormEl" mostly implemented. Next tasks are selection processing of items (cell, column, row)... 2017-04-02 Roman (stable) - SYS:configure.ac: Checking for LibGD was set combined with and next without PKG_CHECK_MODULES(pkg-config). - SYS:configure.ac: Fix for Fedora 12 - SYS:configure.ac: Checking for LibGD was moved to PKG_CHECK_MODULES(pkg-config) for proper static linking. - SYS: The environment variable HAVE_GD_CORE was renamed to HAVE_GD_FORCE. Checking for HAVE_CONFIG_H was added for "config.h". - DAQ.ICP_DAS,UI.{QTStarter,QTCfg,Vision,WebCfgD,WebVision}:Makefile.am: *_LIBADD was replaced to *_LDFLAGS. - FIX:UI.WebCfgD: Checking for "gd.h" was fixed. - FIX:UI.Vision: The primitive "FormEl" in view "Table" was fixed for properties of columns. 2017-04-01 Roman (stable) - DB.LibsDB.vcaTest.db: Tests collection cadre of primitive "FormEl" expanded for view "List" and "Table". - SYS:configure.ac: Checking for "linux/can.h" moved to same the module Transport.Sockets. Checking for "inux/serial.h" was added for the module Transport.Serial. Checking for LibGD was removed from the module UI.WebCfgD. The order of modules of the subsystem "Special" was set to the priority one. - SYS:acinclude.m4: LibGD checking macro was expanded for dependencies "-lpng -ljpeg -lfontconfig -lexpat -lfreetype" to allow the libraries linking statically. - FIX:SYS,DAQ.System: Some original messages were fixed. - Transport.SSL: Adpated to tmpnam() wrong placing into "/tmp/??" on Android. - FIX:Transport.Serial: Checking for "linux/serial.h" was added and for "linux/i2c-dev.h" was fixed. - FIX:UI.Vision: The primitive "FormEl" in view "Table" was fixed for properties of columns. - !!!:FIX:UI.WebVision: Expanded for view "Table" of the primitive "FormEl" initial implementation. Internal functions nodeText() and setNodeText() were replaced to "textContent". FIX: The view "Button" of the primitive "FormEl" was fixed for words wrap on Chrome browser. Views of "Combo box" and "List" of the primitive "FormEl" were made simplified. 2017-03-25 Roman (stable) - SYS:configure.ac: Test AX_LIB_OpenSSL() call fix for DAQ.OPC_UA. - SYS:configure.ac: String [0.9] of the replacing version of the OpenSCADA building fix. 2017-03-24 Roman (stable) - FIX:DB.LibsDB.vcaBase: wlb_Main.graphSelPrm fixed for linking "/DAQGate/..." and for current item's address correct display into the "prm_" prefix. - SYS:configure.ac,acinclude.m4: The source texts were mostly cleaned for the formation style and messages. - SYS:acinclude.m4,Special.FLibSYS: OpenSSL checking macro was expanded by the optional test "AX_LIB_OpenSSL_opt" and the tests were appended by the libcrypto checking. - SYS:configure.ac: Checking for spare header's files was removed. Checking macros of the modules OpenSCADA was placed into the importance order. - SYS: Some spare headers were removed from the source code. - SYS:TModSchedul: Adapted for optional pointing the core library name and path by the configure environment "CoreLibNmToDlOpen", on LibC variant Bionic of Android. - SYS:TSecurity: Support of the hashed passwords was expanded to use the locked function crypt() on crypt_r() miss. - FIX:DAQ.DCON: Include/builtin to the OpenSCADA core fixed. - FIX:DAQ.{LogicLev,Siemens,System}: Some originale messages were fixed. - DAQ.OPC_UA: Adapted to include/builtin into the OpenSCADA core. libOPC_UA: Needed parts of ieee754.h were moved to the file directly. - Special.FLibSYS: Description of the function dbReqSQL() was expanded. - Transport.SSL: The function getservbyname_r() was switched to getservbyname(), for Android. SSLv3_server_method() and SSLv3_client_method() functions were set to disabled by OPENSSL_NO_SSL3 definition. - !!!:FIX:UI.WebVision: Width of the popupmenu was fixed for context menus. FIX: Behavior of the primitive "Media" for not "Fit" mode was fixed to prevent the scale problems in way of full removing the tag . Vertical alignment was added to images of the primitive. !!!: The views "Spin bar" and "Scroll bar" were implemented. The view "Scroll bar" is equal to "Spin bar" now. 2017-03-19 Roman (stable) - SYS:build: Into configure.ac the AC_CHECK_LIB was replaced by AC_SEARCH_LIBS mostly and the library "librt" checking was added. 2017-03-18 Roman (stable) - SYS:data/{debian,debian_mod}/rules: dh_compress was prevented from files of documentation in ODT compression also. - SYS: Some pre-adapting to Android by: build: The macro AX_PTHREAD was appended and used. AM_INIT_AUTOMAKE call was set shorter. Libraries were moved from their direct pointing into src/Makefile.am to checking, for: -lpthread, -lm, -ldl, -lcrypt, -lz, -lpcre Some messages into configure.ac were fixed. ResAlloc: Check and define "__GLIBC_PREREQ" to 1. pthread_condattr_setclock() disabled for Android as it missed. Needed parts of ieee754.h were moved to the file. Multi CPU management and pthread_attr_setinheritsched() were disabled for Android. Mess: Messages encoding was disabled for a charset "US-ASCII", it's default one on Android. Security: libcrypt checking was expanded for crypt.h. Transport.Sockets: The function getservbyname_r() switched to getservbyname() for Android. - DAQ.Siemens: "INCLUDES" was replaced by "daq_Siemens_la_CFLAGS" and "daq_Siemens_la_CXXFLAGS". - Special.FLibSYS: The user API function dbReqSQL() was moved to the features of the function SYS.BD["TypeDB"]["DB"].SQLReq(). - !!!:UI.WebVision: View "Line" of the primitive "FormEl" was expanded by the calendar dialog for date variants. Generic CSS properties moved to *.html file. Processing event of the wide combobox (list) was changed from "onchange" to "onclick" to the processing guaranty. Generic improvement. 2017-03-13 Roman (stable) - SYS:data/{debian,debian_mod}/rules: dh_compress prevented from files of documentation in PDF compression, to allow its using from UI.QTCfg mostly. - FIX:UI: docGet() is fixed at online documentation processing after the local one unsuccessful processing. 2017-03-12 Roman (stable) - FIX:UI.QTCfg: InputDlg wrong initialization on the previous commit fixed. 2017-03-11 Roman (stable) - UI.QTCfg: Fields "ID" and "NAME" of the node control dialog were set to the unlimited size for next these changing from inforamtion of the control interface. - !!:UI.WebVision: The visualizer specific attributes support was added through its activation. !!:Main page scaling to fit to the window of the browser allowed space was added, only to grow and with the aspect ratio control. !: Background of the primitives processing was moved to common and after the ones processing and the background transparency-opaque support was added by a separated block (div) creation with the opaque level. 2017-03-05 Roman (stable) - DB.LibsDB.OscadaLibs.db: DevLib.1602A expanded to connect by I2C (PCF8574). - DB.LibsDB.vcaBase: Main.ElViewGraph expanded to the name "" blink prevent and spare saving prevent once after the successful loading at start. - FIX:UI.WebVision: WebVisionVCA.html fix for its presence into EXTRA_DIST. 2017-03-04 Roman (stable) - FIX:UI.WebVision: Miss file WebVisionVCA.html placed to the source tree. 2017-03-03 Roman (stable) - SYS: The user API functions are appended by function utime() and mtime(). - !!:FIX:Archive: Fixed for checking for a proper archivator by its periodicity, which allow for correct selection archivators in periodicity more then one minute in graphics building. - !!:FIX:Archive.FSArch: Fixed for too long messages back reading and wrong messages reading was prevented at all. Function of archivators checking is fixed for correct processing of the capacity limit of the values archiving by the archives sorting to remove its files at maximum quantity. - !!!:UI.WebCfgD: Fitted to allowed space for scalable by vertical elements: texts, tables, lists. Border color of the input elements was changed to "gray". The structural class "SSess" was moved to strucure type. - !!:UI.WebVision: The XHTML part of page was moved to an separated file like the JavaScript one. All generic CSS rules were moved to the XHTML file. Moving to using pgCreator() was finished. pgCreator() was expanded for simple requests processing in local. The structural class "SSess" was moved to strucure type. 2017-02-26 Roman (stable) - SYS: data/openscada_start.in: workarounded for bug into "zenity", for sending selection items as "{item}|{item}" (observed on Ubuntu 14.04). - Archive.Value: User API functions were appended by setVal(). Direct writing to archives was expanded for all buffer's which aren't the buffer of archive. - FIX:DB.{.,SQLite,MySQL}: Some control items of OpenSCADA control interface were fixed for their permition. - DAQ: Some fields of the diagnostic request dialog are merged to single line, for controller object. - FIX:UI.{docGet(),QTCfg,QTStarter,Vision}: Force documents in background execution for online ones. Checking for online documents is disabled by it's can be long and wrong, then there use only links to default language pages (EN). Function rewrote for options as flags. - !!!:UI.WebCfgD: GD library was replaced by the CSS filters and set optional by --enable-LibGD. FIX: List items processing was fixed for ones without ID. Internal dialogs were expanded by drop shadow and a transparent background for disable access to the main area. Date fields were moved to a type "datetime-local" of the tag "input". Online documentation call was added. FIX: Elements merging into single line was fixed by CSS rule "white-space: nowrap;" but the constant was set to "white-space: normal;". Elements indent was set to "padding-left: 10px; text-indent: -10px;". Length of the number elements was set to the fixed one by 10 symbols. Item copy was expanded by it copy to its root through self. 2017-02-16 Roman (stable) - The ChangeLog significant cleared next. - FIX:Protocol.OPC_UA{*.libOPC_UA}: The resource "mtxData" added to object Server and used for the security channels container management. - Special.FLibSYS: The static function str2int() expanded for 64 bits. - Transport.Serial: Checking to present the header file linux/i2c-dev.h added to build on Linux distributives like SuSE. - FIX:UI.WebCfgD: List items were expanded for commands to empty list. Self dialogs were expanded for the main space locking and for a box shadow appendeding to them. 2017-02-11 Roman (stable) - DB.LibsDB.OscadaLibs: DevLib.{1W_DS9097,W_DS9097U}: Expanded by configuration property "tryEVAL" to manage spuriously connections loss. - The ChangeLog significant cleared. - SYS.TFunction: Spare attribute "mDimens" removed. - FIX:Archive.DBArch: The requested values area set to fill by EVAL before the real data reading to set holes by EVAL. Direct requesting for values criterion set for the period of requesting data to archive's one bigger at 10 times. - DB.=Tmpl=: The functions getVal() and setVal() set to the unified view. - DB.{FireBird,SQLite}: The function setVal() set to the unified view. - DAQ.AMRDevs: The configuration's file size limit for Kontar source set to USER_FILE_LIMIT(1048576 byte). - DAQ.JavaLikeCalc: The translation is appended some. - FIX:Protocol.=Tmpl=: Adapted to actual semantic of the function TProtIn::mess(). 2017-01-31 Roman (stable) - SYS: MtxString expanded by the object's constructor. - !!:FIX:DAQ.ModBus: ResString in whole replaced to MtxString. FIX:Attribute "addr" and "real" of the logic mode were placed to MtxString for prevent crashes on its modification at run. - UI.WebCfgD: New standard design some expanded and improved. - UI.WebVision: Primitive's "Text" and "FormEl.Button" set for "white-space: pre-line". 2017-01-27 Roman (stable) - DB.PostgreSQL: Statistic of control the activity and lags expanded by the maximum time request. - UI.QTCfg: The window title forming some changed. - !!!!:UI.WebCfgD: A new design created. Adapting to new HTTP call functions HTTP_GET, HTTP_POST and there is moving whole to the generic pages creator HTTP::pgCreator(). 2017-01-19 Roman (stable) - FIX:SYS: The message "Some tags on path '%s' are missed!" was fixed for the argument and rewrote to "Entry %d of the path '%s' is missed!" - SYS: The function TVarObj::AHDDisConnect() rewrote to prevent a messages into the lock section. - !!:DB.PostgreSQL: DB object expanded by a statistic to control the activity and lags. - DAQ.JavaLikeCalc: Controller's object status was expanded by the maximum time of execution. - Protocol.HTTP: Source codes were appended by the user API function pgCreator() description. - FIX:Special.FLibSYS: Translation was fixed something. - !!!:FIX:UI.VCAEngine: FuncM resources lock set for a recursive to prevent dead locks. - FIX:UI.WebUser: Source code cleaned and the translation corrected. 2017-01-17 Roman (stable) - SYS.DB: Errors placing to result's Array attribute "err" from exceptions are added for user API function SQLReq(). - SYS.Module: modFunc() of declared functions pointer getting was expanded by no exceptional calls and a result. - !!!!:Protocol.HTTP: Significant unified into service pages creation by the single function pgCreator(). The function pgCreator() primarily implemented as an user API function of HTTP module's object for allow its using into WEB-submodules for self but single-style service pages. The main page's template splited from the generic template for allow absolutely custom main pages. !!!: External calls to the WEB submodules expanded by functions HTTP_GET(), HTTP_POST() with an argument TProtocolIn *iprt, but the old calls HttpGet(), HttpPost() also continued to check and support. Current folder force added to the template's resources checking. - !!!!:UI.{WebUser,WebVision}: Expanded for using the unified service interface from Protocol.HTTP by pgCreator(). - !:UI.WebUser: Semantics of the page's function expanded by two objects' arguments "This object" and "Protocol's object". - !!:UI.WebVision: Font's behaviour was expanded to support for text decorations "underline" and "line-through". The primitive "Text" representing for rotated texts moved to use CSS property "transform: rotate({X}deg)". 2017-01-12 Roman (stable) - FIX:Protocol.HTTP: Navigation by FS for the templalate file was fixed. External template using expanded for main page without the Web-modules index and to allow for redirect to other page there, for Login/Logout using the internal templete continued in that case. - Special.FLibMath: The source code cleaned. - Special.FLibSYS: Appended by function floatExtract() for extract exponent and mantissa from that float value. 2017-01-09 Roman (stable) - !!!!:Protocol.OPC_UA{*.libOPC_UA}: Hello/Acknowledge properties set configurable and client's ones also storing. New OPCAlloc object is added for mutex handle and its automatic free for exception. Some locks loss fix. A copy constructor was added for object NodeId and the strange problem here closed. !!!!: Chunks support was added to server's part. Tested on chunks into input requests for insecure and secure connections. !!:FIX: Publish requests, and messages in general, queuing and next its processing fixed for secure connections and for Acknowledges for insecure ones after in direct processing. - !!:FIX:UI.QTCfg: Crashes into ConfApp::selectItem() prevented after "selectPage()" call by the possibility of the items selection changing. Dangerous missed page refreshing prevented into applying changes on widgets of the replacing page, "Apply dialog for changes missing prevent". - FIX:UI.VCAEngine: Something prefixes ":" replecing to ": " fixed yet. 2016-12-29 Roman (stable) - data/icons: Images Protocol.HTTP.png and Protocol.SelfSystem.png updated. - SYS: Disabled nodes are prevented in processing into TCntrNode::isModify(). - Protocol.OPC_UA.libOPC_UA: Maximim notifications per publish limit processing some improved. - UI.{WebCfg,WebCfgD,WebUser,WebVision}: Module's icon obtain machanism is changed. - UI.WebVision: Icons to project's and session's items are added. 2016-12-26 Roman (stable) - DAQ.{LogicLev,ModBus}: User API function attrAdd() expanded to apply flags "text" and "ro" for present attributes. - FIX:Protocol.HTTP: Check for module's icon and other images into folder "icons/" moved after the template's resources checking. 2016-12-25 Roman (stable) - FIX:DB.LibsDB.vcaBase: Main.{grpGraph,grpGraph10} Trend's control panel open at the cadr open changed for work on UI.WebVision. - data/icons: Protocol.UserProtocol.png changed and UI.WebUser.png added. - UI.TUIS: Expanded by function mimeGet() to detect mime type by the original info, file extension and tis content. - !:Protocol.HTTP: Expanded for the main selection dialog with images and context help for allowing WWW-modules. - !:UI.VCAEngine: Adapted to TUIS::mimeGet() using. - UI.Vision: Unloaded mimes' extension sets to stored with the resource before taken from the mime type. - !!!!:FIX:UI.WebVision: adapted to asynchronous calls for all regular updatings by servGet() and makeEl() adapting to it. For primitive "Text" set "line-height" for prevent upper font's padding. View "Button" of primitive "FormEl": fixed for next line processing, fixed for true text and image represent. Generic views of primitive FormEl set for padding to "0". SVG images show fixed by correct mime processing into UI.VCAEngine and TUIS::mimeGet() using. 2016-12-19 Roman (stable) - Protocol.OPC_UA.libOPC_UA: Subscription cycle's counter restore. - DB.LibsDB.OscadaLibs: User protocol "DCON" in the input part was fixed for commands detect "#" and "@". - Protocol.OPC_UA.libOPC_UA: Expanded to early publish requests processing after requests of subscription and monitored items creation, for the init publish requests. 2016-12-16 Roman (stable) - TArchive: EVAL_RFlt and EVAL_RDbl detection for values fix. - TConfig: EVAL forms conversion is added to TCfg::set{S,R,I,B}(). Integer conversion fix to 64bit. - !!!!:DB.{SQLite,MySQL,PostgreSQL,FireBird} : Expanded to NULL using for generic EVAL store/represent. getVal() some expanded and unified. - !!:Archive.DBArch: Cleared and simplifyed for subtypes and its EVAL variants support. - DAQ.JavaLikeCalc: User API string's function toInt() is expanded to int64. 2016-12-13 Roman (stable) - SYS: Debian packages building was appended by translation for module BCM2835. - FIX:DAQ.*: Wrong word "Parameteres" fixed. 2016-12-11 Roman (stable) - DB.LibsDB.OscadaLibs: The template DevLib.UPS expanded by attribute "alDelay" for alarms delay control. - !:FIX:SYS: Function strNoSpace() expanded for processing symbols control and renamed to strTrim(). Default processing symbols set to " \n\t\r". For function strTrim() created a short call sTrm() and its used everywhere. FIX:XMLNode's flag LD_NoTxtSpcRemEnBeg fixed for spaces in begin. - FIX:DAQ.BCM2835: Fixed for the static function place into the control interface. - DAQ.JavaLikeCalc: String functions list expanded by a function trim(). - !!!:Protocol.SelfSystem: XML loading expanded by option LD_NoTxtSpcRemEnBeg using to allow for spaces at begin and end of the text items. 2016-12-09 Roman (stable) - DB.LibsDB.OscadaLibs: The template DevLib.UPS expanded by alarms' borders. Templates base.{anUnif,anUnifSt} expanded by attribute "var" into the input processing procedure for allow stored counters implement and so on. - DB.{AGLKS,Boiler}.St: Main archivators' limits some changed and set all archives's size limit. - !!!!:DAQ.OneWire: Removed by replacing proper user protocol templates. - DAQ.BCM2835 is appended by translations. - UI.WebVision: Some changed in ElFigure implementing code for crashes in Post. 2016-12-07 Roman (stable) - DB.LibsDB.OscadaLibs: DevLib is appended by GPIO devices' templates: Humidity Sensors DHT11, DHT12, AM2302, AM2320 and LCD Display Module 1602A. DevLib.SCU750 changed to IO fix for type "int8". - DB.AGLKS.St: Modbus controller objects fixed for logical type's storing table. - DB.{SQLite,MySQL,PostgreSQL,FireBird}: Message about rows missing at get some appended. - FIX:DAQ.ModBus: Fixed and adapted to user attributes processing pass. - FIX:Special.FLibSYS: IO is fixed for types "int8" and "char" split processing, mostly in its read. - UI.QTCfg: Allow page update after warnings at items loading. 2016-12-06 Roman (JavaLikeCalc_testing) - DB.LibsDB.OscadaLibs: Templates base.{anUnif,anUnifSt} expanded by attribute "alDelay" for split it from "Tf" for alarms delay and propogate it for all alarm types. Notifications dispatcher is pevented from early starting at "f_start". - DAQ: Program translation sign of templates set to disabled by default. - !!!!:DAQ.JavaLikeCalc: Support of the dynamic linking to external functions added in way: function {nm} = "{addr}"; {nm}();. External functions link and call optimized at all. - FIX:DAQ.LogicLev: User attributes removing prevented at the parameter's object enable, for passive ones. 2016-12-02 Roman (core_testing) - !!!!:FIX:SYS: TCfg was fixed to use TVariant string as a constant for STL string. TVariant expanded for STL string using always except fields marked as "stdStringOmit", mostly for TCfg as string constants (DB table's keys). - !!!!:DAQ.JavaLikeCalc: Object's functions call was optimized for the name direct pass into the calling command. 2016-11-27 Roman - !!!!:DB.LibsDB.OscadaLibs: DevLib is appended by RTC chip on I2C DS3231 implementing. DevLib.UPS: expanded for values in EVAL process. DevLib.{1W_DS9097,W_DS9097U}: Expanded by support 1Wire chips: DS2408, DS2450, DS2438. UserProtocol is appended by a memory chip AT24CXX access procedure. - !!:DAQ.DAQGate: Adapted to store parameters' assignment for stations to allow its for early restoring without need to sync. - FIX:DAQ.JavaLikeCalc: workRegControl() moved under function resource's locking. 2016-11-16 Roman - FIX:SYS: Main config property "ClockRT" fixed for load only from the config-file and in its description. TValue::chldAdd() fixed for the Archive subsystem mark as setToUpdate() only for successful appending. - FIX.Archive.{FSArch,DBArch}: checkArchivator() prevented from exceptions at a wrong archive starting else to pass it. - FIX:UI.Vision: Events notify objects removing at the master window minimizing fix. 2016-11-15 Roman - !!:DAQ.DAQGate: Control for automatic removing parameters and attributes added by an option. Spent time expanded by the maximum value. - FIX:UI.VCAEngine: Widgets list into the widget's parent field expanded and fixed for list all items of project tree to any depth. - UI.Vision: Expanded for authentication message error detailing. 2016-11-13 Roman - DB.LibsDB.OscadaLibs: DAQ.JavaLikeCalc service procedures, controllers and regulators libraries were cleaned and unified. Devices template library was appended by template of the pressure I2C sensor BMP180. - Function,UI.VCAEngine: pthread_mutex_t replaced by ResMtx. 2016-11-09 Roman - SYS: sysSleep() moved to clock_nanosleep(), CLOCK_MONOTONIC and clock_gettime() for short times lesser to 300us. - FIX:DAQ.BCM2835: Librarie's function bcm2835_delayMicroseconds() moved to clock_gettime() for prevent crashes into the not privileged mode. - FIX:UI.VCAEngine: Static functions' name and description of the primitives are fixed. 2016-11-08 Roman - Transport.Serial: "No stop on proceed" option is added to output transports. 2016-11-07 Roman - TSecurity: User API function User::groups() and Group::user() added. - DAQ.JavaLikeCalc: "Program translation allow" disabled by default. String's user API function parseLine() is added. 2016-11-03 Roman - FIX:DB.LibsDB.OscadaLibs: Notifications dispatcher adapted to object's attributes deletion by the operator "delete". - FIX:DB.LibsDB.vcaBase: Main.ElViewGraph: Adapted to store static parameters in the selection mode. - SYS: TVariant::propClear() expanded to single property clean. - !!!!:DAQ.JavaLikeCalc: Expanded by operator "delete" for objects or its properties free. 2016-11-02 Roman - FIX:SYS: Discard for attributes of object clear at EVAL assign. - !!:FIX:DB.LibsDB.OscadaLibs: Notifications dispatcher expanded by the notify messages criteria of its category and level. - SYS: data/openscada_start.in: expanded by first argument --ProjName={PNm} project's selection. - !!:DAQ.System: Expanded by "FS" data source. Automatic creation of sources expanded to modes of the sources "Fast" and "Slow". - UI.QTStarter: X Session manager disabled from restart the closed at exit programms. 2016-10-30 Roman - !!:FIX:DB.LibsDB.OscadaLibs: Notifications dispatcher unified, stabilized and status is added for SMS and EMail sent by direct OpenSCADA functions. !!:Self SMS send implementing unified and expanded for: disable ECHO, check/set PIN, TEST and PDU SMS mode. FIX:Self SMTP implementing fixed for localized field "Date" by use an external call for utility "date". - FIX:UI.Vision: Cursor wrong setting sometime for current time position fix for primitive "Diagram". 2016-10-29 Roman - FIX:Transport.SSL: TLSv1.1, TLSv1.2, DTLSv1 set to build for SSL version >= 0x1000114fL. - Transport.Serial: Char limit value expanded to 10000 ms, for output. - FIX:UI.QTStarter: Build for Qt5 fixed. 2016-10-28 Roman - !!:FIX:DB.LibsDB.OscadaLibs: DevLib.IEC60870: Fix for the new behavior of attributes of Object free by EVAL set. !!:Self implementing for EMail sent by SMTP is added as an user protocol's function, implemented: pure, SSL/TLS, AUTH. !!:Notifications dispatcher Controllers.ntfDispatch expanded by using self SMTP implementing for EMail send. - !!!!:SYS: More functions set to constant after some objects appending by a copy constructor. !!!!:More errors and warnings fix from PVS-Studio report, thanks to Maksim Kochetkov: TCntrNode: Possible wrong into copy node function by unsigned group's index. TCntrNode,TConfig,TRegExp,Archive,DB.{MySQL,PostgreSQL},DAQ.{AMRDevs,JavaLikeCalc},Special.FLibSYS,UI.{Vision,WebVision}: Possible collision into function arguments or an internal variable name and the class method. TVariant: Middle strings reallocation is set to the result check. XMLNodeObj,DAQ.{*,AMRDevs,Siemens},Archive.{*,FSArch},UI.QTCfg: Some logic made simply. !!: Adapted and some fixed to build by GCC v6 with C++11 by default. - DAQ.{Templates,JavaLikeCalc},Protocol.ModBus,UI.VCAEngine: Items deletion procedure termination at DB error added. - FIX:Special.FLibSYS: FFT buffers "free" using fix, instead "delete". - !:Transport.SSL: Expanded by the direct methods TLSv1.1, TLSv1.2, DTLSv1. - UI.QTStarter: Adapted to Qt5 specific method QTranslator::translate(). - FIX:UI.VCAEngine: Virtual function PrWidget::setEnable() fixed for the second argument. 2016-10-25 Roman - FIX:DB.LibsDB.vcaBase: Main.{grpGraph,grpGraph10,ElViewGraph} fixed to per-user saving selected graphics. - !!:FIX:DAQ.Templates,Archive.FSArch,DAQ.{JavaLikeCalc,ModBus}: Data fields removing at the preloaded SEEK fixed. 2016-10-24 Roman - DB.LibsDB.vcaBase: Attributes Main.{grpGraph,grpGraph10}.grpName were removed at last. Main.{grpGraph,grpGraph10,ElViewGraph} adapted to per-user saving selected graphics. - UI.VCAEngine: Programs translation by default set to false. - FIX:UI.Vision: Events MouseButtonPress, MouseButtonDblClick fixed for put to next level widget into this container. 2016-10-23 Roman - FIX:DB.LibsDB.OscadaLibs: Notifications dispatcher Controllers.ntfDispatch as a JavaLikeCalc function is added for send EMail (by sendemail) and SMS. UserProtocol.SMS: fixed, expanded and adapted for stated work. - SYS: TSecurity::access() function expanded for allow groups list as a separated by ',' one. Base64 encoding/decoding method some expanded for line separator point as an argument. TVarObj: pthread_mutexattr_t next replaced to ResMtx. Properties clear at EVAL set is added. - FIX:DAQ.JavaLikeCalc: Internal function's space splited for temporary registers. - UI.{QTCfg,Vision,WebCfg,WebCfgD}: Primary commands expanded by "copy". - !:UI.Vision: Widget's tooltip and statustip show some fixed and included to put the events to next level widget into this container. 2016-10-18 Roman - FIX:DB.LibsDB.OscadaLibs: DAQ template DevLib.SSCP: Loading of big LIST files performance some rised, by OpenSCADA core fix also. - !!!:SYS: TVariant for string type expanded for store too big data, more for STR_BUF_LEN(10000), as the standard string, and then significant increase the performance. - !!!!:DAQ: Template's configure's field variant "Constant" renamed to "Variable" and "Public constant" to "Constant" respectively. - UI.Vision: Widget's tooltip and statustip set to show at not full transparent widget's parts. 2016-10-11 Roman - DB.LibsDB.OscadaLibs: DevLib.IEC60870: Expanded for single items description. - !!:FIX:SYS: LibZ functions were rewrote for some unification and the used memory optimization. - FIX:DAQ.{BlockCalc,LogicLev}: Input links processing moved out of the attributes modifications detection into calc(). 2016-09-28 Roman - FIX:DB.LibsDB.OscadaLibs: DAQ template DevLib.SSCP: Fix for bool type represent. Load big LIST files performance some rised. - FIX:SYS: The functional templates fmin() and fmax() added. FIX:TRegExp fix in function split(), for hang and crash prevent. - Archive: Into getMess() used fmin() for previous problem. Attribute "tm" of the Array result of user API function "getMess" changed to type "int". - FIX:Archive.DBArch: Messages archivation part fixed for "needMeta" and to deny an access to the archivator before the successful meta get. - FIX:DAQ.JavaLikeCalc: The syntax highlight some fixed for strings and backslash '\' in variant "\\". - Special.FLibSYS: Function strParse() expanded for multisymbols separation. 2016-09-23 fido_max - DAQ.FT3: KA DAQ refactored and fully implemented (BTU, BVT, BVTC, GZD, GNS). Params save/load, set/refresh implemented. 2016-09-22 Roman - FIX:Arhives: getMess() fix for double call modules' function get(). Some fields of the messages request dialogs are merged to single line. Some debug messages are added to getMess(). - UI.Vision: Source code of primitive ElFigure some addition cleaned. 2016-09-21 Roman - !!:Archive.DBArch: Lost DB managing and its early connection restoring is added and some tested. - !!:FIX:DB.*: EVAL writing fix. Detected and tested on PostgreSQL. Messages and errors forming moved to new API. - DB.PostgreSQL: Some tracing debug information is added. Error transactions commit is added. 2016-09-20 Roman - DB.LibsDB.vcaBase: Main.{grpGraph,grpGraph10}: Set to the trend's control panel open on it start. - FIX:DAQ,Archive: The redundant request procedure fix for prevent the object stop at scaning requests, by previous host. - FIX:Archive: getVal() fix for request to the current value but the buffer end() some lesser to it. - FIX:Archive.{*,FSArch,DBArch}: Exceptions into archivatorAttach() at the archivator's object stopping are prevented for allow the archive early start. Archive.{FSArch,DBArch}: The modules adapted for early archivators init and archive's meta set from the physical archives. - !!!!:FIX:Archive.DBArch: Reading of the value archives set optimal for the request time, up to ten times, through using the "MARK" key and the seek request. FIX: The end of pushing accumulated values set to minimum from the data block's end and the group end. Adapted to direct writing beyond the main accumulation process with limits and meta update. Adapted to redundancy. Values archivation period limited to the resolution in seconds. 2016-09-16 Roman - !!:FIX:Archive.{*,FSArch}: Spare writings direct to the archivators prevented for TVArchive::setVals(). !!:FIX:Last read buffer information is added and the property using fix. - DAQ: The value archive's part set firstly readed for redundancy processing. - FIX:Archive.DBArch: Set values processing mostly fixed to return the correct last time. 2016-09-12 Roman - DB: LibsDB.OscadaLibs.db: DAQ template of the protocol "Temperature measurement IT-3 (IT3)" were expanded to detect the external connection loss. Template PCF8574 is added to the library DevLib. PCF8574 is I2C 8DIO. - FIX:SYS: data/oscada_gentoo.init is some fixed by IrmIngeneer. - !!:FIX:Archive: Value archivator is expanded for the accumulation mode support, mostly for Archive.DBArch. FIX:TValBuf: Fix for the object copy by the copy constructor appending and some fields lack. - FIX:TConfig: Fix for the object copy by the copy constructor appending and its reserved for implementing of copying the items to single ones. - FIX:TElem: Fix for the object copy by the copy constructor appending and its reserved for full implementing further. - FIX:Archive.FSArch: Adapted to values accumulation API. Values archivator fixed for the function stop() prototype. - !!!!:Archive.DBArch: The value archivation part expanded by the archives grouping into one group table, mostly for the archivation performance rise. Checking of the module meta table is added for creation the lack value archives, like into Archive.FSArch. Value archives limit is rose to days. Extended types int16_t, int32_t, int64_t, float and double archivation support is added. - FIX:UI.WebVision: The prototype "Media" processing some fix for "fit" toggle and container's scale changing. 2016-08-31 Roman - DB.LibsDB.vcaBase: tmplSO.graphSelPrm some improved. - FIX:SYS: Long locking at the redundancy state request is prevented by the resources reorder. - UI.VCAEngine: Sessions were expanded for diagnostic and profiling per pages/widgets and subtrees. 2016-08-30 Roman - !!:DB.LibsDB.OscadaLibs: DAQ template DevLib.IT3 and the user protocol part expanded by a passive mode, by list a different session. JavaLikeCalc function lowLevDevs.DHT expanded for AM2320, DHT22 (AM2302) support. - !!:DB.LibsDB.vcaBase: tmplSO.graphSelPrm significant expanded for selection from list and fast search. Main.{grph_panel,grpGraph,grpGraph10} adapted to store scaling context by mouse's window. - DAQ.LogicLev: Expanded to allow writing from external to the RO attributes "err" and all other for the "f_err" EVAL. - !!:FIX:UI.VCAEngine: Session calculation time expanded by its maximum value. Attribute addition expanded and used at manual creation by the attribute "allInher" for its creation inheritance. New created attribute's ID ("newAttr") and NAME set for indexing. - !:UI.Vision: The view "List" of primitive "FormEl" expanded by appending the pointed but missed values to the list. - FIX:UI.{Vision,WebVision}: Current values tracing of primitive "Diagram" for big periodics, in days, is fixed. 2016-08-26 Roman - !!:DB.LibsDB.OscadaLibs: DAQ template DevLib.1W_DS9097U finished and final working. - !!:DB.LibsDB.vcaBase: Main.grpGraph adapted for show self scale of a selected parameter. Main.grph_panel fixed for restore after scale by window only for allowed data. Main.ElViewGraph expanded for select by focus in also. - Transport.Serial: User API function sendbreak() is added to output transport. 2016-08-25 Roman - !!!!:FIX:DB.LibsDB.OscadaLibs: DAQ template DevLib.oneWire renamed to DevLib.1W_DS9097 and some simplified. New DAQ template DevLib.1W_DS9097U is added for allow OneWire support by an adapter DS9097U, based on the chip DS2480. DAQ template DevLib.SSCP expanded for types "dt" and "time" support and the allowed to selection variables list moving to RO text attribute. Groups of graphics and the control panel expanded to visualizer UI.Vision specific feature of selection/scaling by window drawn by mouse. The attribute "enForce" naming of ElViewGraph fix. - FIX:UI.VCAEngine: setEnable() of widget and its succession was expanded by the argument "force" like to pages. FIX: Primitives force activation for not loaded active attributes is added after the widgets loading try, into the widgets libraries. FIX: Units removing after the preloaded seek is fixed. FIX: Session's pages force enabling, at a request, prevented after its manual disable. FIX: User attribute ID prevented to set for empty. Visualizer specific attributes activation expanded for only present attributes activation, no creation. - !!:UI.Vision: Visualizer specific attributes are alowed for the primitives and an attribute "sclWin" added and used for primitive "Diagram" for trends view in scale by window drawn by mouse. 2016-08-25 fido_max - DAQ.FT3: General cleanup and refactoring of source code. KA DAQ implemented (BTU, BVT, BVTC, GZD, GNS). KA TANK object added. Translation fixed. Major erros fixed. 2016-08-16 Roman - UI.Vision: For primitive "Diagram" of the mode "Trend" the sliding by mouse is added in the time axis. 2016-08-15 Roman - !!!!:SYS: Function mess_sys() is added to the object TCntrNode to create system messages with the node path into the category and the node's location into the message begin, by the new function nodeNameSYSM(). Function err_sys() is added to object TCntrNode to create error objects with the node path and the node's location. The new TCntrNode object's functions have used everywhere into the OpenSCADA core. Some of the system messages moved to the debug category. - Archive.FSArch, UI.VCAEngine: The module moved to use the functions TCntrNode::{mess_sys,err_sys}(). 2016-08-11 Roman - FIX:DB.LibsDB.OscadaLibs: DevLib.SSCP some fixed for type "real" process and messages. - !!:FIX:Special.FLibSYS: IO object was fixed for byte orders of type "real" using as the integer bytes, but not native. 2016-08-07 Roman - !!!!:DB.LibsDB.OscadaLibs: To the templates library "DevLib" new template "SSCP" is added for implement Shark Slave Communication Protocol. !!!:DAQ template DevLib.oneWire: fix to the search algorithm and it's tested for 13 sensors on the bus; appended by the devices support: DS2413 (tested), DS1822, DS1820/DS18S20/DS1920. DAQ template DevLib.PCF8591 some fixed for set values to EVAL on errors and stability. - FIX:SYS.XML: Crashes on empty string encoding try to fix. - !!:FIX:DAQ.JavaLikeCalc: Freeing of the function's test execution context is added on this function stop, for some crashes on exit prevent. !:FIX:Return of the included functions fix for the string constant "" override. - !!:FIX:Special.FLibSYS: The system functions were appended by the Message Digest 5 (MD5) calculation function by OpenSSL. FIX: IO object was fixed for type "char" (1 byte) counted reading. 2016-08-02 Roman - !!!!:DB.LibsDB.OscadaLibs: To the templates library "DevLib" new template "oneWire" is added for implement OneWire bus by DS9097 and for DS1820. Template DevLib.PCF8591 expanded by the AI set to EVAL on errors. - SYS: For user API TVal::set() there prevented writing to no writable values of the configurations. New user API function TVal::isCfg() added. - DAQ.ICP_DAS: SDK was updated to the last version of "ICP DAS". - DAQ.JavaLikeCalc: Syntax highlight expanded to the command "~". - Transport.Serial: The timeout "symbol" was expanded by "the next request's multiplicator to the {symbol} time, 4 by default". 2016-07-27 Roman - SYS: taskUtilizTm() expanded by the argument "max" to obtain the maximum value and the value changed to seconds. The function taskDescr() added to get a link to the current task description structure. - DAQ.{BlockCalc,LogicLev,ModBus,Siemens}: The task's execution status was expanded by the maximum consumption value. - !!!:DAQ.LogicLev: Moved for set the attribute "f_frq" to the real (instantaneous) frequency, taken from the task description structure. The parameters task's consumption measurement is added, into attribute "err", into the Debug mode of the controller object. 2016-07-24 Roman - !!!!:SYS: The RW resources allocation object "Res" renamed to "ResRW". Conditional variable management object "CondVar" is added. FIX: ResRW::{resRequestW,resRequestR}() in wait timeout are forced to CLOCK_REALTIME but the pthread_rwlock unallowed to use any other. The object ResString moved from the direct mutex managing for the ResMtx. - !!:UI.QTCfg: Moved from QMutex and QWaitCondition to ResMtx and CondVar, mostly to prevent here hangs on the system time changing. 2016-07-23 Roman - !!!!:SYS: The system option "clockRT" is added for select the tasks planning clock as CLOCK_REALTIME but else it's CLOCK_MONOTONIC (default now). time2str() and tm2s() of the astronomic time were renamed to atime2str() and atm2s(). time2str() and tm2s() of the relative time were moved from microseconds to seconds origin. taskSleep() in the "cron" argument is moved to pure (string) representing for the origin point hold for the astronomic clock changing detect and cron's target correction then and also for the consumption meassuring by the taskUtilizTm(). - DAQ.{BlockCalc,DCON,LogicLev,Siemens}: The deprecated property "PERIOD" processing fix to allow it's replace next by the propery "SCHEDULE" forcing to rewrite and "PERIOD" to clean. - DAQ: The unfinished module "EPICS" was removed but the project "YAPU" forbidden. - FIX:UI.QTCfg: Crash prevents for system's time change. 2016-07-21 Roman - !!:Transport.Sockets: Output transport's reading for reply in check to SO_ERROR moved to step 2 to take some time for delayed reading but same SO_ERROR reading sometime long. 2016-07-19 Roman - DB.LibsDB.OscadaLibs: Template PCF8591 is added to the library DevLib. PCF8591 is I2C 8-bit A/D and D/A converter. - !!:Transport: User API function messIO() expanded by the input buffer size. The input buffer size was also added to the manual request dialog of the output transports. - Transport.Serial: Checking for the allowed I2C_SLAVE definition is added, and to build for Nokia N800. - UI.QTCfg: Checking for integer input field's range is added. 2016-07-18 Roman - !!!:FIX:DB: DBs loading interruption is prevented after loading with the ready configuration and an error here. - !!:FIX:DAQ.BlockCalc: For IO presenting check there was used an uninterrupted ioId() of the function object. - !!:Transport.Serial: Output transport expanded to check and use I2C. - !!:Transport.Sockets: Reading reply of the output transport after FD_ISSET is false expanded by reading socket's SO_ERROR and waiting interruption on any socket error. Early broken pipe detection and like ones for sockets allowed. 2016-07-17 Roman - Transport.Serial: Some cleaned about the RTS toggle (true/false) flow control and echo filtering and the translations update. - UI.Vision: Direct access checking for root is restored at "userIsRoot" miss. 2016-07-15 fido_max - Transport.Serial: Appended by RTS toggle (true/false) flow control and echo filtering. 2016-07-13 Roman - UI.{VCAEngine,Vision}: To the "connect" service there is added the checking of user for root by attribute "userIsRoot" and using it for menu visible. - DB.LibsDB.{OscadaLibs,vcaTest}.db: CREATE TABLE cleaned from default values like '''''''''. - !!!!:SYS: Node's function load() and load_() expanded by argument TConfig *cfg for allow direct loading after the seeking request. All parts adapted to the new argument "cfg" of loading functions, preloaded dataSeek() and the direct loading after the seeking request. Overall loading time decresed from 36% (Core) to 15% (VCAEngine) and some parts down to 80%. Argument "force" of node's function load() was removed and replaced by modifG() pre-call. Modules version of the subsystem "DB", "DAQ", "Archive", "Protocol", "UI" rose to 12. Modules version of the subsystem "Transport" rose to 13. Primary commands transmission by "rdStRequest()" prevented from exceptions. - FIX:DB.{FireBird,MySQL,PostgreSQL,SQLite}: Fix to original translated message set into value "One" of the extended value and value "Two" clean up. - DAQ.BlockCalc: IO of blocks loading was moved to using the seek request. - DAQ.LogicLev: IO of parameters loading was moved to using the seek request. - FIX:UI.VCAEngine: User attribute's value translation on load of the user attributes fixed. 2016-07-10 Roman - !:DAQ: DAQ redundancy mode OnlyAlarms is added. - FIX:DB.{FireBird,MySQL,PostgreSQL,SQLite}: Field seek is fixed for full request force on "row" = 0. - !!!!:FIX:DAQ.JavaLikeCalc: Second argument's type changing at compile is fixed but it is dynamic now mostly, detected on problems with some string operations. Doubled string constants detection is fixed. - UI.QTStarter: Expanded by a command line argument "--noX11" to allow the Qt disabling. 2016-07-06 Roman - Archive: The option's "Overtime of the reserve history reload" description is fixed. - !!:FIX:UI.Vision: Setting and updating of configuration of the status line fixed only for the master-page and its items immediately removing. Session restoring moved to the prior pages pre-removing but that is some faster, safer and cleaner then updating. Some debug counters are added. 2016-07-05 Roman - DB.LibsDB.OscadaLibs.db: ParamTemplLibs.{anUnif,anUnifSt}: Expand to alarms modes: 0-force NORMA, 1-suppress, 2-save on change. - SYS: To prepare the translations table used the preloaded seek. - UI.VCAEngine: To user's attributes loading used the preloaded seek. 2016-07-04 Roman - !!!:DB.{*,FireBird,MySQL,PostgreSQL,SQLite}: Preloading scanning mode added for functions fieldSeek() and dataSeek() for significant performance rise here. - Archive.DBArch: Messages get switched to use the preloading scanning mode. - Special.SystemTests: A test of the preloading scanning mode added to the DB tests pool. - FIX:UI.Vision: Pages including into page's container fix for adjust at its scale change. 2016-07-01 Roman - Archive: First start replay of the local archive for redundancy active messages is added, into depth "rdRestDtOverTm". - SYS: A prefix with the station name is added to most significant system's messages. - FIX:UI.VCAEngine: Visualiser specific attributes forced to modify at its activation. - UI.Vision: Lock for the main window changing in run mode at the session update-reconnect. 2016-06-29 Roman - Archive: messPut() expanded for alarms set and processing in first order and allow ignore new but equal ones in redundancy. - DAQ.{BFN,DAQGate,MMS,ModBus,OPC_UA,Siemens}: Name of parameter of alarm messages expanded by the module name. - FIX:DAQ.DAQGate: No removing archives at the parameter removing is fixed for first-level parameters. - DAQ.LogicLev: The system IO "f_err" allowed for redundancy. - DAQ.OPC_UA.libOPC_UA: Noncrashed NaN publish interval processing added. - DAQ.SNMP: Local "dataRes" removed. - Protocol.SelfSystem: Local "sesRes" removed. - !!:UI.VCAEngine: Session local dataMtx() is replaced by generic dataRes() of the node. Connections management added for its connection ID, mostly to detect remoted VCAServer changes and to re-iniate need then. - !!:UI.Vision: "Developers" help field removed by merging it to the field "Author". Using of the connection ID is added. Force to widgets update and restoring opened pages at a reconnection is added. 2016-06-23 Roman - !!!:Archive,*: To messages get functions added a time result of the finished processing. Mostly for allow fast continue from the point after long terminated by the timeout requests. The limit rdRestDtOverTm rise to days and up to 356. - Archive.DBArch: The property "maxSize" is expanded from hours to days. The used table closing after any put request is disabled. - Archive.{DBArch,FSArch}: Get messages request for equal begin and end time is allowed. - Archive.FSArch: Get from XML set some optimal. Get from plain allowed for the messages time equal to end. - Special.SystemTests: The DB tests are expanded by a seek test. 2016-06-21 Roman - !!!!:SYS: For some productivity rise the exceptions catch moved from the object copy to it's reference, thanks Max Kochetkov (fido_max) for the hint. - SYS:data/openscada_start.in adapted to gettext by use the aliase "GETTEXT". - !!!!:FIX:DB.{FireBird,MySQL,ODBC,PostgreSQL}: Fix and checked the moving to open table without exceptions into the table object constructor. - FIX:TUIS::docGet(): Force documents to background is added. 2016-06-20 Roman - !!!!:FIX:SYS.TCntrNode: Free of locked nodes and attach to disabled ones are prevented by proper resource locking to mUse. - SYS:data/openscada_start.in is adapted to working without "gettext", mostly for N800. data/{debian,debian_mod}/changelog: Author set to OpenSCADA , mostly for allow the sign after build by that key. - DB: Resource's of the DB allocation TBD::resTbls is added. For now that is experimental and used in generic functions of the tables open(), close(). - !!:Archive.DBArch: Get messages algorithm is rewrote to request by minutes in reason of requesting by hours is some too long for PostgreSQL, with the limit about 1500 records. - !!!!:DB.*: All DB modules rewrote to open table without exceptions into the table object constructor. 2016-06-16 Roman - !!!!:TDAQS,DAQ.{LogicLev,ModBus}: Redundancy of the dynamic attributes is added. - FIX:TDAQS,DAQ.LogicLev: Hierarchical DAQ parameters processing procedure is fixed. Special and translated IO from config are prevented from the redundancy. 2016-06-15 Roman - Archive.FSArch: The resources allocation including one to one are prevented. It was caused sometime to hungs before. 2016-06-14 Roman - TSYS,TArchiveS,TDAQS: Description of arguments of the configuration file is fixed. - TArchiveS: New redundancy option "Overtime of the redundant history reload at start in hours" is added. - !!:TDAQS,DAQ.LogicLev: Redundancy procedure of DAQ parameters is adapted to it's hierarchy. - DB.MySQL: Executions into BD::postDisable() are prevented. 2016-06-10 Roman - TDAQS: API functions tplE(), tplIOE(), errE() renamed to elTmpl(), elTmplIO(), elErr(). - FIX:UI.QTCfg: External host's status processing mostly improved and fixed. Timeouts of external host are set configurable by the option "TmConChk". The options StartUser and StartPath are moved under a resource allocation by the type MtxString. 2016-06-03 Roman - !!!!:SYS,*: MtxAlloc and MtxString moved to the mutex wrapper object ResMtx. All module's subsystems' version rose to one point. CoreLib version rise to 3.5. - !:UI.Vision: Timeout of tries of restoring connection to a remote station set to progressive up to the pointed one and the error message display after the timeout value in 3 seconds. - !:UI.VCAEngine: To project objects were added a property "EnableByNeed" to control the projects ready after start and prevent long connection by the deferred enabling. 2016-06-02 Roman - Transport: Listed external host's mode merging from two entries is fixed. - FIX:DAQ.Value: Write access to DAQ attributes closed for all into the service request "set". - !:Protocol.SelfSystem: Moved to some faster errors placing method. The reforwarding requests' processing set optimal. - FIX:UI.QTCfg: Into TextEdit widget added a signals blocking at setPlainText() for prevent the cursor events, status bar update and crash in some cases here. - !!!!:FIX:UI.Vision: Too important fixes made in way of adapting to stable work with remote VCA servers: The module's attributes VCAStation, UserStart, UserPass and UserStBar::{user,pass,VCAStation} were moved under resources locking by the MtxString value type using. To both runtime and development parts were added an initial connection with the restore connection timeout, for allow to load the VCA-server resources. In way of authentication as a default user the name takes from the attribute "user" of the session. Processing of the information dialog about a connection loss was moved to a single request (and thread) from updatePage(), for multithread access prevent and crashes (mostly from the notification tasks). 2016-05-30 fido_max - FIX:DAQ.FT3 flData sensivity deadband processing for event forming fixed. B_BTR:setTU count_nu fixed. TMdContr::ProcessMessage data length for cmdGet answer fixed. - FIX:DAQ.Fastwel: TMdPrm::enable module config init fixed. 2016-05-29 Roman - SYS:data/debian: the service's script openscada.init moved to separated package openscada-server. - !!!!:SYS,Transport,DAQ.DAQGate,UI.{QTCfg,Vision,WebCfgD}: External host upraise is implemented by the function extHostList() extension; the requests reforwarding by function cntrIfCmd() and the input part of the self-system protocol. - Transport: Module's subsystems' version set to 11. Starting-connection time is added to the output transports. Modify property is added to the external host's object for reconnect on it modification. - !!:DAQ.BlockCalc: Configuration fields of block unified and moved to TConfig::cntrCmdMake(). User API functions cntr(), cfg(), cfgSet() are added. - FIX:DAQ.Siemens.LibnoDave: gethostbyname() replaced to it's reentrant variant. - !!!!:Protocol.SelfSystem: Force authentication update by attribute "rqAuthForce" is added. Authentication error processing for direct requests is added. Authentication errors moved from the connection kind to the request, into the tag attribute "rez" and text. Reforwarding of host's requests attribute "reforwardHost" into input part is added. - FIX:Transport.{Serial,Sockets}: Errors on writing in the output part is fixed. - FIX:Transport.Sockets: Debug message about connect by timeout in the time is fixed. - !!!!:UI.Vision: Requests to an external host moved to using cntrIfCmd(). Remote authentication moved to allow use the host authentication by default and the same connection for check it. 2016-05-23 Roman - DB.LibsDB.OscadaLibs.db: Templates base.{digAlarm}: expanded into the input data preprocessing procedure for fix the procedure to reusing (more faster), stored context object into "ctx", "f_frq" actual value pass. - !!:DAQ: User API function funcCall() significant expanded to fix the result function for reusing and then significant performance rise. - TFunction: Virtual function prog() and setProg() is added for allow it's control through an abstract object. - DAQ.BlockCalc: Special attribute "this" of the object access set to processing into blocks. Some the source code cleaned. 2016-05-21 Roman - DB.LibsDB.OscadaLibs.db: IEC-60870-104: M_ME_NB_1 processing fix for signed value. "DHT (AOSONG)": Offset to 20 set for humidity of DHT11. - !!!:Archive: Values archivation a global option is added for time of taken values force to current and override it's source from. To values archive object an option is added for pass values fill to last value. - !:Archive:FSArch: Expanded for early limits check and it's check at unpack errors and then prevent storages overfull at close limits and small storages. the feature is not tested yet! - Transport.Sockets: Wait timeout at read() function's zero set to the next time but that case possible after disconection by peer also. - UI.{VCAEngine,Vision}: Deep header's processing of the notification's rules fix by hasFlags set. 2016-05-17 Roman - FIX:DAQ.JavaLikeCalc: Return from included function fixed. - DB.LibsDB.OscadaLibs.db: Low level device's function "DHT (AOSONG)" (for Raspberry Pi) is added, for reading temperature and humidity module DHT11. - !!:SYS: All key warnings next resolved. Include some controversial ones: DAQ.MMS: Mixed "||" and "&&" logic into the items cash access. DAQ.OPC_UA.libOPC_UA: Encoding mask processing in mix of operations '&' and '|'. 2016-05-16 Roman - DB.Model.AGLKS.St.db: All stored attributes of the VCA originals are cleaned. - !!:SYS: To data/debian_mod the package openscada-daq-bcm2835 building (commented-disabled by default) is added. Building of openscada-daq-ICP_DAS into data/debian_mod by default also set to disabled. {DAQ,Transport}.*: Tasks priorities range expanded up to 199 where 100-199 used for SCHED_FIFO tasks planing policy. Build and check the build environment scripts some improved for the crossbuild, by - appending pkg-config using for DB.PostgreSQL check before; - same pkg-config used from PKG_CONFIG enviroment which points to the cross variant; - check to Qt expanded by test taken from Qt_MOC and Qt_RCC ones. - DAQ.BCM2835: Static function mode() is added for GPIO pins Input/Output modes free control, from needs to DHT11. - FIX:DAQ.OPC_UA.libOPC_UA: TimeStamps into the "Write" client request's are disabled but some servers tell 0x80730000 (OpcUa_BadWriteNotSupported). - !!:Transport.{Sockets,Serial}: Possible wrong readings after the select() wrong termination, with marking as a data present (some caused), is unified and better adjusted for different modes of the requesting and the not requesting mode of output transport. - Transport.Sockets: Input transport's error messages some improved and set more informative. 2016-05-09 Roman - DB.LibsDB.OscadaLibs.db: Function "Low level devices"."Display 1602A" set to stopped by default, with the new option. - !!:DAQ.JavaLikeCalc: To function object is added "To start" parameter for allow disabled by default ones. Checking for IO moved before constants for it's override. Constant "EVAL" as a synonym to EVAL_REAL is added. - !!!!:FIX:DAQ.OPC_UA.libOPC_UA: Initial filters support is added into requests CreateMonitoredItemsRequest and ModifyMonitoredItemsRequest only for OpcUa_EventFilter at AId_EventNotifier parse. Input Variants function iVariant() is added as a separated part of function iDataValue(). !!!!:FIX: Packages sequence number managing for server part is fixed by separating from the value of input packages. FIX: Packages sequence number managing for the client part also unified and fixed to prevent the value repeats. Services CreateMonitoredItems and ModifyMonitoredItems processing merged to a singe one. !!: Early Acknowledgements processing in request "Publish" is added. Successful adapting to work with UAExpert 1.4. 2016-05-04 Roman - DB.LibsDB.OscadaLibs.db: "Low level devices" library of DAQ.JavaLikeCalc functions and function "Display 1602A" (for Raspberry Pi) into is added. base.digAlarm DAQ template expanded by an input processing procedure like into base.anIn. - !!!!:DAQ.JavaLikeCalc: Support of internal functions definition and it's call is added. 2016-04-29 Roman - !!:FIX:Archives: Locking for access to the alarms table is expanded to sort into the messages get request. 2016-04-28 Roman - !!!:SYS,UI.{QTCfg,Vision,WebCfg,WebCfgD}: Transfer local primary commands to redundant host is added, by an option of redundancy. As primary commands, which transfered, mean: "set", "add", "ins", "del", "move", "load", "save". - !!!!:Protocol.OPC_UA: Works into the poll mode of input transport are allowed and enabled by default. - UI.WebCfg: Source code significant cleaned. 2016-04-26 Roman - !!:SYS: Messages about redundant stations up and down are added. TSYS::rdStRequest() expanded by scan mode for stations. Main redundancy properties of the system level forced for store to the configuration file. - !!:FIX:Archives: Locking for access to the alarms table is restored. Access to messages in redundancy unified. - FIX:UI.Vision: For view "Table" of primitive "FormEl" header's item option "sort" fixed. 2016-04-25 Roman - SYS: Early redundancy task starting set. - DAQ,Archive: In redundancy, guaranty first initial sync request support is added, mostly for master. - Archive: In redundancy, alarms initial obtain is added. - DAQ: Initialization of redundancy of TController object some changed to enabled by default. That will next checked into a complex environment. - DAQ.BCM2835: Expanded for access to GPIO by static functions which significant faster ones. - FIX:DAQ.JavaLikeCalc: setNoTransl() at the attributes value (DB field "DEF") loading disabled by some problematic and no a sense. - Special.FLibSYS: The time functions are appended by tmSleep() for faster access to the short sleeping provides. - Transport.{SSL,Sockets}: Buffer's size of getservbyname() some decreased. - FIX:UI.QTCfg: Read only of selected items are fixed in alignment with other items in single row. Changed user apply is fixed. 2016-04-20 Roman - DB.LibsDB.OscadaLibs.db: Templates base.{digAlarm,anUnif,anUnifSign} expanded by prevent main execution into cycles of the starting (f_start) and stoping (f_stop). Template base.anUnifSign also expanded for EVAL detection lag into parameter "Tf". - DB.Model.AGLKS.St.db: Mostly parameters of LogLevPrm.experiment object of controller set into attribute "Tf" to value 2. - !!!!:SYS: Resources locking in RW object "Res" expanded by the functions (synonyms) lock(), tryLock() and unlock(). All module's subsystems' version set (started) to 10 for the Work version and prevent in casual the modules connect from LTS and vice versa. !!!!:The redundancy significant expanded to moving redundancy hosts management to the system level, from exclusively DAQ subsystem. Additional managing time macro FTM2 is added. User API function SYS.sleep() expanded to accept first argument of time in seconds as float and allow to set here up to nanoseconds. User API function SYS.sleep() limited to maximum wait time it is standard interface's timeout (5 seconds) and targeted mostly for low level device's short time lags. - !!!!:Archives: Redundancy for message archives added. TArchiveS::messPut() expanded to write messages independent to the alarms table. - !!:FIX:Transport.{SSL,Sockets}: gethostbyname() and getservbyname() replaced to it's reentrant variants. - !:FIX:Transport.{Serial,Sockets}: For result's reading, into output transport, added waiting for data at zero or/and EAGAIN error. 2016-04-13 Roman - !!!!:DAQ: Module DAQ.BCM2835 is added, mostly for access to BCM2835 like chip's GPIO and some other. The BCM2835 chips mostly known used into the Raspberry Pi boards. For now the module do not work properly yet and it is under developing! - DAQ.=Tmpl=: Some cleaned and expanded. - !:UI.VCAEngine: Force inheritance of links types is added, independent from the attribute local modification. Mostly for prevent the link's type changing loss, as significant one, into the modified attributes. 2016-04-10 Roman - DB.LibsDB.OscadaLibs.db: DAQ template's "base.anUnif" attribute "Connection loss detect delay, s" moved to "Tf, s" in the role. - Archive.FSArch: Used FTM() for left the messages time. Checking to duplicated messages into get() adapted for the option "prevDblTmCatLev". - UI.{VCAEngine,Vision}: For view "Table" of the primitive "FormEl" header's item option "sort" is added for point to initiate sorting column. 2016-04-08 fido_max - !!:DAQ.FT3: ui32Data, flData sensivity deadband processing for event forming added. B_ODOR implemented. - DAQ.FT3: KA_GNS SetNewState, SetNewFunction implemented, version rise to 0.2.1. - Protocol.FT3: Version rise to 0.2.1. 2016-04-07 Roman - DB.LibsDB.OscadaLibs.db: DAQ template "base.anUnif" expanded by attribute "Connection loss detect delay, s" for prevent blinks into hosts in redundancy or so one. - Archives: pthread_mutex_t resources allocation moved to ResMtx and it's space decreased exclusively to local buffers access and prevent some racecondition at the archivators access. - DAQ.ModBus: "Value" field of the templates set to use as a default link, on first enable. 2016-04-06 Roman - DB.LibsDB.vcaBase.db: Left graphics group fix to "name" attribute. - !!:Archives: messPut() and messGet() expanded to archivators list allow instead single one. User API function messGet() expanded by argument "upTo", for the timeout direct control allow. - FIX:DB.PostgreSQL: Fix cycling after unsuccessful a table's structure correction. - UI.VCAEngine: To messages reading by the repeating tags of primitive "Document" added attribute "docAMessArchs" to allow read only pointed archivators. 2016-04-04 Roman - SYS: TSYS::strEncode() in variant SQL expanded by the doubling method of the pointed symbols. - DB.{PostgreSQL,SQLite}: TSYS::strEncode() in doubling method is used. - UI.VCAEngine: Manual creation mark for pages is added. Mostly for modification of the children clean up and it's inheritance storing prevent by it is spare and sometime problematic on the parent update, like messages about impossible to enable a widget. - FIX:DB.PostgreSQL: Fixed for symbols "'" '"' encoding by it replace to the doubling method. 2016-04-03 Roman - UI.{Vision,WebVision}: For primitive "Diagram" to data block "data:
" option "Approximation (aprox)" is added. - !!:DAQ.DCON: Some cleaned. Adapted and enabled hierarchical parameters. Pass of real requests at the first and last iterations. enRes and reqRes resources lockators moved from Res to ResMtx. - !:DAQ.{ModBus,Siemens}: Pass of real requests at the first and last iterations, only the procedures execution. 2016-04-01 Roman - FIX:DB.{SQLite,MySQL,PostgreSQL,FireBird}: Previous scaned value getting prevented on the original value setting to clear all extended structure of translated value. Detected on UI.VCAEngine users attributes seek. - Protocol.SelfSystem: Attribute "remoteSrcAddr" of the root node set/reserve to the remoted host's address. - FIX:UI.VCAEngine: Mostly information messages from the information level moved to the debug one. User API functions mess{Debug,Info,Note,Warning,Err,Crit,Alert,Emerg}() appended to the run-time widget and included the widget path as the category. FIX: setNoTransl() at the attributes loading disabled by some problematic and no a sense. The note messages are added: "User is changed to ...", "User is connected ...", "User is disconnected ...". - UI.{VCAEngine,Vision}: To view "Table" of the primitive FormEl into root tag "tbl" added attribute "sortEn" to direct sorting by columns. - FIX:UI.Vision: For the attribute inspector labels of the attributes the ToolTip is added to long names (>20). FIX: The palette restoring to visibleCheck function is added for prevent FormEl's artifacts at last. The view "Table" of the primitive FormEl mostly adapted to sorting by the columns. 2016-03-23 Roman - FIX:Archive: Group messages archives request timeout, for common, fix into get(). - Archive.DBArch: Quick messages obtain by separated field "DT" set compatible but the field "TM" left to store full time. - FIX:UI.Vision: Mouse events at all enabled for "FormEl" primitive and some artifications like ticks loss into Slider but mostly into Table detected and fixed. 2016-03-21 Roman - DB.LibsDB.vcaBase.db: Main.ElCadr: Field of description checking to EVAL is added for empty value place. - !!:FIX:SYS: TCntrNode::nodeDis() fixed to prevent attach to the node at it disabling and result crash. - TConfig: Moved to ResMtx from direct pthread_mutex_t. - FIX:Archive: m_start, run_st, m_db were renamed to mStart, runSt, mDB. Time limit for get() messages fix. - !!!!:FIX:Archive.DBArch: New options of the messages archiver are added: "Store time as pure integer", "Scan by days threshold in seconds". "Archive size (hours)" for both values and messages adapted for set to zero (<0.1) and disable the limit at all. Table structure's for value and messages set adaptive and moved to the objects TMArchivator and ModVArchEl. By the option "Scan by days threshold in seconds" enabled separation the "datatime" row to "date" and "time" with allow significant rise the performance of reading message's big parts by day's blocks scan/seek and decrease the scan/seek by seconds. - UI.{VCAEngine,Vision}: Logical groups separator of Widget's attributes is changed from ":" to ": " everywhere, mostly for allow the user attribute value's items separation and description it with the symbol ":". Some like user attributes will not now grouped before fix! 2016-03-16 Roman - !!:FIX:DB.{MySQL,}: Prevented the "BEGIN;" and "COMMIT;" request's sequence breakage on high concurrency access activity. "connRes" moved from pthread_mutex direct to ResMtx wrapper. 2016-03-12 Roman - DAQ.OPC_UA: Some spare error messages removed. - UI.Vision: Primitive "Diagram" updated period limited to one second in the development mode. - FIX:Special.FLibSYS: IO.pos for string fixed. Single integer and real reading fixed on the position seek. - FIX:UI.Vision: Context menu problem for views List, Tree and Table is fixed, for allow the right mouse button's event come to the system functions. 2016-03-03 Roman - Archive: TArchives::messPut() expanded by the argument "arch" to allow direct to the archiver writing. Same expanded the user API function messPut(). - !!!:FIX:Archive.FSArch: Check for duplicate as equal time, category, level and it prevent is added. Check for duplicated at all fixed. Time into cache changed from time_t to int64_t (in microseconds). - UI.{VCAEngine,Vision}: Primitive's "Diagram" attribute "trcPer" type changed from "Integer" to "Real". UI.Vision also adapted for update the "Diagram" down to 0.01 ms. - !!!!:UI.Vision: View "Table" of the primitive "FormEl" significant expanded by: global table's attributes: "hHdrVis", "vHdrVis"; row attributes "colorText", "font"; column attributes "color", "colorText", "font". Context menu support enabled for views: List, Tree and Table. - FIX:UI.{Vision,WebVision}: Mode "XY" of the primitive "Diagram" fixed for build by sorting by 'X' disable, only the hierarchical order. 2016-02-29 fido_max - DAQ.FT3: B_BIP updated, logic side implemented (tmHandler, cmdGet, cmdSet), version rise to 0.2.0. - Protocol.FT3: Version rise to 0.2.0. 2016-02-28 Roman - DB.Model.{AGLKS.vca.db,Boiler.St.db}: Visualizer's UI.Vision specific attributes moved to the project's root-page. - FIX:SYS: User's space flags to generic nodes (TCntrNode) processing fixed, mostly for "RM_Full" flag and DAQ paramter's archives proper removing. - UI.Vision: Global modification mark processing moved to different function modifyGlbStUpdate() and some changed. - FIX:UI.Vision: Included to container's pages align processing rewrote to trace on the widget's geometry update and to the misaligned scroll-bars appearing sometime prevent. 2016-02-17 Roman - FIX:UI.VCAEngine: Notifications by queue and direct pointed resource is fixed. - SYS: CoreLib version rise to 3.5. Security: Adapted to prevent passwords storing in open view as hash instead, for: OpenSCADA host (Transports), Protocol.SelfSystem, UI.Vision. Security: crypt_r() using enabled only for "__USE_GNU" and the open passwords store instead. 2016-02-15 Roman - UI.{VCAEngine,Vision}: Projects flags moved to as the visualizator specific attributes "runWin" and "keepAspectRatio". Vision global properties "stBarNoShow", "winPosCntrSave" moved to the visualizator specific attributes. - UI.VCAEngine: Control request "activate" expanded by "aVls" and "aNms" determine. - SYS: Function realRound() some simply set. System configuration fields "workdir", "moddir", "icodir" and "docdir" set to readonly from the configuration interface, mostly for wrong changes prevent and the changes allow only by the configuration file edit. - *.=Tmpl=.configure.ac: Some spare code parts removed, mostly for old i18n manage. - FIX:DAQ.OPC_UA.libOPC_UA: Variable's statuses added, mostly for the "Publish" service. Initial "Publish" responses are added: first after the CreateSubscrition service and second after the CreateMonitoredItems service. - UI.{VCAEngine,Vision}: pthread_mutex_t moved to ResMtx. Notifications expanded to unregister and stacked registering ones from other pages. - FIX:UI.Vision: conErr pointer loses for not zero set at the master page free/replace is fixed. That sometime causes to crashes! 2016-01-31 Roman - DAQ.OPC_UA.libOPC_UA: New client/server services implemented: RegisterNodesRequest, RegisterNodesResponse, UnregisterNodesRequest, UnregisterNodesResponse. Only formal and no a real doings! - FIX:DAQ.Siemens: A crash problem at high and frequent interaction is fixed. The problem into DB block's fragments changing (by assign) at it parallel reading. The DB block's fragments set to replace instead assign everywhere. - FIX:UI.VCAEngine: pthread_mutex_t replaced to ResMtx for the function's resources locking. The function's resources locking is added for SesPage::setEnable(). Try to enable for disabled pages, at an alarm set action, is prevented by some strange crash here observed, only into LTS. 2016-01-25 Roman - SYS.{configure.ac,ChangeLog}: Some messages fix. - DAQ.JavaLikeCalc: Operation "||" and "&&" formal set to equal priority. - DAQ.OPC_UA: Module for client renamed to "Client OPC-UA" and for server to "Server OPC-UA". Protocol: reqData() fixed for "NodeClass" processing of the "Browse" request, mostly for forward request to the data model. 2016-01-08 Roman - FIX:DB.LibsDB.OscadaLibs.db: regEl.pidUnifD: Pulse regulation by the back position fixed and tested into real environment. - FIX:DAQ.MMS.libMMS: oN() function fix for auto size adjust. Tail wait fix into the messIO() request. - FIX:DAQ.ModBus: Some original messages fix. Some resources lock appended and moved from pthread_mutex_t to ResMtx. - !!!!:DAQ.Siemens: Self implementing for ISO-TCP is added and tested, mostly by Proviron Holding NV request. Restoring timeout is added. Significant refactoring for the resources lock, error messages and other. 2015-12-17 Roman - DB.LibsDB.OscadaLibs.db: Some descriptions expanded and fixed. - DB.LibsDB.vcaBase.db: Main.TextLab: Context command's description into the operator's protocol fix. - !:FIX:DAQ.ICP_DAS: Possible crash fix into the OpenSCADA serial transport mode using and CRC enable on short (not full) messages receive and process. - Special.FLibComplex1: Some the source code cleaned. - !!:FIX:UI.VCAEngine: Queued notification's quietance for all and partial fix. 2015-12-12 Roman - !!!!:DB.LibsDB.OscadaLibs.db: User protocol for IEC-60870-104 is added, by the template only. - !!:DAQ.SMH2Gi: Version 1.0.0 released. 2015-12-11 Roman - !!:FIX:DAQ.OPC_UA.libOPC_UA: Specific value types OpcUa_IntAuto and OpcUa_UIntAuto added for adaptive integer type selection, mostly for provide integer into not fixed int64. Error OpcUa_BadNoSubscription added to PublishRequest. Server folder "ServerCapabilities" added and some items here. FIX: Conditional session's clear for selected endpoint is added, mostly for prevent this loss at no "None" policies. Virtual function connect() into client is added for the connection control, used into service "CloseSecureChannel" for close connection. "Nonce" of the Server part disabled into CreateSessionResponse and ActivateSessionRespons for policy "None". 2015-12-08 Roman - FIX:DAQ.OPC_UA.libOPC_UA: Using the client certificate into a renewal secure channel request set only for no "None" policies. Full session clear at errors into a renewal secure channel request is added. Some lack information resolved like to "transportProfileUri" and "securityLevel". libOPC_UA independent version control is added. - FIX:DAQ.OPC_UA.Client: Status codes display fix for the controller's attributes. 2015-12-07 Roman - !!!!:FIX:SYS.TVarObj: Object's twice free possibility prevented. TVarObj::propGet() EVAL result fix. 2015-12-03 Roman - DB.LibsDB.OscadaLibs.db: UserProtocol.OWEN some tested and fixed. - DAQ.{LogicLev,ModBus}: User API function attrAdd() expanded by option "ro", for read-only. - Protocol.UserProtocol: For input requests expanded to try enable, mostly for allow to use static functons into the procedures. - UI.QTStarter: WinControl's timer stopping moved to it destructor for ensure the timer create/start and stop into one thread. 2015-11-28 Roman - !!!:FIX:DAQ.OPC_UA: Library: Expanded to new error codes. Auth processing for client fixed to storing current endpoint description for next actual "policyId" obtain and using to the auth service. Wrong NodeId::Opaque type set fix. Next empty arrays number fix for set to 0 instead -1. Fix something "EndPoint" lack. To server part new default name spaces added: 2-"http://opcfoundation.org/UA/DI/, 3-"http://PLCopen.org/OpcUa/IEC61131-3/" Client: Appending information by: applicationUri(), productUri(), applicationName(). For empty "browseName" browsed nodes using "displayName" set. Server: OpenSCADA DAQ name space set to index 4. - UI.Vision: Adapted for build with libphonon4qt5 and Qt5. Deprecated functions using is resolved for Phonon. - UI.{QTCfg,Vision}: Early timers stopping added to the close event processing. - UI.VCAEngine: Media files selection appended by URL's extensions: avi, mov, mpg4. 2015-11-26 Roman - FIX:DAQ.OPC_UA: Empty Read service list cicling fix. - !!!!:SYS: Object ResMtx is added for gather all platform specific mutex implementation. Later it will be used instead the direct POSIX API everywhere. - !!:Transports.*: messIO() return to the previous prototype and for the no request mode set used