From OpenSCADAWiki
Jump to: navigation, search

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.

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 funding, donating and payment.
  • Update and refresh the project gallery.

3 Testing, optimization and fixing

  • UI.{Vision,WebVision}: Full revision of the primitive "ElFigure" implementation, which needs:
- BUG: selecting multiple figures at hold the key "Ctrl";
- BUG: not full implementing the mirroring;
=> appending in the full features is difficult but the code's original style is bad;
- BUG: clearing the copy buffer after selected items copy — impossible for the copy repeat;
- BUG: selecting upper figure's point in the moving operations;
- BUG: flaws between adjacent inundations, often for not orthogonal angles.
- checking for alignment of the coordinates;
- performance optimization;
- revision for events processing.

4 System generic

  • (+) Adapting the Linux distributive for the regular OpenSCADA builds and enable it for updates of 0.9 LTS, for: Debian 9 ARMHF, Ubuntu 18.04 LTS, SuSE Leap 15.0.
  • (+) Moving some building targets of the automatic builder to a different host due their are needed for newer Linux kernel, for: Ubuntu 18.04 LTS, SuSE Leap 15.0
  • Updating the Linux automation platform (Live disks) for building the last TDE with my patches for Debian 8 and 9.
  • Expanding some OpenSCADA parts to use the DAQ templates: Protocol.{ModBus,UserProtocol} and UI.WebUser.
  • Developing the pure demo and TP mode on the certificates base in the keys of the subscription on a TP package: prevent writing and form the notification dialogues.
  • Work out for developing, using, integration to solutions, concept of the support of the OpenSCADA project. Expand the community targeting for 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%.
  • Prepare some solutions as OpenSCADA products:
    • Common packages of 0.9 LTS as a product — developing the service updates of the 0.9 LTS in the pure demo mode before applying a key of the TP support;
    • Android packages;
    • Firmwares and builds for "ICP DAS" LinPac (LP).
  • Adapting of OpenSCADA parts to IPv6 directly.
  • Adapting to the software platform Android:
- release packages for Android as a product;
- build packages for Android as a pure demo with switching to the full-featured mode by a key of the TP support.
  • Adapting to the software platform QNX:
- starting of the adaption sub-project and placing here the preadaption achievements from Sergey Doroshka;
- building the pure console program;
- building the full-featured Qt-GUI program on Photon.
  • Adapting to the software platform MS Windows®:
+ adapting to modules linking with OpenSCADA core library directly, for DLL restrictions;
- starting of the adaption sub-project;
- initially building OpenSCADA for the MS Windows environment.

5 Subsystem DB

  • Creating the DB module for ODBC:
+ 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 into allowed connectors), MySQL, PostgreSQL, FireBird;
- Testing an ODBC connector for DBMS Oracle.
  • Creating a gate module to DBs of other OpenSCADA stations.

6 Subsystem "Transports"

  • Implementing for an agent of the SNMP protocol, an examples are into: NUT.
  • Creating a gate module to transports of other OpenSCADA stations.

7 Subsystem "Protocols of the transports"

8 Subsystem "Data acquisition" (DAQ)

+ testing the library libiec60850.
+ writing for own MMS implementation, mostly for the mode without sessions on ABB-800, fully replacing libiec60850.
- adding for sessions support, optionally.
- implementing IEC-60850 and testing with "libiec60850".

8.1 OPC-UA

  • Appending the authentication support for the input protocol part.
  • Appending of automatic creation for an input transport and its pre-configuration from the EndPoint object properties.
  • Implementing of the request-service "Publish" and chunks into the client part.
  • Appending of support for the history services of the server part, seeing and testing against UAExpert negotiation.
  • Appending of support for the history services of the client part.
  • Implementing the transport HTTP/SOAP.

8.2 System

  • Appending for system memory consumption per process or group of the processes.

9 Subsystem "Archives"

  • The critical section lock moving from the object TValBuf to its heir to allow the global lock into group operations.
  • Creating a gate module to archives of other OpenSCADA stations.

10 Subsystem "Special"

11 Subsystem "User interfaces"

11.1 QTStarter

  • Implementing the mouse right key emulation in Qt on holding the left button during about 5 seconds, for interfaces with sensor screen only but rich ones.
  • Implementing for a manager of sub-projects of their starting into different processes but with the ones storing and managing into the single configuration file of the project, for high reliable configurations.
  • Implementing for a manager of the background-daemon processes.

11.2 WebVision

  • Adapting to work with the modern WEB-browser "Konqueror" (a part of KDE).
  • Adapting to work with the WEB-browser "Internet Explorer".
  • Expanding the view "Table" of the primitive "FormEl" for user sorting by the selected column.
  • Appending an user-accessed general panel with the functions:
+ control-change of the user;
- control-change of the style;
- user statuses;
- alarm statuses;
- export and print;
- call of the project documents.
  • ElFigure,Diagram: enabling or making the anti aliasing, for the library GD.
  • Implementing the primitives "Diagram", "ElFigure" into the tag "canvas" and/or "SVG".
  • Appending of checking for the connection and its lost detection with a dialog to this issue indication and some doings.

11.3 VCAEngine

  • Appending of the image files edition user API for raster (PNG, JPEG, GIF), by LibGD2, and vector (SVG).
+ appending of images loading and saving their changes into the session table from user procedures, allows to edit of SVG (XML).
- implementing for main functions of the GD object (into Special.FLibSYS).

11.4 VCAEngine, Vision

  • Moving requests to the VCA Engine for asynchronous for RunTime.
=> has a problem with processing recursive events into event(), in the case of loss mouse release event in processing the press mouse event.
  • Implementing for the view "Table" of the primitive "FormEl".
+ implementing for the generic display mode;
+ implementing for the edition mode of the contents of the cells;
- implementing the run-time management for rows and columns.
  • Implementing the background execution of the edited pages into the development mode: for visual diagram forming jointly BlockCalc and DAQ-sources at all.

11.5 VCAEngine, Vision, WebVision

  • Improving the primitive "Diagram" for placing read values to the value buffer only up to last non EVAL value — do not place the last EVAL since it can be beyond time range of the values (the clock of the data server is lags behind).
  • Appending for the user-space global menu by the project-specific properties.
  • Developing the block diagrams forming (dynamic frames) from the GUI, after the primitive "Function" and "Link" implementation, seems. Placing the shapes of the BlockCalc blocks and the DAQ-sources at all and the related objects creation into OpenSCADA object model.

11.6 WebCfgD

  • Adapting to work with the WEB-browser "Internet Explorer".
  • Setting the context of the table fields to limit for too big data.

11.7 QtCfg

  • Appending for the tabs and the tab "Chosen" for: procedures, favorite import, or other fast accessed user functions.