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>
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)
void ResetImpl(DynExp::InstrumentDataBase::dispatch_tag< NetworkDataStreamInstrumentData< BaseInstr, 0, gRPCStubs... >>) override final
virtual ~NetworkDigitalInData()=default
virtual void ResetImpl(DynExp::InstrumentDataBase::dispatch_tag< NetworkDigitalInData >)
NetworkDigitalInParams(DynExp::ItemIDType ID, const DynExp::DynExpCore &Core)
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...
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
virtual std::unique_ptr< DynExp::ExitTaskBase > MakeExitTask() const override
Factory function for an exit task (ExitTaskBase). Override to define the desired deinitialization tas...
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 std::unique_ptr< DynExp::InitTaskBase > MakeInitTask() const override
Factory function for an init task (InitTaskBase). Override to define the desired initialization task ...
virtual ~NetworkDigitalInT()
void ResetImpl(DynExp::Object::dispatch_tag< NetworkDataStreamInstrumentT< BaseInstr, 0, gRPCStubs... >>) override final
virtual std::string GetName() const override
Returns the name of this Object type.
constexpr static auto Name() noexcept
NetworkDigitalInT(const std::thread::id OwnerThreadID, DynExp::ParamsBasePtrType &&Params)
DynExpProto::NetworkDigitalIn::NetworkDigitalIn StubType
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...
virtual void ExitFuncImpl(DynExp::ExitTaskBase::dispatch_tag< ExitTask >, DynExp::InstrumentInstance &Instance)
void ExitFuncImpl(DynExp::ExitTaskBase::dispatch_tag< NetworkDataStreamInstrumentTasks::ExitTask< BaseInstr, 0, gRPCStubs... >>, DynExp::InstrumentInstance &Instance) override final
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
virtual void UpdateFuncImpl(DynExp::UpdateTaskBase::dispatch_tag< UpdateTask >, DynExp::InstrumentInstance &Instance)
void UpdateFuncImpl(DynExp::UpdateTaskBase::dispatch_tag< NetworkDataStreamInstrumentTasks::UpdateTask< BaseInstr, 0, gRPCStubs... >>, DynExp::InstrumentInstance &Instance) override final
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...
NetworkDigitalInT< DigitalIn, 0, typename NetworkDataStreamInstrument::StubType, DynExpProto::NetworkDigitalIn::NetworkDigitalIn > NetworkDigitalIn
Explicit instantiation of derivable class NetworkDigitalInT to create the network digital in instrume...
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< TaskT > MakeTask(ArgTs &&...Args)
Factory function to create a task to be enqueued in an instrument's task queue.
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.
Accumulates include statements to provide a precompiled header.