DynExp
Highly flexible laboratory automation for dynamically changing experiments.
DynExp::HardwareAdapterSerialPortParams Class Reference

Parameter class for HardwareAdapterSerialPort. More...

+ Inheritance diagram for DynExp::HardwareAdapterSerialPortParams:

Public Member Functions

 HardwareAdapterSerialPortParams (ItemIDType ID, const DynExpCore &Core)
 Constructs the parameters for a HardwareAdapterSerialPort instance. More...
 
virtual ~HardwareAdapterSerialPortParams ()=default
 
virtual const char * GetParamClassTag () const noexcept override
 This function is intended to be overridden once in each derived class returning the name of the respective class. Parameters defined in any class within the ParamsBase hierarchy will receive a 'this' pointer pointing to ParamsBase when their ParamBase constructors are called. The ParamBase constructors will register the respective parameter in ParamsBase::OwnedParams calling GetParamClassTag() on the given 'this' pointer. This allows the ParamBase constructor to obtain the name of the class where the respective parameter was declared in. The name is used as an XML tag containing related parameters in the project files. Here, it is fully intended that the virtual call to GetParamClassTag() leads only to a call of GetParamClassTag() of the current dynamic type of ParamsBase! More...
 
- Public Member Functions inherited from DynExp::QSerialCommunicationHardwareAdapterParams
 QSerialCommunicationHardwareAdapterParams (ItemIDType ID, const DynExpCore &Core)
 Constructs the parameters for a QSerialCommunicationHardwareAdapter instance. More...
 
virtual ~QSerialCommunicationHardwareAdapterParams ()=0
 
- Public Member Functions inherited from DynExp::SerialCommunicationHardwareAdapterParams
 SerialCommunicationHardwareAdapterParams (ItemIDType ID, const DynExpCore &Core)
 Constructs the parameters for a SerialCommunicationHardwareAdapter instance. More...
 
virtual ~SerialCommunicationHardwareAdapterParams ()=0
 
- Public Member Functions inherited from DynExp::HardwareAdapterParamsBase
 HardwareAdapterParamsBase (ItemIDType ID, const DynExpCore &Core)
 Constructs the parameters for a HardwareAdapterBase instance. More...
 
virtual ~HardwareAdapterParamsBase ()=0
 
- Public Member Functions inherited from DynExp::ParamsBase
 ParamsBase (ItemIDType ID, const DynExpCore &Core)
 Constructs the base class of an object parameter class. More...
 
virtual ~ParamsBase ()=0
 
QDomElement ConfigToXML (QDomDocument &Document) const
 Creates an XML node with a tag name as determined by GetParamClassTag() containing all parameters belonging to this ParamsBase instance. More...
 
void ConfigFromXML (const QDomElement &XMLElement) const
 Retrieves all parameters belonging to this ParamsBase instance from an XML node with a tag name as determined by GetParamClassTag() More...
 
void ConfigFromDialog (ParamsConfigDialog &Dialog)
 Adds all parameters belonging to this ParamsBase instance to a settings dialog to let the user configure the parameter values. More...
 
bool Validate () const
 Refer to ParamBase::Validate(). More...
 
ItemIDType GetID () const noexcept
 Returns the ID of the Object this parameter class instance belongs to. More...
 
const auto & GetCore () const noexcept
 Returns a reference to DynExp's core. More...
 
const auto & GetObjectLinkParams () const noexcept
 Returns a list of all object link parameters owned by this parameter class instance. More...
 
bool ConfigureUsageType () const noexcept
 Determines whether the Usage parameter should be configurable in the settings dialog. Override ConfigureUsageTypeChild() in order to adjust. More...
 
const NetworkParamsExtensionGetNetworkAddressParams () const noexcept
 Returns the network address parameters of a derived gRPC instrument. Override GetNetworkAddressParamsChild() in order to adjust. More...
 
- Public Member Functions inherited from Util::INonCopyable
 INonCopyable (const INonCopyable &)=delete
 
INonCopyableoperator= (const INonCopyable &)=delete
 

Public Attributes

Param< TextListPortName
 COM port name. More...
 
Param< QSerialPort::BaudRate > BaudRate
 Baud rate. More...
 
Param< QSerialPort::DataBits > DataBits
 Amount of data bits. More...
 
Param< QSerialPort::StopBits > StopBits
 Amount of stop bits. More...
 
Param< QSerialPort::Parity > Parity
 Parity setting. More...
 
- Public Attributes inherited from DynExp::SerialCommunicationHardwareAdapterParams
Param< LineEndingTypeLineEnding
 Parameter storing the line ending type for serial communication. More...
 
- Public Attributes inherited from DynExp::ParamsBase
Param< ParamsConfigDialog::TextTypeObjectName = { *this, "ObjectName", "Name", "Name to identify this item", false }
 String set by the user to identify the object this parameter class instance belongs to. More...
 
