67 lines
821 B
C++
Executable File
67 lines
821 B
C++
Executable File
#ifndef SENSORREADER_H
|
|
#define SENSORREADER_H
|
|
|
|
#include <fstream>
|
|
|
|
/** entry for one sensor */
|
|
struct SensorEntry {
|
|
|
|
/** timestamp of occurrence */
|
|
uint64_t ts;
|
|
|
|
/** sensor's number */
|
|
int idx;
|
|
|
|
/** sensor data */
|
|
std::string data;
|
|
|
|
};
|
|
|
|
/** read sensor data from CSV */
|
|
class SensorReader {
|
|
|
|
private:
|
|
|
|
std::string file;
|
|
std::ifstream fp;
|
|
|
|
public:
|
|
|
|
SensorReader(const std::string& file) : file(file) {
|
|
rewind();
|
|
}
|
|
|
|
bool hasNext() {
|
|
return !fp.bad() && !fp.eof();
|
|
}
|
|
|
|
/** read the next sensor entry */
|
|
SensorEntry getNext() {
|
|
|
|
char delim;
|
|
SensorEntry entry;
|
|
|
|
fp >> entry.ts;
|
|
fp >> delim;
|
|
fp >> entry.idx;
|
|
fp >> delim;
|
|
fp >> entry.data;
|
|
|
|
return entry;
|
|
|
|
|
|
}
|
|
|
|
/** start again */
|
|
void rewind() {
|
|
fp.close();
|
|
fp.open(file);
|
|
assert(fp.is_open());
|
|
}
|
|
|
|
|
|
};
|
|
|
|
|
|
#endif // SENSORREADER_H
|