DSL - DSL Tools
Synopsis
DSL Tools.
$ dse-parse2ast [args]
Commands
dse-parse2ast
Convert a DSE file into an intermediate JSON representation.
$ dse-parse2ast <dse_file_path> <json_output_file_path>
Keywords
simulation
Defines the simulation setup including architecture, stepsize, and endtime.
simulation arch=linux-amd64 stepsize=0.0005 endtime=0.005
arch
Specifies the architecture in simulation or stack or model level (default : linux-amd64 ).
simulation arch=linux-amd64
stepsize
Time increment for each simulation step (default : 0.0005).
simulation stepsize=0.0005
endtime
Total simulation duration step (default : 0.005).
simulation endtime=0.005
channel
Declares a communication channel.
channel physical
network
Defines a network interface.
network CAN 'application/x-automotive-bus;interface=stream;type=frame;bus=can;schema=fbs;bus_id=1'
uses
Imports external dependencies such as modules, FMUs, or files.
uses dse.fmi https://github.com/boschglobal/dse.fmi v1.1.34 example https://github.boschdevcloud.com/fsil/fsil.runnable/releases/download/v1.1.2/example.zip token={{.GHE_PAT}}
var
Declares variables, which may refer to other resources or contain static values.
model runnable fsil.runnable uid=5 channel signal signal_channel channel network network_channel workflow unpack-runnable-target var ROOT_DIR {{.OUTDIR}} var ZIP uses example var DIR {{.SIMDIR}}/{{.PATH}}
model
Defines a component in the simulation, such as an FMU or a gateway.
model runnable fsil.runnable channel signal signal_channel channel network network_channel
uid
Assigns a unique ID to a model.
model runnable fsil.runnable uid=5 channel signal signal_channel channel network network_channel
envar
Declares an environment variable used at model or stack scope.
model runnable fsil.runnable uid=5 channel signal signal_channel channel network network_channel envar SIMBUS_LOGLEVEL 3
workflow
Defines a processing or generation step applied to a model or stack.
model runnable fsil.runnable uid=5 channel signal signal_channel channel network network_channel workflow unpack-runnable-target var ROOT_DIR {{.OUTDIR}} var ZIP uses example var DIR {{.SIMDIR}}/{{.PATH}}
stack
Declares a group of models composed together for simulation.
stack fmu-stack model FMU_S1 dse.fmi.mcl channel physical scalar_vector workflow generate-fmimcl var FMU_DIR uses fmu_s1 var MCL_PATH some/path var OUT_DIR {{.model.name}} model FMU_S2 dse.fmi.mcl channel physical scalar_vector workflow generate-fmimcl var FMU_DIR uses fmu_s2 var MCL_PATH some/path var OUT_DIR {{.model.name}}
stacked
A boolean flag that indicates if the models in a stack should be layered.
stack fmu-stack stacked=true arch=linux-x86 model FMU_S1 dse.fmi.mcl channel physical scalar_vector workflow generate-fmimcl var FMU_DIR uses fmu_s1 var MCL_PATH some/path var OUT_DIR {{.model.name}} model FMU_S2 dse.fmi.mcl channel physical scalar_vector workflow generate-fmimcl var FMU_DIR uses fmu_s2 var MCL_PATH some/path var OUT_DIR {{.model.name}}
sequential
A boolean flag for stacks that ensures models are executed one after another, in a defined order.
stack fmu-stack stacked=true sequential=true arch=linux-x86 model FMU_S1 dse.fmi.mcl channel physical scalar_vector workflow generate-fmimcl var FMU_DIR uses fmu_s1 var MCL_PATH some/path var OUT_DIR {{.model.name}} model FMU_S2 dse.fmi.mcl channel physical scalar_vector workflow generate-fmimcl var FMU_DIR uses fmu_s2 var MCL_PATH some/path var OUT_DIR {{.model.name}}
file
Maps or includes external input/configuration files in the simulation.
model FMU dse.fmi.mcl uid=42 channel physical scalar_vector file input.csv uses input_file file data/signalgroup.yaml sample/data/signalgroup.yaml workflow generate-fmimcl var FMU_DIR uses fmu_2 var MCL_PATH some/path var OUT_DIR {{.model.name}}
Example DSL File
openloop.dse
simulation arch=linux-amd64 channel physical uses dse.modelc https://github.com/boschglobal/dse.modelc v2.1.23 dse.fmi https://github.com/boschglobal/dse.fmi v1.1.23 linear_fmu https://github.com/boschglobal/dse.fmi/releases/download/v1.1.23/Fmi-1.1.23-linux-amd64.zip path=examples/fmu/linear/fmi2/linear.fmu model input dse.modelc.csv channel physical signal_channel envar CSV_FILE model/input/data/input.csv file input.csv input/openloop.csv file signalgroup.yaml input/signalgroup.yaml model linear dse.fmi.mcl channel physical signal_channel envar MEASUREMENT_FILE /sim/measurement.mf4 workflow generate-fmimcl var FMU_DIR uses linear_fmu var OUT_DIR {{.PATH}}/data var MCL_PATH {{.PATH}}/lib/libfmimcl.so