Param< UsageTypeUsage
 Determines whether an object can be used by only one other ("unique") or by multiple other ("shared") objects. More...
 

Private Member Functions

void ConfigureParamsImpl (dispatch_tag< QSerialCommunicationHardwareAdapterParams >) override final
 Called by DynExp::ParamsBase::ConfigureParams() as a starting point for the tag dispatch mechanism to descend the inheritance hierarchy. Override to add functionality to ConfigureParams(). Refer to DynExp::ParamsBase::dispatch_tag. More...
 
virtual void ConfigureParamsImpl (dispatch_tag< HardwareAdapterSerialPortParams >)
 Called by DynExp::ParamsBase::ConfigureParams() as a starting point for the tag dispatch mechanism to descend the inheritance hierarchy. Override to add functionality to ConfigureParams(). Refer to DynExp::ParamsBase::dispatch_tag. More...
 

Additional Inherited Members

- Public Types inherited from DynExp::SerialCommunicationHardwareAdapterParams
enum  LineEndingType {
  None , Zero , LF , CRLF ,
  CR
}
 Possible line endings sent after writing a line and used to determine the end of a line while reading. More...
 
- Public Types inherited from DynExp::ParamsBase
enum  UsageType { Unique , Shared }
 Determines whether an Object can be linked to only one (unique) or multiple (shared) other objects. More...
 
using ObjectLinkParamsType = std::vector< std::reference_wrapper< LinkBase > >
 Type of a list of all owned object link parameters. More...
 
using EnumParamSignedIntegerType = intmax_t
 Parameter type to convert signed eumeration parameters to. More...
 
using EnumParamUnsignedIntegerType = uintmax_t
 Parameter type to convert unsigned eumeration parameters to. More...
 
template<typename EnumType >
using LargestEnumUnderlyingType = std::conditional_t< std::is_signed_v< std::underlying_type_t< EnumType > >, EnumParamSignedIntegerType, EnumParamUnsignedIntegerType >
 Type trait providing an integer type for enumeration types which allows to store the value of enumeration variables of that type in a file. More...
 
using Text = Util::TextType
 String type of text-type parameters (DynExp::ParamsBase::Param) More...
 
template<typename ArithmeticType >
using UnderlyingArithmeticParamType = TypedParamBase< ArithmeticType >
 
using UnderlyingTextParamType = TypedParamBase< Util::TextType >
 
using UnderlyingTextListParamType = TypedParamBase< Util::TextType >
 
using UnderlyingIndexedTextListParamType = TypedParamBase< Util::TextListIndexType >
 
template<typename EnumType >
using UnderlyingEnumParamType = TypedParamBase< LargestEnumUnderlyingType< EnumType > >
 If ParamType is an enum, then use largest signed/unsigned integral type as the underlying type since the enum's underlying type has to be integral. More...
 
using UnderlyingLinkParamType = TypedParamBase< ItemIDType >
 
template<typename ArithmeticType >
using UnderlyingArithmeticListParamType = TypedListParamBase< ArithmeticType >
 
using UnderlyingLinkListParamType = TypedListParamBase< ItemIDType >
 
- Static Public Member Functions inherited from DynExp::SerialCommunicationHardwareAdapterParams
static Util::TextValueListType< LineEndingTypeAvlblLineEndingsStrList ()
 Assigns labels to the entries of LineEndingType. More...
 
- Static Public Member Functions inherited from DynExp::ParamsBase
static Util::TextValueListType< UsageTypeAvlblUsageTypeStrList ()
 Maps description strings to the ParamsBase::UsageType enum's items. More...
 
static void DisableUserEditable (ParamBase &Param) noexcept
 Sets the UserEditable property of the parameter Param to false. Refer to ParamBase::UserEditable. More...
 
- Protected Member Functions inherited from Util::ISynchronizedPointerLockable
 ISynchronizedPointerLockable ()
 
 ~ISynchronizedPointerLockable ()
 Object should never be destroyed before completely unlocked. More...
 
- Protected Member Functions inherited from Util::INonCopyable
constexpr INonCopyable ()=default
 
 ~INonCopyable ()=default
 

Detailed Description

Parameter class for HardwareAdapterSerialPort.

Definition at line 43 of file HardwareAdapterSerialPort.h.

Constructor & Destructor Documentation

◆ HardwareAdapterSerialPortParams()

DynExp::HardwareAdapterSerialPortParams::HardwareAdapterSerialPortParams ( ItemIDType  ID,
const DynExpCore Core 
)
inline

Constructs the parameters for a HardwareAdapterSerialPort instance.

Parameters
IDID of the Object this parameter class instance belongs to
CoreReference to DynExp's core

