aqnwb 0.2.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:
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
89
92 float,
93 "channel_conversion",
94 Channel - specific conversion factor)
95
97 readData, recordData, float, "data", Recorded voltage data)
98
100 std::string,
101 "data/unit",
102 Base unit of measurement for working with the data.
103 This value is fixed to volts)
104
108 int,
109 "electrodes",
110 The indices of the electrodes that generated this electrical series.)
111
113 std::string,
114 "electrodes/description",
115 The electrodes that generated this electrical series.)
116
120 "electrodes/table",
121 The electrodes table retrieved from the object referenced in the
122 `electrodes / table` attribute.)
123
124private:
129};
130} // namespace AQNWB::NWB
AQNWB::Types::Status Status
Definition BaseIO.hpp:22
AQNWB::Types::SizeArray SizeArray
Definition BaseIO.hpp:23
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
The configuration for an array dataset.
Definition BaseIO.hpp:204
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:128
~ElectricalSeries()
Destructor.
Definition ElectricalSeries.cpp:20
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:13
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:88
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:113
std::shared_ptr< AQNWB::IO::BaseRecordingData > recordData(bool reset=false)
std::unique_ptr< AQNWB::IO::ReadDataWrapper< AQNWB::NWB::AttributeField, VTYPE > > readElectrodesDescription() const
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:20
std::vector< Channel > ChannelVector
Alias for a vector of channels.
Definition Types.hpp:93
Namespace for all classes related to the NWB data standard.
const std::string namespaceName
Definition core.hpp:21