35#ifndef StreamDescriptor_inlines_h
36#define StreamDescriptor_inlines_h
38inline Unit StreamDescriptor::GetXAxisUnits()
40 if(m_channel ==
nullptr)
41 return Unit(Unit::UNIT_COUNTS);
46inline Unit StreamDescriptor::GetYAxisUnits()
48 if(m_channel ==
nullptr)
49 return Unit(Unit::UNIT_VOLTS);
56 if(m_channel ==
nullptr)
59 return m_channel->
GetData(m_stream);
64 return (m_channel ==
rhs.m_channel) && (m_stream ==
rhs.m_stream);
69 return (m_channel !=
rhs.m_channel) || (m_stream !=
rhs.m_stream);
74 if(m_channel <
rhs.m_channel)
76 if( (m_channel ==
rhs.m_channel) && (m_stream <
rhs.m_stream) )
82inline uint8_t StreamDescriptor::GetFlags()
const
84 if(m_channel ==
nullptr)
90inline float StreamDescriptor::GetVoltageRange()
96 return schan->GetVoltageRange(m_stream);
99inline float StreamDescriptor::GetOffset()
105 return schan->GetOffset(m_stream);
108inline bool StreamDescriptor::IsHighRateOffsetCapable()
114 return schan->IsHighRateOffsetCapable();
117inline void StreamDescriptor::SetVoltageRange(
float v)
121 schan->SetVoltageRange(
v, m_stream);
124inline bool StreamDescriptor::IsInverted()
128 return schan->IsInverted(m_stream);
132inline void StreamDescriptor::SetOffset(
float v)
136 schan->SetOffset(
v, m_stream);
139inline float StreamDescriptor::GetScalarValue()
141 if(m_channel ==
nullptr)
147inline uint64_t StreamDescriptor::GetDigitalScalarValue()
149 if(m_channel ==
nullptr)
155inline size_t StreamDescriptor::GetDigitalWidth()
157 if(m_channel ==
nullptr)
166 m_channel->AddSink(m_stream,
node);
172 m_channel->RemoveSink(m_stream,
node);
175inline const std::set<FlowGraphNode*>& StreamDescriptor::GetSinks()
177 return m_channel->GetSinks(m_stream);
180inline std::string StreamDescriptor::PrettyPrintDigitalScalarHex()
182 auto width = GetDigitalWidth();
183 uint64_t value = GetDigitalScalarValue();
199 return std::string(
tmp);
203inline std::string StreamDescriptor::PrettyPrintDigitalScalarBinary()
205 auto width = GetDigitalWidth();
206 uint64_t value = GetDigitalScalarValue();
208 std::string
ret = std::to_string(width) +
"'b";
209 for(
int i=width-1;
i >= 0;
i--)
221inline std::string StreamDescriptor::PrettyPrintDigitalScalarDecimal()
223 auto width = GetDigitalWidth();
224 uint64_t value = GetDigitalScalarValue();
238 return std::string(
tmp);
Definition AcceleratorBuffer.h:204
Abstract base class for a node in the signal flow graph.
Definition FlowGraphNode.h:81
uint64_t GetDigitalWidth(size_t stream)
Gets the width of a digital data stream.
Definition InstrumentChannel.h:229
uint64_t GetDigitalScalarValue(size_t stream)
Gets the value of a scalar data stream.
Definition InstrumentChannel.h:221
WaveformBase * GetData(size_t stream)
Get the contents of a data stream.
Definition InstrumentChannel.h:189
virtual Unit GetYAxisUnits(size_t stream)
Returns the Y axis unit for a specified stream.
Definition InstrumentChannel.h:140
float GetScalarValue(size_t stream)
Gets the value of a scalar data stream.
Definition InstrumentChannel.h:205
virtual Unit GetXAxisUnits()
Returns the X axis unit for this channel.
Definition InstrumentChannel.h:134
uint8_t GetStreamFlags(size_t stream)
Get the flags of a data stream.
Definition InstrumentChannel.h:197
A single channel on an oscilloscope.
Definition OscilloscopeChannel.h:49
Descriptor for a single stream coming off a channel.
Definition StreamDescriptor.h:47
A unit of measurement, plus conversion to pretty-printed output.
Definition Unit.h:59