6 #include <DigitalModule.h>
8 #include "../Utils/AsyncPrinter.h"
9 #include "../Process/AsyncProcess.h"
10 #include "../ComponentData/ComponentData.h"
11 #include "../Utils/Defines.h"
25 enum IMU_Rotational_Axis
33 static IMU* Instance();
34 static void Finalize();
37 IMU(UINT8 address, UINT8 module);
41 void construct(UINT8 address, UINT8 moduleNum);
43 INT16 Get(IMU_Axis axis);
44 double GetAngle(IMU_Rotational_Axis axis);
49 const static UINT8 kDefaultAddress = 0x29;
50 const static UINT8 kNumPacketsPerGroup = 4;
51 const static UINT8 kPayloadBytesPerPacket = 7 - 1;
54 INT16 m_accelerometerGyroscopeValues[6];
55 double m_gyroscopeAngles[3];
62 UINT8 m_internalBuffer[kNumPacketsPerGroup*kPayloadBytesPerPacket];