MacroServer

Most probably your MacroServer will need to connect to one or more Device Pools via the pool names attribute. This is usually configured at the server creation time but can be also modified later on. In case Sardana is used with Tango this configuration is accessible via the PoolNames MacroServer device property.

You will certainly use the macro environment variables for changing macros behavior at runtime. This environment is stored in a database configurable via environment db attribute. In case Sardana is used with Tango this configuration is accessible via the EnvironmentDb MacroServer device property.

MacroServer is easily extendable by means of plugins of two types: macros and recorders. MacroServer discovers them in directories configurable via macro path and recorder path attributes. In case Sardana is used with Tango this configuration is accessible via the MacroPath and RecorderPath MacroServer device properties. Both MacroPath and RecorderPath properties may contain an ordered, colon-separated list of directories.

Your plugins may need to access to third party Python modules. One can configure the directory where to look for them via python path attribute. In case Sardana is used with Tango this configuration is accessible via the PythonPath MacroServer device property. PythonPath property may contain an ordered, colon-separated list of directories.

Multiple macros can run concurrently in the MacroServer and the maximum number of these threads is configurable via max parallel macros attribute. In case Sardana is used with Tango this configuration is accessible via the MaxParallelMacros MacroServer device property (default: 10).

Macros may report information to a file which is configurable via log report file name and log report format. In case Sardana is used with Tango this configuration is accessible via the LogReportFilename and LogReportFormat MacroServer device properties.

MacroServer integrates natively with the Elastic Stack and may send logs to the a Logstash instance. In case Sardana is used with Tango this configuration is accessible via the LogstashHost and LogstashPort MacroServer device properties. You can use the intermediate SQLite cache database configured with LogstashCacheDbPath property, however this is discouraged due to logging performance problems.