Enhancing SSP creation using sspgen
Keywords:Co-simulation, Domain Specific Language, Functional Mock-up Interface, System Structure and Parameterization
The System Structure and Parameterization (SSP) standard is a tool independent standard to define complete systems consisting of one or more components, including its parameterization, that can be transferred between simulation tools. Thus the SSP standard is a natural extension to the Functional Mock-up Interface (FMI) standard, allowing systems of components, rather than just individual components, to be simulated in a growing number of supported tools. This paper introduces sspgen, a textual Domain Specific Language (DSL) for generating SSP archives. The aim of the DSL is to greatly simplify the creation of SSP compatible simulation systems. sspgen is written in the Kotlin programming language, which provide syntax highlighting and static code analysis in selected tools, full access to Java compatible libraries, and more importantly a scripting context so that sspgen definitions can be easily shared and executed on demand. As the DSL is based on a generic programming language, it enables complex expressions to be evaluated for the purpose of e.g., pre-simulation and initialization of variables. The DSL also performs validation and through integration with the Open Simulation Standard - Interface Specification (OSP-IS) even allows more complex connections to be formed than the single scalar connections that the SSP standard defines, while still retaining compliance. Furthermore, the DSL handles automatic packaging of its referenced content into a ready-to-use SSP archive. As a whole, the introduced package makes it easier to create, modify and share SSP systems.
Copyright (c) 2023 Lars Ivar Hatledal, Eirik Fagerhaug
This work is licensed under a Creative Commons Attribution 4.0 International License.