1 #ifndef COBRAINTEGRATIONDATA_H
2 #define COBRAINTEGRATIONDATA_H
12 class CobraIntegrationData :
15 CobraIntegrationData() :
21 ~CobraIntegrationData(){}
32 int size =
sizeof(timestamp_);
34 size += nauto_*(12 + nauto_samples_*
sizeof(float));
36 size += ncross_*(12 + 4*ncross_samples_*
sizeof(float));
40 void mySerialize(
char *
const byteArray,
41 int *
const offset )
const
43 pack(timestamp_, byteArray, offset);
44 int size = autodata_.size();
45 for (
int i = 0; i < size; i++) {
47 autodata_[i].serialize(byteArray, offset);
49 size = crossdata_.size();
50 for (
int i = 0; i < size; i++) {
52 crossdata_[i].serialize(byteArray, offset);
56 void deserializeVer0(
const char *
const byteArray,
60 unpack(timestamp_, byteArray, offset, byteArraySize);
62 autodata_.resize(size);
63 for (
int i = 0; i < size; i++) {
64 autodata_[i].setNumChannels(nauto_samples_);
65 autodata_[i].deserializeVer0(byteArray, offset, byteArraySize);
68 crossdata_.resize(size);
69 for (
int i = 0; i < size; i++) {
70 crossdata_[i].setNumChannels(ncross_samples_);
71 crossdata_[i].deserializeVer0(byteArray, offset, byteArraySize);
75 void deserializeVer1(
const char *
const byteArray,
79 unpack(timestamp_, byteArray, offset, byteArraySize);
81 autodata_.resize(size);
82 for (
int i = 0; i < size; i++) {
83 autodata_[i].setNumChannels(nauto_samples_);
84 autodata_[i].deserializeVer1(byteArray, offset, byteArraySize);
87 crossdata_.resize(size);
88 for (
int i = 0; i < size; i++) {
89 crossdata_[i].setNumChannels(ncross_samples_);
90 crossdata_[i].deserializeVer1(byteArray, offset, byteArraySize);
94 void deserializeSwapVer0(
const char *
const byteArray,
98 unpackSwap(timestamp_, byteArray, offset, byteArraySize);
100 autodata_.resize(size);
101 for (
int i = 0; i < size; i++) {
102 autodata_[i].setNumChannels(nauto_samples_);
103 autodata_[i].deserializeSwapVer0(byteArray,
108 crossdata_.resize(size);
109 for (
int i = 0; i < size; i++) {
110 crossdata_[i].setNumChannels(ncross_samples_);
111 crossdata_[i].deserializeSwapVer0(byteArray,
117 void deserializeSwapVer1(
const char *
const byteArray,
121 unpackSwap(timestamp_, byteArray, offset, byteArraySize);
123 autodata_.resize(size);
124 for (
int i = 0; i < size; i++) {
125 autodata_[i].setNumChannels(nauto_samples_);
126 autodata_[i].deserializeSwapVer1(byteArray,
131 crossdata_.resize(size);
132 for (
int i = 0; i < size; i++) {
133 crossdata_[i].setNumChannels(ncross_samples_);
134 crossdata_[i].deserializeSwapVer1(byteArray,
140 int getSizeInBytes()
const {
149 size +=
sizeof(timestamp_);
151 size += nauto_*(12 + nauto_samples_*
sizeof(float));
153 size += ncross_*(12 + 4*ncross_samples_*
sizeof(float));
158 bool operator== (
const CobraIntegrationData &rhs)
160 if (timestamp_ != rhs.timestamp_) {
163 int size = autodata_.size();
164 for (
int i = 0; i < size; i++) {
165 if (autodata_[i] != rhs.autodata_[i]) {
169 size = crossdata_.size();
170 for (
int i = 0; i < size; i++) {
171 if (crossdata_[i] != rhs.crossdata_[i]) {
177 bool operator!= (
const CobraIntegrationData &rhs)
179 return !(*
this == rhs);
187 double getTimestamp()
189 CobraAutoSpectra getAutoSpectra(
int index)
190 {
return autodata_[index];}
191 CobraCrossSpectra getCrossSpectra(
int index)
192 {
return crossdata_[index];}
197 int getNautoSamples()
198 {
return nauto_samples_;}
199 int getNcrossSamples()
200 {
return ncross_samples_;}
205 void setTimestamp(
double timestamp)
206 {timestamp_ = timestamp;}
207 void setAutoSpectra(CobraAutoSpectra data,
unsigned int index)
209 if (index + 1 > autodata_.size()) {
210 autodata_.resize(index + 1);
212 autodata_.at(index) = data;
213 nauto_ = autodata_.size();
214 if (nauto_samples_ == 0) {
215 nauto_samples_ = data.getNumChannels();
218 void setCrossSpectra(CobraCrossSpectra data,
unsigned int index)
220 if (index + 1 > crossdata_.size()) {
221 crossdata_.resize(index + 1);
223 crossdata_.at(index) = data;
224 ncross_ = crossdata_.size();
225 if (ncross_samples_ == 0) {
226 ncross_samples_ = data.getNumChannels();
234 void setNauto(
int nauto)
236 void setNcross(
int ncross)
238 void setNautoSamples(
int nauto_samples)
239 {nauto_samples_ = nauto_samples;}
240 void setNcrossSamples(
int ncross_samples)
241 {ncross_samples_ = ncross_samples;}
245 unsigned int nauto_samples_;
246 unsigned int ncross_;
247 unsigned int ncross_samples_;
248 std::vector <CobraAutoSpectra> autodata_;
249 std::vector <CobraCrossSpectra> crossdata_;
255 #endif // COBRACORRELATIONDATA_H
Abstract Class used to allow object to serialize themselves into a byte array.