From OpenSCADAWiki
< Works‎ | To do
Jump to: navigation, search

On this page you can get the "To Do" list and pool tasks of the project. "To Do" list is not connected to the time ranks, but it is structured by subsystems. "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 tasks for themselves.

1 Documentation

2 Site of the project

  • (9) Redraw the project logotype.
  • Prepare a funding button on the main page for link to:
  • (*) Prepare a donate button, mostly from PayPal but it isn't available for Ukraine yet. Now there was prepared a donate button from WebMoney, but only Russian.
  • (9) Update and refresh the project gallery.
  • Use 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.

3 Testing/optimization and fixing

  • UI.{Vision,WebVision}: The primitive "ElFigure" full revision. There needs checking for align of the coordinates. Performance optimization. Revise events processing. Fix known bugs:
- (9) The edit mode is broken at any project execution in runtime.
- Mirroring lack and it appending in the full features is difficult but the code's original style is bad.
- The copy buffer clearing after selected items copy, impossible for the copy repeat.
- Fix for selecting upper figure's point instead lower one selection on the point moving try.
- Flaws between adjacent inundations, often for not orthogonal angles.

4 System generic

  • 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 and form achievements into the firmwares and builds for "ICP DAS" LinPac (LP) to a product.
  • Adapt OpenSCADA parts directly to IPv6.
  • Adapt to the software platform Android:
- try to use the environment variable QT_SCALE_FACTOR on Android or find out another method of scaling internal images of the Qt-Widgets;
- next try of resolving the problem of font size into the primitives "FormEl" and "Document";
- change the minimal height of the table rows in the runtime;
- append all external windows of the runtime mode of the module Vision for items of their closing and for centring;
- resolve the problem of the dock panels width of the module Vision;
- build packages for Android as a pure demo with switching to the full-featured mode by a key of the technical support;
- release packages for Android as a product.
  • Adapt to the software platform MS Windows®:
+ adapt to modules linking directly with OpenSCADA core library, for DLL restrictions;
- build OpenSCADA initially for the MS Windows environment.
  • Dynamic text values translation and the static one unification:
+ create the conception;
+ create the translations manager;
+ implement the dynamic messages translation;
+ make the procedures translation controlled by an option;
+ make dynamic of the static text messages from gettext;
- allow the table "Tr" appending by the function tr() calls for not multi-language mode also;
- check for changing of original of the translation and write empty values to its translations;
- copy translations at the object copy.
  • Develop a mechanism for object's data removing from previous DB after the data copy to some other DB.
  • (+) XMLNode: append for symbols validation checking, for UTF-8 mostly, but there are possible problems into text fields of UI.WebCfgD and other ones for near to binary bytes of the stream.

5 Subsystem DB

  • (9) Expand the description page for access to DB by the native user API, primarily for extValue().
  • (9) Create a 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.
- A ODBC connector of DBMS Oracle testing.
  • Create a gate module to other OpenSCADA station's DBs.

6 Subsystem "Transports"

  • Implement for an agent of the SNMP protocol. Examples are into: NUT.
  • Create a transport for ØMQ.
  • Create a gate module to other transports of the OpenSCADA stations.

7 Subsystem "Protocols of the transports"

8 Subsystem "Data acquisition" (DAQ)

+ Test for the library libiec60850.
+ Write self MMS implementation, mostly for a mode without sessions on ABB-800, replace libiec60850 fully.
- Add for sessions support optionally.
- Implement same IEC-60850 and test with "libiec60850".
  • Make for using attribute's "values" to scale for maximum and minimum into sources by FIFO mostly, and providing the values to archive by the engineer measure units.


  • Make support for asynchronous and group writing, mostly for I87x.

8.2 Comedi

  • Append for working with FIFO, by board Diamond Systems DMM-32X-AT.

8.3 Siemens

  • Review for protocols MPI and SPI into single master, check for possibility of their direct using through pure RS-232/485.

8.4 OPC-UA

  • Separate the "EndPoint object of the input part to types "Discovery" and "Data".
  • Append an input transport automatic creation and its pre-configuration from properties of the EndPoint object.
  • Reread the OPC-UA specification and set implementing to it.
  • (9) Append the authentication support to the input protocol part.
  • (+) Implement chunks for big requests.
  • Implement and process of the "Publish" request-service into the client part.
  • Append support for the history services for the server part, see and test against UAExpert negotiation.
  • Append support for the history services for the client part.
  • Add the transport HTTP/SOAP.

8.5 System

  • Append for system memory consumption per process.
  • (9) Append for Android sensors.

9 Subsystem "Archives"

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

10 Subsystem "Special"

11 Subsystem "User interfaces"

11.1 QTStarter

  • (9) Expand to implement the project management functions, mostly to omit a "dialog" program lack and for Android.
  • (9) Create for projects list into the system (pre-installed) and the user's folder for the projects selection by work folder changing to the one of the project. Then a project for pure starting/managing can provide only the module UI.QTStarter.
  • (9) Implement for managing operations of the project: add, remove, rename.
  • (9) Implement for language selection of the selected project.
  • (9) Implement for a manager of sub-projects to their starting into different processes but with the ones storing and managing into the single configuration file of the project, for high reliable configurations.
  • (9) Implement for a manager of the background, daemon processes.

11.2 WebVision

  • Expand the view "Button" of the primitive "FormEl" for the extended modes.
  • Expand the view "Table" of the primitive "FormEl" for user sorting by the selected column.
  • Append an user-accessed general panel with functions: The project documents call, Export, Print, Alarm statuses, User control-change, Style control-change.
  • ElFigure,Diagram: enable or make the anti aliasing, for the library GD.
  • Implement the primitives "Diagram", "ElFigure" into the tag "canvas" and/or "SVG".
  • Append checking for the connection and its lost detection with a dialog to this issue indication and some doings.

11.3 VCAEngine

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

11.4 VCAEngine, Vision

  • Move requests to the VCA Engine for asynchronous for RunTime and Development modes. For RunTime use a dialog with "Retry now" and for Development one use a way like to UI.QtCfg.
  • Implement for the view "Table" of the primitive "FormEl".
+ Implement for the generic display mode.
+ Implement for the edition mode of the contents of the cells.
- Implement for run-time management for rows and columns.
  • Make for pages list into the project tab to ordered for hand-fix — to allow for switch in controlled order.
  • Implement for background execution of the edited pages into the development mode — further for visual diagram forming jointly BlockCalc and DAQ-sources at all.

11.5 VCAEngine, Vision, WebVision

  • Append for the user-space global menu by the project-specific properties.
  • Implement of primitive "Diagram" and some other forming into the primitive "Document" as an image on file system and allow their embedding to the document. For now you can manually use the SVG graphics to build this sort images.
  • Develop the "Function" primitive.
  • Develop the "Link" primitive.
  • Implement for dynamic frames developing by placing the shapes of the BlockCalc blocks and the DAQ-sources at all and the related objects creation into OpenSCADA objects model.

11.6 WebCfgD

  • Set context of the table fields limited for too big data.

11.7 QtCfg

  • Append to the tree part for the tabs and the tab "Chosen" for procedures, like import, or other fast access.
(9) — will be useful and can be implemented into the forthcoming release 0.9LTS