#ifndef MISSION_DEVICES_DEVICEDEFINITIONS_ACSPOLLING_H_ #define MISSION_DEVICES_DEVICEDEFINITIONS_ACSPOLLING_H_ #include "gyroAdisHelpers.h" namespace acs { enum SimpleSensorMode { NORMAL = 0, OFF = 1 }; struct Adis1650XRequest { SimpleSensorMode mode; adis1650x::Type type; }; struct Adis1650XConfig { uint16_t diagStat; uint16_t filterSetting; uint16_t rangMdl; uint16_t mscCtrlReg; uint16_t decRateReg; uint16_t prodId; }; struct Adis1650XData { double sensitivity; // Angular velocities in all axes (X, Y and Z) int16_t angVelocities[3]; double accelScaling; // Accelerations in all axes int16_t accelerations[3]; int16_t temperatureRaw; }; struct Adis1650XReply { bool cfgWasSet = false; Adis1650XConfig cfg; bool dataWasSet = false; Adis1650XData data; }; struct GyroL3gRequest { SimpleSensorMode mode; uint8_t ctrlRegs[5]; }; struct GyroL3gReply { bool cfgWasSet; uint8_t statusReg; // Angular velocities in all axes (X, Y and Z) int16_t angVelocities[3]; int8_t tempOffsetRaw; uint8_t ctrlRegs[5]; float sensitivity; }; } // namespace acs #endif /* MISSION_DEVICES_DEVICEDEFINITIONS_ACSPOLLING_H_ */