|
| 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. "
|
| |
| 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.
|
| |
| 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.
|
| |
| 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.
|
| |
| 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.
|
| |
| 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.
|
| |
| 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. "
|
| |
| 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.
|
| |
| 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.
|
| |
| 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.
|
| |
| 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.
|
| |
| 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.
|
| |
| 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. "
|
| |
| 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.
|
| |
| 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.
|
| |
| 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.
|
| |
| 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.
|
| |
| 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.
|
| |
| 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.
|
| |
| 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.
|
| |
| 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.
|
| |
| 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. "
|
| |
| 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.
|
| |
| 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.
|
| |
| 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.
|
| |
| 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.
|
| |
| 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.
|
| |
| 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.
|
| |
|
| | 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.
|
| |
| virtual std::chrono::milliseconds | GetTaskQueueDelay () const override |
| | Specifies in which time intervals the instrument's task queue runs to handle pending tasks.
|
| |
| 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.
|
| |
| 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.
|
| |
| virtual Util::OptionalBool | HasFinished () const override |
| | Determines whether the underlying hardware adapter finished data acquisition or writing data.
|
| |
| virtual Util::OptionalBool | IsRunning () const override |
| | Determines whether the underlying hardware adapter is running a data acquisition or writing data.
|
| |
| 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.
|
| |
| virtual void | ClearData (DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const override |
| | Enqueues a task to clear the underlying hardware adapter's buffer.
|
| |
| 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.
|
| |
| 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.
|
| |
| virtual void | SetSensitivity (double Sensitivity, DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const override |
| | Sets the lock-in amplifier's sensitivity/amplification.
|
| |
| virtual void | AutoAdjustSensitivity (DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const override |
| | Makes the lock-in amplifier automatically set its sensitivity/amplification.
|
| |
| virtual void | SetPhase (double Phase, DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const override |
| | Sets the phase of the lock-in amplifier's demodulator.
|
| |
| virtual void | AutoAdjustPhase (DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const override |
| | Makes the lock-in amplifier automatically set its demodulator's phase.
|
| |
| 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.
|
| |
| 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.
|
| |
| virtual void | SetTriggerMode (LockinAmplifierDefs::TriggerModeType TriggerMode, DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const override |
| | Sets the lock-in amplifier's trigger mode.
|
| |
| virtual void | SetTriggerEdge (LockinAmplifierDefs::TriggerEdgeType TriggerEdge, DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const override |
| | Sets the lock-in amplifier's trigger edge.
|
| |
| 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.
|
| |
| virtual void | SetSamplingRate (double SamplingRate, DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const override |
| | Sets the lock-in amplifier's sampling rate.
|
| |
| virtual void | SetEnable (bool Enable, DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const override |
| | Enables or disables the lock-in amplifier's demodulator.
|
| |
| virtual void | ForceTrigger (DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const override |
| | Forces (starts) the data acquisition ignoring the trigger.
|
| |
| | LockinAmplifier (const std::thread::id OwnerThreadID, DynExp::ParamsBasePtrType &&Params) |
| | Constructs an instrument instance.
|
| |
| virtual | ~LockinAmplifier ()=0 |
| |
| virtual std::string | GetCategory () const override |
| | Returns the category of this Object type.
|
| |
| 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.
|
| |
| 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).
|
| |
| | DataStreamInstrument (const std::thread::id OwnerThreadID, DynExp::ParamsBasePtrType &&Params) |
| | Constructs an instrument instance.
|
| |
| 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.
|
| |
| 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.
|
| |
| 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().
|
| |
| virtual void | WriteData (DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const |
| | Enqueues a task to write data from the data stream to the hardware.
|
| |
| 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().
|
| |
| 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.
|
| |
| 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.
|
| |
| | InstrumentBase (const std::thread::id OwnerThreadID, ParamsBasePtrType &&Params) |
| | Constructs an instrument instance.
|
| |
| 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.
|
| |
| 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.
|
| |
| 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.
|
| |
| void | UpdateData () const |
| | Enqueues an update task (instance of class UpdateTaskBase).
|
| |
| void | EnqueueArriveAtLatchTask (std::latch &Latch) const |
| | Enqueues a task which arrives at a latch when executed (instance of class ArriveAtLatchTask).
|
| |
| bool | IsInitialized () const |
| | Getter for Initialized.
|
| |
| | RunnableObject (const std::thread::id OwnerThreadID, ParamsBasePtrType &&Params) |
| | Constructs an Object instance.
|
| |
| 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.
|
| |
| bool | IsRunning () const noexcept |
| | Returns Running.
|
| |
| bool | IsPaused () const noexcept |
| | Returns Paused.
|
| |
| bool | IsExiting () const noexcept |
| | Returns ShouldExit.
|
| |
| auto | GetStartupType () const noexcept |
| | Returns Startup.
|
| |
| auto | GetReasonWhyPaused () const |
| | Returns ReasonWhyPaused.
|
| |
| 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().
|
| |
| bool | RunIfRunAutomatic () |
| | Calls Run() if RunnableObjectParams::Startup is set to RunnableObjectParams::Automatic.
|
| |
| bool | RunIfRunOnCreation () |
| | Calls Run() if RunnableObjectParams::Startup is set to RunnableObjectParams::OnCreation.
|
| |
| 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().
|
| |
| | 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.
|
| |
| std::string | GetCategoryAndName () const |
| | Builds a string from an Object's category and name to allow the user to identify an Object's type.
|
| |
| void | EnsureReadyState (bool IsAutomaticStartup) |
| | Ensures that this Object instance is ready by possibly starting its worker thread or by opening connections to hardware devices.
|
| |
| void | CheckLinkedObjectStates () const |
| | Checks whether Object instances this instance uses are in a ready state. Override CheckLinkedObjectStatesChild() to implement this behavior.
|
| |
| 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.
|
| |
| 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.
|
| |
| 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.
|
| |
| 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.
|
| |
| auto | GetObjectName (const std::chrono::milliseconds Timeout=GetParamsTimeoutDefault) const |
| | Returns the name of this Object instance.
|
| |
| bool | IsSharedUsageEnabled (const std::chrono::milliseconds Timeout=GetParamsTimeoutDefault) const |
| | Returns whether shared usage has been enabled for this Object instance. Refer to ParamsBase::UsageType.
|
| |
| void | SetWarning (std::string Description, int ErrorCode) const |
| | Setter for Object::Warning. Sets the warning by a description and an error code.
|
| |
| void | SetWarning (const Util::Exception &e) const |
| | Setter for Object::Warning. Sets the warning by retrieving the warning data from an exception e.
|
| |
| void | ClearWarning () const |
| | Resets Object::Warning.
|
| |
| auto | GetWarning () const |
| | Returns Object::Warning in a thread-safe way by copying its internal data.
|
| |
| 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.
|
| |
| 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).
|
| |
| auto | GetUseCount (const std::chrono::milliseconds Timeout=Util::ILockable::DefaultTimeout) const |
| | Counts the registered useres in a thread-safe way.
|
| |
| bool | IsUnused (const std::chrono::milliseconds Timeout=Util::ILockable::DefaultTimeout) const |
| | Returns whether this Object instance is used by other instances.
|
| |
| 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.
|
| |
| 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.
|
| |