25 #include <QtWidgets/QApplication>
33 #cmakedefine USE_NIDAQ
34 #cmakedefine USE_PVCAM
35 #cmakedefine USE_QUTOOLSQUTAG
36 #cmakedefine USE_SMARACT
37 #cmakedefine USE_SWABIANPULSESTREAMER
38 #cmakedefine USE_ZIMFLI
70 #ifdef USE_QUTOOLSQUTAG
76 #ifdef USE_SWABIANPULSESTREAMER
114 int main(
int argc,
char *argv[])
125 #ifdef USE_QUTOOLSQUTAG
131 #ifdef USE_SWABIANPULSESTREAMER
137 > HardwareAdapterLib;
164 #ifdef USE_QUTOOLSQUTAG
170 #ifdef USE_SWABIANPULSESTREAMER
209 QApplication App(argc, argv);
214 gsl_set_error_handler_off();
220 QCommandLineParser Parser;
222 Parser.addHelpOption();
223 Parser.addVersionOption();
224 Parser.addPositionalArgument(
"file",
"Project file (*.dynp) to open.");
228 if (!Parser.positionalArguments().empty())
229 ProjectFile = Parser.positionalArguments()[0];
232 auto DynExpCore = std::make_unique<DynExp::DynExpCore>(HardwareAdapterLib.ToVector(), InstrumentLib.ToVector(), ModuleLib.ToVector(),
233 ProjectFile.toStdString());
234 auto DynExpMgr = std::make_unique<DynExpManager>(*DynExpCore);
235 DynExpMgr->showMaximized();
254 catch (
const std::exception& e)
271 return ErrorReturnCode;
Implementation of a module to read a waveform from a CSV file and to store it in a data stream of a f...
Implementation of a camera instrument without any related physical hardware loading image files from ...
Implementation of a data stream instrument without any related physical hardware.
Implements DynExp's main UI window called DynExpManager.
Implementation of a hardware adapter to communicate text-based commands over TCP sockets.
Implementation of a hardware adapter to communicate text-based commands over COM ports.
Implementation of a module to display images recorded by camera instruments.
Implementation of the inter-module communicator instrument to exchange events in between DynExp modul...
Implementation of a module to control a lock-in amplifier.
Implementation of an instrument to control a single analog input of the National Instruments NIDAQmx ...
Implementation of an instrument to control a single analog output of the National Instruments NIDAQmx...
Implementation of an instrument to control a single digital input of the National Instruments NIDAQmx...
Implementation of an instrument to control a single digital output of the National Instruments NIDAQm...
Implementation of an instrument to control the positioner stage of the Nenion Leakvalve F3 valve.
Implementation of a gRPC client instrument to access a remote analog in meta instrument.
Implementation of a gRPC server module to provide remote access to an analog in meta instrument.
Implementation of a gRPC client instrument to access a remote analog out meta instrument.
Implementation of a gRPC server module to provide remote access to an analog out meta instrument.
Implementation of a gRPC server module to provide remote access to a data stream instrument meta inst...
Implementation of a gRPC client instrument to access a remote data stream meta instrument.
Implementation of a gRPC client instrument to access a remote digital in meta instrument.
Implementation of a gRPC server module to provide remote access to a digital in meta instrument.
Implementation of a gRPC client instrument to access a remote digital out meta instrument.
Implementation of a gRPC server module to provide remote access to a digital out meta instrument.
Implementation of a gRPC client instrument to access a remote spectrometer meta instrument.
Implementation of a module to perform optically detected magnetic resonance (ODMR) measurements.
Implementation of a module to write single values to output port instruments.
Implementation of an instrument to control the Physik Instrumente (PI) C-862 positioner stage.
Implementation of an instrument to control Teledyne Photometrics PVCam cameras.
Implementation of an instrument to control the Rohde & Schwarz SMB100B function generator.
Implementation of an instrument to control the Rohde & Schwarz SMC100A function generator.
Implementation of a module to design waveforms and to store them in data streams of function generato...
Implementation of a module to plot the samples stored in data stream instruments.
Implementation of an instrument to control a single positioner stage connected to the SmarAct MCS2.
Implementation of a module to plot the spectrum stored in a spectrometer instrument.
Implementation of a module to control a 1D positioner stage.
Implementation of a module to process data stored in data stream instrument(s) with a Python script a...
Implementation of an instrument to control a single output of the Swabian Instruments Pulse Streamer ...
Implementation of a module to interpret samples stored in a data stream instrument as trajectories of...
Implementation of a gRPC client instrument to access a remote service for image processing (localizat...
Implementation of a module to control a combined widefield and confocal microscope.
Implementation of an instrument to control the Zurich Instruments MFLI lock-in amplifier.
Defines an inter-module communicator instrument to exchange events in between DynExp modules....
Module to process data stored in data stream instrument(s) with a Python script and to write the resu...
Represents a hardware adapter library to generate instances of classes derived from DynExp::HardwareA...
Implements a hardware adapter to communicate with text-based commands over COM ports.
Implements a hardware adapter to communicate with text-based commands over TCP sockets.
Represents an instrument library to generate instances of classes derived from DynExp::InstrumentBase...
Represents a module library to generate instances of classes derived from DynExp::ModuleBase.
void Log(const std::string &Message, const ErrorType Type=ErrorType::Info, const size_t Line=0, const std::string &Function="", const std::string &File="", const int ErrorCode=0, const std::stacktrace &Trace={}) noexcept
Logs an event from information specified manually.
DynExp exceptions are derived from this class. It contains basic information about the cause of the e...
const int ErrorCode
DynExp error code from DynExpErrorCodes::DynExpErrorCodes
Initialize Python interpreter and directly release the GIL after construction.
void PrintDebugInfo()
Writes information on the Python interpreter configuration to DynExp's log.
int main(int argc, char *argv[])
DynExpManager's main entry point
NetworkDigitalInT< DigitalIn, 0, typename NetworkDataStreamInstrument::StubType, DynExpProto::NetworkDigitalIn::NetworkDigitalIn > NetworkDigitalIn
Explicit instantiation of derivable class NetworkDigitalInT to create the network digital in instrume...
NetworkDigitalOutT< DigitalOut, 0, typename NetworkDataStreamInstrument::StubType, DynExpProto::NetworkDigitalOut::NetworkDigitalOut > NetworkDigitalOut
Explicit instantiation of derivable class NetworkDigitalOutT to create the network digital out instru...
NetworkAnalogInT< AnalogIn, 0, typename NetworkDataStreamInstrument::StubType, DynExpProto::NetworkAnalogIn::NetworkAnalogIn > NetworkAnalogIn
Explicit instantiation of derivable class NetworkAnalogInT to create the network analog in instrument...
NetworkTimeTaggerT< TimeTagger, 0, typename NetworkDataStreamInstrument::StubType, DynExpProto::NetworkTimeTagger::NetworkTimeTagger > NetworkTimeTagger
Explicit instantiation of derivable class NetworkTimeTaggerT to create the network time tagger instru...
NetworkAnalogOutT< AnalogOut, 0, typename NetworkDataStreamInstrument::StubType, DynExpProto::NetworkAnalogOut::NetworkAnalogOut > NetworkAnalogOut
Explicit instantiation of derivable class NetworkAnalogOutT to create the network analog out instrume...
NetworkTimeTaggerT< typename NetworkDataStreamInstrument::ThisServiceType, DynExpProto::NetworkTimeTagger::NetworkTimeTagger > NetworkTimeTagger
Explicit instantiation of derivable class NetworkTimeTaggerT to create the network time tagger module...
NetworkAnalogInT< typename NetworkDataStreamInstrument::ThisServiceType, DynExpProto::NetworkAnalogIn::NetworkAnalogIn > NetworkAnalogIn
Explicit instantiation of derivable class NetworkAnalogInT to create the network analog in module.
NetworkDigitalInT< typename NetworkDataStreamInstrument::ThisServiceType, DynExpProto::NetworkDigitalIn::NetworkDigitalIn > NetworkDigitalIn
Explicit instantiation of derivable class NetworkDigitalInT to create the network digital in module.
NetworkDigitalOutT< typename NetworkDataStreamInstrument::ThisServiceType, DynExpProto::NetworkDigitalOut::NetworkDigitalOut > NetworkDigitalOut
Explicit instantiation of derivable class NetworkDigitalOutT to create the network digital out module...
NetworkDataStreamInstrumentT< DynExpProto::NetworkDataStreamInstrument::NetworkDataStreamInstrument > NetworkDataStreamInstrument
Explicit instantiation of derivable class NetworkDataStreamInstrumentT to create the network data str...
NetworkAnalogOutT< typename NetworkDataStreamInstrument::ThisServiceType, DynExpProto::NetworkAnalogOut::NetworkAnalogOut > NetworkAnalogOut
Explicit instantiation of derivable class NetworkAnalogOutT to create the network analog out module.
constexpr auto DefaultLocale
Default locale string.
constexpr auto DynExpName
DynExp's name string
constexpr auto DynExpDescription
DynExp's description string
constexpr auto DynExpVersion
DynExp's version string
const QLocale & GetDefaultQtLocale()
Returns the default locale properties to be assigned to Qt widgets.
EventLogger & EventLog()
This function holds a static EventLogger instance and returns a reference to it. DynExp uses only one...
Accumulates include statements to provide a precompiled header.
Default number separators used within DynExp.