Definition at line 50 of file HardwareAdapterSerialPort.h.

◆ ~HardwareAdapterSerialPortParams()

virtual DynExp::HardwareAdapterSerialPortParams::~HardwareAdapterSerialPortParams ( )
virtualdefault

Member Function Documentation

◆ ConfigureParamsImpl() [1/2]

virtual void DynExp::HardwareAdapterSerialPortParams::ConfigureParamsImpl ( dispatch_tag< HardwareAdapterSerialPortParams )
inlineprivatevirtual

Called by DynExp::ParamsBase::ConfigureParams() as a starting point for the tag dispatch mechanism to descend the inheritance hierarchy. Override to add functionality to ConfigureParams(). Refer to DynExp::ParamsBase::dispatch_tag.

Exceptions
Util::EmptyExceptionis thrown if there is no serial/COM port available on the system.

Definition at line 74 of file HardwareAdapterSerialPort.h.

◆ ConfigureParamsImpl() [2/2]

void DynExp::HardwareAdapterSerialPortParams::ConfigureParamsImpl ( dispatch_tag< QSerialCommunicationHardwareAdapterParams )
finaloverrideprivatevirtual

Called by DynExp::ParamsBase::ConfigureParams() as a starting point for the tag dispatch mechanism to descend the inheritance hierarchy. Override to add functionality to ConfigureParams(). Refer to DynExp::ParamsBase::dispatch_tag.

Exceptions
Util::EmptyExceptionis thrown if there is no serial/COM port available on the system.

Reimplemented from DynExp::QSerialCommunicationHardwareAdapterParams.

Definition at line 20 of file HardwareAdapterSerialPort.cpp.

◆ GetParamClassTag()

virtual const char* DynExp::HardwareAdapterSerialPortParams::GetParamClassTag ( ) const
inlineoverridevirtualnoexcept

This function is intended to be overridden once in each derived class returning the name of the respective class. Parameters defined in any class within the ParamsBase hierarchy will receive a 'this' pointer pointing to ParamsBase when their ParamBase constructors are called. The ParamBase constructors will register the respective parameter in ParamsBase::OwnedParams calling GetParamClassTag() on the given 'this' pointer. This allows the ParamBase constructor to obtain the name of the class where the respective parameter was declared in. The name is used as an XML tag containing related parameters in the project files. Here, it is fully intended that the virtual call to GetParamClassTag() leads only to a call of GetParamClassTag() of the current dynamic type of ParamsBase!

Returns
Name of the class this function is defined in

Reimplemented from DynExp::QSerialCommunicationHardwareAdapterParams.

Definition at line 54 of file HardwareAdapterSerialPort.h.

Member Data Documentation

◆ BaudRate

Param<QSerialPort::BaudRate> DynExp::HardwareAdapterSerialPortParams::BaudRate
Initial value:
= { *this, Util::QtEnumToTextValueList<QSerialPort::BaudRate>(0, 0, 4), "BaudRate", "Baud rate",
"Data rate in bits per second", true, QSerialPort::Baud9600 }

Baud rate.

Definition at line 58 of file HardwareAdapterSerialPort.h.

◆ DataBits

Param<QSerialPort::DataBits> DynExp::HardwareAdapterSerialPortParams::DataBits
Initial value:
= { *this, Util::QtEnumToTextValueList<QSerialPort::DataBits>(0, 0, 4), "DataBits", "Data bits",
"Number of data bits in each character", true, QSerialPort::Data8 }

Amount of data bits.

Definition at line 60 of file HardwareAdapterSerialPort.h.

◆ Parity

Param<QSerialPort::Parity> DynExp::HardwareAdapterSerialPortParams::Parity
Initial value:
= { *this, Util::QtEnumToTextValueList<QSerialPort::Parity>(0, 0, 0, 6), "Parity", "Parity",
"Error detection method", true, QSerialPort::NoParity }

Parity setting.

Definition at line 64 of file HardwareAdapterSerialPort.h.

◆ PortName

Param<TextList> DynExp::HardwareAdapterSerialPortParams::PortName
Initial value:
= { *this, {}, "PortName", "Port",
"Name of the serial port to be assigned to this hardware adapter" }

COM port name.

Definition at line 56 of file HardwareAdapterSerialPort.h.

◆ StopBits

Param<QSerialPort::StopBits> DynExp::HardwareAdapterSerialPortParams::StopBits
Initial value:
= { *this, Util::QtEnumToTextValueList<QSerialPort::StopBits>(0, 0, 0, 4), "StopBits", "Stop bits",
"Number of stop bits after each character", true, QSerialPort::OneStop }

Amount of stop bits.

Definition at line 62 of file HardwareAdapterSerialPort.h.


The documentation for this class was generated from the following files: