aqnwb 0.3.0
Loading...
Searching...
No Matches
ElectricalSeries.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4
5#include "Channel.hpp"
6#include "Utils.hpp"
7#include "io/BaseIO.hpp"
8#include "io/ReadIO.hpp"
11#include "spec/core.hpp"
12
13namespace AQNWB::NWB
14{
19{
20public:
21 // Register the TimeSeries as a subclass of Container
25
26protected:
32 ElectricalSeries(const std::string& path, std::shared_ptr<IO::BaseIO> io);
33
34public:
38 ~ElectricalSeries() override;
39
60 const Types::ChannelVector& channelVector,
61 const std::string& description,
62 const float& conversion = 1.0f,
63 const float& resolution = -1.0f,
64 const float& offset = 0.0f);
65
79 Status writeChannel(SizeType channelInd,
80 const SizeType& numSamples,
81 const void* dataInput,
82 const void* timestampsInput,
83 const void* controlInput = nullptr);
84
117 Status writeAllChannels(const SizeType& numSamples,
118 const void* dataInput,
119 const void* timestampsInput = nullptr,
120 const void* controlInput = nullptr);
121
128 bool channelsAtSameSampleOffset() const;
129
134
137 float,
138 "channel_conversion",
139 Channel - specific conversion factor)
140
142 readData, recordData, float, "data", Recorded voltage data)
143
145 std::string,
146 "data/unit",
147 Base unit of measurement for working with the data.
148 This value is fixed to volts)
149
153 int,
154 "electrodes",
155 The indices of the electrodes that generated this electrical series.)
156
158 std::string,
159 "electrodes/description",
160 The electrodes that generated this electrical series.)
161
165 "electrodes/table",
166 The electrodes table retrieved from the object referenced in the
167 `electrodes / table` attribute.)
168
169private:
174};
175} // namespace AQNWB::NWB
AQNWB::Types::Status Status
Definition BaseIO.hpp:21
AQNWB::Types::SizeArray SizeArray
Definition BaseIO.hpp:22
AQNWB::Types::SizeType SizeType
Definition Channel.hpp:8
#define DEFINE_REFERENCED_REGISTERED_FIELD(name, registeredType, fieldPath, description)
Defines a lazy-loaded accessor function for reading fields that are RegisteredTypes that are linked t...
Definition RegisteredType.hpp:732
#define REGISTER_SUBCLASS(T, BASE, NAMESPACE)
Macro to register a subclass with the RegisteredType class registry.
Definition RegisteredType.hpp:501
#define DEFINE_ATTRIBUTE_FIELD(name, default_type, fieldPath, description)
Defines a lazy-loaded attribute field accessor function.
Definition RegisteredType.hpp:534
#define DEFINE_DATASET_FIELD(readName, writeName, default_type, fieldPath, description)
Defines a lazy-loaded dataset field accessor function.
Definition RegisteredType.hpp:573
Class for storing acquisition system channel information.
Definition Channel.hpp:16
Base class for array dataset configuration.
Definition BaseIO.hpp:205
std::shared_ptr< AQNWB::IO::BaseRecordingData > recordChannelConversion(bool reset=false)
std::unique_ptr< AQNWB::IO::ReadDataWrapper< AQNWB::NWB::DatasetField, VTYPE > > readChannelConversion() const
SizeArray m_samplesRecorded
The number of samples already written per channel.
Definition ElectricalSeries.hpp:173
bool channelsAtSameSampleOffset() const
Checks if all channels are at the same sample offset, i.e. if every channel has the same number of sa...
Definition ElectricalSeries.cpp:204
Status writeAllChannels(const SizeType &numSamples, const void *dataInput, const void *timestampsInput=nullptr, const void *controlInput=nullptr)
Writes a block of multichannel samples to an ElectricalSeries dataset in a single operation.
Definition ElectricalSeries.cpp:165
std::shared_ptr< RTYPE > readElectrodesTable() const
std::unique_ptr< AQNWB::IO::ReadDataWrapper< AQNWB::NWB::AttributeField, VTYPE > > readDataUnit() const
ElectricalSeries(const std::string &path, std::shared_ptr< IO::BaseIO > io)
Constructor.
Definition ElectricalSeries.cpp:16
std::shared_ptr< AQNWB::IO::BaseRecordingData > recordElectrodes(bool reset=false)
Types::ChannelVector m_channelVector
Channel group that this time series is associated with.
Definition ElectricalSeries.hpp:133
std::unique_ptr< AQNWB::IO::ReadDataWrapper< AQNWB::NWB::DatasetField, VTYPE > > readElectrodes() const
Status writeChannel(SizeType channelInd, const SizeType &numSamples, const void *dataInput, const void *timestampsInput, const void *controlInput=nullptr)
Writes a channel to an ElectricalSeries dataset.
Definition ElectricalSeries.cpp:142
std::shared_ptr< AQNWB::IO::BaseRecordingData > recordData(bool reset=false)
std::unique_ptr< AQNWB::IO::ReadDataWrapper< AQNWB::NWB::AttributeField, VTYPE > > readElectrodesDescription() const
~ElectricalSeries() override
Destructor.
Definition ElectricalSeries.cpp:23
std::unique_ptr< AQNWB::IO::ReadDataWrapper< AQNWB::NWB::DatasetField, VTYPE > > readData() const
Represents a table containing electrode metadata.
Definition ElectrodesTable.hpp:17
Status initialize()
Initialize the object.
Definition NWBDataInterface.cpp:17
TimeSeries(const std::string &path, std::shared_ptr< IO::BaseIO > io)
Constructor.
Definition TimeSeries.cpp:22
std::vector< Channel > ChannelVector
Alias for a vector of channels.
Definition Types.hpp:116
Namespace for all classes related to the NWB data standard.
const std::string namespaceName
Definition core.hpp:21