eive-obsw/mission/devices/devicedefinitions/acsPolling.h

59 lines
1.1 KiB
C
Raw Normal View History

2023-02-26 14:55:33 +01:00
#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_ */