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
56 void initialize(const IO::BaseDataType& dataType,
57 const Types::ChannelVector& channelVector,
58 const std::string& description,
59 const SizeArray& dsetSize,
60 const SizeArray& chunkSize,
61 const float& conversion = 1.0f,
62 const float& resolution = -1.0f,
63 const float& offset = 0.0f);
64
77 Status writeSpike(const SizeType& numSamples,
78 const SizeType& numChannels,
79 const void* dataInput,
80 const void* timestampsInput,
81 const void* controlInput = nullptr);
82
83 DEFINE_FIELD(readData, DatasetField, std::any, "data", Spike waveforms)
84
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: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
Represents a base data type.
Definition BaseIO.hpp:41
void initialize()
Initialize the container.
Definition Container.cpp:20
ElectricalSeries(const std::string &path, std::shared_ptr< IO::BaseIO > io)
Constructor.
Definition ElectricalSeries.cpp:14
~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:39
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:96
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: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