OpenSCADA

Works/To do

English

On this page you can get a "To Do" list and a tasks pool of the project. The "To Do" list is not connected to the time ranks, but it is structured by subsystems. The "To Do" list and pool are provided to represent the general development picture, and to post notes for the developers' examination. The developers can append, apply and note the tasks for themselves.

Contents


1 Documentation

2 Site of the project

  • Using of the OpenSCADA Web-functions for complex and management pages at the main site: fund and tasks control, works and solutions pool for implement by the participants.
  • Redraw the project logotype and splash.
  • Expand of the funding, donating and payment.
  • Update, refresh the project gallery and link it to the Wiki images.

3 OpenSCADA libraries and projects

- finish of implementation the Partial Content requests in WebUser: HTTP File Server after support the HEAD request in Protocol.HTTP.
- to combine the 1W templates in one complex and append 1W to work through GPIO directly.
- move to the DAQ-templates after their conception expanding for the internal links (+) and the DAQ.BlockCalc expanding for using the DAQ-templates.
-
- move the graphical part items to all work through the prescription manager, for the possibility to distribute the parts remotely.
- expand the document "Year report of the month values" in processing the manual entered counters overrun;
- expand the document function "Diagram" in support the bar graphs.
- creation own branding of the automation kind for: the Grub loader screen, the default wallpaper of the Desktop, the boot splash, ...
+ formation the page-conception — 1.0 HD[!]
+ formation the service commands-functions — 0.5 HD[!]
+ preparing: appending for support Qt WebEngine and Qt Multimedia, adapt to Qt6
- VCA: graphical links implementing:
- implementing without the linking specific and as the typical Widget for simple line;
- implementing the linking — graphical drawing at pressing the left mouse and finishing at release, store the standard mode;
- implementing the nodes and graphical linking to the nodes;
- extended decoration.
- implementing the service commands-functions for default — no container sources
- implementing the service commands-functions for DAQ.LogicLev and for the followed VCA implementations
- VCA: implementing of linking the VCA Widget Libraries to the DAQ control libraries: loading, saving
- VCA: implementing of the graphical and logical linking: sockets description and graphical representing, simple links, grouping links
- VCA: implementing of the procedures specifying and transmitting
- implementing the service commands-functions for DAQ.BlockCalc and DAQ.JavaLikeCalc
- implementing the service commands-functions for MTP
- creating libraries for some languages of IEC 61131-3
- connect the device sensors to OpenSCADA
- connect GPS and maps to OpenSCADA
- append audio and video writing in OpenSCADA
- adapt for the scanning-photo functions under OpenSCADA control with reading the barcodes
-
+ OEM > building some test programs and noting the process on the page "OpenSCADA generic embedding and programmable logical controllers (PLC)"
* OEM > building, starting and testing OpenSCADA
- OpenWrt > installing the OpenWrt firmware
- OpenWrt > testing the generic finctions
- OpenWrt > building, starting and testing OpenSCADA

4 Testing, optimization and fixing

- BUG: selecting multiple figures at hold the key "Ctrl";
- BUG: clearing the copy buffer after selected items copy — impossible for the copy repeat;
- BUG: selecting upper figure's point in the moving operations;
- checking for alignment of the coordinates;
- performance optimisation;
- revision for events processing.

5 Program/System generic

- develop a mechanism for tracking the irrelevance of messages in the table "Trs"
 ?> it is possible to add to the table "Trs" a field of options where to specify time of update-registration and at compilation or execution, accordingly to clear too old and updated-registered at compilation
  • Add user properties to the Control Node object by a pointer with their activation at use:
- switch TTransportOut::prm() and TTransportIn::prm() to TCntrNode::prm();
- append a function of User API for TCntrNode::prm();
- append for controlled registration of the Control Node connection-blocking at AutoHD() with using such information in notification the blocking.
- expand by a feature of storing input data of the function
- DAQ.JavaLikeCalc > append by definition and call user functions from such parameters
  • Expand dimension of the internal time from microseconds and up to nanoseconds. Previously append support for PicoScope 2000.
  • Work out for developing, using, integration to solutions, concept of the OpenSCADA project support. Expand the community by targeting on the implementation control of:
    • tasks: tasks pool, fund and fundraising; developers register, ranks for participate into the tasks.
    • solutions: register a task of the solution implementation (by consumer), set demands to the task and performer, set the price limit; each performer propose self price; consumer select a performer. Commission from the order price to the project is 10%.
  • Adapt to the software platform Android:
- update the building environment to Android 10, unify and archive the old environments (the first try in the chroot Android_5_TRY.txz), append the building procedures by targets of automatic building the Android packages;
- build Qt6 with WebEngine and Multimedia support;
- append all external windows of the runtime mode of the module Vision for items of their closing and for centring.
  • Move completely from GD2 to SVG on Web, that is: the Diagram primitive, the ElFig primitive with complete refactoring.
  • Adapt to the software platform QNX:
