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"
10
11namespace AQNWB::NWB
12{
17{
18public:
19 // Register the TimeSeries as a subclass of Container
21
22
27 ElectricalSeries(const std::string& path, std::shared_ptr<IO::BaseIO> io);
28
33
54 void initialize(const IO::BaseDataType& dataType,
55 const Types::ChannelVector& channelVector,
56 const std::string& description,
57 const SizeArray& dsetSize,
58 const SizeArray& chunkSize,
59 const float& conversion = 1.0f,
60 const float& resolution = -1.0f,
61 const float& offset = 0.0f);
62
76 Status writeChannel(SizeType channelInd,
77 const SizeType& numSamples,
78 const void* dataInput,
79 const void* timestampsInput,
80 const void* controlInput = nullptr);
81
86
90 std::unique_ptr<IO::BaseRecordingData> m_channelConversion;
91
95 std::unique_ptr<IO::BaseRecordingData> m_electrodesDataset;
96
99 float,
100 "data/channel_conversion",
101 Channel - specific conversion factor)
102
103 DEFINE_FIELD(readData, DatasetField, std::any, "data", Recorded voltage data)
104
107 std::string,
108 "data/unit",
109 Base unit of measurement for working with the data.
110 This value is fixed to volts)
111
112private:
117};
118} // namespace AQNWB::NWB
AQNWB::Types::Status Status
Definition BaseIO.hpp:20
AQNWB::Types::SizeArray SizeArray
Definition BaseIO.hpp:21
AQNWB::Types::SizeType SizeType
Definition Channel.hpp:8
#define REGISTER_SUBCLASS(T, NAMESPACE)
Macro to register a subclass with the RegisteredType class registry.
Definition RegisteredType.hpp:321
#define DEFINE_FIELD(name, storageObjectType, default_type, fieldPath, description)
Defines a lazy-loaded field accessor function.
Definition RegisteredType.hpp:355
Class for storing acquisition system channel information.
Definition Channel.hpp:16
Represents a base data type.
Definition BaseIO.hpp:41
void initialize()
Initialize the container.
Definition Container.cpp:20
std::unique_ptr< IO::ReadDataWrapper< DatasetField, VTYPE > > readData() const
std::unique_ptr< IO::ReadDataWrapper< AttributeField, VTYPE > > readChannelConversion() const
SizeArray m_samplesRecorded
The number of samples already written per channel.
Definition ElectricalSeries.hpp:116
~ElectricalSeries()
Destructor.
Definition ElectricalSeries.cpp:21
std::unique_ptr< IO::BaseRecordingData > m_channelConversion
Pointer to channel-specific conversion factor dataset.
Definition ElectricalSeries.hpp:90
ElectricalSeries(const std::string &path, std::shared_ptr< IO::BaseIO > io)
Constructor.
Definition ElectricalSeries.cpp:14
Types::ChannelVector m_channelVector
Channel group that this time series is associated with.
Definition ElectricalSeries.hpp:85
std::unique_ptr< IO::ReadDataWrapper< AttributeField, VTYPE > > readDataUnit() 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:95
std::unique_ptr< IO::BaseRecordingData > m_electrodesDataset
Pointer to electrodes dataset.
Definition ElectricalSeries.hpp:95
TimeSeries(const std::string &path, std::shared_ptr< IO::BaseIO > io)
Constructor.
Definition TimeSeries.cpp:20
std::unique_ptr< IO::BaseRecordingData > data
Pointer to data values.
Definition TimeSeries.hpp:130
std::vector< Channel > ChannelVector
Alias for a vector of channels.
Definition Types.hpp:64
Namespace for all classes related to the NWB data standard.
Definition TimeSeries.hpp:12
constexpr auto AttributeField
Alias for AQNWB::Types::StorageObjectType::Attribute.
Definition RegisteredType.hpp:22
constexpr auto DatasetField
Alias for AQNWB::Types::StorageObjectType::Dataset.
Definition RegisteredType.hpp:27