aqnwb 0.1.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
23
24
29 ElectricalSeries(const std::string& path, std::shared_ptr<IO::BaseIO> io);
30
35
56 const Types::ChannelVector& channelVector,
57 const std::string& description,
58 const float& conversion = 1.0f,
59 const float& resolution = -1.0f,
60 const float& offset = 0.0f);
61
75 Status writeChannel(SizeType channelInd,
76 const SizeType& numSamples,
77 const void* dataInput,
78 const void* timestampsInput,
79 const void* controlInput = nullptr);
80
85
88 float,
89 "channel_conversion",
90 Channel - specific conversion factor)
91
93 readData, recordData, float, "data", Recorded voltage data)
94
96 std::string,
97 "data/unit",
98 Base unit of measurement for working with the data.
99 This value is fixed to volts)
100
104 int,
105 "electrodes",
106 The indices of the electrodes that generated this electrical series.)
107
109 std::string,
110 "electrodes/description",
111 The electrodes that generated this electrical series.)
112
116 "electrodes/table",
117 The electrodes table retrieved from the object referenced in the
118 `electrodes / table` attribute.)
119
120private:
125};
126} // 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:561
#define REGISTER_SUBCLASS(T, NAMESPACE)
Macro to register a subclass with the RegisteredType class registry.
Definition RegisteredType.hpp:410
#define DEFINE_ATTRIBUTE_FIELD(name, default_type, fieldPath, description)
Defines a lazy-loaded attribute field accessor function.
Definition RegisteredType.hpp:443
#define DEFINE_DATASET_FIELD(readName, writeName, default_type, fieldPath, description)
Defines a lazy-loaded dataset field accessor function.
Definition RegisteredType.hpp:475
Class for storing acquisition system channel information.
Definition Channel.hpp:16
The configuration for an array dataset.
Definition BaseIO.hpp:200
Status initialize()
Initialize the container.
Definition Container.cpp:20
std::unique_ptr< IO::ReadDataWrapper< DatasetField, VTYPE > > readData() const
std::shared_ptr< IO::BaseRecordingData > recordData(bool reset=false)
SizeArray m_samplesRecorded
The number of samples already written per channel.
Definition ElectricalSeries.hpp:124
~ElectricalSeries()
Destructor.
Definition ElectricalSeries.cpp:20
std::shared_ptr< RTYPE > readElectrodesTable() const
std::unique_ptr< IO::ReadDataWrapper< AttributeField, VTYPE > > readElectrodesDescription() const
ElectricalSeries(const std::string &path, std::shared_ptr< IO::BaseIO > io)
Constructor.
Definition ElectricalSeries.cpp:13
Types::ChannelVector m_channelVector
Channel group that this time series is associated with.
Definition ElectricalSeries.hpp:84
std::unique_ptr< IO::ReadDataWrapper< DatasetField, VTYPE > > readElectrodes() const
std::unique_ptr< IO::ReadDataWrapper< AttributeField, VTYPE > > readDataUnit() const
std::shared_ptr< IO::BaseRecordingData > recordChannelConversion(bool reset=false)
std::shared_ptr< IO::BaseRecordingData > recordElectrodes(bool reset=false)
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:104
std::unique_ptr< IO::ReadDataWrapper< DatasetField, VTYPE > > readChannelConversion() const
Represents a table containing electrode metadata.
Definition ElectrodesTable.hpp: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:86
Namespace for all classes related to the NWB data standard.
Definition TimeSeries.hpp:13
const std::string namespaceName
Definition core.hpp:21