aqnwb 0.1.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
23
24
29 SpikeEventSeries(const std::string& path, std::shared_ptr<IO::BaseIO> io);
30
35
55 void initialize(const IO::ArrayDataSetConfig& dataConfig,
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
74 Status writeSpike(const SizeType& numSamples,
75 const SizeType& numChannels,
76 const void* dataInput,
77 const void* timestampsInput,
78 const void* controlInput = nullptr);
79
80 DEFINE_DATASET_FIELD(readData, recordData, std::any, "data", Spike waveforms)
81
83 std::string,
84 "data/unit",
85 Unit of measurement for waveforms.
86 This is fixed to volts)
87
88private:
93};
94} // namespace AQNWB::NWB
AQNWB::Types::Status Status
Definition BaseIO.hpp:22
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: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
The configuration for an array dataset.
Definition BaseIO.hpp:200
Status initialize()
Initialize the container.
Definition Container.cpp:20
ElectricalSeries(const std::string &path, std::shared_ptr< IO::BaseIO > io)
Constructor.
Definition ElectricalSeries.cpp:13
~SpikeEventSeries()
Destructor.
Definition SpikeEventSeries.cpp:17
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:31
std::unique_ptr< IO::ReadDataWrapper< DatasetField, VTYPE > > readData() const
std::shared_ptr< IO::BaseRecordingData > recordData(bool reset=false)
std::unique_ptr< IO::ReadDataWrapper< AttributeField, VTYPE > > readDataUnit() const
SizeType m_eventsRecorded
The number of events already written.
Definition SpikeEventSeries.hpp:92
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:86
Namespace for all classes related to the NWB data standard.
Definition TimeSeries.hpp:13
const std::string namespaceName
Definition core.hpp:21