|
using | ParamsType = ZI_MFLIParams |
|
using | ConfigType = ZI_MFLIConfigurator |
|
using | InstrumentDataType = ZI_MFLIData |
|
using | ParamsType = LockinAmplifierParams |
| Type of the parameter class belonging to this Object type. Declare this alias in every derived class with the respective parameter class accompanying the derived Object . More...
|
|
using | ConfigType = LockinAmplifierConfigurator |
| Type of the configurator class belonging to this Object type. Declare this alias in every derived class with the respective configurator class accompanying the derived Object . More...
|
|
using | InstrumentDataType = LockinAmplifierData |
| Type of the data class belonging to this InstrumentBase type. Declare this alias in every derived class with the respective data class accompanying the derived InstrumentBase . More...
|
|
using | InitTaskType = LockinAmplifierTasks::InitTask |
| Defines a task for initializing an instrument within an instrument inheritance hierarchy. Each instrument (indirectly) derived from class InstrumentBase must be accompanied by an initialization task class derived from InitTaskBase . Even if the task does not do anything, at least it has to call InitTaskBase::InitFuncImpl() of the derived instrument's initialization task class. More...
|
|
using | ExitTaskType = LockinAmplifierTasks::ExitTask |
| Defines a task for deinitializing an instrument within an instrument inheritance hierarchy. Each instrument (indirectly) derived from class InstrumentBase must be accompanied by a deinitialization task class derived from ExitTaskBase . Even if the task does not do anything, at least it has to call ExitTaskBase::ExitFuncImpl() of the derived instrument's deinitialization task class. More...
|
|
using | UpdateTaskType = LockinAmplifierTasks::UpdateTask |
| Defines a task for updating an instrument within an instrument inheritance hierarchy. Each instrument (indirectly) derived from class InstrumentBase must be accompanied by an update task class derived from UpdateTaskBase . Even if the task does not do anything, at least it has to call UpdateTaskBase::UpdateFuncImpl() of the derived instrument's update task class. More...
|
|
using | ParamsType = DataStreamInstrumentParams |
| Type of the parameter class belonging to this Object type. Declare this alias in every derived class with the respective parameter class accompanying the derived Object . More...
|
|
using | ConfigType = DataStreamInstrumentConfigurator |
| Type of the configurator class belonging to this Object type. Declare this alias in every derived class with the respective configurator class accompanying the derived Object . More...
|
|
using | InstrumentDataType = DataStreamInstrumentData |
| Type of the data class belonging to this InstrumentBase type. Declare this alias in every derived class with the respective data class accompanying the derived InstrumentBase . More...
|
|
using | InitTaskType = DataStreamInstrumentTasks::InitTask |
| Defines a task for initializing an instrument within an instrument inheritance hierarchy. Each instrument (indirectly) derived from class InstrumentBase must be accompanied by an initialization task class derived from InitTaskBase . Even if the task does not do anything, at least it has to call InitTaskBase::InitFuncImpl() of the derived instrument's initialization task class. More...
|
|
using | ExitTaskType = DataStreamInstrumentTasks::ExitTask |
| Defines a task for deinitializing an instrument within an instrument inheritance hierarchy. Each instrument (indirectly) derived from class InstrumentBase must be accompanied by a deinitialization task class derived from ExitTaskBase . Even if the task does not do anything, at least it has to call ExitTaskBase::ExitFuncImpl() of the derived instrument's deinitialization task class. More...
|
|
using | UpdateTaskType = DataStreamInstrumentTasks::UpdateTask |
| Defines a task for updating an instrument within an instrument inheritance hierarchy. Each instrument (indirectly) derived from class InstrumentBase must be accompanied by an update task class derived from UpdateTaskBase . Even if the task does not do anything, at least it has to call UpdateTaskBase::UpdateFuncImpl() of the derived instrument's update task class. More...
|
|
using | ParamsType = InstrumentParamsBase |
| Type of the parameter class belonging to this Object type. Declare this alias in every derived class with the respective parameter class accompanying the derived Object . More...
|
|
using | ConfigType = InstrumentConfiguratorBase |
| Type of the configurator class belonging to this Object type. Declare this alias in every derived class with the respective configurator class accompanying the derived Object . More...
|
|
using | InstrumentDataType = InstrumentDataBase |
| Type of the data class belonging to this InstrumentBase type. Declare this alias in every derived class with the respective data class accompanying the derived InstrumentBase . More...
|
|
using | InstrumentDataTypeSyncPtrType = Util::SynchronizedPointer< InstrumentDataType > |
| Alias for the return type of InstrumentBase::GetInstrumentData(). Data class instances wrapped into Util::SynchronizedPointer can be accessed in a thread-safe way. More...
|
|
using | InstrumentDataTypeSyncPtrConstType = Util::SynchronizedPointer< const InstrumentDataType > |
| Alias for the return type of InstrumentBase::GetInstrumentData() const. Data class instances wrapped into Util::SynchronizedPointer can be accessed in a thread-safe way. More...
|
|
using | InitTaskType = InitTaskBase |
| Defines a task for initializing an instrument within an instrument inheritance hierarchy. Each instrument (indirectly) derived from class InstrumentBase must be accompanied by an initialization task class derived from InitTaskBase . Even if the task does not do anything, at least it has to call InitTaskBase::InitFuncImpl() of the derived instrument's initialization task class. More...
|
|
using | ExitTaskType = ExitTaskBase |
| Defines a task for deinitializing an instrument within an instrument inheritance hierarchy. Each instrument (indirectly) derived from class InstrumentBase must be accompanied by a deinitialization task class derived from ExitTaskBase . Even if the task does not do anything, at least it has to call ExitTaskBase::ExitFuncImpl() of the derived instrument's deinitialization task class. More...
|
|
using | UpdateTaskType = UpdateTaskBase |
| Defines a task for updating an instrument within an instrument inheritance hierarchy. Each instrument (indirectly) derived from class InstrumentBase must be accompanied by an update task class derived from UpdateTaskBase . Even if the task does not do anything, at least it has to call UpdateTaskBase::UpdateFuncImpl() of the derived instrument's update task class. More...
|
|
using | InstrumentDataGetterType = Util::CallableMemberWrapper< InstrumentBase, InstrumentDataTypeSyncPtrType(InstrumentBase::*)(const std::chrono::milliseconds)> |
| Invoking an instance of this alias is supposed to call InstrumentBase::GetInstrumentData() of the instance the Util::CallableMemberWrapper has been constructed with. More...
|
|
using | ParamsType = RunnableObjectParams |
| Type of the parameter class belonging to this Object type. Declare this alias in every derived class with the respective parameter class accompanying the derived Object . More...
|
|
using | ConfigType = RunnableObjectConfigurator |
| Type of the configurator class belonging to this Object type. Declare this alias in every derived class with the respective configurator class accompanying the derived Object . More...
|
|
using | ParamsType = ParamsBase |
| Type of the parameter class belonging to this Object type. Declare this alias in every derived class with the respective parameter class accompanying the derived Object . More...
|
|
using | ParamsTypeSyncPtrType = Util::SynchronizedPointer< ParamsType > |
| Alias for the return type of Object::GetParams(). Parameters wrapped into Util::SynchronizedPointer can be accessed in a thread-safe way. More...
|
|
using | ParamsConstTypeSyncPtrType = Util::SynchronizedPointer< const ParamsType > |
| Alias for the return type of Object::GetParams() const. Parameters wrapped into Util::SynchronizedPointer can be accessed in a thread-safe way. More...
|
|
using | ConfigType = ConfiguratorBase |
| Type of the configurator class belonging to this Object type. Declare this alias in every derived class with the respective configurator class accompanying the derived Object . More...
|
|
using | ParamsGetterType = Util::CallableMemberWrapper< Object, decltype(&Object::GetParams)> |
| Invoking an instance of this alias is supposed to call Object::GetParams() of the instance the Util::CallableMemberWrapper has been constructed with. More...
|
|
|
| ZI_MFLI (const std::thread::id OwnerThreadID, DynExp::ParamsBasePtrType &&Params) |
|
virtual | ~ZI_MFLI () |
|
virtual std::string | GetName () const override |
| Returns the name of this Object type. More...
|
|
virtual std::chrono::milliseconds | GetTaskQueueDelay () const override |
| Specifies in which time intervals the instrument's task queue runs to handle pending tasks. More...
|
|
virtual DataStreamInstrumentData::UnitType | GetValueUnit () const noexcept override |
| Determines which unit corresponds to the values managed by this DataStreamInstrument instance. Do not enforce noexcept to allow overriding functions which throw exceptions. More...
|
|
virtual const char * | GetSensitivityUnitString () const noexcept override |
| Determines the unit of the lock-in amplifier's sensitivity/amplification setting and returns a human-readable string to represent that unit. More...
|
|
virtual Util::OptionalBool | HasFinished () const override |
| Determines whether the underlying hardware adapter finished data acquisition or writing data. More...
|
|
virtual Util::OptionalBool | IsRunning () const override |
| Determines whether the underlying hardware adapter is running a data acquisition or writing data. More...
|
|
virtual void | ReadData (DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const override |
| Enqueues a task to read data from the hardware to the data stream. The default implementation does nothing. More...
|
|
virtual void | ClearData (DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const override |
| Enqueues a task to clear the underlying hardware adapter's buffer. More...
|
|
virtual void | Start (DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const override |
| Enqueues a task to make the underlying hardware adapter start data acquisition or writing data. More...
|
|
virtual void | Stop (DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const override |
| Enqueues a task to make the underlying hardware adapter stop data acquisition or writing data. More...
|
|
virtual void | SetSensitivity (double Sensitivity, DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const override |
| Sets the lock-in amplifier's sensitivity/amplification. More...
|
|
virtual void | AutoAdjustSensitivity (DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const override |
| Makes the lock-in amplifier automatically set its sensitivity/amplification. More...
|
|
virtual void | SetPhase (double Phase, DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const override |
| Sets the phase of the lock-in amplifier's demodulator. More...
|
|
virtual void | AutoAdjustPhase (DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const override |
| Makes the lock-in amplifier automatically set its demodulator's phase. More...
|
|
virtual void | SetTimeConstant (double TimeConstant, DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const override |
| Sets the time constant of the lock-in amplifier's low-poss filter. More...
|
|
virtual void | SetFilterOrder (uint8_t FilterOrder, DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const override |
| Sets the filter order/quality of the lock-in amplifier's low-poss filter. More...
|
|
virtual void | SetTriggerMode (LockinAmplifierDefs::TriggerModeType TriggerMode, DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const override |
| Sets the lock-in amplifier's trigger mode. More...
|
|
virtual void | SetTriggerEdge (LockinAmplifierDefs::TriggerEdgeType TriggerEdge, DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const override |
| Sets the lock-in amplifier's trigger edge. More...
|
|
virtual void | SetSignalType (LockinAmplifierDefs::SignalType SignalType, DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const override |
| Sets the lock-in amplifier's signal coordinate type to read out. More...
|
|
virtual void | SetSamplingRate (double SamplingRate, DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const override |
| Sets the lock-in amplifier's sampling rate. More...
|
|
virtual void | SetEnable (bool Enable, DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const override |
| Enables or disables the lock-in amplifier's demodulator. More...
|
|
virtual void | ForceTrigger (DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const override |
| Forces (starts) the data acquisition ignoring the trigger. More...
|
|
| LockinAmplifier (const std::thread::id OwnerThreadID, DynExp::ParamsBasePtrType &&Params) |
| Constructs an instrument instance. More...
|
|
virtual | ~LockinAmplifier ()=0 |
|
virtual std::string | GetCategory () const override |
| Returns the category of this Object type. More...
|
|
void | PersistDataToParams () const |
| Retrieves the current lock-in amplifier settings and stores them in the instrument parameters to save them to the project file. The function updates the parameters belonging to LockinAmplifierParams . Then, it calls PersistDataToParamsImpl() making use of the tag dispatch mechanism (refer to DynExp::ParamsBase::dispatch_tag) to let derived classes store additional settings they are responsible for in the instrument parameters. More...
|
|
void | ApplyFromParams () const |
| Applies the lock-in amplifier settings stored in the instrument parameters to the physical device. The function only calls ApplyFromParamsImpl() making use of the tag dispatch mechanism (refer to DynExp::ParamsBase::dispatch_tag) to let derived classes apply the settings they are responsible for (by knowing how to apply them). More...
|
|
| DataStreamInstrument (const std::thread::id OwnerThreadID, DynExp::ParamsBasePtrType &&Params) |
| Constructs an instrument instance. More...
|
|
virtual | ~DataStreamInstrument ()=0 |
|
const char * | GetValueUnitStr () const noexcept |
| Builds and returns a descriptive string of the unit corresponding to the values managed by this DataStreamInstrument instance. More...
|
|
bool | CanRead (const std::chrono::milliseconds Timeout=GetInstrumentDataTimeoutDefault) const |
| Calls ReadData() , locks the instrument data, and determines whether at least one sample can be read from the instrument's data stream. More...
|
|
void | Clear (const std::chrono::milliseconds Timeout=GetInstrumentDataTimeoutDefault) const |
| Immediately clears the instrument's data stream and then issues a ClearData task by locking the instrument data first, calling DataStreamBase::Clear(), and finally calling ClearData() . More...
|
|
virtual void | WriteData (DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const |
| Enqueues a task to write data from the data stream to the hardware. More...
|
|
virtual void | Restart (DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const |
| Enqueues a task to make the underlying hardware adapter restart data acquisition or writing data. The default implementation calls Stop() and then Start() . More...
|
|
virtual void | SetStreamSize (size_t BufferSizeInSamples, DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const |
| Enqueues a task to set the size of the instrument's sample stream. The default implementation just calls DataStreamBase::SetStreamSize() via a DataStreamInstrumentTasks::SetStreamSizeTask task. More...
|
|
virtual void | ResetStreamSize (DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const |
| Enqueues a task to reset the size of the instrument's sample stream to its default value. More...
|
|
| InstrumentBase (const std::thread::id OwnerThreadID, ParamsBasePtrType &&Params) |
| Constructs an instrument instance. More...
|
|
virtual | ~InstrumentBase ()=0 |
|
template<typename DerivedInstrT , typename... TaskFuncArgTs, typename... ArgTs> |
ExceptionContainer | AsSyncTask (void(DerivedInstrT::*TaskFunc)(TaskFuncArgTs...) const, ArgTs &&...Args) const |
| Calls a (derived) instrument's function which inserts a task into the instrument's task queue synchronously. This means that AsSyncTask() blocks until the task has been executed or aborted. This is achieved by passing a callback function to the task which in turn sets a flag after the task execution. The thread calling AsSyncTask() blocks (via std::this_thread::yield() ) until this flag is set. More...
|
|
InstrumentDataTypeSyncPtrType | GetInstrumentData (const std::chrono::milliseconds Timeout=GetInstrumentDataTimeoutDefault) |
| Locks the mutex of the instrument data class instance InstrumentData assigned to this InstrumentBase instance and returns a pointer to the locked InstrumentData. Instrument data should not be locked by having called this function while subsequently calling a derived instrument's method which also makes use of the instrument's data by locking it. If this happens (e.g. in a module thread), the instrument data's mutex is locked recursively. In principle, this does no harm since Util::ISynchronizedPointerLockable supports that. But, it is not considered good practice. More...
|
|
InstrumentDataTypeSyncPtrConstType | GetInstrumentData (const std::chrono::milliseconds Timeout=GetInstrumentDataTimeoutDefault) const |
| Locks the mutex of the instrument data class instance InstrumentData assigned to this InstrumentBase instance and returns a pointer to the locked InstrumentData. Instrument data should not be locked by having called this function while subsequently calling a derived instrument's method which also makes use of the instrument's data by locking it. If this happens (e.g. in a module thread), the instrument data's mutex is locked recursively. In principle, this does no harm since Util::ISynchronizedPointerLockable supports that. But, it is not considered good practice. More...
|
|
void | UpdateData () const |
| Enqueues an update task (instance of class UpdateTaskBase ). More...
|
|
void | EnqueueArriveAtLatchTask (std::latch &Latch) const |
| Enqueues a task which arrives at a latch when executed (instance of class ArriveAtLatchTask ). More...
|
|
bool | IsInitialized () const |
| Getter for Initialized. More...
|
|
| RunnableObject (const std::thread::id OwnerThreadID, ParamsBasePtrType &&Params) |
| Constructs an Object instance. More...
|
|
virtual | ~RunnableObject ()=0 |
|
void | SetPaused (bool Pause, std::string Description="") |
| Pauses or resumes a RunnableObject instance. Its thread stays running, but the instance does not perform any action while it is paused. More...
|
|
bool | IsRunning () const noexcept |
| Returns Running. More...
|
|
bool | IsPaused () const noexcept |
| Returns Paused. More...
|
|
bool | IsExiting () const noexcept |
| Returns ShouldExit. More...
|
|
auto | GetStartupType () const noexcept |
| Returns Startup. More...
|
|
auto | GetReasonWhyPaused () const |
| Returns ReasonWhyPaused. More...
|
|
bool | Run (QWidget *ParentWidget=nullptr) |
| Starts the RunnableObject instance's thread and ensures that all Object instances linked to this instance via ObjectLink parameters are in a ready state. Calls RunChild() which is to be overridden by derived classes to start a thread and to pass this thread back by calling StoreThread() . More...
|
|
bool | RunIfRunAutomatic () |
| Calls Run() if RunnableObjectParams::Startup is set to RunnableObjectParams::Automatic. More...
|
|
bool | RunIfRunOnCreation () |
| Calls Run() if RunnableObjectParams::Startup is set to RunnableObjectParams::OnCreation. More...
|
|
void | Terminate (bool Force=false, const std::chrono::milliseconds Timeout=TerminateTimeoutDefault) |
| Notifies the RunnableObject instance's thread to terminate and waits until it has ended. Calls TerminateImpl(). More...
|
|
| INonCopyable (const INonCopyable &)=delete |
|
INonCopyable & | operator= (const INonCopyable &)=delete |
|
ItemIDType | GetID () const noexcept |
| Returns the ID of this Object instance. Thread-safe since ID is const. More...
|
|
std::string | GetCategoryAndName () const |
| Builds a string from an Object's category and name to allow the user to identify an Object's type. More...
|
|
void | EnsureReadyState (bool IsAutomaticStartup) |
| Ensures that this Object instance is ready by possibly starting its worker thread or by opening connections to hardware devices. More...
|
|
void | CheckLinkedObjectStates () const |
| Checks whether Object instances this instance uses are in a ready state. Override CheckLinkedObjectStatesChild() to implement this behavior. More...
|
|
void | Reset () |
| Resets this Object instance (including all its derived classes) by calling ResetImpl() . A reset implies that the derived classes reload all their parameters from Params and that all LinkedObjectWrapper instances owned by this Object instance become invalidated. More...
|
|
void | BlockIfUnused (const std::chrono::milliseconds Timeout=Util::ILockable::DefaultTimeout) |
| Blocks this Object instance setting Object::IsBlocked to true. Refer to Object::IsBlocked for the consequences. More...
|
|
ParamsConstTypeSyncPtrType | GetParams (const std::chrono::milliseconds Timeout=GetParamsTimeoutDefault) const |
| Locks the mutex of the parameter class instance Params assigned to this Object instance and returns a pointer to the locked Params. More...
|
|
ParamsTypeSyncPtrType | GetParams (const std::chrono::milliseconds Timeout=GetParamsTimeoutDefault) |
| Locks the mutex of the parameter class instance Params assigned to this Object instance and returns a pointer to the locked Params. More...
|
|
auto | GetObjectName (const std::chrono::milliseconds Timeout=GetParamsTimeoutDefault) const |
| Returns the name of this Object instance. More...
|
|
bool | IsSharedUsageEnabled (const std::chrono::milliseconds Timeout=GetParamsTimeoutDefault) const |
| Returns whether shared usage has been enabled for this Object instance. Refer to ParamsBase::UsageType. More...
|
|
void | SetWarning (std::string Description, int ErrorCode) const |
| Setter for Object::Warning. Sets the warning by a description and an error code. More...
|
|
void | SetWarning (const Util::Exception &e) const |
| Setter for Object::Warning. Sets the warning by retrieving the warning data from an exception e . More...
|
|
void | ClearWarning () const |
| Resets Object::Warning. More...
|
|
auto | GetWarning () const |
| Returns Object::Warning in a thread-safe way by copying its internal data. More...
|
|
std::exception_ptr | GetException (const std::chrono::milliseconds Timeout=Util::ILockable::DefaultTimeout) const |
| Returns a pointer to the exception which has caused this Object instance to fail. More...
|
|
bool | IsReady () const |
| Returns wheter this Object instance is ready (e.g. it is running or connected to a hardware device) and not blocked (refer to Object::IsBlocked). More...
|
|
auto | GetUseCount (const std::chrono::milliseconds Timeout=Util::ILockable::DefaultTimeout) const |
| Counts the registered useres in a thread-safe way. More...
|
|
bool | IsUnused (const std::chrono::milliseconds Timeout=Util::ILockable::DefaultTimeout) const |
| Returns whether this Object instance is used by other instances. More...
|
|
auto | GetUserIDs (const std::chrono::milliseconds Timeout=Util::ILockable::DefaultTimeout) const |
| Returns a list of the IDs of the registered users in a thread-safe way. More...
|
|
auto | GetUserNamesString (const std::chrono::milliseconds Timeout=Util::ILockable::DefaultTimeout) const |
| Builds a string describing which users are registered containing their object names, categories and type names in a thread-safe way. More...
|
|