50 virtual void onMessage(uint8_t code,
const uint8_t* payload,
size_t payload_size)=0;
60 virtual void checkForMessages()=0;
79 virtual void sendMessage(uint8_t code,
const uint8_t* payload,
size_t len)=0;
85 virtual void checkForMessages(
IDevice& receiver)=0;
103 virtual void sysInfo(
const char* model,
const char* firmwareVersion)=0;
113 virtual void quatData(
float q0,
float q1,
float q2,
float q3)=0;
122 virtual void eulerData(
float p,
float r,
float y)=0;
131 virtual void rotRateData(
float x,
float y,
float z)=0;
139 virtual void accCalibMatrix(
float* cal,
float* bias)=0;
147 virtual void magCalibMatrix(
float* cal,
float* bias)=0;
155 virtual void gyrCalibMatrix(
float* cal,
float* bias)=0;
162 virtual void filterMagMatrix(
float* mat)=0;
169 virtual void filterAccMatrix(
float* mat)=0;
176 virtual void filterGyrMatrix(
float* mat)=0;
183 virtual void filterProcMatrix(
float* mat)=0;
190 virtual void temperature(
float temp)=0;
197 virtual void baudRate(uint8_t rate)=0;
204 virtual void i2cAddress(uint8_t addr)=0;
210 virtual void confirm()=0;
219 virtual void rawAccData(int16_t x, int16_t y, int16_t z)=0;
228 virtual void rawMagData(int16_t x, int16_t y, int16_t z)=0;
237 virtual void rawGyrData(int16_t x, int16_t y, int16_t z)=0;
246 virtual void normAccData(
float x,
float y,
float z)=0;
255 virtual void normMagData(
float x,
float y,
float z)=0;
264 virtual void normGyrData(
float x,
float y,
float z)=0;
273 virtual void calibAccData(
float x,
float y,
float z)=0;
282 virtual void calibMagData(
float x,
float y,
float z)=0;
291 virtual void calibGyrData(
float x,
float y,
float z)=0;
305 virtual void stats(uint32_t perf0, uint32_t perf1, uint32_t perf2, uint32_t perf3, uint32_t perf4, uint32_t perf5, uint32_t perf6, uint32_t perf7)=0;
319 std::shared_ptr<DevicePriv> _private =
nullptr;
337 virtual void onMessage(uint8_t code,
const uint8_t* payload,
size_t payload_size)
override;
347 virtual void checkForMessages()
override;
353 virtual void getSysInfo();
359 virtual void getQuatData();
365 virtual void getEulerData();
371 virtual void getRotRateData();
377 virtual void reboot();
383 virtual void factoryReset();
391 virtual void setAccCalibMatrix(
float* cal,
float* bias);
399 virtual void setMagCalibMatrix(
float* cal,
float* bias);
407 virtual void setGyrCalibMatrix(
float* cal,
float* bias);
414 virtual void setFilterMagMatrix(
float* mat);
421 virtual void setFilterAccMatrix(
float* mat);
428 virtual void setFilterGyrMatrix(
float* mat);
435 virtual void setFilterProcMatrix(
float* mat);
441 virtual void getFilterMagMatrix();
447 virtual void getFilterAccMatrix();
453 virtual void getFilterGyrMatrix();
459 virtual void getFilterProcMatrix();
465 virtual void getTemperature();
472 virtual void setBaudRate(uint8_t rate);
479 virtual void setI2cAddress(uint8_t address);
485 virtual void getI2cAddress();
491 virtual void getBaudRate();
497 virtual void resetGyr();
503 virtual void writeFlash();
509 virtual void getRawAccData();
515 virtual void getRawMagData();
521 virtual void getRawGyrData();
527 virtual void getNormAccData();
533 virtual void getNormMagData();
539 virtual void getNormGyrData();
545 virtual void getCalibAccData();
551 virtual void getCalibMagData();
557 virtual void getCalibGyrData();
563 virtual void getAccCalibMatrix();
569 virtual void getMagCalibMatrix();
575 virtual void getGyrCalibMatrix();
581 virtual void getStats();
587 class SerialConnectionPriv;
595 std::shared_ptr<SerialConnectionPriv> _private =
nullptr;
616 virtual void sendMessage(uint8_t code,
const uint8_t* payload,
size_t len)
override;
622 virtual void checkForMessages(
IDevice& receiver)
override;
628 class UsbConnectionPriv;
638 std::shared_ptr<UsbConnectionPriv> _private =
nullptr;
671 virtual void sendMessage(uint8_t code,
const uint8_t* payload,
size_t len)
override;
677 virtual void checkForMessages(
IDevice& receiver)
override;
679 static std::vector<std::string> enumerateDevices();
693 virtual void sysInfo(
const char* model,
const char* firmwareVersion)
override {}
694 virtual void quatData(
float q0,
float q1,
float q2,
float q3)
override {}
695 virtual void eulerData(
float p,
float r,
float y)
override {}
708 virtual void rawAccData(int16_t x, int16_t y, int16_t z)
override {}
709 virtual void rawMagData(int16_t x, int16_t y, int16_t z)
override {}
710 virtual void rawGyrData(int16_t x, int16_t y, int16_t z)
override {}
717 virtual void stats(uint32_t perf0, uint32_t perf1, uint32_t perf2, uint32_t perf3, uint32_t perf4, uint32_t perf5, uint32_t perf6, uint32_t perf7)
override {}
virtual void normGyrData(float x, float y, float z) override
Handles retrieval of NORM_GYR message from the device.
Definition: cyberatom.hpp:713
virtual void normMagData(float x, float y, float z) override
Handles retrieval of NORM_MAG message from the device.
Definition: cyberatom.hpp:712
virtual void temperature(float temp) override
Handles retrieval of TEMP message from the device.
Definition: cyberatom.hpp:704
virtual void sysInfo(const char *model, const char *firmwareVersion) override
Handles retrieval of SYS_INFO message from the device.
Definition: cyberatom.hpp:693
Thrown when there was a problem to retrieve data packet from the device.
Definition: cyberatom.hpp:19
virtual void rawAccData(int16_t x, int16_t y, int16_t z) override
Handles retrieval of RAW_ACC message from the device.
Definition: cyberatom.hpp:708
Occurs when specified serial port cannot be open.
Definition: cyberatom.hpp:22
Definition: cyberatom.hpp:12
virtual void normAccData(float x, float y, float z) override
Handles retrieval of NORM_ACC message from the device.
Definition: cyberatom.hpp:711
virtual void stats(uint32_t perf0, uint32_t perf1, uint32_t perf2, uint32_t perf3, uint32_t perf4, uint32_t perf5, uint32_t perf6, uint32_t perf7) override
Handles retrieval of STATS message from the device.
Definition: cyberatom.hpp:717
Implementation of logical CyberAtom device.
Definition: cyberatom.hpp:317
Implementation of IResponse interface that does nothing.
Definition: cyberatom.hpp:690
virtual void i2cAddress(uint8_t addr) override
Handles retrieval of I2C_ADDR message from the device.
Definition: cyberatom.hpp:706
virtual void quatData(float q0, float q1, float q2, float q3) override
Handles retrieval of QUAT_DATA message from the device.
Definition: cyberatom.hpp:694
virtual void gyrCalibMatrix(float *cal, float *bias) override
Handles retrieval of GYR_CALIB_MAT message from the device.
Definition: cyberatom.hpp:699
Definition: cyberatom.hpp:92
virtual void calibGyrData(float x, float y, float z) override
Handles retrieval of CALIB_GYR message from the device.
Definition: cyberatom.hpp:716
virtual void eulerData(float p, float r, float y) override
Handles retrieval of EULER_DATA message from the device.
Definition: cyberatom.hpp:695
Occurs when no CyberAtom device has been found connected to the computer.
Definition: cyberatom.hpp:25
virtual void calibMagData(float x, float y, float z) override
Handles retrieval of CALIB_MAG message from the device.
Definition: cyberatom.hpp:715
virtual void confirm() override
Handles retrieval of CONFIRM message from the device.
Definition: cyberatom.hpp:707
Thrown when connected CyberAtom device sends message with code unknown to the API library...
Definition: cyberatom.hpp:16
virtual void rawGyrData(int16_t x, int16_t y, int16_t z) override
Handles retrieval of RAW_GYR message from the device.
Definition: cyberatom.hpp:710
virtual void rawMagData(int16_t x, int16_t y, int16_t z) override
Handles retrieval of RAW_MAG message from the device.
Definition: cyberatom.hpp:709
virtual void filterAccMatrix(float *mat) override
Handles retrieval of FILTER_ACC message from the device.
Definition: cyberatom.hpp:701
Represents communication interface to the device.
Definition: cyberatom.hpp:67
virtual void rotRateData(float x, float y, float z) override
Handles retrieval of ROT_RATE_DATA message from the device.
Definition: cyberatom.hpp:696
virtual void filterProcMatrix(float *mat) override
Handles retrieval of FILTER_PROCN message from the device.
Definition: cyberatom.hpp:703
virtual void filterMagMatrix(float *mat) override
Handles retrieval of FILTER_MAG_MAT message from the device.
Definition: cyberatom.hpp:700
virtual void accCalibMatrix(float *cal, float *bias) override
Handles retrieval of ACC_CALIB_MAT message from the device.
Definition: cyberatom.hpp:697
virtual void baudRate(uint8_t rate) override
Handles retrieval of BAUD_RATE message from the device.
Definition: cyberatom.hpp:705
virtual void calibAccData(float x, float y, float z) override
Handles retrieval of CALIB_ACC message from the device.
Definition: cyberatom.hpp:714
virtual void magCalibMatrix(float *cal, float *bias) override
Handles retrieval of MAG_CALIB_MAT message from the device.
Definition: cyberatom.hpp:698
Provides connection to the device via computer's USB port.
Definition: cyberatom.hpp:636
virtual void filterGyrMatrix(float *mat) override
Handles retrieval of FILTER_GYR message from the device.
Definition: cyberatom.hpp:702
Occurs when connection with CyberAtom device cannot be established.
Definition: cyberatom.hpp:28
Provides connection to the device via computer's serial port.
Definition: cyberatom.hpp:593
Definition: cyberatom.hpp:38