Contents
[hide]- 1 Updates
- 1.1 [06.06.2018] The TWENTIETH (20) last update
- 1.2 [29.12.2017] The NINETEENTH (19) update
- 1.3 [02.07.2017] The EIGHTEENTH (18) update
- 1.4 [12.02.2017] The SEVENTEENTH (17) update
- 1.5 [28.06.2016] The SIXTEENTH (16) update
- 1.6 [12.01.2016] The FIFTEENTH (15) update
- 1.7 [07.11.2015] The FOURTEENTH (14) update
- 1.8 [14.05.2015] The THIRTEENTH (13) update
- 1.9 [27.12.2014] The TWELFTH (12) update
- 1.10 [21.07.2014] The ELEVENTH (11) update
- 1.11 [09.05.2014] The TENTH (10) update
- 1.12 [21.12.2013] The NINTH (9) update
- 1.13 [16.09.2013] The EIGHTH (8) update
- 1.14 [11.07.2013] The SEVENTH (7) update
- 1.15 [12.05.2013] The SIXTH (6) update
- 1.16 [02.02.2013] The FIFTH (5) update
- 1.17 [13.11.2012] The FOURTH (4) update
- 1.18 [08.09.2012] The THIRD (3) update
- 1.19 [09.07.2012] The SECOND (2) update
- 1.20 [09.06.2012] The FIRST (1) update
1 Updates
1.1 [06.06.2018] The TWENTIETH (20) last update
This update is the last one update of the the 0.8 LTS release which mostly means as a transitional one for updating to 0.9 LTS. Have fixed about 30 bugs and append some improvements, which you can read wholly in the update ChangeLog.
API
!!!!:Changes:
- 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_().
- DAQ.JavaLikeCalc: The function String.toInt() of the user API set to the base "10" by default.
- UI.{VCAEngine,Vision}: The term "quittance" renamed to "quietance", from the word "quiet" which is a logical one for the alarms, but the user API is remained compatible. Backported for implementing the modes "Load", "Save", "Menu" of the view "Button" of the primitive "FormEl" and the attribute "checkable" renamed to "mode"!
- TFunction,TPrmTmpl,DAQ.JavaLikeCalc.FLib: Some control interface properties (ID, NAME, DESCR) set to relation with the DB configuration.
Appends:
- SYS:
- The function cmdOptPresent() added and used only for the parameter presence checking.
- DB.DBF,Archive.FSArch,UI.Vision: Added for generic control for permition of created files by OpenSCADA, by the command-line parameter "--permCrtFiles" and the function TSYS::permCrtFiles().
- TRegExp: Backported for UTF8 flag support, unset by default. The attribute "err" added to the result array of the match() request.
- The virtual functions TSubSYS::optDescr() and TModule::optDescr() added for the unified command line help.
- Generic labels appended for messages categories by the function TMess::labMessCat().
- DAQ.JavaLikeCalc: The user API expanded by the casting functions {Boolean,Integer,Real}.{toReal,toInt}().
SYS
- *: Most original messages are revised and improved. 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. "Template library" renamed to "Templates library", "Archives" renamed to "Archives-History", "ID" renamed to "Identifier".
- TCntrNode: The node's disabling/disconnecting timeout is based on the standard STD_WAIT_TM(10) and, when it is exit it is set to STD_WAIT_TM*5, instead of DEF_TIMEOUT.
- A new command-line argument --consoleCharSet added for control the console charset, for messages and help.
- The command-line argument --modDir was added as a copy of the configuration file parameter "ModDir".
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.
DAQ
- {TPrmTempl,JavaLikeCalc}: Finished and tested at the implementing the class TPrmTempl::Impl of the using unification of the DAQ templates.
- SNMP: Expanded for the connection error control at the parameter level.
Archives-History
- The archivers' objects copying prevented from copy the configuration field "ADDR", prevented from startup and fixed for copying addition properties.
- Fixed for archivers loading at some archive module missing.
- FSArch: Cache access moved under a critical section, for preventing crashes at high load. Hardly prevented from the configuration field "ADDR" changing in the running, both for messages and values. A procedure of the configuration field "ADDR" checking for duplicates added. Archive files renamed to the format "%F %H.%M.%S" to allow their creation on FAT.
- DBArch: Fixed for single-value request of the value archive.
Transports
- Serial: Added for measuring of the maximum char symbol time of the output transports in the requesting and debugging mode.
UI
- {VCAEngine,Vision,WebVision}: The primitive "Text" was appended by an attribute "inHtml" and the support of display HTML.
- FIX:{QTStarter,QTCfg,Vision}:
- Most Qt objects removing moved to use deleteLater(), for safe removing under processEvents() call.
- Size of icons and fonts made adaptive from the main-system font real size by the new function icoSize(), for: the main window initial size, the title font, toolbars' icons, the navigation tree's icons, the control tree view, the splitter width.
- The QTStarter menu forming changed for make the actions independent but the problem of the native menu bar forming in Unity.
- Force switching to the style QPlastiqueStyle() (Qt4) or QCommonStyle() (Qt5) was removed by the implementing the control of the look and feels in OpenSCADA.
- {VCAEngine,Vision}: Some measures were performed to allow the full-featured "hot" development for already running and remote sessions:
- The projects expanded by the using sessions accounting for new pages hot enabling on the sessions.
- FIX: The attribute "value" of the primitive "FormEl" prevented from the modification flag set at the type change.
- FIX: Restored and fixed for hot tracing into sessions of changes into widget's links.
- Implemented for hot update of the widget procedures of the runtime mode.
- ElFigure: Some properties of the common part of the developing mode were moved to the private widget part.
- QTStarter: Expanded by the Look and Feel control itself and its profiles support from the configuration file table "LookFeel" of the module, for: Generic font, Widgets style, Palette, CSS style.
- QTCfg:
- Fixed, in the closing mostly, for processing of requests into the different threads and for crashes at opened warning-error dialogs.
- Forming item's WhatsThis, ToolTip and StatusTip is unified moving to one function setHelp().
- The fitting mechanism of the vertically-scalable items was made: reseting for the previous fitting, faster and more precision.
- VCAEngine:
- Prevented from saving not enabled yet items at "enableByNeed".
- Archive mode of the primitive "Document" improved by the specific attributes set to the new mode Attr::NotStored. Prevented from the missing attributes warnings at switching the primitive "Document" to the dynamic mode.
- Vision:
- Scaling the main runtime window made absolute, from the window original size.
- The InputDlg widget expanded for controlled save and restore the window size, for very expanded ones on the example of the fullsized text edition.
- WebVision: The modes "Menu", "Load" and "Save" of the view "Button" of the primitive "FormEl" are implemented.
1.2 [29.12.2017] The NINETEENTH (19) update
This update of the 0.8 LTS release fixes about 30 bugs and appends some improvements, which you can read wholly in the update ChangeLog.
API
!!!!:Changes:
- SYS.*: The flag TCfg::TransltText was moved to TFld::TransltText and used instead TFld::NoStrTransl also which removed.
- Transports: 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. Resource lock object nRes and its function nodeRes() removed for the input transport object.
Appends:
- SYS:
- strEncode() expanded by the mode "ToLower" for conversion to lower register.
- Command-line options preloading and direct access-modification added by a new function cmdOpt(), full switch to cmdOpt() from getCmdOpt().
- Binaries decoding into strDecode() expanded by the argument's value "<text>" for text field in right forming.
- XMLNodeObj: Appended by an user API function getElementsBy() of XML nodes list obtaining by tag name or some attribute value.
- TArrayObj: arSet() adapted to the array end appending by a negative index.
- DAQ.{AMRDevs,ICP_DAS},Special.FLibSYS: A self implementation of 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 ",". DAQ.OPC_UA.libOPC_UA: Function TSYS::str2real() placed and used into the independent library. Disabled now!
- Transports: Generic IO log for both input and output transports was added into the core and all transports modules.
- UI.VCAEngine: Appended by user functions of the session space: reqTm(), reqUser(), userActTm().
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.
- 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 " ".
- TRegExp fix in function match(), for hang and crash prevent.
- The core library version set to 2:6:0. Modules version of the subsystem "Transports" rose to 10.
- TConfig: Prevented from recursive entry to cfgChange() by a flag mInCfgCh.
- XMLNodeObj,XMLNode: Full children clear set from the end for much speed up of the operation.
DB
- Tables' content display set to configurable limited, by default it is 100 rows.
- {SQLite,MySQL,PostgreSQL,FireBird}: Preloading of fieldSeek() set limited on 100 records, for long unterminated hangs prevent.
DAQ
- {DCON,ModBus,Siemens}: Mutex objects "enRes" and "reqRes" set to recursive ones by Oleksiy Bondarchuk.
- SoundCard: Significant revised and fixed for work with the real hardware and virtual ones like PulseAudio and tested on sample rates up to 192000.
Archives
- Values and messages archivators appended by the maximum value of measuring of the processing time.
- FSArch: Archive files multiple pack-unpack prevented. 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.
- DBArch: Appended by wrong archives pass of the values.
Transports
- {SSL,Sockets}.out: Transport's functional lock of resources was merged with reqRes().
- Input transports appended by measurement of the current and maximum time of requesting to protocol, in the "Debug (0)" mode. Output transports were appended by the responsible time measurement in the "Debug (0)" mode.
Protocols
- HTTP: Expanded by a list of users allowed for auth. mNoFull renamed to mNotFull.
UI
- {QTCfg,Vision}: Main window and main dialogs (developing for Vision) size and splitter's properties storing and restoring were added.
- QTCfg: Fix vertical scalable widgets "Tables" and "Lists" by their placing at the end of the widgets stack. Prevented from high load at the respond waiting progress dialog.
- VCAEngine: 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. Added control for user action by its last action time.
- 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. Self 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, placed also into the property "menuStarterAddr" of the application main object.
- Vision:
- The main window size was set to fit the master page size after return from maximizing or the full-screen and opening in the original size.
- 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.
- 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.
Special
- FLibSYS: VArch::set() expanded for single value writing to the archiver of the archive.
1.3 [02.07.2017] The EIGHTEENTH (18) update
This update of the 0.8 LTS release fixes about 30 bugs and appends some improvements, which you can read wholly in the update ChangeLog.
API
!!!!:Changes:
- SYS:
- XMLNode: Functions save() and saveNode() set to constant ones.
- XMLNodeObj: User API function text() was expanded by argument "full" for all child's texts combine.
- ModSchedule: Function ScanDir() and CheckFile() were renamed to dirScan() and fileCheck() respectively.
- Transport.out: User API function messIO() was expanded for return string type everywhere.
- Special.FLibSYS: The user API function dbReqSQL() was moved to the features of the function SYS.BD["TypeDB"]["DB"].SQLReq().
Appends:
- SYS: TMess::getUTF8() function was added and used for UTF-8 symbols detect into XMLNode::encode(). TCntrNode: Expanded by a user API function "messSys".
- Archive.Value: User API functions were appended by setVal().
SYS
- More original messages were fixed.
- ModSchedule: Modules closing at exit was set to all the modules closing firstly and next all the module's libraries unlinking. Modules scanning procedure was expanded by the module's name template into the end of the path.
- Significant changes into the build system.
- XMLNode: The serializer was expanded to true check for UTF-8 symbols and " " processing in function encode() and the parser, for entity " ".
- Protocol.HTTP,UI.{WebUser,WebVision}: ACL support was added to control access and visibility of items of indexes of Web resources.
- An command-line option "lang" was added.
DAQ
- ModBus: Managing of duplicate attributes of the standard parameter was fixed.
- DAQGate: Requests were fixed after moving to different station. Expanded for allow write to configure's attributes "NAME" and "DESCR".
Archive
- Fixed for checking for a proper archivator by its periodicity, allow for correct selection archivators in periodicity more then one minute in graphics building.
- FSArch:
- 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.
- Fixed for too long messages back reading and wrong messages reading was prevented at all.
- Expanded for INFO files store into a standalone DB file of SQLite into the archivator's folder.
Transport
- SSL:
- Fixed into client's part for correct free which caused for crashes and blockings, for SSL_free() missing and variables "ctx", "ssl", "conn" clean at second start, into the output part. Wide tested on browsers Chrome, Firefox; for file handlers free and into Valgrind.
- The method "SSLv2" was finally removed but it is not secured and fully removed from OpenSSL 1.1.
- SSLv3_server_method() and SSLv3_client_method() functions were set to disabled by OPENSSL_NO_SSL3 definition.
Protocol
- OPC_UA{*.libOPC_UA}: The resource "mtxData" added to object Server and used for the security channels container management.
UI
- {VCAEngine,Vision,WebVision}: An attribute "mult" was added to view "List" of the primitive "FormEl" to able multiple lines selection.
- QTStarter: Fully merged from the Work branch.
- QTCfg: Scalable vertically items were finished to implement their true fitting for: texts, tables and lists. sizeHint() and minimumSizeHint() processing was fixed for "Text" and "List" items.
- VCAEngine: Links checking for activity was added to the dynamic linking mechanism.
- Vision:
- Images of primitive "Media" clean at an empty string set was added.
- Separator "\n" was set for encoding by TSYS::base64 to storages.
- Fixed for opened to edition widgets size on big screens, the fitting was set conditional for an active and maximized window miss but there has a problem in Qt.
- FormEl.Table: Fixed for properties of columns. Expanded for field "width" equal to 0 processing to hide the column. X scaling used into result column width.
- WebCfgD:
- The "Table" element processing for big content was some improved and fixed for key items edition.
- Fitted to allowed space for scalable by vertical elements: texts, tables, lists.
- GD library was replaced by the CSS filters and set optional by --enable-LibGD.
- The navigation tree and dialogs forming were some improved, by drop shadow and a transparent background for disable access to the main area.
- Item copy was expanded by it copy to its root through self.
- Generic improvement.
- WebVision:
- Width of the popupmenu was fixed for context menus.
- Behaviour of the primitive "Media" for not "Fit" mode was fixed to prevent the scale problems in way of full removing the tag <img>. Vertical alignment was added to images of the primitive.
- Dialogs, small built-in windows, forming was some fixed and improved, font of title was set to 12pt.
- System context menu oppressed for active widgets.
- Borders and transparent backgrounds processing was fixed. 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.
- Primitive "Text": spaces processing was set to "white-space: pre-wrap", the property "wordWrap" support was added.
- The view "Button" of the primitive "FormEl": was fixed for words wrap on Chrome browser, switched to use filters for display inactive images.
- The views "Spin bar", "Scroll bar", "Table", "Tree" were implemented. The view "Scroll bar" is equal to "Spin bar" now.
- View "Line" of the primitive "FormEl" was expanded by the calendar dialog for date variants.
- 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.
- 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.
- Generic improvement.
1.4 [12.02.2017] The SEVENTEENTH (17) update
This update of the 0.8 LTS release fixes about 60 bugs and appends some improvements, which you can read wholly in the update ChangeLog.
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
- 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.
- LibZ functions were rewrote for some unification and the used memory optimization.
- Adapted and some fixed to build by GCC v6 with C++11 by default.
- Minimal messages level for all configurations set to "Info(1)".
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.
- PostgreSQL: DB object expanded by a statistic to control the activity and lags.
DAQ
- The task's execution status was expanded by the maximum consumption value.
- 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.
- LogicLev: Moved for set the attribute "f_frq" to the real frequency, taken from the task description structure.
- OPC_UA.libOPC_UA: Chunks support was added to server's part. Tested on chunks into input requests for insecure and secure connections. 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.
- JavaLikeCalc: 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.
- System: Expanded by "FS" data source. Automatic creation of sources expanded to modes of the sources "Fast" and "Slow".
Archive
- Spare writings direct to the archivators prevented for TVArchive::setVals(). getMess() fix for double call modules' function get(), by fmin() using.
- {.,FSArch}: Last read buffer information is added and the property using fix. Exceptions into archivatorAttach() at the archivator's object stopping are prevented for allow the archive early start.
- DBArch: Messages archivation part fixed for "needMeta" and to deny an access to the archivator before the successful meta get. Reading of the value archives set 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.
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.
- 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. 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.
- 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.
- 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. 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. Expanded for the main selection dialog with images and context help for allowing WWW-modules. The main page's template splited from the generic template for allow absolutely custom main pages.
UI
- {WebUser,WebVision}: Expanded to using 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. Expanded by a command line argument "--noX11" for allow the Qt disabling.
- QTCfg: Dangerous missed page refreshing prevented into applying changes on widgets of the replacing page, "Apply dialog for changes missing prevent". Moved from QMutex and QWaitCondition to ResMtx and CondVar, mostly to prevent here hangs on the system time changing.
- VCAEngine: FuncM resources lock set for a recursive to prevent dead locks. Session calculation time expanded by its maximum value. Adapted to TUIS::mimeGet() using.
- Vision: Visualizer specific attributes are alowed for the primitives and an attribute "sclWin" added and used to primitive "Diagram" for trends view in scale by window drawn by mouse. To primitive "Diagram" of the mode "Trend" the sliding by mouse is added in the time axis. Widget's tooltip and statustip set to show at not full transparent widget's parts.
- WebVision: Adapted to asynchronous calls for all regular updatings by servGet() and makeEl() adapting to it. SVG images show fixed by correct mime processing into UI.VCAEngine and TUIS::mimeGet() using. View "Button" of primitive "FormEl": fixed for next line processing, fixed for true text and image represent. 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)". * The prototype "Media" processing some fix for "fit" toggle and container's scale changing. Font's behaviour was expanded to support for text decorations "underline" and "line-through".
- WebUser: Semantics of the page's function expanded by two objects' arguments "This object" and "Protocol's object".
- WebCfgD: A new design created.
1.5 [28.06.2016] The SIXTEENTH (16) update
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.
1.6 [12.01.2016] The FIFTEENTH (15) update
This update of the 0.8 LTS release fixes about 20 bugs and appends some improvements, which you can read wholly in the update ChangeLog.
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 polling mode control of input protocols.
SYS
- FIX:TVarObj: Object's twice free possibility prevented. TVarObj::propGet() EVAL result fix.
- Core library version rose to 2:3:0. DB, DAQ, Archive, Protocol, Special, Transports, UI subsystem type modules version rose to 7.
- 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: Empty Read service list cycling fix. FIX: Authenticate processing for client fixed to storing current endpoint description for next actual "policyId" obtain and using to the authenticate service. To server part new default name spaces added: 2-"http://opcfoundation.org/UA/DI/, 3-"http://PLCopen.org/OpcUa/IEC61131-3/". 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). Virtual function connect() into client is added for the connection control, used into service "CloseSecureChannel" for close connection.
- FIX:Client: Status codes display fix for the controller's attributes. 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.
- Siemens: Self implementing for ISO-TCP is added and tested, mostly by Proviron Holding NV request. Restoring timeout is added. Significant re-factoring 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. Polling mode of the input protocol support is implemented. No request mode support is added and all modules adapted to it, in way of time argument less to zero set into the {TrOut}.messIO() function.
- Serial: Disconnect (transport stop) from output port added on read <= 0, which points to the device lost at all.
Protocol
- UserProtocol: For input requests expanded to try enable, mostly for allow to use static functions into the procedures.
UI
- FIX:UI.{Vision,WebVision}: Crash into trend's data loading fix for no a value present (time = 0).
- QTCfg: Busy progress bar dialog adapted for first range set and it updating as maximum to current.
- Vision: Adapted for build with libphonon4qt5 and Qt5. Deprecated functions using is resolved for Phonon and Qt5.
1.7 [07.11.2015] The FOURTEENTH (14) update
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.TUI: Attribute run_st is renamed to runSt.
Appends:
- SYS: User API object Array expanded by function sum() for the array's pointed items sum allow. User API function SYS.fileRemove(string file) is added.
SYS
- FIX: User API function system() fixed for full reading popen's pipe, up to EOF.
- FIX: Only one processor, number 1, set at the multiprocessing checking fix by the real available processors get.
- FIX: Config-file loading and user API function load() rewrote for prevent access behind allocated memory.
- FIX: Security: standard users "root", "user" and groups "root", "user" creation added only after the subsystem loading and its lack. Function access() expanded for requested group presence checking and exception prevent.
- FIX:debian.openscada.init,data.{oscada_ALT.init,oscada_gentoo.init}: "export" keyword miss before LANG=en_US.UTF-8 fixed.
- TRegExp: To replace() added checking to nozero replace range for hangs prevent.
- Command-line options set to not case sensitive: coreDumpAllow, pidFile, h, help, log, messLev, modPath, config, station, statName. Some command-line options renamed and appended by the synonyms: demon + daemon, CoreDumpAllow to coreDumpAllow, pid-file + pidFile, MessLev to messLev, ModPath to modPath, Config to config, Station to station, StatName to statName.
- All modules version rose to actual changes and will next trace the changes.
- debian: Significant cleaned for most lintian's errors and warnings resolve. openscada.init: Default-Start levels set to 2 3 4 for autostart with GUI prevent, level 5.
- Main CPUs set appended as configuration field for allow generic processors select, include information about current processors set. The information about current processors set to a task's thread is added, into generic tab "Tasks".
- Addressing to the config file properties set to not case sensitive for attribute "id" value, especially for: Workdir to WorkDir.
DB
- FIX:DB removing from config file fixed, by set "ForceCfg".
DAQ
- FIX:{DCON,ModBus}: Error messages expanding to addition different errors per tries fixed.
- FIX:ICP_DAS: I-8017 fast acquisition task turn to use TSYS::taskSleep() instead clock_nanosleep() for hangs prevent at wTm overfull. Build on ARM fixed.
- FIX:DAQGate: Removing archives at the parameter removing disabled for possible archives lost prevent, at the sync. Fixed for prevent SHIFR and other attributes lost at the parameter restore, by lock, after it deletion try.
- FIX:JavaLikeCalc: Function {Integer}.toString() fixed for set to signed only the decimal base 10.
- FIX:SoundCard: Locked resources left prevented for not disabled parameters.
Archive
- FIX: Value's field "Source" set from the control interface (configurators) fixed.
- FIX:{*,FSArch}: prev_val unified to double type for all operations like average.
- FIX:FSArch: VFileArch::setVals() rewrote for integer and real data types rounding for prevent wrong access here to not allocated memory.
- Archive.DBArch: Back reading for long periodic archives, like minutes and hours added, at its starting.
Transport
- {Sockets,SSL}: Statistic information per active connection is added, include: socket FD, client host address, connection and last request time, IO traffic. Maximum clients per host limit is added.
Protocol
- FIX:OPC_UA: Possible processing for wrong certificates writing fixed. Library COPYING file replaced to "GNU LESSER GENERAL PUBLIC LICENS" content and the file GPL-3 also added. libOPC_UA appended by function Server::clientAddr() for the opened connection re-establish detection by the Secure Channel reusing.
- FIX:ModBus: Generic prefix 'i' and string processing fix.
UI
- FIX:{QTCfg,Vision}: Fixed for font get into the text edit syntax higligting and more, by Vision::getFont(), from the default font base (system font).
- {VCAEngine,Vision}: Visualizer specific control attributes support is added. "User's status line items" UI.Vision specific attribute implemented. Old fassion access to the permissions removed.
- QTCfg:
- FIX: Checking for no apply editable widgets rewrote to direct checking.
- Requests to hosts processing moved to different threads and the interface made responsible at whole.
- Integer edition fields expanded for adaptive processing to dec, hex and oct representation.
- List view widget is moved to ListView class, inherited from QListWidget for sizeHint() set to 5 rows for height.
- FIX:VCAEngine: Using into user attributes symbol '|' fixed for types no TFld::Integer, TFld::Real and selected. Inline helps for attributes of all primitives mostly updated.
- FIX:Vision: Build for Qt 5.4 fix. Check and notify about mime loading try to a selected item added.
Special
- FIX:FLibSYS: VArchObj::FFT(): Potential crash prevented. Expand for check to EVAL and replace that to adaptive <vlOnEVAL>, new last argument. To Array result added object's attributes "bufSize" and "bufEVAL" for some the data quality control.
1.8 [14.05.2015] The THIRTEENTH (13) update
This update of the 0.8 LTS release fixes about 50 bugs and appends some improvements, which you can read wholly in the update ChangeLog.
API
!!!!:Changes:
- SYS: Configuration resource moved to different cfgRes(). ModSched: Moved to different resources locking "schM".
- FIX:SYS: User API function SYS.strDecode() fixed for argument 2 using by default.
- TCntrNode: Flags MkDisable, Disable, MkEnable, Enable renamed to DoDisable, Disabled, DoEnable, Enabled. The shift delete mode removed as flag NodeShiftDel, functions nodeDel() and chldDel() last argument removing.
Appends:
- SYS: Short global function-link rRnd() (into namespace OSCADA) to TSYS::realRound() is added. Static function TSYS::getCmdOpt_() variant is added for the using allow from the main start program. User API object XMLNodeObj expanded by function clear() for allow fast a node clean up from childs, text and/or attributes.
- TRegExp: expanded by option 'u' for UTF-8 symbols allow and sets the force for UTF-8 locale.
- Transport: User API objects are appended by functions: In::{status,addr}(), Out::{status,addr,timings}().
- Archive: User API objects are appended by functions: TVArchive::{status,archivatorList,getVal}(), TVArchivator::status().
SYS
- Switch to building by the OpenSCADA automatic packages builder and moving for the service updates providing "0.8.13.{S}" to signed for the technical support users, oscada.org/en/services/technical-support.
- Main start program "openscada" mostly rewrote for preferable demon mode produce: check and switch to the demon mode first; CoreDumpAllow process for left for the work process; check and create PID-file for the work process; same OpenSCADA core start.
- FIX:TCntrNode: For Disabled nodes allowed to list also as checking for present.
- FIX: The functions libraries early starting into load_() prevented by crashing at "openscada --help", into DAQ.JavaLikeCalc. DAQ subsystem set to ordered and to the modules priority property "HighPriority" added to place the first allow.
- FIX: debian/rules made simplify and unified. "dh_installinit --no-start" set for prevent the service automatic start. debian/control: Depends for build with Qt5 is added.
- FIX:Init scripts:
- FIX:Debian: mostly improved, simplified, adapted to PID and fixed by remove force LC_ALL set and that break down individual LC_NUMERIC=C setting for different to C, POSIX or English locales.
- ALTLinux: mostly improved, simplified, adapted to PID using and expanded by argument "--retry TERM/30/KILL/5".
- Gentoo: mostly improved, simplified, adapted to PID and cleaned.
- RH: mostly improved, simplified, adapted to PID and expanded by argument "-d 30".
- TVarObj: The User API generic object's data resource locking Res replaced by pthread_mutex_t and the also used for connections to the objects.
- signal() replaced by sigaction() and restoring original handlers at the TSYS destroy is added.
- TArchives,TCntrNode,UI.VCAEngine: All remains operations with TArrayObj moved to arGet() and arSet().
DB
- FIX:FireBird: Prevent a table fix for key row as blr_varying. Configure template AX_LIB_FIREBIRD some adapted for configure and build that with headers into */include/firebird, like SuSE, and 64bit libraries, like Mandriva64.
- MySQL: Address field "names" sense changed to "sets" (charset-collation-engine) for the append to DB creation and SET commands.
- FIX:PostgreSQL: Entries duplicates and other ones miss for request fieldSeek() workaround is added by "ORDER BY" to the request append and the entries force sort. The build dependencies checking macros AX_LIB_POSTGRESQL some fixed for the results.
- FIX:SQLite: Adapted to the keys description as the key position number.
DAQ
- FIX:ModBus,DAQGate,OPC_UA: Fix for return after the condition "!p->enableStat() || !p->owner().startStat()" into the value set function, for next and real writing prevent.
- FIX:OPC_UA:
- FIX: libOPC_UA: TranslateBrowsePathsToNodeIdsRequest service fixed for processing not OK paths, addition debug messages are added.
- FIX: Big message's parts into the input protocol's part merge and wait fix.
- FIX: Input: Possible spare requests part drop fix after no need for now and no error full requests.
- FIX: OpcUa_Int64 type fixed by expand iN{u}() and oN{u}().
- The type Array of simple types support added, AId_DataType processing for type Array into the server part is added.
- For all limits control tab "Data" with the limits is added, limit limRetrQueueTm() for retransmission queue time control added.
- OpcUa_BadMessageNotAvailable to the service "RepublishRequest" error is added and used.
- Main integer changed from OpcUa_Int32 to OpcUa_Int64.
- FIX:Siemens: LibnoDave version updated to 0.8.5 (last from 05/17/13), pointer to int cast fixed by replace the cast to long.
- ICP_DAS: libi8k.a and the headers updated, watchdog for LP-8x81 by EnableWDT() replaced by EnableSysWDT().
- FIX:JavaLikeCalc: Expanded by VM commands AddAss, SubAss, MulAss, DivAss for make optimal operations ++, --, +=, -=, *=, /=, with assigning; mostly for the operations to type "String" and spare memory reallocation prevent here for any appends. FIX: Equal and NotEqual the virtual machine functions adjusted for undefined object's properties correct processing by the processing generic as Real for not String types. Set for binary operations like "a = b+c+d+e;" using single temporary register and allow speed optimization for strings append mostly.
Transport
- Sockets: Property MSS is added for control TCP-segment size for bad channels.
Archive
- FIX: mLastGet of values processing fixed to inactive (without buffer) archives for only direct writing here.
- FIX:FSArch: Repair values file's procedure fixed for fix value types and appended at last by not fixed type (like string) repairing code. Full tests chain passed for all fixing types to the sequential packing mechanism and the archive files errors repairing. The command line property "copyErrValFiles" replaced by directory "errors" present for copy the errors here.
- FIX: Processing for remove the files by limits fixed for prevent fresh-new archive file removing for two archive files.
- FIX: Strings archiving final fixed after last incomplete the string archiving fix into last value.
- FIX: Free storage space lack checking added for prevent hang and data lost for messages and values.
- The messages limits into the plain format archive expanded to 100000 symbols.
- Tab "Files" is added for the messages and the values with detailed information about the archive's files.
Protocol
- SelfSystem: SingleUserHostLimit property added for the limit control and error message by the reach is added. Expanded by status - Active authentication sessions.
- HTTP: Expanded by status - Active authentication sessions.
UI
- FIX:VCAEngine,Vision,WebVision:
- FIX: For primitive "Diagram" expanded address variant "data:{XMLNodeData}" for allow miss "tm", "tm_grnd" and possibility set that in seconds by attribute 's'. Fix assigning loaded values but not the append to the values buffer for direct address variants "line:{value}" and "data:{XMLNodeData}".
- FIX: View "Button" of the primitive FormEl adapted to the image scale for all the widget size and allowing cover all it space by the image.
- Type "XY" to primitive "Diagram" support is added, by Y into unpaired and X into paired parameters.
- True included widgets size scaling is added by scale edged point, for correct fit each to other at any scale.
- To primitive ElFigure attribute "mirror" is added for providing the primitive's shapes mirroring. For UI.Vision implemented only main functions and some problems present now for arcs.
- FIX:QTStarter: For main UI task destroy set timeout to 60 seconds and an execution generation allowed at the destroying timeout.
- FIX:QTCfg:
- FIX:LineEdit: The view "Integer" fixed to set allowed values limit [-2147483647:2147483647]
- TextEdit: Strong words wrap set, mostly for long descriptions. The fields vertical fitting to full page added, for busy. Rewrote for internal layout remove.
- FIX:VCAEngine:
- FIX: Link to a widget's attribute from the widget by "wdg:a_XXX" fixed and prevented from crash into generic status.
- FIX: User API operations mime() and mimeSet() used, tested and fixed for primitive "Diagram" source edition, storing into the session table and the result display, for SVG.
- The function resource locking to a widgets library and a project loading and the enabling by need multiple entry and perform prevent. Some crashes and not full the data access prevent for the remote project's session executers.
- FIX:Vision:
- FIX:FormEl: Fixed sometime difference between real and seen value, mostly for discrete views ComboBox and CheckBox.
- FIX:ElFigure: Prevented hangs at zero length from center to first radius of Arcs. Appending remnant from the widget placing into parent container temporary removed from scaleRotate() and unScaleRotate() for prevent flaws between inundations into some cases. Source code significant cleaned for next step. Some bugs fixed. Starting implement for mirroring. Some smarter control for control point 1 and 2 of Arc is added.
- FIX: Prevented double free by later restoring user and the password after changing an user to unallowed for reading an user for the project's session.
- FIX: Remote projects and sessions list obtain fixed to proper users for the started user's field.
- FIX: Allowed coordinates value limited to [-1000000:1000000] by figures updating freeze into Qt for too big the values.
- FIX: The primitive "Document" text global styles "font-weight" and "font-style" forcing removed and set only for the properties allows into the font widget's attribute, for allow working tags "<B>" and "<I>".
- FIX: "Timeouted" messages at the running session restoring try, by the background project's data loading wait, oppressed and the main window closing ceased.
- Primitive "Document" printing and exporting allowed from the context menu. Default printing set for alone and big (not lesser twice to main page) documents. Default exporting set for alone and big (not lesser twice to main page) documents or diagrams.
- The main opened windows list to the module configure page status added, for remote control.
- WebVision: "root" user or users into group "root" allowed for multiple sessions open into any cases.
1.9 [27.12.2014] The TWELFTH (12) update
This update of the 0.8 LTS release fixes about 30 bugs and appends some improvements, which you can read wholly in the update ChangeLog.
API
!!!!:Changes:
- TConfig,DB.*: Global noTransl() flag is removed as deprecated.
- Security: Functions lName() and descr() is renamed to descr() and longDescr() accordingly to the DB fields for users and the groups.
- TElem: Expand for create TFld from example-pattern of present TFld but different ID. TElem::fldClear() for fields clean up is added.
- TVarObj: Expanded functions propGet() and propSet() for hierarchical access by the path.
Appends:
- TConfig,DB: For key detect addes and used isKey().
- DB: Method TTable::fullDBName() is added.
- DAQ.JavaLikeCalc: Built-in user API function tr() is added for call to translation of base constant string, the terminator for compatibility.
SYS
- FIX:TCntrNode::chldPresent() set to detect as present all nodes, and that disabled now also. Mostly for detection by name set correct.
- FIX: Task and the record force created for errors like the timeout start. Some crashes prevent.
- FIX: Disable exeptions for the attribute's value set into NoWrite mode, simple return at that. Mostly for fix problems into DAQ.BlockCalc.
- FIX: Security: Password size expand to more 8 symbols by switch to crypt MD5. Backward compatibility saved for stored passwords. Detected by Vasilij Grigoriev.
- CntrIf,UI.{QTCfg,WebCfgD}: To table and further result flag "noReload" is added to "SET" request for control to reload big tables, also used into "Table" object of DB.
- DAQ, DAQ.JavaLikeCalc, UI.{QTCfg,Vision}: Attribute "font" is added to syntax highlight rules root node for set default font config. Default font for JavaLikeCalc programms is set to "Courier".
- To task status maximum call lag and consume is added for RT properties problems detect better.
- XMLNode::childGet(): negative index support is added for count from end.
- Using "LibGD" into OpenSCADA core disabled by default and instead used "SVG" mostly.
DB
- FIX: TBDS::dataDel() fix for remove records from config file after DB try, mostly for same DB records remove fix.
- FIX:SQLite,MySQL,PostgreSQL,FireBird: Fixed for prevent load translation from no empty translation's DB field but disabled to translation.
- FIX:FireBird: dataSeek() fix for no SELECT fields set.
- MySQL,PostgreSQL,FireBird: Uses for zero length default TEXT type.
DAQ
- FIX: Flag "prcStRd" early set into redundant task is added for prevent wrong the task starting at the connection to remote station miss and crash at stop.
- FIX:JavaLikeCalc: To function compileFunc() the resource added at "<auto>" function ID generation and prevent multiple attach to one.
- FIX: Early start, at load, for function's libraries is added. Mostly for make allow the functions before DAQ.BlockCalc start.
- Func::SysAttr flag removed for IOs "f_frq", "f_start", "f_stop", "this" and allow the storring by the libraries priority start.
- FIX:Siemens: Resources allocation mostly revised and added global API resource for prevent crashes at the reconnection by parallel access and remaping the connections index. Source code mostly cleaned.
- FIX:BlockCalc: Sort blocks procedure mostly rewrote for fix. Blocks table copy into BLOCK_SH prevent at the controller object copy.
- DCON,ModBus: Tries apply for connections set by possible the send request breakdown and no response.
- LogicLev: Link to object's property by path "{ModType}.{Cntr}.{Prm}.{Attr}#{ObjPath}" is added.
- FIX:DAQGate: Processed parameters list cleaning moved from stop to disable stage. Pass empty parameter into separated attributes request mode is added, for traffic and overall request time decrease.
- SoundCard: Expand for X86_64 specific with short framesPerBuffer call to CallBack function.
Archive
- FIX:FSArch: Fixed for prevent doubles and wrong archives connection for later appended data sources and checking before new created is added. Point to the data area for last value index prevented for the type String.
Transport
- FIX:TTransportIn: Early stop into postDisable() is added for prevent crash at stop into the destructor with freed data into heir object.
Protocol
- FIX:ModBus: Inconsistent diagnostic format of node to real counters fix.
UI
- FIX:VCAEngine,Vision: Changes down procedure mostly fixed and adapted for update the parent widget into open for edit state. Cells edition to view "Table" of primitive "FormEl" support is added.
- QTCfg,Vision: Wait cursor set moved to already set and restore only after timeout 50 ms, for blink prevent and some DE load by that.
- FIX:WebUser: Crash at new HTTP variable processing into a respond prevented.
- FIX:QTCfg: Size policy for Boolean value into RO mode fixed. Table widget significant expanded by:
- Enable vertical scrolling by pixels.
- resizeRowsToContents expanded by rows height limit to 0.9 table height and call on header section mouse press, for refit.
- String represent for multiline texts into ItemsDelegate rewrote for prevet wrong Qt eliding to line and other.
- FIX:VCAEngine: Double set the pages to processing and the firstinited context lost prevented. Double call the pages to first execution from processing procedure and cascade from the top-level page is prevented.
- FIX: Mime download expanded and fixed for projects.
- Access to project's session time table unified by append the session attributes access functions sessAttr(), sessAttrSet(). The functions used to: primitive "Document", session's Style, edited resources by user's API functions "mime()" and "mimeSet()", "fromSess" and "toSess" user's API functions "attr()" and "attrSet()". Service "/serv/attrSess/" is added for access to session's attributes.
- Inheritance support is added for owner and permition of the widgets.
- Automatic sessions creation update at the module enable is added.
- Access to DAQ properties of Object's type by path into links like "/DAQ/{Cntr}/{Prm}/{Attr}#/{oAttr1}/{oAttr2}" is added.
- FIX:Vision: Set focus proxy from the edited widget container to the widget into development mode for allow the single focus source and included widgets selection lost at some cases.
- FIX: Primitive "Diagram" fix for actual cursor set and the parameters value into the cursor position for significant time difference between the session server host and the session visualiser host, for arrears the cursor position to one period.
- FIX: LineEdit widget some fix for apply real button size obtain and prevent the window size float.
- FIX: Ticks lost for Slider view and related views deffects of primitive FormEl at press to the elements' container widget by prevent that's QEvent::MouseButtonPress and QEvent::MouseButtonRelease events global process.
- FIX: Changes update after that apply into attributes manager of the widgets into group mode fixed to update different widget's attributes into the group and on the contrary for first widget into the group.
- Resources cache mostly improved for make faster for access and update.
- Run time window's position control and save is added by option "winPosCntrSave" enable and using new service "/serv/attrSess/". Screen number expanded for not only assign to different physical display and for independent position control and save.
- Session set for automatic starting is added into parameter "Run projects list", mostly for connect to already started or background sessions.
- Restore connection time control is added for remote connection to visualisation server hang prevent and display update.
- WebVision: Scroll for the included containers correct for different variants. Images cache expanded clean up like to UI.Vision.
- WebCfgD: Expanded for loading files WebCfgDVCA.html and WebCfgDVCA.js from work directory try. JavaScript code mostly cleaned and Table expanded for simplify control and exit from cells edit mode.
Special
- FIX:FLibSYS: strDec4Bin() function fix and expand by separator argument into default value " ", for compatibility restore.
1.10 [21.07.2014] The ELEVENTH (11) update
This update of the 0.8 LTS release fixes about 20 bugs and appends some improvements, which you can read wholly in the update ChangeLog.
API
!!!!:Changes:
- SYS: Enum TSYS::Errors (mostly DB Errors) is removed as deprecated.
- TSYS::modifCfg() expanded for WR access check.
- Primitive of functions strEncode() and strDecode() set unified.
- XMLNode: Function childIns() and childDel() position argument's type set to signed (integer) for allow insert and delete by count from end (negative value).
- TCntrNode: To functions TCntrNode::load() and TCntrNode::save() argument "string *errs = NULL" is added for place all loading and saving errors into the objects.
- DB: Expanded functions TBDS::dataGet(), TBDS::dataSet() and TBDS::dataDel() by argument "noEx = false" and exceptions generate at access to storage errors.
- Transport: setAddr() set no virtual, instead global cfgChange() used. To output transport's function "start()" argument time is added, which no zero value controls connection timeout.
- DAQ: TTipDAQ::compileFunc() argument "maxCalcTm" set to 0, for sign to use default-configurable for the module.
- Archive: TArchive, TMArchivator and TMArchivator moved to use TConfig::cntrCmdMake(). setValPeriod() and setArchPeriod() set no virtual, instead global cfgChange() used.
Appends:
- SYS: Zero initial error object "TError() : cod(0)" is added. Added new global simple function s2ll() into OSCADA namespace. Function TSYS::strMess() variant is added for length control and wrap by set "...".
- Archive: Selection priority to the value archivator object is added for provide order control and disable at all into sources selection mode "All", used for function getVal(), getVals() and archive service "/serv/val". Function selPrior() and setSelPrior() added.
DB
- AGLKS.St.db: ModBus.testTCP, DAQGate.test and OPC_UA.test set for start by default. FIX: Messages archivators "FSArch.NetRequsts" and "FSArch.StatErrors" fix.
SYS
- User API functions strEncode() and strDecode() is added. Access to storage problems notify is added. Complex tests for problems notify for storages: SQLite, MySQL, PostgreSQL, FireBird, DBF, Cfg; results: wiki.oscada.org/Works/Tests/DB.
- FIX:TFunction, TValue, UI.VCAEngine.Attr: Set TEValObj() to object type attribute by EVAL scalar set is added.
DB
- Prevent exceptions at the DB object disable, mostly after connection wrong for the network DB. Decreased wait for free tables timeout to 1 second on the DB stop, for lost connection to network DB cases fast.
- DBF: Periodic (10 seconds) sync changes from memory to file is added. Inline DB folder selection for DB object is added. RO access and errors is added.
- SQLite: Binary string write to DB support is added by "#'XXXXXX'" form. Adapted for work into RO mode.
- FireBird: Managed types expand to: blr_varying, blr_varying2, blr_text, blr_text2, blr_blob, blr_short, blr_long, blr_int64, blr_float, blr_double and blr_d_float. FIX: Internal API data clean up is added at wrong connection. fieldSet() and fieldDel() mostly rewrote for typical.
- MySQL: Adapted for work into RO mode, fieldDel() mostly rewrote for RO process. CR_CONNECTION_ERROR process at connection lost is added.
- PostgreSQL: Managed types expand to: text. character varyin, character(%d), character varying(%d), smallint, integer, bigint, real, double precision, timestamp with time zone. FIX: Connection lost processing move to after the request. Transaction processing rewrote for typical. Adapted for work into RO mode, fieldDel() mostly rewrote for RO process.
DAQ
- FIX:JavaLikeCalc: "Error constant after constant" error fix by append position. Append default safe timeout set into the module tab.
- FIX:ModBus: Write to complex type like "_f", "_i4" for write-only mode is fixed. Complex types expand by "u2" - uint16, "d" - Double.
- SNMP: Mostly expand for OIDs browser implement, MIB Tree using for access mode and enums obtain.
- OPC_UA: Inline browser by OPC UA nodes tree to the parameter object configuration is added. FIX: Input packages' size and header control is expanded for broken packages process and early drop.
- DAQGate: Inline browsing by external hosts and remote parameters tree is added. Expanded for allow the paramter's identifiers independent namespace and the assign to remote parameter's ID. Allow for pass "/prm/*" variables for some global lists process. Expand for bind hierarchic parameters (from OpenSCADA 0.9).
Archive
- FIX: Lost archive's connection to archiver after the archiver restart is fixed.
- FIX: Service "/serv/mess" on request direct to alarms set negative level fix for prevent storage data modify.
- Set archiver period expanded for allow set zero value and disable the values buffer processing for only direct write there.
- Adapted for writing unaligned to the period values and buffers.
- FIX:DBArch: Reread meta data for value archives is force set after wrong that read at start with unaccessible network DB. Disconnecting archivers to DB detect is added and instead uses next priority archiver.
- {DBArch,FSArch}: Default priority set to 1 for DBArch and 1000 for FSArch.
Transport
- Meassured request's result after termination by an exception is added to "Sent" tab of output transport. FIX: TTransportOut, TTransportIn fix for sets values check and process.
- Sockets: Default timeouts of output transport set return to "5:1".
Protocol
- ModBus: Functions 0x2 (CI) and 0x4 (RI) support is added. Classic form for registers added and complex types expand by "d" - Double.
- SelfSystem: The protocol implement improved for check and wait the header entirety. Argument "conTm" to output protocol's part is added. SES_OPEN limited by 10 for one source and user. Sessions moved to std::map for some access acceleration.
UI
- QTCfg: Check and warning about no apply changes at the page change is added. Added and used function getPrintVal() for check and encode straight binaries. Selected group nodes commands "load" and "save" support is added.
- VCAEngine: User API session area functions attr() and attrSet() expanded by argument "bool fromSess" and "bool toSess" respectively for set the attributes to the session table. FIX: Change parent trace for project and widget's library fix. VCAEngine: geomZ for widgets allows to negative.
- Vision: geomZ manage changed to changing only for single widget and rip from real work position, mostly for prevent group widget's geomZ change and collisions to no changed widgets position. Included widgets order updating function expand for prevent system widget's reorder and allow after sort by ID for equal Z. FIX: For included to container's pages set attribute Qt::WA_WindowPropagation for allow true transparent by palette propagation, mostly for Slider hide. FIX: Widgets order update fix after manual "geomZ" set into development mode.
- {QTCfg,Vision}: For wait cursor uses QApplication::setOverrideCursor(Qt::WaitCursor).
- {VCAEngine,Vision}: Changes into visual items put down to the parent function is added. Check and warning about no apply changes into item's configure dialogs is added.
1.11 [09.05.2014] The TENTH (10) update
This update of the 0.8 LTS release fixes about 50 bugs and appends some improvements, which you can read wholly in the update ChangeLog.
API
!!!!:Changes:
- Archive: Result to function TMArchivator::put() is added for accomplish writing control.
- SYS.Mess,Archive.DBArch: The messages level type into structure TMess::SRec changed from Type to int8_t for fix negative level into DB.MySQL.
- SYS.XMLNode: Into function load() argument "full" replaced "flg" with flags: 0x01 - full mode; 0x02 - no remove spaces for begin and end tag's text.
- Transport: External hosts configuration improved for allow modes "User", "System", "User and System" select into single table. Functions removed: sysHost(), setSysHost(). Functions change: extHostList(), extHostGet(), extHostSet(), extHostDel().
- DAQ: API function "void vlSet();" expanded for same set value pass and prevent lost values.
Appends:
- SYS: New resources allocation objects MtxAlloc and MtxString is added.
- To ResAlloc is added lock() and unlock().
- TCntrNode: Base function _ctrMkNode() and specific for arguments set function ctrMkNode2() to original ctrChkNode() is added.
- "TSYS::i{bits}_LE()", "TSYS::i{bits}_BE()", "floatBE{rev}()", "doubleBErev()" functions is added for endians processing.
- Added new global simple functions into OSCADA namespace: tm2s(), s2i() and s2r().
- TArrayObj: New direct access functions arGet() and arSet() is added, for fast access from internal.
- XMLNodeObj: New function "childGet( string name, int num = 0 )" is added.
- Transport,Transport.*: To output transports virtual functions timings() and setTimings() is added.
DB
- AGLKS.St.db: KeepAlive timeout of input transport OPC_UA set to 60, Client's and Server's certificate is generated for all demands resolve and address set to 127.0.0.1.
SYS
- *.core files process adapted.
- TConfig,TValue,UI.{VCAEngine,Vision}: Editable listed configure fields and DAQ attributes by TFld::SelEdit support is added.
- User's API functions gmtime(), timegm(), strftimegm(), strptimegm() for time into GMT(UTC) processing allow.
- DB,TVariant,DAQ.JavaLikeCalc,Special.FLibSYS: Direct access, into backend, to user space object TArrayObj is set.
DB
- FIX:DB.{SQLite,MySQL,PostgreSQL,FireBird}: Keys miss into DB check is fixed for fieldSeek() and fieldSet().
- DB.{SQLite,FireBird,PostgreSQL,MySQL}: Connection for network DB restore mechanism is changed to enabling for toEnable() and disabled DB into transactions check cycle.
- Complex tests pass for lost connections restore and generic test of module Special.SystemTests.
- MTable::fieldDel() is adapted to remove fields with keys real miss into the DB's table.
- MySQL: Transaction support and using is added, for performance rise on some DB storages.
DAQ
- BlockCalc: To blocks' output links optional writing by changes is added. Field "VAL" size for block's IO table increased from 20 to 10000 and "LNK" from 50 to 100.
- JavaLikeCalc.Array: Direct access to object's properties set for some performance rise. FIX: Insert object's item to Array into this creation by "new Array(0, 1, 2, ar[0])" is fixed.
- FIX:LogicLev: Reflection type is fixed and expanded for connection to target parameter, update and attributes list sync into calc period.
- ModBus: Remove connection try from controller's object start().
- OPC_UA.{*,LibOPC_UA}: LGPL COPYING file is added to the library.
- FIX: libOPC_UA is fixed for client's service Write respond and yet ten of other critical fixes.
- OPC_UA namespaces made unified and NS_OPC_UA(0), NS_SERVER(1), OpenSCADA_DAQ_NS(2) is added.
- Session lifetime process is added.
- SubscriptionId and MonitoredItemId grow start from '1', for exclude invalid value '0'.
- User and password auth data set is added to client part and test program. Secure policy set is added to test program.
- Inline nodes browser is added to client's parameter object for insert selected nodes to processing list.
- FIX:System: New DA-type "UPS", by NUT-protocol is added. Active DA check and creation is fixed for same origin parameters test, no the parameter identifiers.
- BFN,DAQGate,ModBus,OPC_UA: Alarms for connection state to remote sources is made unified.
Archive
- TMArchivator: Reimplemented messages archivation for allow the messages into the buffer resend at the messages storage connection restore.
- FIX:Archive.*,Special.FLibSYS: Prevent for set negative period values into buffer. TValBuf::vOK() expand for check aligned to the buffer period. setVals() is adapted for allow write unaligned border [beg:end] to period by round here.
- *,DBArch: To TVArchEl::setValsProc() added result for allow archive's buffer's part write control, used for rewrite to network DB by DBArch. Allow start Values and Messages archivators for DB error, predict restore the connection.
- *,UI.{Vision,WebVision}: Service "/serv/val" is adapted for return EVAL_STR as EVAL for all string representing data modes.
Transport
- {SSL,Sockets}: KeepAlive parameters of input transport is made unifical and descriptions append. Default value of KeepAliveTm set to 60 for prevent input connections hang.
UI
- QTCfg: Check and change current page at it rename. Rows and collumns of a table adjust mechanism set like from UI.Vision primitive FormEl view "Table". Group-selected fields set support is added.
- Vision:
- FIX: "Text" primitive update font size is fixed at it's scale change.
- To session object plain resources allocation dataM (pthread_mutexattr_t) is added and used for mOpen, mStProp.
- FIX: Service <openlist path="/serv/pg"> is fixed for errors at page's widgets miss and recreate session try.
- Set transparent background palette for the pages included to container.
- UI.{QTStarter,QTCfg,Vision}: Adapted for Qt5, exclude Phonon.
- VCAEngine,Vision,WebVision: The primitives "Text", "Protocol", "Document", "Diagram" are moved to indexes from types.h.
- VCAEngine,Vision: New view "Table" of primitive "FormEl" is added.
- Vision,WebVision: To primitive "Diagram" and "Protocol" set trace time to real data time is allowed.
Special
- FLibSYS: Unified CRC() calculation function is added.
1.12 [21.12.2013] The NINTH (9) update
This update of the 0.8 LTS release fixes about 40 bugs and appends some improvements, which you can read wholly in the update ChangeLog.
- SYS:Modification controlled writing to the config file is added for prevent writing unmodified fields dependent from system environment. Global definitions OBJ_ID_SZ and OBJ_NM_SZ is added and used for all configuration's ID and NAME. Field's NAME limit length pass to configurators by field "idm", through OpenSCADA control interface.
- DB: To functions TBDS::dataGet() and TBDS::dataSet() "forceCfg" flag is added for allow system data storing priority into config file. MySQL: MULTI_STATEMENTS requests is enabled, but process and return only first result.
- Protocol.UserProtocol: To input transport's process procedure context is added attribute "tr" for input transport object represent.
- DAQ.{BlockCalc,LogicLev,ModBus},Archive,UI.VCAEngine: Links to DAQ parameters and attributes is adapted for parameters to parameters including path like "{Mod}.{Cntr}.{Prm1}.{PrmN}.{Attr}".
- DAQ: Functions TDAQS::ctrListPrmAttr(), TDAQS::prmAt() and TDAQS::attrAt() are unified for no depending from order. Function TDAQS::daqAt() is added for access to any DAQ path's items by TCntrNode, also used into TDAQS::prmAt() and TDAQS::attrAt().
- LogicLev: Empty parameters as clean container creation allow.
- FIX:DAQ.ModBus: No lost connection restore for synchronous write mode and bits from register using is fixed. Node's lock attributes into the protocol Node's mode "Data" is fixed.
- OPC_UA: Publish, RePublish, Subscribe, MonitoredItem and related services support for input protocol's part is added (No Publish responds for LTS). Service "BrowseNext" and ContinuationPoints for it is added. Server part function reqData() is separated for OPC_UA binary encoding part into library and same data request depend from the server data model specific for data services "Browse", "Read" and "Write". Secure channel's TokenId renew support into server part is implemented and some fixed into client part. All library's files moved to separated folder libOPC_UA. Server's services Browse, Read and Write is mostly rewrited. Server's services Browse and Read is set for field "Name" of nodes return for OPC UA "BrowseName" request.
- TArchVal: LibGD2 using into core is fixed by set variable HAVE_GD_CORE. Value archive's trend build is implemented through SVG for LibGD2 into core disable.
- FIX:TArchVal: allow access to next level archive into single request, like from 1m to 10m.
- UI:
- {VCAEngine,Vision}: Group attributes setting function Vision::attrsSet() is rewrited for strong ordering for fix unordered writing to some yet missed attributes that appeared after upper changes; detected on primitive "ElFig".
- FIX:{Vision,WebVision}: Two method applied for prevent primitive "Diagram" possible hung on some data combination begin from different archivators.
- {QTCfg,WebCfgD}: Field "NAME" limit length apply to nodes append dialog is added.
- QTCfg: Copy a node into the branch and no select direct the parent node, by copy to self, support is added.
- VCAEngine: Negative widget's position coordinate is allowed. Map areas limit for primitive "Media" is expanded to 20. FIX: Lost attribute "name" the global ability to see after change primitive "FormEl" view from "Button" to "Tree", "List" and other is fixed.
- Vision: Tool windows centering is disabled and new pages loading by load("") is moved to constructor RunPageView for allow DE for custom control to the windows placing behavior. GeomZ set to UP for the widget copy is added.
- ElFig: Next code clean and refactoring, mostly for moveItemTo().
- FIX: Reloading is fixed after some figures append.
- FIX: Bordered figures width scale is fixed.
- FIX: Color's and Image's indexes copy on inundations copy is added.
- FIX: Some checks to allowing the indexes is added for prevent different crashes by out of range.
- ElFig: Next code clean and refactoring, mostly for moveItemTo().
1.13 [16.09.2013] The EIGHTH (8) update
This update of the 0.8 LTS release fixes about 10 bugs and appends some improvements, which you can read wholly in the update ChangeLog.
- SYS: User API function XMLNodeObj::childIns() is fixed for XMLNodeObj argument 1.
- DAQ.Templates,Protocol.ModBus: Previous row using as template at one new creation is added. String labels enumeration is added by strLabEnum().
- SYS.{WorkDir,IcoDir,ModDir},Archive.FSArch,DB.SQLite,Protocol.HTTP,Transport.Serial: Function ctrListFS() is added and used for directories and files browsing into configure items allow.
- DAQ.ModBus: Wrong EVAL set by link id on error writing by output link is fixed. Complex type "String", registers block, support is added to DAQ by suffix "_s" to the register "R[I]". Complex types "Integer" (32 bit signed), "Float" and "String" (registers block) support is added to Node object of input protocol.
- DAQ.{BlockCalc,LogicLev,ModBus},Archive.TArchVal,UI.VCAEngine: DAQ parameters' attributes and the parameters browsing is moved to generic function TDAQ::ctrListPrmAttr() and used everywhere.
- DAQ.OPC_UA,{Lib,Protocol}.OPC_UA: OPC UA protocol's part for Client and Server is moved to LGPL v3 library for allow and simplify using by other projects. Controller's object is made simply for EndPoints and transports selection and configuration; you can set only EndPoint and the transport will created from it. For the controller object enabled you will take list for browsed and allowed endpoins. TokenId and SessionId allowed for complex NodeId processing and tested on Ignition OPC UA server. OPC UA server fix for merged input messages processing. Generic node's attributes processing mostly improved and expanded.
- TVal: Stop archive is added on the object disable for unlock it and allow to finish act.
- Archive.FSArch: Messages to plain archive placing is fixed for big, on string buffer size limit.
- UI.{VCAEngine,Vision,WebVision}: Into primitives "FormEl", "ElFigure", "Media", "Box" are used indexes definitions from "types.h".
- UI.{Vision,WebVision}: Items configuration loading of primitive "ElFigure" is fixed for demand to all points present. The function attr{s}Set() of primitive "ElFigure", and "FormEl" into UI.Vision, full revised and set optimal. Primitive "Diagram" fix to fill the trend buffer for duplicates on request to the archive for single value and the requests moved to single request for current.
- UI.{Vision,VCAEngine}: View items variant "Tree" is added to primitive "FormEl". Resources list and files in-line browsing is added for image/media attributes. Mime table of containers is allowed for direct download, not only to selected, and mime detect from extension; mime also used for unload files. Set limit for downloaded files size.
- UI.VCAEngine: Archive's limit for primitive "Document" is fixed for expand to 1000000. Export symbols moved to file types.h and it allowed for include from visualizers. The include widgets to box change parent on widget library's or page's parent change is added, on the enable.
- UI.Vision: Vector index_array reforming fixed for points 1 and 2 for place only common figures and once (exclude Arc, for connection points 1 and 2). Fix crash on Lines and Arcs (previous wrong fix). Primitive "ElFigure" fixed for scale and unscale widths by move scaling direct to the figures paint.
- UI.WebCfg: Date fields display for table and other is fixed.
1.14 [11.07.2013] The SEVENTH (7) update
This update of the 0.8 LTS release fixes about 10 bugs and appends some improvements, which you can read wholly in the update ChangeLog.
- UI.Vision: Primitive "ElFigure" crash on click to common point for arc's points 1,2 and line point 1 is fixed and significant code clear.
- DB.SQLite: Opened transaction close on the module stop is added for prevent data lost after crash on some other module detach.
- UI.Vision: Function WdgView::attrsSet() is added and used for group attributes set into one request, for prevent several linked events lost on processing and general performance rise on network.
- UI.{VCAEngine,Vision,WebVision}: To primitive "Diagram" trends building from direct data is added, by prefix "data:" and "line:".
- DAQ.Template,DAQ.{JavaLikeCalc,ModBus},Protocol.UserProtocol,UI.WebUser: Procedure's source text limit for the DB field is expand to 1000000.
- DAQ.{ModBus,LogicLev,BlockCalc,Siemens}: Prevent executable context reload from DB on the controller run.
- DAQ.SoundCard: Acquisition task, from PortAudio, priority set is provided. Some error messages is added. Some performance is rose.
- UI.WebVision: Session object's ID is renamed to PATH and nodeName() set to separated string by "." path. PNG compression level option is added for some performance control on images build and default value set to "1".
- Transport.{Serial,Sockets}: Errno EAGAIN process is added to write() for output transport for prevent errors on big data transfer.
- UI.{Vision,WebVision}: The primitive "Diagram" data buffer's loading by current values and lost old visible values by limit is fixed by writing current values to pixel-size alignment time.
- DAQ.JavaLikeCalc: Remove wrong grammar rule "expr OR CONST{" but finite action to first constant independent next operations of the expression. Conditional logical commands '||' and '&&' is fixed for constants.
1.15 [12.05.2013] The SIXTH (6) update
This update of the 0.8 LTS release fixes about 20 bugs and appends some improvements, which you can read wholly in the update ChangeLog.
- UI.WebVision: External JS file "WebVisionVCA.js" loading try from current directory is added. JS code changes:
- mostly clean and fix;
- zero opacity checking is added for background disable;
- asynchronous main cycle requests try;
- primitives 'ElFigure', 'Media', 'FormEl' mostly adapted for prevent non full context replacing on single dynamic properties change;
- drag for images is disabled for FireFox.
- ModShedul,Archive.FSArch,DB.DBF: The hidden problematic readdir() function is replaced to reentrant variant readdir_r().
- UI.Vision: Primitive "ElFigure" changes and fixes:
- Value range define is added and used.
- ShapeItem::Type enumeration for figures "Line", "Arc" and "Bezier" is added.
- Widths, Styles and Colors indexes copy on the figures copy is added.
- Several arcs' point 5 separating is fixed on keyboard and mouse move.
- Mouse cursor moving according to keyboard moving is added.
- Circle contour gap by moving from keyboard is added.
- Significant code clear.
- UI.{VCAEngine,Vision,WebVision}: Expanded upper limit for primitive's "Diagram" parameters number to 20. Scales separation for different parameters of primitive "Diagram" is implemented.
- DAQ.DCON: Significant changes from Almaz Karimov:
- analog inputs reading of one methods is added;
- the method 1AO (#AA) (blocks NL-1AO, I-7021, ADAM-4021) working is fixed;
- the method 4AO (#AACN) is added for working with block ADAM-4024;
- the digital inputs reading methods @AA is replaced to $AA6 for compatibility with ADAM blocks;
- the digital outputs writing methods 4DO (#AA000F), 8DO (#AA00FF), 12DO (#AA000FFF) is added for working with ADAM blocks.
- DAQ.JavaLikeCalc: Assigns separating by symbol ',' is added to the language for like the constructions:
- var1=1, var2=3, var4=var1+var2;
- for(var1=0, var2=0, var3=-1; var1 < 10; var1++, var2++) var3++;
- SYS: User API function SYS.mktime() is added for get time since the Epoch 1.1.1970 converted from broken-down time.
1.16 [02.02.2013] The FIFTH (5) update
This update of the 0.8 LTS release fixes about 20 bugs and appends some improvements, which you can read wholly in the update ChangeLog.
- UI.WebVision: Update period time calculation is rewrote for provide more responsibility and adaption to real network channel properties.
- To task create function added control and freeing for finished but the object present and not detached tasks.
- Archive.FSArch: Value archive data corruption into some cases by index buffer memory overlap is prevented, detected by "ValGrind".
- Memory leak for objects into destructor TVal::~TVal() is fixed, detected by "ValGrind".
- System function "getopt" for command line parsing full replaced to self implementing function TSYS::getCmdOpt() on reason the system getopt() is not reentrant nature and wrong processing for independent calls from different OpenSCADA parts.
- Adapting to one symbol system charsets support, tested on KOI8-R.
- UI.Vision: Real visible a widget part (by pixel) checking is added and used for events generate and context menu call, mostly used for "Box" and "ElFigure" primitives.
- UI.VCAEngine: Primitive "Diagram" field "Parameters number" limit expand to 20.
- Transport.Serial: Configure field "Priority" for input transport's task is added.
- Editable control for several object's configuration fields depends from "Enable" and "Start" stats is added.
- SYS:ModSched: Fields "ModAllow" and "ModDeny" open for edit and save its to config-file.
1.17 [13.11.2012] The FOURTH (4) update
This update of the 0.8 LTS release fixes about 15 bugs and appends some improvements, which you can read wholly in the update ChangeLog.
- DAQ.SoundCard: Rewrited acquisition for realtime provide and control for samplerate and lost frames.
- System attributes MessLev, LogTarget, Lang, Lang2CodeBase, WorkDB, Workdir, IcoDir, ModDir allowed for read and write only to configuration file.
- Archive: Request only need period is added for allow fast access to high precision value archives but by need frame size and period.
1.18 [08.09.2012] The THIRD (3) update
This update of the 0.8 LTS release fixes about 30 bugs and appends some improvements, which you can read wholly in the update ChangeLog.
- Value into Object's type set to string is fixed by recursion prevent.
- Significant value archives fixes and for some crashes.
- XMLNodeObj: Parent link storing is changed to direct pointer for prevent self lock, allow remove and exclude memory leak.
- Real task creation from high priority thread at some Linux kernels, for example 2.6.29, is fixed by replace wait call sched_yield() to TSYS::sysSleep(1e-3).
- UI.VCAEngine: Widgets of library and project on demand loading/enable is added.
- The object TEValObj is added for like to scalar processing for EVAL.
- No reentrant password hash calculation by function crypt() is replaced by reentrant function crypt_r().
- DB: Significant expands, fixes and update for document's time generation optimal and new prescriptions concept implementation.
1.19 [09.07.2012] The SECOND (2) update
This update of the 0.8 LTS release fixes about 5 bugs and appends some improvements, which you can read wholly in the update ChangeLog.
1.20 [09.06.2012] The FIRST (1) update
This update of the 0.8 LTS release fixes about 30 bugs and appends some improvements, which you can read wholly in the update ChangeLog.