aqnwb 0.2.0
Loading...
Searching...
No Matches
SpikeEventSeries.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#include "spec/core.hpp"
11
12namespace AQNWB::NWB
13{
19{
20public:
21 // Register the TimeSeries as a subclass of Container
25
26protected:
32 SpikeEventSeries(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
78 Status writeSpike(const SizeType& numSamples,
79 const SizeType& numChannels,
80 const void* dataInput,
81 const void* timestampsInput,
82 const void* controlInput = nullptr);
83
84 DEFINE_DATASET_FIELD(readData, recordData, std::any, "data", Spike waveforms)
85
87 std::string,
88 "data/unit",
89 Unit of measurement for waveforms.
90 This is fixed to volts)
91
92private:
97};
98} // namespace AQNWB::NWB
AQNWB::Types::Status Status
Definition BaseIO.hpp:22
AQNWB::Types::SizeType SizeType
Definition Channel.hpp:8
#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
The configuration for an array dataset.
Definition BaseIO.hpp:204
ElectricalSeries(const std::string &path, std::shared_ptr< IO::BaseIO > io)
Constructor.
Definition ElectricalSeries.cpp:13
Status initialize()
Initialize the object.
Definition NWBDataInterface.cpp:17
std::shared_ptr< AQNWB::IO::BaseRecordingData > recordData(bool reset=false)
~SpikeEventSeries()
Destructor.
Definition SpikeEventSeries.cpp:17
std::unique_ptr< AQNWB::IO::ReadDataWrapper< AQNWB::NWB::DatasetField, VTYPE > > readData() const
Status writeSpike(const SizeType &numSamples, const SizeType &numChannels, const void *dataInput, const void *timestampsInput, const void *controlInput=nullptr)
Write a single spike series event.
Definition SpikeEventSeries.cpp:32
SizeType m_eventsRecorded
The number of events already written.
Definition SpikeEventSeries.hpp:96
std::unique_ptr< AQNWB::IO::ReadDataWrapper< AQNWB::NWB::AttributeField, VTYPE > > readDataUnit() const
SpikeEventSeries(const std::string &path, std::shared_ptr< IO::BaseIO > io)
Constructor.
Definition SpikeEventSeries.cpp:10
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