From OpenSCADAWiki
< Documents | Release 0.8.0
This update of the 0.8 LTS release fixes about 35 bugs and appends some improvements, which you can read wholly in the update ChangeLog.
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, 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
- 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.
- {DAQ,Transport}.*: Tasks priorities range expanded up to 199 where 100-199 used for SCHED_FIFO tasks planing policy.
- 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.
- data/debian: the service's script openscada.init moved to separated package openscada-server.
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.
- FIX:DB.PostgreSQL: Fixed for symbols "'" '"' encoding by it replace to the doubling method. FIX: Fix cycling after unsuccessful a table's structure correction.
DAQ
- User API function funcCall() significant expanded to fix the result function for reusing and then significant performance rise.
- *,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".
- Protocol: Works into the poll mode of input transport are allowed and enabled by default. The Publish service now allowed on the LTS!
- 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).
- Successful adapting to work with UAExpert 1.4.
- JavaLikeCalc: Support of included functions definition and it's call is added. 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.
- BlockCalc: Special attribute "this" of the object access set to processing into blocks.
Archive
- messPut() expanded to write messages independent to the alarms table.
- 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).
- 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
- 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.
Protocol
- SelfSystem: Force authentication update by attribute "rqAuthForce" is added. Reforwarding of host's requests by attribute "reforwardHost" into the input part is added.
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 ":". 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:<dt/>" option "Approximation (aprox)" is added.
- FIX:UI.QTCfg: 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: setNoTransl() at the attributes loading disabled by some problematic and no a sene.
- Force inheritance of links types is added, independent from the attribute local modification.
- 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.
- The runtime note messages are added: "User is changed to ...", "User is connected ...", "User is disconnected ...".
- FIX:Vision:
- FIX: 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.
- Processing of the information dialog about a connection lost was moved to a single request (and thread) from updatePage().
- 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 fixed.
- FIX: Context menu problem for views List, Tree and Table of the primitive FormEl is fixed.
- 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.
- FIX: Too important fixes made in way of adapting to stable work with remote VCA servers:
Special
- SystemTests: The DB tests are expanded by a seek test.