14#include "NetworkDigitalIn.pb.h"
15#include "NetworkDigitalIn.grpc.pb.h"
19 template <
typename BaseInstr,
typename std::enable_if_t<std::is_base_of_v<DigitalIn, BaseInstr>,
int>,
typename... gRPCStubs>
20 class NetworkDigitalInT;
22 namespace NetworkDigitalInTasks
24 template <
typename BaseInstr,
typename std::enable_if_t<std::is_base_of_v<DigitalIn, BaseInstr>,
int>,
typename... gRPCStubs>
35 template <
typename BaseInstr,
typename std::enable_if_t<std::is_base_of_v<DigitalIn, BaseInstr>,
int>,
typename... gRPCStubs>
46 template <
typename BaseInstr,
typename std::enable_if_t<std::is_base_of_v<DigitalIn, BaseInstr>,
int>,
typename... gRPCStubs>
58 template <
typename BaseInstr,
typename std::enable_if_t<std::is_base_of_v<DigitalIn, BaseInstr>,
int>,
typename... gRPCStubs>
77 template <
typename BaseInstr,
typename std::enable_if_t<std::is_base_of_v<DigitalIn, BaseInstr>,
int>,
typename... gRPCStubs>
84 virtual const char*
GetParamClassTag() const noexcept
override {
return "NetworkDigitalInParams"; }
100 template <
typename BaseInstr,
typename std::enable_if_t<std::is_base_of_v<DigitalIn, BaseInstr>,
int>,
typename... gRPCStubs>
114 template <
typename BaseInstr,
typename std::enable_if_t<std::is_base_of_v<DigitalIn, BaseInstr>,
int>,
typename... gRPCStubs>
121 using StubType = DynExpProto::NetworkDigitalIn::NetworkDigitalIn;
123 constexpr static auto Name() noexcept {
return "Network Digital In"; }
138 auto InstrData = dynamic_InstrumentData_cast<NetworkDigitalInT>(this->GetInstrumentData());
139 StubPtr = InstrData->template GetStub<StubType>();
142 auto Response =
InvokeStubFunc(StubPtr, &StubType::Stub::GetAsync, {});
144 return Response.value();
151 auto InstrData = dynamic_InstrumentData_cast<NetworkDigitalInT>(this->GetInstrumentData());
152 StubPtr = InstrData->template GetStub<StubType>();
155 auto Response =
InvokeStubFunc(StubPtr, &StubType::Stub::GetSync, {});
157 return Response.value();
Defines a meta instrument for a single digital input port to read a data stream consisting of digital...
Implementation of a gRPC client instrument to access a remote data stream meta instrument.
SampleT SampleType
Alias for SampleT.
void DisableUserEditable()
Calls DynExp::ParamsBase::DisableUserEditable() on all bundled parameters.
Data stream instrument for bidirectional gRPC communication.
virtual DynExp::ParamsBasePtrType MakeParams(DynExp::ItemIDType ID, const DynExp::DynExpCore &Core) const override
Override to make derived classes call DynExp::MakeParams with the correct configurator type derived f...
NetworkDigitalInConfigurator()=default
virtual ~NetworkDigitalInConfigurator()=default
NetworkDigitalInData(size_t BufferSizeInSamples=1)
virtual ~NetworkDigitalInData()=default
void ResetImpl(DynExp::InstrumentDataBase::dispatch_tag< NetworkDataStreamInstrumentData< BaseInstr, 0, gRPCStubs... > >) override final
virtual void ResetImpl(DynExp::InstrumentDataBase::dispatch_tag< NetworkDigitalInData >)
virtual const char * GetParamClassTag() const noexcept override
This function is intended to be overridden once in each derived class returning the name of the respe...
NetworkDigitalInParams(DynExp::ItemIDType ID, const DynExp::DynExpCore &Core)
virtual void ConfigureParamsImpl(DynExp::ParamsBase::dispatch_tag< NetworkDigitalInParams >)
void ConfigureParamsImpl(DynExp::ParamsBase::dispatch_tag< NetworkDataStreamInstrumentParams< BaseInstr, 0, gRPCStubs... > >) override final
DynExp::ParamsBase::DummyParam Dummy
virtual ~NetworkDigitalInParams()=default
static constexpr auto Name() noexcept
virtual void WriteData(DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const override
virtual DigitalInData::SampleStreamType::SampleType Get(DynExp::TaskBase::CallbackType CallbackFunc=nullptr) const override
virtual void ResetImpl(DynExp::Object::dispatch_tag< NetworkDigitalInT >)
virtual DigitalInData::SampleStreamType::SampleType GetSync() const override
virtual ~NetworkDigitalInT()
virtual std::unique_ptr< DynExp::InitTaskBase > MakeInitTask() const override
Factory function for an init task (InitTaskBase). Override to define the desired initialization task ...
virtual std::string GetName() const override
Returns the name of this Object type.
void ResetImpl(DynExp::Object::dispatch_tag< NetworkDataStreamInstrumentT< BaseInstr, 0, gRPCStubs... > >) override final
NetworkDigitalInT(const std::thread::id OwnerThreadID, DynExp::ParamsBasePtrType &&Params)
virtual std::unique_ptr< DynExp::UpdateTaskBase > MakeUpdateTask() const override
Factory function for an update task (UpdateTaskBase). Override to define the desired update task in d...
DynExpProto::NetworkDigitalIn::NetworkDigitalIn StubType
virtual std::unique_ptr< DynExp::ExitTaskBase > MakeExitTask() const override
Factory function for an exit task (ExitTaskBase). Override to define the desired deinitialization tas...
void ExitFuncImpl(DynExp::ExitTaskBase::dispatch_tag< NetworkDataStreamInstrumentTasks::ExitTask< BaseInstr, 0, gRPCStubs... > >, DynExp::InstrumentInstance &Instance) override final
virtual void ExitFuncImpl(DynExp::ExitTaskBase::dispatch_tag< ExitTask >, DynExp::InstrumentInstance &Instance)
virtual void InitFuncImpl(DynExp::InitTaskBase::dispatch_tag< InitTask >, DynExp::InstrumentInstance &Instance)
void InitFuncImpl(DynExp::InitTaskBase::dispatch_tag< NetworkDataStreamInstrumentTasks::InitTask< BaseInstr, 0, gRPCStubs... > >, DynExp::InstrumentInstance &Instance) override final
void UpdateFuncImpl(DynExp::UpdateTaskBase::dispatch_tag< NetworkDataStreamInstrumentTasks::UpdateTask< BaseInstr, 0, gRPCStubs... > >, DynExp::InstrumentInstance &Instance) override final
virtual void UpdateFuncImpl(DynExp::UpdateTaskBase::dispatch_tag< UpdateTask >, DynExp::InstrumentInstance &Instance)
DynExp's core class acts as the interface between the user interface and DynExp's internal data like ...
Refer to DynExp::ParamsBase::dispatch_tag.
Refer to DynExp::ParamsBase::dispatch_tag.
Refer to ParamsBase::dispatch_tag.
Defines data for a thread belonging to a InstrumentBase instance. Refer to RunnableInstance.
Refer to ParamsBase::dispatch_tag.
Dummy parameter which is to be owned once by parameter classes that do not contain any other paramete...
Tag for function dispatching mechanism within this class used when derived classes are not intended t...
std::function< void(const TaskBase &, ExceptionContainer &)> CallbackType
Type of a callback function which is invoked when a task has finished, failed or has been aborted....
Refer to DynExp::ParamsBase::dispatch_tag.
DynExp's instrument namespace contains the implementation of DynExp instruments which extend DynExp's...
ResponseMsgType InvokeStubFunc(StubPtrType< gRPCStub > StubPtr, StubFuncPtrType< gRPCStub, RequestMsgType, ResponseMsgType > StubFunc, const RequestMsgType &RequestMsg)
Invokes a gRPC stub function as a remote procedure call. Waits for a fixed amount of time (2 seconds)...
std::shared_ptr< typename gRPCStub::Stub > StubPtrType
Alias for a pointer to a gRPC stub.
std::unique_ptr< ParamsBase > ParamsBasePtrType
Alias for a pointer to the parameter system base class ParamsBase.
size_t ItemIDType
ID type of objects/items managed by DynExp.
std::unique_ptr< TaskT > MakeTask(ArgTs &&...Args)
Factory function to create a task to be enqueued in an instrument's task queue.
Accumulates include statements to provide a precompiled header.