Giter Club home page Giter Club logo

ua-modelcompiler's Introduction

Hi there 👋

imagine

About

I have 35+ years of experience in designing and deploying highly distributed applications having managed 100+ innovative projects for industry including aviation, heat engineering, power engineering, and mining. I am the author of the “Process Observer” concept, the architect of the CommServer™ communication software package for the management and optimization of data transfer, author and architect of the SmartFactory™ workflow management system

For 14 years I have been an active member of the OPC Foundation involved in projects related to the OPC Unified Architecture design, adoption, deployment, and maintenance.

I am engaged in many research projects as a researcher, university teacher, and scientist. I am the author of 40+ publications, lectures, presentations, and training sessions. I have a degree of Master's of Electrical Engineering from the Technical University of Lodz and a Ph.D. in Process Control Engineering and Robotics.

I am the founder and Executive Director of CAS.

My current goal is to find an opportunity to manage the research/deployment of innovative IT solutions.

  • 🔭 I’m currently working on Object-oriented Internet
  • 👯 I’m looking to collaborate on Data Oriented Architecture
  • 💬 Ask me about OPC UA, IoT, Industry 4.0, Distributed Systems, Software Engineering, Machine to Machine Communication
  • 📫 How to reach me: Join Object-Oriented Internet Partnership Program
  • 👀 Follow me on YouTube to get more on my activity and projects currently I am working on: Mariusz Postol Profile

ua-modelcompiler's People

Contributors

alinmoldovean avatar benjamin1988 avatar benkinooby avatar fbarresi avatar mertyusaatag avatar mpostol avatar mregen avatar nathanpocock avatar opcfoundation-org avatar pro avatar randy-armstrong avatar randy-armstrong-alias avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

ua-modelcompiler's Issues

Update Scripts against current names

Scope

Move the following scripts to the folder generating executable application (ModelCompilerUI)

  • Tests\DemoModel\BuildModel.bat
  • Opc.Ua.ModelCompiler\BuildSchema.bat
  • BuildEngineeringUnits.bat
  • BuildStandardTypes.bat
  • PublishModel.bat
  • UpdateLicense.bat

Generated code should not have explicit namespace prefixes

        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Boiler.ObjectTypes.GenericSensorType, Boiler.Namespaces.Boiler, namespaceUris);
        }

In this code, NodeId and the Opc.Ua.NodeId are the same type.

It makes the real problem if the code is not to be used in the Opc.Ua environment where the referenced classes are replaced by different ones.

Forked from OPCFoundation#19

Create an abstract API for the library

Switch to the V200 branch

  • create and switch to the V2 branch
  • Create public abstract ModelDesignAPI class to provide the library API
  • Add public factory method to create ModelDesignAPI instance
  • Hide all members no contributing to the API

Investigate possibility to fix incompatible licenses

According to the current README

## License Model ##

The ModelCompiler code is MIT license, however, it links to the UA-.NETStandard NuGet packages which is covered under the OPC Foundation Redistributables licence. If a user chooses the version that links directly to the  UA-.NETStandard submodule then the license the UA-.NETStandard dual license applies.

Try to define an abstraction to remove dependency on the UA-.NETStandard.

This issue was derived from OPCFoundation#74

Define independent Address Space API

Describe problem

The Address Space shall be defined as an independent component to promote separation of concerns and reusability. To prove that a stand-alone implementation of the OPC UA Address Space is possible and can be used as the underlying real-time process replica.

Describe the solution you'd like

Recover definition of the Address Space API from

  • UAModelDesignExport
  • UANodeSetValidation

Describe alternatives you've considered

Consider

  • API for the upper layer
  • API compatible with the server services
  • gathering the process data
  • importing the model from different representations
  • Logging

List of tasks to be accomplished

  • Create an independent project containing definitions
  • Reuse the definitions by the implementation

Notes

Release new version - a release candidate

  • Update version information for all published assemblies
  • Prepare an example if applicable
  • Update the Readme file
  • Create release front page
    • Getting Started
    • Version information
  • Build solution to create deliverable and publish the installation package
  • Update and publish the code help documentation
  • Publish release
  • Update the GitHub pages documentation
  • Close this issue and the parent milestone

Update README

Tasks

  • information about the origin
  • information about synchronization with the origin
  • information about the partnership program
  • information about the branches

Update Docker

Tasks

  • image generation
  • running the image against any model
  • README file

Move UI to separate project

Scope

  • Create UI as an independent command line project
  • Remove dependency on the FormsSystem.Windows.Forms
  • Move all command-line processing to UI project (separation of concerns)
  • Fix all scripts against the new name of the UI project

Release V 3.1

Tasks

  • Draft new release front page
  • Create milestone to resolve all outstanding issues
  • Update version information for all published assemblies
  • Prepare an example if applicable
  • Update the Readme file
  • Prepare and publish NuGet packages if applicable
  • Create release front page
  • Build solution to create deliverable and publish the installation package
  • Update and publish the code help documentation
  • Publish release
  • Update the README.md
  • Update the GitHub pages documentation
  • Close this issue and the parent milestone

-g and --cg options for compiler are not handled

The options are not supported therefore, the -c option must be used. This option requires that a futile must exist - it could be empty but it must exist otherwise, an exception is thrown. Compare this behavior with the origin.

Port ModelDesign to .NET Standard

  • Move development to new branch
    • Update versions
    • Create new brach
    • Switch to the new branch
  • Create a project
  • Fix all compilation errors
  • Remove old project
  • Change the version number to 2.0
  • create NuGet package
  • TBD

Prepare environment for Erasmus+Internship Program

The Internship is a continuation of my research addressing the Object-Oriented Internet concept. A more in-depth description you may find at Object Oriented Internet GitHub repository.

The Internship focus on selected topics related to Domain-Specific Languages, like validation, semantic diff, and conversion (translation). The work will be conducted against models gathered in the UA-Nodeset repository.

I am expecting from contributors:

  • to prepare and maintain the research environment
    • prepare scripts that allow automating the execution of existing command-line tools for the Windows operating system
    • using the prepared scripts and existing tools to convert models in the repository expressed in the UANodeSet to ModelDesign domain-specific language (detailed knowledge of the UANodeSet and ModelDesign language is not required)
    • using the prepared scripts and existing tools validate the models and report any errors if exist
  • to manage the research results
    • create your fork of the repository UA-Nodeset
    • prepare appropriate scripts executing tools against all models gathered in the repository UA-Nodeset
    • pull request the results to the UA-Nodeset repository
  • prepare a final description of the results

The compiler modifies versioned files

The following files are versioned but the compiler modifies them without any need during the execution of the BuildStandardTypes.bat

  • ModelCompiler/CSVs/DemoModel.csv
  • ModelCompiler/CSVs/StandardTypes.csv
  • ModelCompiler/CSVs/UA Attributes.csv
  • ModelCompiler/CSVs/UA Status Codes.csv
  • ModelCompiler/Design.v104/UA Defined Types.xml

Move header generator to GUI

This functionality is useless at all but for backward compatibility reasons, it should be located in the GUI assembly.

  • mode code
  • move parameters

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.