Skip to content
UMX is a tool for OPC UA developers to create Information Models to generate OPC UA compliant Nodesets for use in OPC UA Servers.
Python C++ Makefile C Inno Setup Shell
Branch: master
Clone or download
wentabat Merge pull request #2 from beeond/linux-fixes
Removed wxString temporary buffer. This works in windows but somehow …
Latest commit f8c3d94 Apr 14, 2018

README.md

OPC UA Modeling eXcelerator (UMX)

UMX is a tool for OPC UA developers to create Infromation Models to generate OPC UA compliant Nodesets for use in OPC UA Servers.

We maintain a set of compiled setup binaries on our website at https://beeond.net/

Its models are saved into ModelDesign compliant XML files and can be compiled to generate UANodeset files.

For more information on ModelDesign and Nodeset files, please visit https://github.com/OPCFoundation/UA-ModelCompiler

To learn how to develop OPC UA applications, consider registering for our official trainings at https://beeond.net/opc-ua-developer-training/

Buiding instructions

Linux (Note that umx did not undergo intensive testing in linux.) :

  • Install the required libraries.

  • Compile umx

    • cd to the umx directory cloned from git
    • copy _Make.linux.properties Make.linux.properties (Copy the user sample template for linux Makefile include)
    • Configure/Edit the Makefile.linux.properties. Property values vary depending on the installation paths of the required libraries.
    • make
  • Run umx

    • ./eXcelerator

Windows:

  • Install the required libraries.

  • Compile umx

    • Open MinGW-w64 "Run Terminal" (There shoud be a shortcut in the Programs/Apps created from the installation.)
      • cd to the umx directory cloned from git
      • cp _Make.win.properties Make.win.properties (Copy the user sample template for windows Makefile include)
      • Configure/Edit the Makefile.windows.properties. Property values vary depending on the installation paths of the required libraries(MinGW-w64, wxWidgets, xerces and xsd).
      • mingw32-make
  • Run (Put this in a batch file.)

    • set PATH=%PATH%;<PATH_EXTRACTED>\wxWidgets-3.1.1\lib\gcc_dll;<PATH_EXTRACTED>\xerces-c-3.1.2-mingw32-4.9.3-dll-3\bin;<PATH_INSTALLED>\mingw-w64\i686-7.2.0-posix-dwarf-rt_v5-rev1\mingw32\bin
    • eXcelerator.exe

Development

  • Always use Code::Blocks wxSmith to modify the UI for ease of UI maintenance and modification.
  • TODO: Add notes on the changes of the opc schema ModelDesign element complex type reordering of the children.

TODO/Nice to have

  • Rebuild xsd synthesis ModelDesign schema with std=c++11 so we can get rid of the deprecated auto_ptr and replace it with shared_ptr.
  • Update those UI dialogs and panels (e.g. wxProjectDialog, wxAbout) that are not using layout. We want to have a consistent UI across platforms.
  • Convert to CMake.
  • Add a layer of classes to the node elements so we can replace all the 'if' clause with polymorphic calls.
  • Add a new attribute to the opc schema e.g. access=readonly . This will replace the StringId hack.
  • If we can just determine the prefix from the element, we would not need to use the StringId attribute workaround. This may be a potential issue in the future if StringId attribute is added to the wxNodePanel.
  • Remove wx prefixes of the UI classes(wxNodePanel to just PanelNode) to avoid the notion that this is part of the wxWidget core classes.
  • Add/Edit/Delete namespaces in the Project Setting dialog.
  • Revisit the logic for assigning a prefix on a new element created from a BaseType. Not solid.
  • Modify the Makefile to detect header changes.




You can’t perform that action at this time.