28 #include <mraa/firmata.h> 31 #define FIRMATA_START_SYSEX 0xF0 32 #define FIRMATA_END_SYSEX 0xF7 33 #define FIRMATA_CURIE_IMU 0x11 34 #define FIRMATA_CURIE_IMU_READ_ACCEL 0x00 35 #define FIRMATA_CURIE_IMU_READ_GYRO 0x01 36 #define FIRMATA_CURIE_IMU_READ_TEMP 0x02 37 #define FIRMATA_CURIE_IMU_SHOCK_DETECT 0x03 38 #define FIRMATA_CURIE_IMU_STEP_COUNTER 0x04 39 #define FIRMATA_CURIE_IMU_TAP_DETECT 0x05 40 #define FIRMATA_CURIE_IMU_READ_MOTION 0x06 84 CurieImu (
int subplatform_offset=512);
168 int16_t getTemperature();
177 int16_t* getMotion();
191 int16_t getDirection();
198 void enableShockDetection(
bool enable);
205 bool isShockDetected();
218 void enableStepCounter(
bool enable);
225 bool isStepDetected();
232 int16_t getStepCount();
239 void enableTapDetection(
bool enable);
246 bool isTapDetected();
267 void waitForResponse();
281 void setResults(uint8_t* buf,
int length);
286 void processResponse();
289 mraa_firmata_context m_firmata;
290 pthread_mutex_t m_responseLock;
291 pthread_cond_t m_responseCond;
294 std::queue<IMUDataItem*> m_shockData;
295 std::queue<int> m_stepData;
296 std::queue<IMUDataItem*> m_tapData;
Definition: curieimu.hpp:53
API for the Curie IMU via Firmata.
Definition: curieimu.hpp:76