MultiChannelData¶
General description¶
Data packet of the MultiChannelData type contains a generic nsamples-by-nchannels array of data.
Payload details¶
name |
type |
description |
---|---|---|
timestamp |
uint64 |
|
signal |
vector of any datatype |
API¶
-
template<typename T>
class Data : public Base::Data -
Public Functions
-
inline Data()
-
inline Data(size_t nchannels, size_t nsamples, double sample_rate)
-
inline void ClearData() override
-
inline void Initialize(const Parameters ¶meters)
-
inline void Initialize(size_t nchannels, size_t nsamples, double sample_rate)
-
inline size_t nchannels() const
-
inline size_t nsamples() const
-
inline double sample_rate() const
-
inline uint64_t sample_timestamp(size_t sample = 0) const
-
inline std::vector<uint64_t> &sample_timestamps()
-
inline void set_sample_timestamp(size_t sample, uint64_t t)
-
inline void set_sample_timestamps(std::vector<uint64_t> &t)
-
inline void set_data_channel(size_t channel, std::vector<T> &data)
-
inline void set_data_sample(size_t sample, std::vector<T> &data)
-
inline void set_data_sample(size_t sample, size_t channel, T data)
-
inline std::vector<T> &data()
-
inline const T &data_sample(size_t sample, size_t channel = 0) const
-
inline T &operator()(size_t index)
-
inline const T &operator()(size_t index) const
-
inline T &operator()(size_t sample, size_t channel = 0)
-
inline const T &operator()(size_t sample, size_t channel = 0) const
-
inline T *begin_sample(size_t sample)
-
inline T *end_sample(size_t sample)
-
inline const T *begin_sample(size_t sample) const
-
inline const T *end_sample(size_t sample) const
-
inline stride_iter<T*> begin_channel(size_t channel)
-
inline stride_iter<T*> end_channel(size_t channel)
-
inline void SerializeBinary(std::ostream &stream, Serialization::Format format = Serialization::Format::FULL) const override
-
inline void SerializeYAML(YAML::Node &node, Serialization::Format format = Serialization::Format::FULL) const override
-
inline void SerializeFlatBuffer(flexbuffers::Builder &flex_builder) override
-
inline void YAMLDescription(YAML::Node &node, Serialization::Format format = Serialization::Format::FULL) const override
-
inline T sum_abs_sample(size_t sample) const
-
inline T sum_sample(size_t sample) const
-
inline T mean_abs_sample(size_t sample) const
-
inline T mean_sample(size_t sample) const
-
inline Data()
Parameters¶
name |
type |
description |
validation |
---|---|---|---|
nsample |
unsigned int |
0 |
Number of samples cannot be zero and needs to be in range |
nchannels |
unsigned int |
0 |
Number of channels cannot be zero and needs to be in range |
sample_rate |
double |
1.0 |
Sample rate needs to be larger than 0 |
-
struct Parameters : public Base::Parameters
Public Functions
-
inline Parameters(size_t nchan = 0, size_t nsamp = 0, double rate = 1.0)
Public Members
-
size_t nchannels
-
size_t nsamples
-
double sample_rate
-
inline Parameters(size_t nchan = 0, size_t nsamp = 0, double rate = 1.0)
Capabilities¶
name |
type |
default |
description |
---|---|---|---|
channel range |
ChannelRange or Range<unsigned int> |
(none) |
the number of channels that is supported |
sample range |
SampleRange or Range<size_t> |
[1, (maximum of the datatype can hold)] |
the number of samples that is supported |
-
class Capabilities : public Base::Capabilities
Public Functions
-
inline Capabilities(ChannelRange channel_range, SampleRange sample_range = SampleRange(1, std::numeric_limits<uint32_t>::max()))
-
inline ChannelRange channel_range() const
-
inline SampleRange sample_range() const
-
inline virtual void VerifyCompatibility(const Capabilities &capabilities) const
-
inline virtual void Validate(const Parameters ¶meters) const
-
inline Capabilities(ChannelRange channel_range, SampleRange sample_range = SampleRange(1, std::numeric_limits<uint32_t>::max()))
Binary Serialization¶
For serialization formats FULL and COMPACT, The timestamps and the data are serialized.
YAML Serialization¶
For serialization formats FULL and COMPACT,
the following YAML is emitted:
timestamps: [timestamps (unsigned int)] signal: [data]