2016-02-13 Roman 0.8.17 - Transport.Serial: Checking to present the header file linux/i2c-dev.h added to build on Linux distributives like SuSE. 2016-02-12 Roman 0.8.17 - API: !!!!:Changes: SYS: More functions set to constant after some objects appending by a copy constructor. TConfig::cfgChange() expanded by previous configuration value argument "pc". TVariant: It's expanded in string type for STL-string using always except fields marked as "stdStringOmit", mostly for TCfg as a constant. Node's function load() and load_() expanded by argument TConfig *cfg for allow direct loading after the seeking request. Argument "force" of node's function load() was removed and replaced by modifG() pre-call. The RW resources allocation object "Res" renamed to "ResRW". TModule::modFunc() of declared functions pointer getting was expanded by no exceptional calls and a result. Function strNoSpace() expanded for processing symbols control and renamed to strTrim(). Default processing symbols set to " \n\t\r". time2str() and tm2s() of the astronomic time were renamed to atime2str() and atm2s() and 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 measuring by the taskUtilizTm(). TVariant::propClear() expanded to single property clean. 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: Template's configure's field variant "Constant" renamed to "Variable" and "Public constant" to "Constant" respectively. Archive: Value archivator is expanded for the accumulation mode support, mostly for Archive.DBArch. Attribute "tm" of the Array result of user API function "getMess" changed to type "int". Protocol: Input part's API moved for the Work branch kind one by the functions srcAddr(), setSrcAddr() appending and mess() changing. Appends: SYS: The system option "clockRT" is added for select the tasks planning clock as CLOCK_REALTIME but else it's CLOCK_MONOTONIC (default now). Conditional variable management object "CondVar" is added. 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 functional templates fmin() and fmax() added. For function strTrim() created a short call sTrm() and its used everywhere. TSecurity: User API function User::groups() and Group::user() added. New user API function TVal::isCfg() added. DB: Errors placing to result's Array attribute "err" from exceptions are added for user API function SQLReq(). DAQ.JavaLikeCalc: String functions list expanded by a function trim(). Transport: User API function messIO() expanded by the input buffer size. Transport.Serial: User API function sendbreak() is added to output transport. UI: Expanded by function mimeGet() to detect mime type by the original info, file extension and this content. Special.FLibSYS: Appended by function the Message Digest 5 (MD5) calculation function by OpenSSL and by function floatExtract() for extract exponent and mantissa from that float value. - SYS: !!:FIX: LibZ functions were rewrote for some unification and the used memory optimization. FIX: 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!" FIX: TValue::chldAdd() fixed for the Archive subsystem mark as setToUpdate() only for successful appending. FIX:TRegExp: Fix in function split(), for hang and crash prevent. FIX: data/oscada_gentoo.init is some fixed by IrmIngeneer. FIX:TConfig: Fix for the object copy by the copy constructor appending. EVAL forms conversion is added to TCfg::set{S,R,I,B}(). FIX:TElem: Fix for the object copy by the copy constructor appending and its reserved for full implementing further. FIX:XML: XMLNode's flag LD_NoTxtSpcRemEnBeg fixed for spaces in begin. Crashes on empty string encoding try to fix. !!!!: TCntrNode: Moved to the stabilized resources managing conception from the Work branch. !!!!: More errors and warnings fix from PVS-Studio report, thanks to Maksim Kochetkov. !!!!: All parts adapted to the new argument "cfg" of loading functions, preloaded dataSeek() and the direct loading after the seeking request. !!!!: New TCntrNode object's functions mess_sys(), err_sys() have used everywhere into the OpenSCADA core and modules. !!!: Modules version of the subsystem "DB", "DAQ", "Archive", "Transport" rose to 9 and the subsystem "Protocol", "UI" rose to 8. !!!: Library version set to 2:5:0. !!: Adapted and some fixed to build by GCC v6 with C++11 by default. !: Minimal messages level for all configurations set to "Info(1)". Some of the system messages and module ones moved to the debug category. The function TVarObj::AHDDisConnect() rewrote to prevent a messages into the lock section. data/icons: Images Protocol.HTTP.png and Protocol.SelfSystem.png, Protocol.UserProtocol.png updated and UI.WebUser.png added. ResString,TVarObj,Function,UI.VCAEngine: pthread_mutex_t replaced by ResMtx. sysSleep() moved to clock_nanosleep(), CLOCK_MONOTONIC and clock_gettime() for short times lesser to 300us. DAQ.{Templates,JavaLikeCalc},Protocol.ModBus,UI.VCAEngine: Items deletion procedure termination at DB error added. 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. For user API TVal::set() there prevented writing to no writable values of the configurations. - DB: !!!!:{.,FireBird,MySQL,PostgreSQL,SQLite}: Preloading scanning mode added for functions fieldSeek() and dataSeek() for significant performance rise here. !!!!:*: getVal() expanded and unified. !!!!:{SQLite,MySQL,PostgreSQL,FireBird}: Expanded to NULL using for generic EVAL store/represent. Message about rows missing at get some appended. !!:PostgreSQL: DB object expanded by a statistic to control the activity and lags. - DAQ: The value archive's part set firstly readed for redundancy processing. !!!:FIX:*: Wrong word "Parameteres" fixed. !!!: Tasks' execution status was expanded by the maximum consumption value. Name of parameter of alarm messages expanded by the module name. FIX:{BlockCalc,LogicLev}: Input links processing moved out of the attributes modifications detection into calc(). FIX:{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. {LogicLev,ModBus}: User API function attrAdd() expanded to apply flags "text" and "ro" for present attributes. !!:DAQGate: Adapted to store parameters' assignment for stations to allow its for early restoring without need to sync. !!: Control for automatic removing parameters and attributes added by an option. !!!:FIX:LogicLev: User attributes removing prevented at the parameter's object enable, for passive ones. !!!: Moved for set the attribute "f_frq" to the real frequency, taken from the task description structure. Expanded to allow writing from external to the RO attributes "err" and all other for the "f_err" EVAL. The system IO "f_err" allowed for redundancy. IO of parameters loading was moved to using the seek request. !!!!:FIX:OPC_UA.{*.libOPC_UA}: Hello/Acknowledge properties set configurable and client's ones also storing. !!!!:FIX:libOPC_UA: 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: Some locks lost fix. !!!!: Chunks support was added to server's part. Tested on chunks into input requests for insecure and secure connections. A copy constructor was added for object NodeId and the strange problem here closed. New OPCAlloc object is added for mutex handle and its automatic free for exception. Maximim notifications per publish limit processing some improved. Expanded to early publish requests processing after requests of subscription and monitored items creation, for the init publish requests. !!:FIX:BlockCalc: For IO presenting check there was used an uninterrupted ioId() of the function object. IO of blocks loading was moved to using the seek request. ICP_DAS: SDK was updated to the last version of "ICP DAS". !!:FIX: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. !!!!: Support of the dynamic linking to external functions added in way: function {nm} = "{addr}"; {nm}();. !!!!: Object's functions call was optimized for the name direct pass into the calling command. !!!!: Expanded by operator "delete" for objects or its properties free. FIX: Internal function's space splited for temporary registers. FIX: The syntax highlight some fixed for strings and backslash '\' in variant "\\" and expanded to the command "~". External functions link and call optimized at all. !!: System: Expanded by "FS" data source. Automatic creation of sources expanded to modes of the sources "Fast" and "Slow". FIX:DAQ.ModBus: Fixed and adapted to user attributes processing pass. - Archive: !!:FIX: Spare writings direct to the archivators prevented for TVArchive::setVals(). FIX: getMess() fix for double call modules' function get(), by fmin() using. FIX: getMess() fix for double call modules' function get(), by fmin() using. FIX: getVal() fix for request to the current value but the buffer end() some lesser to it. Some fields of the messages request dialogs are merged to single line. messPut() expanded for alarms set and processing in first order. !!:FIX:{.,FSArch}: Last read buffer information is added and the property using fix. FIX: Exceptions into archivatorAttach() at the archivator's object stopping are prevented to allow the archive early start. FIX:TValBuf: Fix for the object copy by the copy constructor appending and some fields lack. !!!!:FIX:DBArch: Messages archivation part fixed for "needMeta" and to deny an access to the archivator before the successful meta get. FIX: Set values processing mostly fixed to return the correct last time. !!!!: Reading of the value archives made optimal for the request time, up to ten times, through using the "MARK" key and the seek request. !!!!: The value archivation part expanded by the archives grouping into one group table, mostly for the archivation performance rise. Values archivation period limited to the resolution in seconds. Values archivation adapted to redundancy. 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. Messages get switched to use the preloading scanning mode. FIX:FSArch: Adapted to values accumulation API. Values archivator fixed for the function stop() prototype. The modules adapted for early archivators init and archive's meta set from the physical archives. - Transport: !!: The input buffer size added to the manual request dialog of the output transports. !!:Serial: Output transport expanded to check and use I2C. !!: Appended by RTS toggle (true/false) flow control and echo filtering. "No stop on proceed" option is added to output transports. Char limit value expanded to 10000 ms, for output. The timeout "symbol" was expanded by "the next request's multiplicator to the {symbol} time, 4 by default". !!: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. !!: 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. !:SSL: Expanded by the direct methods: TLSv1.1, TLSv1.2, DTLSv1. - Protocol: !!!:SelfSystem: XML loading expanded by option LD_NoTxtSpcRemEnBeg using to allow for spaces at begin and end of the text items. !!!!:FIX:HTTP: Navigation by FS for the templalate file was fixed. !!!!: 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. !!!: 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. !: The main page's template splited from the generic template for allow absolutely custom main pages. !: Expanded for the main selection dialog with images and context help for allowing WWW-modules. Current folder force added to the template's resources checking. 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. - UI: FIX:{Vision,WebVision}: Current values tracing of primitive "Diagram" for big periodics, in days, is fixed. {WebCfg,WebVision}: Module's icon obtain machanism is changed. {VCAEngine,Vision}: To the "connect" service there is added the checking of user for root by attribute "userIsRoot" and using it for menu visible. !!!!:{WebUser,WebVision,WebCfgD}: Expanded to use the unified service interface from Protocol.HTTP by pgCreator() and the new HTTP call functions HTTP_GET, HTTP_POST. !: QTStarter: X Session manager disabled from restart the closed at exit programms. FIX: Adapted to Qt5 specific method QTranslator::translate(). !: Expanded by a command line argument "--noX11" for allow the Qt disabling. !!:FIX:QTCfg: Crashes into ConfApp::selectItem() prevented after "selectPage()" call by the possibility of the items selection changing. !!:FIX: Dangerous missed page refreshing prevented into applying changes on widgets of the replacing page, "Apply dialog for changes missing prevent". !!:FIX: Moved from QMutex and QWaitCondition to ResMtx and CondVar, mostly to prevent here hangs on the system time changing. The window title forming some changed. Allow page update after warnings at items loading. Checking for integer input field's range is added. !!!:FIX:VCAEngine: FuncM resources lock set for a recursive to prevent "dead" locks. !!:FIX: Session calculation time expanded by its maximum value. !!:FIX: Attribute addition expanded and used at manual creation by the attribute "allInher" for its creation inheritance. FIX: Something prefixes ":" replecing to ": " fixed yet. FIX: Widgets list into the widget's parent field expanded and fixed for list all items of project tree to any depth. FIX: Static functions' name and description of the primitives are fixed. FIX: Virtual function PrWidget::setEnable() fixed for the second argument and this one of widget and its succession expanded by the argument "force" like to pages. FIX: Session's pages force enabling, at a request, prevented after its manual disable. FIX: User attribute ID prevented to set for empty. FIX: Visualiser specific attributes forced to modify at its activation, only for present atributes. FIX: User attribute's value translation on load of the user attributes fixed. !!: Session local dataMtx() is replaced by generic dataRes() of the node. !: Adapted to TUIS::mimeGet() using. New created attribute's ID ("newAttr") and NAME set for indexing. To user's attributes loading used the preloaded seek. Connections management added for its connection ID, mostly to detect remoted VCAServer changes and to re-iniate need then. !!:FIX:Vision: Setting and updating of configuration of the status line fixed only for the master-page and its items immediately removing. FIX: Cursor wrong setting sometime for current time position fix for primitive "Diagram". !!: 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. !!: For primitive "Diagram" of the mode "Trend" the sliding by mouse is added in the time axis. !!: Session restoring moved to the prior pages pre-removing but that is some faster, safer and cleaner then updating. !!: "Developers" help field removed by merging it to the field "Author". !: The view "List" of primitive "FormEl" expanded by appending the pointed but missed values to the list. !: Widget's tooltip and statustip set to show at not full transparent widget's parts. Unloaded mimes' extension sets to stored with the resource before taken from the mime type. Expanded for authentication message error detailing. Source code of primitive ElFigure some addition cleaned. Using of the connection ID is added. Force to widgets update and restoring openned pages at a reconnection is added. Lock for the main window changing in run mode at the session update-reconnect. !!!!:FIX:WebVision: SVG images show fixed by correct mime processing into UI.VCAEngine and TUIS::mimeGet() using. FIX: View "Button" of primitive "FormEl": fixed for next line processing, fixed for true text and image represent. FIX: For primitive "Text" set "line-height" for prevent upper font's padding and its representing for rotated texts moved to use CSS property "transform: rotate({X}deg)". FIX: The prototype "Media" processing some fix for "fit" toggle and container's scale changing. !!!!: Adapted to asynchronous calls for all regular updatings by servGet() and makeEl() adapting to it. !!: Font's behaviour was expanded to support for text decorations "underline" and "line-through". Icons to project's and session's items are added. Generic views of primitive FormEl set for padding to "0". Some changed in ElFigure implementing code for crashes in Post. !:FIX:WebUser: Source code cleaned and the translation corrected. !: Semantics of the page's function expanded by two objects' arguments "This object" and "Protocol's object". !!!!:WebCfgD: A new design created. - Special: !!:FIX:FLibSYS: FFT buffers "free" using fix, instead "delete". Translation was fixed something. Function strParse() expanded for multisymbols separation. SystemTests: A test of the preloading scanning mode added to the DB tests pool. FLibMath: The source code cleaned. 2016-07-14 Roman 0.8.16 - !!:FIX:Archive: Old LTS problem with alarms is fixed, for the negative level read from the messages buffer and allow write to archives. - !!!!: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. - FIX:UI.Vision: Pages including into the pages container is fixed for adjust at it's scale change. 2016-06-28 Roman 0.8.16 - API: !!!!:Changes: 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. pthread_mutex_t, MtxAlloc and MtxString moved to the mutex wrapper object ResMtx. DAQ: API functions tplE(), tplIOE(), errE() renamed to elTmpl(), elTmplIO(), elErr(). Archive: m_start, run_st, m_db were renamed to mStart, runSt, mDB. Appends: SYS: Resources locking in RW object "Res" expanded by the functions (synonyms) lock(), tryLock() and unlock(). Additional managing time macro FTM2 is added. TFunction: Virtual function prog() and setProg() is added for allow it's control through an abstract object. User API function SYS.sleep() expanded to accept first argument of time in seconds as float and allow to set here up to nanoseconds. DB: Resource's of the DB allocation TBD::resTbls is added. DAQ.BlockCalc: User API functions cntr(), cfg(), cfgSet() for blocks are added. Archive: messPut(), messGet() and same user API function expanded by the argument "arch" to allow direct to the pointed archivators requesting. User API function messGet() expanded by argument "upTo", for the timeout direct control allow. 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. 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. Transport: Starting-connection time is added to the output transports. UI.VCAEngine: 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. Special.FLibSYS: The time functions are appended by tmSleep() for faster access to the short sleeping provides. - SYS: FIX:User's space flags to generic nodes (TCntrNode) processing fixed, mostly for "RM_Full" flag and DAQ paramter's archives propper removing. !!!!: CoreLib version rise to 2.4. DB,DAQ,Archive,Transport: Module's subsystems' version set to 8. !!!!:TCntrNode: Free of locked nodes and attach to disabled ones are prevented by propper resource locking to mUse. !!!!: For some productivity rise the exceptions catch moved from the object copy to it's reference. !!:{DAQ,Transport}.*: Tasks priorities range expanded up to 199 where 100-199 used for SCHED_FIFO tasks planing policy. !!:All key warnings next resolved. Include some controversial ones: DAQ.OPC_UA.libOPC_UA: Encoding mask processing in mix of operations '&' and '|'. Function realRound() some set simply. System configuration fields "workdir", "moddir", "icodir" set to readonly from the configuration interface, mostly for wrong changes prevent and the changes allow only by the configuration file edit. Security: Adapted to prevent passwords storing in open view as hash instead, for: OpenSCADA host (Transports), Protocol.SelfSystem, UI.Vision. crypt_r() using enabled only for "__USE_GNU" and the open passwords store instead. TSYS::strEncode() in variant SQL expanded by the doubling method of the pointed symbols. data/debian: the service's script openscada.init moved to separated package openscada-server. changelog: Author set to OpenSCADA , mostly for allow the sign after build by that key. - DB: !!!!: All DB modules rewrote to open table without exceptions into the table object constructor. !!:FIX:MySQL,SQLite,PostgreSQL: Prevented the "BEGIN;" and "COMMIT;" request's sequence breakage on high concurrency access activity. "connRes" moved from pthread_mutex direct to ResMtx wrapper. {PostgreSQL,SQLite}: TSYS::strEncode() in doubling method is used. FIX:DB.PostgreSQL: Fixed for symbols "'" '"' encoding by it replace to the doubling method. FIX: Fix cycling after unsuccessful a table's structure correction. MySQL: Executions into BD::postDisable() are prevented. - DAQ: !!: User API function funcCall() significant expanded to fix the result function for reusing and then significant performance rise. FIX:Value: Write access to DAQ attributes closed for all into the service request "set". FIX:*,DAQ.LogicLev: Special and translated IO from config are prevented from the redundancy. !!!!:*,LogicLev,ModBus: DAQ redundancy of the dynamic attributes is added. !:ModBus,Siemens,DCON: Pass of real requests at the first and last iterations, only the procedures execution. !!!!:FIX:OPC_UA: Module for client renamed to "Client OPC-UA" and for server to "Server OPC-UA". Some spare error messages removed. !!!!:Protocol: Works into the poll mode of input transport are allowed and enabled by default. The Publish service now allowed on the LTS! reqData() fixed for "NodeClass" processing of the "Browse" request, mostly for forward request to the data model. !!!!:FIX:libOPC_UA: 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. !!: Early Acknowledgements processing in request "Publish" is added. TimeStamps into the "Write" client request's are disabled but some servers tell 0x80730000 (OpcUa_BadWriteNotSupported). New client/server services implemented: RegisterNodesRequest, RegisterNodesResponse, UnregisterNodesRequest, UnregisterNodesResponse. Only formal and no a real doings! Initial filters support is added into requests CreateMonitoredItemsRequest and ModifyMonitoredItemsRequest only for OpcUa_EventFilter at AId_EventNotifier parse. Services CreateMonitoredItems and ModifyMonitoredItems processing merged to a singe one. 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. Input Variants function iVariant() is added as a separated part of function iDataValue(). Successful adapting to work with UAExpert 1.4. !!!!:JavaLikeCalc: Support of included functions definition and it's call is added. !!: To function object is added "To start" parameter for allow disabled by default ones. Operation "||" and "&&" formal set to equal priority. Checking for IO moved before constants for it's override. Constant "EVAL" as a synonym to EVAL_REAL is added. FIX:Siemens: A crash problem at high and frequent interaction is fixed, fragments changing (by assign) is moved to replace everywhere. FIX:LibnoDave: gethostbyname() replaced to it's reentrant variant. DCON: Some cleaned. enRes and reqRes resources lockators moved from Res to ResMtx. ModBus: "Value" field of the templates set to use as a default link, on first enable. !!:BlockCalc: Configuration fields of block unified and moved to TConfig::cntrCmdMake(). Special attribute "this" of the object access set to processing into blocks. =Tmpl=: Some cleaned and expanded. - Archive: FIX: Time limit for get() messages fix. FIX: Group messages archives request timeout, for common, fix into get(). !!!!: messPut() expanded to write messages independent to the alarms table. Resources allocation space decreased exclusively to local buffers access and prevent some racecondition at the archivators access. DBArch,FSArch: Get messages request for equal begin and end time is allowed. !!!:FIX:FSArch: Check for duplicate as equal time, category, level (by the option "prevDblTmCatLev") and it prevent is added. !: Expanded for early limits check and it's check at unpack errors and then prevent storages overfull at close limits and small storages. Check for duplicated at all fixed. Time into cache changed from time_t to int64_t (in microseconds). Used FTM() for left the messages time. Get from XML set some optimal. Get from plain allowed for the messages time equal to end. !!!:FIX:DBArch: Get messages algorithm is rewrote to request by minutes. !!:Table structure's for value and messages set adaptive and moved to the objects TMArchivator and ModVArchEl. New option of the messages archiver are added: "Store time as pure integer". "Archive size (days)" for both values and messages adapted for set to zero (<0.1) and disable the limit at all. The used table closing after any put request is disabled. - Transport: Modify property is added to the external host's object for reconnect on it modification. !!:FIX:SSL,Sockets: gethostbyname() and getservbyname() replaced to it's reentrant variants. !!:FIX:Serial,Sockets: For result's reading, into output transport, added waiting for data at zero or/and EAGAIN error. FIX: Errors on writing in the output part is fixed. !!: 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. Sockets: Input transport's error messages some improved and set more informative. - Protocol: !!!!:SelfSystem: Force authentication update by attribute "rqAuthForce" is added. !!!: Reforwarding of host's requests by attribute "reforwardHost" into the input part 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. Attribute "remoteSrcAddr" of the root node set/reserve to the remoted host's address. - 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 and it limited to one second in the development mode. 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 ":". To view "Table" of the primitive FormEl into root tag "tbl" added attribute "sortEn" to direct sorting by columns and header's item option "sort" for point to initiate sorting column. FIX:Vision,WebVision: Mode "XY" of the primitive "Diagram" fixed for build by sorting by 'X' disable, only the hierarchical order. For primitive "Diagram" to data block "data:
" option "Approximation (aprox)" is added. FIX:UI.QTCfg: Read only of selected items are fixed in alignment with other items in single row. Changed user apply is fixed. FIX: Into TextEdit widget added a signals blocking at setPlainText() for prevent the cursor events, status bar update and crash in some cases here. FIX: External host's status processing mostly improved and fixed. FIX: Timeouts of external host are set configurable by the option "TmConChk". FIX: The options StartUser and StartPath are moved under a resource allocation by the type MtxString. FIX:VCAEngine: The function's resources locking is added for SesPage::setEnable(). FIX: Mostly information messages from the information level moved to the debug one. FIX: setNoTransl() at the attributes loading disabled by some problematic and no a sense. !: Force inheritance of links types is added, independent from the attribute local modification. Mostly for prevent the link's type changing lost, as significant one, into the modified attributes. !: To project objects were added a property "EnableByNeed" to control the projects ready after start and prevent long connection by the deferred enabling. Try to enable for disabled pages, at an alarm set action, is prevented by some strange crash here observed, only into LTS. Control request "activate" expanded by "aVls" and "aNms" determine. The runtime note messages are added: "User is changed to ...", "User is connected ...", "User is disconnected ...". Manual creation mark for pages is added. Mostly for modification of the childs 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. To messages reading by the repeating tags of primitive "Document" added attribute "docAMessArchs" to allow read only pointed archivators. !!!!:FIX: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. 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 lost was moved to a single request (and thread) from updatePage(), for multithread access prevent and crashes (mostly from the notification tasks). !!!!:FIX: View "Table" of the primitive "FormEl" significant expanded by: global table's attributes: "hHdrVis", "vHdrVis"; row attributes "colorText", "font"; column attributes "color", "colorText", "font". FIX: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. FIX: The palette restoring to visibleCheck function is added for prevent FormEl's artifacts at last. FIX: Mouse events at all enabled for "FormEl" primitive and some artifications like ticks lost into Slider but mostly into Table detected and fixed. FIX: Context menu problem for views List, Tree and Table of the primitive FormEl is fixed, for allow the right mouse button's event come to the system functions. !!!!: 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. !: 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. For the attribute inspector labels of the attributes the ToolTip is added to long names (>20). The view "Table" of the primitive FormEl mostly adapted to sorting by the columns. conErr pointer lost for not zero set at the master page free/replace is fixed. That sometime causes to crashes! Global modification mark processing moved to different function modifyGlbStUpdate() and some changed. UI.WebCfg: Source code significant cleaned. - Special.SystemTests: The DB tests are expanded by a seek test. 2016-01-19 Roman 0.8.15 - FIX:Protocol.UserProtocol: The regression fix by functions TProtIn::{waitReqTm,setSrcTr}() miss. 2016-01-12 Roman 0.8.15 - API: !!!!:Changes: SYS.TModule: The info attributes like m{Name} renamed to mMod{Name}. Function modInfoMainSet() added and used into all modules for main info attributes of module set. TProtocolIn, Protocol.UserProtocol, Transport.*, DAQ.{ModBus,OPC_UA}: The input transport store by locked header instead the path for faster access, API functions changed: open(), srcTr(), setSrcTr(). Appends: SYS: Object ResMtx is added for gather all platform specific mutex implementation. Function TSYS::taskUtilizTm() added for get utilize time by the pointed tasks. TElem: Item's resource mResEl moved from Res to pthread_mutex_t, and it allowed for public access. Hardware platform endian specific conversion function's implementation placed, for: i16_LE(), i32_LE(), i64_LE(), i16_BE(), i32_BE(), i64_BE(), floatBE(), floatBErev(), doubleBE(), doubleBErev(). DAQ.{LogicLev,ModBus}: Appended by user API functions to the parameter object attrAdd() and attrDel() for attributes free management. Transports: User API function {TrOut}.start() added for fast control for the output transport state. Protocol.{*,UserProtocol},Transport.{Sockets,SSL}: Function Protocol::waitReqTm() added for poll mode control of input protocols. - SYS: !!!!:FIX:TVarObj: Object's twice free possibility prevented. TVarObj::propGet() EVAL result fix. FIX: Wrong translation fix to Russian for the message "%s for type '%s' doesn't support module version: %d!" !!!!:Core library version rose to 2:3:0. DB, DAQ, Archive, Protocol, Special, Transports, UI subsystem type modules version rose to 7. TFunction: run_st renamed ro runSt. Archive.FSArch,DB.DBF,DAQ.{Comedi,SMH2Gi}: readdir_r() using rewrote to "dirent" structure direct malloc and prevent problems on other OS, like QNX. - DAQ: !!!!:FIX:OPC_UA: FIX:libOPC_UA: All wrong empty strings (-1) replaced by empty array (0). FIX: System attributes' value reading (AId_Value) fix for substitute first values to next, into single read package. FIX: Empty Read service list cicling fix. FIX: Auth processing for client fixed to storing current endpoint description for next actual "policyId" obtain and using to the auth service. FIX: Wrong NodeId::Opaque type set fix. FIX: Fix something "EndPoint" lack. FIX: Conditional session's clear for selected endpoint is added, mostly for prevent this lost at no "None" policies. Expanded to new error codes. To server part new default name spaces added: 2-"http://opcfoundation.org/UA/DI/, 3-"http://PLCopen.org/OpcUa/IEC61131-3/". 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. Specific value types OpcUa_IntAuto and OpcUa_UIntAuto added for adaptive integer type selection, mostly for provide integer into not fixed int32 (int64). Error OpcUa_BadNoSubscription added to PublishRequest. Server folder "ServerCapabilities" added and some items here. 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". FIX:Client: Status codes display fix for the controller's attributes. Product URI changed to "urn:OpenSCADA:DAQ.OPC_UA". Appending information by: applicationUri(), productUri(), applicationName(). For empty "browseName" browsed nodes using "displayName" set. Test client's source code some cleaned and expanded. Server: OpenSCADA DAQ name space set to index 4. FIX:JavaLikeCalc: For library "run_st" renamed to "runSt" and init to false. FIX:ModBus: Some original messages fix. Some resources lock appended. !!!!: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. - Transport: !!:FIX:{Sockets,Serial,SSL}: Resource of output transport lock into messIO() fixed, by no real a lock hold. !!: Poll mode of input protocol support is implemented. !!: No request mode support is added and all modules adapted to it, in way of