Skip to content

quasar-team/quasar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,859 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

quasar logo

quasar

Quick OPC UA Server Generation Framework

CI Deploy documentation GitHub Release License: LGPL v3 Documentation


quasar generates complete OPC UA servers from a single Design XML file. From that design it produces C++ address space classes, device logic scaffolding, configuration parsing, and a CMake build system -- so you focus on your device logic, not boilerplate.

Developed at CERN, quasar is used across multiple laboratories and experiments to build reliable control and monitoring systems.

Quick start

Clone

git clone --recursive https://github.com/quasar-team/quasar

The --recursive flag is required -- quasar uses LogIt as a git submodule.

Build

./quasar.py set_build_config <path/to/config.cmake>
./quasar.py build

Run

./build/bin/OpcUaServer --config_file bin/config.xml

How it works

Design/Design.xml
    |
    v
DesignInspector (xpath) + Oracle (type mappings)
    |
    v
Jinja2 templates (23 transforms)
    |
    v
Generated C++ source (AddressSpace, Device bases, Configuration, CMake)

Design.xml is the single source of truth. Generated code goes into AddressSpace/, Device/generated/, and Configuration/. User-owned device logic lives in D<Class> files which are never overwritten.

Features

  • Design-driven code generation -- one XML file drives the entire server
  • Two OPC UA backends -- open-source open62541 or commercial Unified Automation SDK
  • Device logic separation -- generated base classes with safe defaults; user code is never overwritten
  • Built-in validation -- XSD schema checks plus semantic rules on your design
  • Module system -- enable or disable optional components (calculated variables, archiving, etc.)
  • Cross-platform -- Linux (x86-64, ARM64), Windows, and Yocto embedded builds
Prerequisites
  • Python 3 with lxml, Jinja2, colorama
  • CMake 3.10+
  • C++17 compiler
  • Boost
  • xsdcxx (CodeSynthesis XSD)

Documentation

Full documentation is available at quasar.docs.cern.ch, covering the design manual, command reference, build system, and video tutorials.

License

This project is licensed under the GNU Lesser General Public License v3.0. See LICENSE for details.

Contact

Primary contact: quasar-developers@cern.ch

About

CERN framework for generating OPC UA servers from an XML data-model. Declare your address space in Design.xml, get a full C++ server with config parsing and open62541/UA-SDK backends.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors