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
11namespace AQNWB::NWB
12{
18{
19public:
20 // Register the TimeSeries as a subclass of Container
22
23
28 SpikeEventSeries(const std::string& path, std::shared_ptr<IO::BaseIO> io);
29
34
54 void initialize(const IO::ArrayDataSetConfig& dataConfig,
55 const Types::ChannelVector& channelVector,
56 const std::string& description,
57 const float& conversion = 1.0f,
58 const float& resolution = -1.0f,
59 const float& offset = 0.0f);
60
73 Status writeSpike(const SizeType& numSamples,
74 const SizeType& numChannels,
75 const void* dataInput,
76 const void* timestampsInput,
77 const void* controlInput = nullptr);
78
79 DEFINE_FIELD(readData, DatasetField, std::any, "data", Spike waveforms)
80
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:373
#define DEFINE_FIELD(name, storageObjectType, default_type, fieldPath, description)
Defines a lazy-loaded field accessor function.
Definition RegisteredType.hpp:407
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::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:12
constexpr auto AttributeField
Alias for AQNWB::Types::StorageObjectType::Attribute.
Definition RegisteredType.hpp:23
constexpr auto DatasetField
Alias for AQNWB::Types::StorageObjectType::Dataset.
Definition RegisteredType.hpp:28