75 const void* dataInput,
76 const void* timestampsInput =
nullptr,
77 const void* controlInput =
nullptr);
112 const std::string& unit,
113 const std::string& description =
"no description",
114 const std::string& comments =
"no comments",
115 const float& conversion = 1.0f,
116 const float& resolution = -1.0f,
117 const float& offset = 0.0f,
119 const double& startingTime = -1.0,
120 const float& startingTimeRate = 1.0f,
121 const std::vector<std::string>& controlDescription = {});
142 Description of the series)
154 Scalar to multiply each element in data to convert it
155 to the specified unit)
160 Scalar to add to the data after scaling by conversion
166 Smallest meaningful difference between values in data)
171 Base unit of measurement for working with the data)
176 Continuity of the data)
182 Timestamp of the first sample in seconds)
186 "starting_time/rate",
191 "starting_time/unit",
192 Unit of measurement for time fixed to seconds)
198 Timestamps offset in seconds relative to the master time for samples stored in data)
202 "timestamps/interval",
208 Unit of measurement for timestamps fixed to seconds)
214 Numerical labels that apply to each time point in data)
219 "control_description",
220 Description of each control value)
228 TimeSeries(const std::
string& path, std::shared_ptr<
IO::BaseIO> io);
251 const
float& conversion,
252 const
float& resolution,
254 const std::
string& unit,
AQNWB::Types::Status Status
Definition BaseIO.hpp:21
AQNWB::Types::SizeArray SizeArray
Definition BaseIO.hpp:22
#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
Base class for array dataset configuration.
Definition BaseIO.hpp:205
Represents a base data type.
Definition BaseIO.hpp:47
static const BaseDataType F64
Accessor for 64-bit floating point.
Definition BaseIO.hpp:89
static const BaseDataType U8
Accessor for unsigned 8-bit integer.
Definition BaseIO.hpp:80
NWBDataInterface(const std::string &path, std::shared_ptr< AQNWB::IO::BaseIO > io)
Constructor.
Definition NWBDataInterface.cpp:11
Status initialize()
Initialize the object.
Definition NWBDataInterface.cpp:17
virtual AQNWB::Types::Status finalize()
Finalize the RegisteredType object.
Definition RegisteredType.cpp:148
std::unique_ptr< AQNWB::IO::ReadDataWrapper< AQNWB::NWB::AttributeField, VTYPE > > readStartingTimeUnit() const
std::unique_ptr< AQNWB::IO::ReadDataWrapper< AQNWB::NWB::AttributeField, VTYPE > > readDataResolution() const
static std::map< ContinuityType, std::string > ContinuityTypeNames
String names corresponding to the ContinuityType enum.
Definition TimeSeries.hpp:55
std::unique_ptr< AQNWB::IO::ReadDataWrapper< AQNWB::NWB::DatasetField, VTYPE > > readData() const
IO::BaseDataType controlType
Data type of the control (uint8).
Definition TimeSeries.hpp:136
~TimeSeries() override
Destructor.
Definition TimeSeries.cpp:28
std::unique_ptr< AQNWB::IO::ReadDataWrapper< AQNWB::NWB::AttributeField, VTYPE > > readDataConversion() const
std::unique_ptr< AQNWB::IO::ReadDataWrapper< AQNWB::NWB::DatasetField, VTYPE > > readStartingTime() const
std::shared_ptr< AQNWB::IO::BaseRecordingData > recordTimestamps(bool reset=false)
TimeSeries(const std::string &path, std::shared_ptr< IO::BaseIO > io)
Constructor.
Definition TimeSeries.cpp:22
std::shared_ptr< AQNWB::IO::BaseRecordingData > recordControlDescription(bool reset=false)
std::unique_ptr< AQNWB::IO::ReadDataWrapper< AQNWB::NWB::AttributeField, VTYPE > > readDataOffset() const
IO::BaseDataType timestampsType
Data type of the timestamps (float64).
Definition TimeSeries.hpp:131
Status createTimestampsAttributes(const std::string &path)
Convenience function for creating timestamp related attributes.
Definition TimeSeries.cpp:64
std::unique_ptr< AQNWB::IO::ReadDataWrapper< AQNWB::NWB::AttributeField, VTYPE > > readComments() const
std::unique_ptr< AQNWB::IO::ReadDataWrapper< AQNWB::NWB::AttributeField, VTYPE > > readTimestampsUnit() const
std::unique_ptr< AQNWB::IO::ReadDataWrapper< AQNWB::NWB::DatasetField, VTYPE > > readControlDescription() const
std::shared_ptr< AQNWB::IO::BaseRecordingData > recordData(bool reset=false)
std::unique_ptr< AQNWB::IO::ReadDataWrapper< AQNWB::NWB::AttributeField, VTYPE > > readDataUnit() const
std::unique_ptr< AQNWB::IO::ReadDataWrapper< AQNWB::NWB::AttributeField, VTYPE > > readTimestampsInterval() const
ContinuityType
Definition TimeSeries.hpp:30
@ Continuous
Definition TimeSeries.hpp:32
@ Undefined
Definition TimeSeries.hpp:39
@ Instantaneous
Definition TimeSeries.hpp:34
@ Step
Definition TimeSeries.hpp:37
std::shared_ptr< AQNWB::IO::BaseRecordingData > recordStartingTime(bool reset=false)
IO::BaseDataType m_dataType
Data type of the data.
Definition TimeSeries.hpp:126
Status createDataAttributes(const std::string &path, const float &conversion, const float &resolution, const float &offset, const std::string &unit, const ContinuityType &continuity)
Convenience function for creating data related attributes.
Definition TimeSeries.cpp:30
std::unique_ptr< AQNWB::IO::ReadDataWrapper< AQNWB::NWB::DatasetField, VTYPE > > readTimestamps() const
std::unique_ptr< AQNWB::IO::ReadDataWrapper< AQNWB::NWB::AttributeField, VTYPE > > readDataContinuity() const
std::unique_ptr< AQNWB::IO::ReadDataWrapper< AQNWB::NWB::AttributeField, VTYPE > > readDescription() const
std::unique_ptr< AQNWB::IO::ReadDataWrapper< AQNWB::NWB::DatasetField, VTYPE > > readControl() const
std::unique_ptr< AQNWB::IO::ReadDataWrapper< AQNWB::NWB::AttributeField, VTYPE > > readStartingTimeRate() const
std::shared_ptr< AQNWB::IO::BaseRecordingData > recordControl(bool reset=false)
Status writeData(const SizeArray &dataShape, const SizeArray &positionOffset, const void *dataInput, const void *timestampsInput=nullptr, const void *controlInput=nullptr)
Writes a timeseries data block to the file.
Definition TimeSeries.cpp:246
The namespace for IO components of AqNWB.
Namespace for all classes related to the NWB data standard.
const std::string namespaceName
Definition core.hpp:21