+ get for some QNX platform representation => due to the deep closing, but yet using OpenSource, this OS is not allowed in free and there was bought a used hardware based on BlackBerry, that is "BB PlayBook", that is not actual already due to the main supporting resources are DEAD;
- start an adaption subproject and place here the preadaption achievements from Sergey Doroshka;
- build the pure console program;
- build the full-featured Qt-GUI program on Photon.
  • Adapt to the software platform MS Windows®:
+ adapt for the modules linking with the OpenSCADA core library directly, for DLL restrictions;
- start an adaption subproject;
- describe the original start of OpenSCADA as a Linux program on MS Windows, using WSL;
- initiate the OpenSCADA building for the MS Windows environment.

6 Subsystem DB

- implementation the local cache for the function fieldSeek() by the deep seeking to the XML-context on the remote part.
+ main functions implementation for generic SQL requests, testing for: SQLite, MySQL, PostgreSQL, FireBird;
- specific DBMS properties: quotes for names and values (there are generic and standard ones), ... ;
- OpenSCADA internal DB's layer function fieldStruct() implementation for generic SQL dialects and DBMS specific;
- OpenSCADA internal DB's layer functions fieldSeek(), fieldGet(), fieldDel() implementation for generic SQL dialects and DBMS specific;
- OpenSCADA internal DB's layer functions fieldDel() implementation for generic SQL dialects and DBMS specific;
- generic tests passing for: SQLite(there are some problems in allowed connectors), MySQL, PostgreSQL, FireBird;
- testing an ODBC connector for DBMS Oracle.
- expand the authentication mechanism by the storage functions (the DB object), that is virtual functions to TBD:
  • auth() — direct checking the user authentication, through "bind" or ldap_whoami();
  • passHash() — obtaining the password hash, to comparing, if auth() is missed, and changing the password by the function ldap_passwd() or see to the utility slappasswd.
- expand the "OSCADA-user" scheme:
  • set the password field "PASS" as a synonym of "userPassword";
  • make the own scheme dependent from "simpleSecurityObject";
  • check of working with the field-type "userPassword".

7 Subsystem "Transports"

  • Implement an agent of the SNMP protocol, an examples are in NUT.
  • Create a gate module to the transports of other OpenSCADA stations.
  • Serial interfaces
- test the modem mode and append to it for the PIN entering field.

8 Subsystem "Transport Protocols"

- implementation the HEAD request for true support the "HTTP range requests".

9 Subsystem "Data acquisition" (DAQ)

+ test the library libiec60850;
+ write an own MMS implementation, mostly for the mode without sessions on ABB-800, complete replacing libiec60850;
- add for sessions support, optionally;
- implement IEC-60850 and test with "libiec60850".
- resolve the controversy in Client::messIO() about mixing the pure requesting mode with the free read/write mode and the time of waiting responses here without passing the connection timeout directly;
- append the authentication support for the input-server protocol part;
- append the automatic creation for input transports and their pre-configuration from the EndPoint object properties;
+ implement the request-service "Publish" and chunks in the client part;
- observe deeply the Publish service for the packages loss and the Republish request sending;
- append for support of the history services of the server part, seeing and testing against UAExpert negotiation;
- append for support of the history services of the client part.
-
-
-

10 Subsystem "Archives-History"

  • Move the critical section lock from the object TValBuf to its heir, to allow the global lock into the group operations.
  • Create a gate module to archives-history of other OpenSCADA stations.

11 Subsystem "Special"

12 Subsystem "User interfaces"

- implement for manager of subprojects of their starting in different processes but with the ones storing and managing into the single configuration file of the project, for high reliable configurations;
- implement for manager of the background-daemon processes.
* revise and unify the keyboard focus forcing on a first active element considering them specifity, to ensure the keyboard shortcuts;
- expand the primitive "Diagram" by the mouse scaling operations;
- implement own RTE-editor for the view Text of the primitive FormEl;
- ElFigure: fix some properties loss (line width at the least) at the actions processing, in the way of the primitive code common refactoring;
* expand the status-bar, with the functions:
- user status fields.
- ElFigure,Diagram: enable or make the anti aliasing, for the library GD;
- implement the primitives "Diagram", "ElFigure" in the tag "SVG";
- expand the variant "Animation" of the primitive "Media" in using the raw image files, like to PNG.
- append the image files edition user API for raster (PNG, JPEG, GIF), by LibGD2, and vector (SVG):
- implement the main functions of the GD object (into Special.FLibSYS).
... for Vision also ...
- move the runtime requests to VCAEngine in the asynchronous mode;
 !> has a problem with processing recursive events into event(), in the case of the mouse release events loss in processing the pressing mouse event.
- implement the background execution of the edited pages in the development mode, for the visual diagram forming jointly BlockCalc and DAQ-sources at all.
... for Vision and WebVision also ...
- append for the user-space global menu by the project-specific properties;
- develop the block diagrams forming (dynamic frames) from the GUI;
* adapt the widget libraries and the VCA projects to the inter-host copy.
-
- implement non locking access to the external stations;
- implement the syntax highlighting for Text fields.
Works/To_do/en - GFDLMarch 2024OpenSCADA 0.9.7