Loading parsers/CMakeLists.txt +1 −0 Changes for parsers/CMakeLists.txt: 1 added line, 0 removed lines. Original line number Diff line number Diff line Loading @@ -55,6 +55,7 @@ endif() set(SENTIBOARD_TEST_SRCS ${TEST_SRC_DIR}/testmain.cpp ${TEST_SRC_DIR}/sentiboard_reader_test.cpp ${TEST_SRC_DIR}/stim_parser_test.cpp ${TEST_SRC_DIR}/test_utils.cpp ) Loading parsers/include/sentiboard/Package.hpp +20 −8 Changes for parsers/include/sentiboard/Package.hpp: 20 added lines, 8 removed lines. Original line number Diff line number Diff line Loading @@ -19,11 +19,11 @@ class Package { bool SyncPackage(const std::shared_ptr<std::istream> inData); bool _isGood = false; bool _hasOnboardTimestamp = false; double _onboardTimestamp; double _onboardTimestamp = 0; uint32_t _tov; uint32_t _toa; uint32_t _tot; uint32_t _tov = 0; uint32_t _toa = 0; uint32_t _tot = 0; uint8_t _protocolVersion; Loading @@ -40,19 +40,31 @@ class Package { bool IsGood() { return _isGood; } size_t SensorIx() { size_t SensorIx() const { return _sensor_ix; } size_t OnboardTimestamp() const { return _onboardTimestamp; } uint32_t tov() { uint32_t tov() const { return _tov; } uint32_t toa() { uint32_t toa() const { return _toa; } uint32_t tot() { uint32_t tot() const { return _tot; } const size_t data_start_position() const; const uint8_t *data() const { return reinterpret_cast<const uint8_t *>(&_data[data_start_position()]); } const size_t data_len() const { return _data.size() - data_start_position() - 2; } }; } // namespace sentiboard Loading parsers/include/sentiboard/messages/ImuMessage.hpp 0 → 100644 +54 −0 Changes for parsers/include/sentiboard/messages/ImuMessage.hpp: 54 added lines, 0 removed lines. Original line number Diff line number Diff line // Copyright [2017] <Sigurd M. Albrektsen> #ifndef INCLUDE_SENTIBOARD_MESSAGES_IMUMESSAGE_HPP_ #define INCLUDE_SENTIBOARD_MESSAGES_IMUMESSAGE_HPP_ #include <tuple> #include "SentiboardMessage.hpp" #include "sentiboard/Package.hpp" class ImuMessage : public SentiboardMessage { public: ImuMessage() { } ImuMessage(const sentiboard::Package package, std::tuple<float, float, float> accl, std::tuple<float, float, float> gyro, bool has_delta_values) : SentiboardMessage(package) { populate(package, accl, gyro, has_delta_values); } bool populate(const sentiboard::Package package, std::tuple<float, float, float> accl, std::tuple<float, float, float> gyro, bool has_delta_values) { accl_ = accl; gyro_ = gyro; has_delta_values_ = has_delta_values; if(!SentiboardMessage::initialized()) { SentiboardMessage::populate(package); } return true; } void has_delta_values(bool val) { has_delta_values_ = true; } bool has_delta_values() { return has_delta_values_; } std::tuple<float, float, float> accl() { return accl_; } std::tuple<float, float, float> gyro() { return gyro_; } private: std::tuple<float, float, float> accl_; std::tuple<float, float, float> gyro_; bool has_delta_values_; }; #endif // INCLUDE_SENTIBOARD_MESSAGES_IMUMESSAGE_HPP_ parsers/include/sentiboard/messages/SentiboardMessage.hpp 0 → 100644 +111 −0 Changes for parsers/include/sentiboard/messages/SentiboardMessage.hpp: 111 added lines, 0 removed lines. Original line number Diff line number Diff line // Copyright [2017] <Sigurd M. Albrektsen> #ifndef INCLUDE_SENTIBOARD_MESSAGES_SENTIBOARDMESSAGE_HPP_ #define INCLUDE_SENTIBOARD_MESSAGES_SENTIBOARDMESSAGE_HPP_ #include "sentiboard/Package.hpp" class SentiboardMessage { public: SentiboardMessage(const sentiboard::Package& package) { populate(package); } SentiboardMessage() { initialized_ = false; } bool populate(const sentiboard::Package& package) { sensor_ix_ = package.SensorIx(); tov_ = package.tov(); toa_ = package.toa(); tot_ = package.tot(); onboard_timestamp_ = package.OnboardTimestamp(); initialized_ = true; return true; } ~SentiboardMessage() { } SentiboardMessage(const SentiboardMessage& other) {// copy constructor sensor_ix_ = other.sensor_ix_; tov_ = other.tov_; toa_ = other.toa_; tot_ = other.tot_; onboard_timestamp_ = other.onboard_timestamp_; } //copy assignment SentiboardMessage& operator=(const SentiboardMessage& other) { sensor_ix_ = other.sensor_ix_; tov_ = other.tov_; toa_ = other.toa_; tot_ = other.tot_; onboard_timestamp_ = other.onboard_timestamp_; return *this; } //Copy constructor SentiboardMessage(const SentiboardMessage &&other) { sensor_ix_ = other.sensor_ix_; tov_ = other.tov_; toa_ = other.toa_; tot_ = other.tot_; onboard_timestamp_ = other.onboard_timestamp_; } //move assignment SentiboardMessage& operator=(SentiboardMessage&& other) { if(this == &other) { return *this; } this->sensor_ix_ = other.sensor_ix_; this->tov_ = other.tov_; this->toa_ = other.toa_; this->tot_ = other.tot_; this->onboard_timestamp_ = other.onboard_timestamp_; return *this; } uint8_t sensor_ix() const { return sensor_ix_; } uint32_t tov() const { return tov_; } uint32_t toa() const { return toa_; } uint32_t tot() const { return tot_; } double onboard_timestamp() const { return onboard_timestamp_; } bool initialized() { return initialized_; } private: uint8_t sensor_ix_; uint32_t tov_; uint32_t toa_; uint32_t tot_; double onboard_timestamp_; bool initialized_; }; #endif // INCLUDE_SENTIBOARD_MESSAGES_SENTIBOARDMESSAGE_HPP_ parsers/include/sentiboard/sensors/SentiboardParser.hpp 0 → 100644 +16 −0 Changes for parsers/include/sentiboard/sensors/SentiboardParser.hpp: 16 added lines, 0 removed lines. Original line number Diff line number Diff line // Copyright [2017] <Sigurd M. Albrektsen> #ifndef INCLUDE_SENTIBOARD_SENSORS_SENTIBOARDPARSER_HPP_ #define INCLUDE_SENTIBOARD_SENSORS_SENTIBOARDPARSER_HPP_ #include "sentiboard/messages/SentiboardMessage.hpp" class SentiboardParser { public: virtual SentiboardMessage parse(const sentiboard::Package package) { SentiboardMessage msg(package); return msg; } }; #endif // INCLUDE_SENTIBOARD_SENSORS_SENTIBOARDPARSER_HPP_ Loading
parsers/CMakeLists.txt +1 −0 Changes for parsers/CMakeLists.txt: 1 added line, 0 removed lines. Original line number Diff line number Diff line Loading @@ -55,6 +55,7 @@ endif() set(SENTIBOARD_TEST_SRCS ${TEST_SRC_DIR}/testmain.cpp ${TEST_SRC_DIR}/sentiboard_reader_test.cpp ${TEST_SRC_DIR}/stim_parser_test.cpp ${TEST_SRC_DIR}/test_utils.cpp ) Loading
parsers/include/sentiboard/Package.hpp +20 −8 Changes for parsers/include/sentiboard/Package.hpp: 20 added lines, 8 removed lines. Original line number Diff line number Diff line Loading @@ -19,11 +19,11 @@ class Package { bool SyncPackage(const std::shared_ptr<std::istream> inData); bool _isGood = false; bool _hasOnboardTimestamp = false; double _onboardTimestamp; double _onboardTimestamp = 0; uint32_t _tov; uint32_t _toa; uint32_t _tot; uint32_t _tov = 0; uint32_t _toa = 0; uint32_t _tot = 0; uint8_t _protocolVersion; Loading @@ -40,19 +40,31 @@ class Package { bool IsGood() { return _isGood; } size_t SensorIx() { size_t SensorIx() const { return _sensor_ix; } size_t OnboardTimestamp() const { return _onboardTimestamp; } uint32_t tov() { uint32_t tov() const { return _tov; } uint32_t toa() { uint32_t toa() const { return _toa; } uint32_t tot() { uint32_t tot() const { return _tot; } const size_t data_start_position() const; const uint8_t *data() const { return reinterpret_cast<const uint8_t *>(&_data[data_start_position()]); } const size_t data_len() const { return _data.size() - data_start_position() - 2; } }; } // namespace sentiboard Loading
parsers/include/sentiboard/messages/ImuMessage.hpp 0 → 100644 +54 −0 Changes for parsers/include/sentiboard/messages/ImuMessage.hpp: 54 added lines, 0 removed lines. Original line number Diff line number Diff line // Copyright [2017] <Sigurd M. Albrektsen> #ifndef INCLUDE_SENTIBOARD_MESSAGES_IMUMESSAGE_HPP_ #define INCLUDE_SENTIBOARD_MESSAGES_IMUMESSAGE_HPP_ #include <tuple> #include "SentiboardMessage.hpp" #include "sentiboard/Package.hpp" class ImuMessage : public SentiboardMessage { public: ImuMessage() { } ImuMessage(const sentiboard::Package package, std::tuple<float, float, float> accl, std::tuple<float, float, float> gyro, bool has_delta_values) : SentiboardMessage(package) { populate(package, accl, gyro, has_delta_values); } bool populate(const sentiboard::Package package, std::tuple<float, float, float> accl, std::tuple<float, float, float> gyro, bool has_delta_values) { accl_ = accl; gyro_ = gyro; has_delta_values_ = has_delta_values; if(!SentiboardMessage::initialized()) { SentiboardMessage::populate(package); } return true; } void has_delta_values(bool val) { has_delta_values_ = true; } bool has_delta_values() { return has_delta_values_; } std::tuple<float, float, float> accl() { return accl_; } std::tuple<float, float, float> gyro() { return gyro_; } private: std::tuple<float, float, float> accl_; std::tuple<float, float, float> gyro_; bool has_delta_values_; }; #endif // INCLUDE_SENTIBOARD_MESSAGES_IMUMESSAGE_HPP_
parsers/include/sentiboard/messages/SentiboardMessage.hpp 0 → 100644 +111 −0 Changes for parsers/include/sentiboard/messages/SentiboardMessage.hpp: 111 added lines, 0 removed lines. Original line number Diff line number Diff line // Copyright [2017] <Sigurd M. Albrektsen> #ifndef INCLUDE_SENTIBOARD_MESSAGES_SENTIBOARDMESSAGE_HPP_ #define INCLUDE_SENTIBOARD_MESSAGES_SENTIBOARDMESSAGE_HPP_ #include "sentiboard/Package.hpp" class SentiboardMessage { public: SentiboardMessage(const sentiboard::Package& package) { populate(package); } SentiboardMessage() { initialized_ = false; } bool populate(const sentiboard::Package& package) { sensor_ix_ = package.SensorIx(); tov_ = package.tov(); toa_ = package.toa(); tot_ = package.tot(); onboard_timestamp_ = package.OnboardTimestamp(); initialized_ = true; return true; } ~SentiboardMessage() { } SentiboardMessage(const SentiboardMessage& other) {// copy constructor sensor_ix_ = other.sensor_ix_; tov_ = other.tov_; toa_ = other.toa_; tot_ = other.tot_; onboard_timestamp_ = other.onboard_timestamp_; } //copy assignment SentiboardMessage& operator=(const SentiboardMessage& other) { sensor_ix_ = other.sensor_ix_; tov_ = other.tov_; toa_ = other.toa_; tot_ = other.tot_; onboard_timestamp_ = other.onboard_timestamp_; return *this; } //Copy constructor SentiboardMessage(const SentiboardMessage &&other) { sensor_ix_ = other.sensor_ix_; tov_ = other.tov_; toa_ = other.toa_; tot_ = other.tot_; onboard_timestamp_ = other.onboard_timestamp_; } //move assignment SentiboardMessage& operator=(SentiboardMessage&& other) { if(this == &other) { return *this; } this->sensor_ix_ = other.sensor_ix_; this->tov_ = other.tov_; this->toa_ = other.toa_; this->tot_ = other.tot_; this->onboard_timestamp_ = other.onboard_timestamp_; return *this; } uint8_t sensor_ix() const { return sensor_ix_; } uint32_t tov() const { return tov_; } uint32_t toa() const { return toa_; } uint32_t tot() const { return tot_; } double onboard_timestamp() const { return onboard_timestamp_; } bool initialized() { return initialized_; } private: uint8_t sensor_ix_; uint32_t tov_; uint32_t toa_; uint32_t tot_; double onboard_timestamp_; bool initialized_; }; #endif // INCLUDE_SENTIBOARD_MESSAGES_SENTIBOARDMESSAGE_HPP_
parsers/include/sentiboard/sensors/SentiboardParser.hpp 0 → 100644 +16 −0 Changes for parsers/include/sentiboard/sensors/SentiboardParser.hpp: 16 added lines, 0 removed lines. Original line number Diff line number Diff line // Copyright [2017] <Sigurd M. Albrektsen> #ifndef INCLUDE_SENTIBOARD_SENSORS_SENTIBOARDPARSER_HPP_ #define INCLUDE_SENTIBOARD_SENSORS_SENTIBOARDPARSER_HPP_ #include "sentiboard/messages/SentiboardMessage.hpp" class SentiboardParser { public: virtual SentiboardMessage parse(const sentiboard::Package package) { SentiboardMessage msg(package); return msg; } }; #endif // INCLUDE_SENTIBOARD_SENSORS_SENTIBOARDPARSER_HPP_