#![allow(non_camel_case_types, non_upper_case_globals)]
use std::os::raw::{c_char, c_int, c_short};
use ErrorCode;
pub enum _Handle {}
pub type Handle = *mut _Handle;
#[repr(i32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum PigeonIMU_ControlFrame {
CondStatus_Control_1 = 272384,
}
impl PigeonIMU_StatusFrame {
pub const BiasedStatus_4_Mag: PigeonIMU_StatusFrame = PigeonIMU_StatusFrame::RawStatus_4_Mag;
}
#[repr(i32)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub enum PigeonIMU_StatusFrame {
CondStatus_1_General = 270336,
CondStatus_9_SixDeg_YPR = 270848,
CondStatus_6_SensorFusion = 270656,
CondStatus_11_GyroAccum = 270976,
CondStatus_2_GeneralCompass = 270400,
CondStatus_3_GeneralAccel = 270464,
CondStatus_10_SixDeg_Quat = 270912,
RawStatus_4_Mag = 269504,
BiasedStatus_2_Gyro = 269376,
BiasedStatus_6_Accel = 269632,
}
extern "C" {
pub fn c_PigeonIMU_Create2(talonDeviceID: c_int) -> Handle;
pub fn c_PigeonIMU_Create1(deviceNumber: c_int) -> Handle;
pub fn c_PigeonIMU_GetDescription(
handle: Handle,
toFill: *mut c_char,
toFillByteSz: c_int,
numBytesFilled: *mut c_int,
) -> ErrorCode;
pub fn c_PigeonIMU_ConfigSetParameter(
handle: Handle,
param: c_int,
value: f64,
subValue: c_int,
ordinal: c_int,
timeoutMs: c_int,
) -> ErrorCode;
pub fn c_PigeonIMU_ConfigGetParameter(
handle: Handle,
param: c_int,
value: *mut f64,
ordinal: c_int,
timeoutMs: c_int,
) -> ErrorCode;
pub fn c_PigeonIMU_ConfigSetCustomParam(
handle: Handle,
newValue: c_int,
paramIndex: c_int,
timeoutMs: c_int,
) -> ErrorCode;
pub fn c_PigeonIMU_ConfigGetCustomParam(
handle: Handle,
readValue: *mut c_int,
paramIndex: c_int,
timoutMs: c_int,
) -> ErrorCode;
pub fn c_PigeonIMU_SetYaw(handle: Handle, angleDeg: f64, timeoutMs: c_int) -> ErrorCode;
pub fn c_PigeonIMU_AddYaw(handle: Handle, angleDeg: f64, timeoutMs: c_int) -> ErrorCode;
pub fn c_PigeonIMU_SetYawToCompass(handle: Handle, timeoutMs: c_int) -> ErrorCode;
pub fn c_PigeonIMU_SetFusedHeading(
handle: Handle,
angleDeg: f64,
timeoutMs: c_int,
) -> ErrorCode;
pub fn c_PigeonIMU_AddFusedHeading(
handle: Handle,
angleDeg: f64,
timeoutMs: c_int,
) -> ErrorCode;
pub fn c_PigeonIMU_SetFusedHeadingToCompass(handle: Handle, timeoutMs: c_int) -> ErrorCode;
pub fn c_PigeonIMU_SetAccumZAngle(handle: Handle, angleDeg: f64, timeoutMs: c_int)
-> ErrorCode;
pub fn c_PigeonIMU_ConfigTemperatureCompensationEnable(
handle: Handle,
bTempCompEnable: c_int,
timeoutMs: c_int,
) -> ErrorCode;
pub fn c_PigeonIMU_SetCompassDeclination(
handle: Handle,
angleDegOffset: f64,
timeoutMs: c_int,
) -> ErrorCode;
pub fn c_PigeonIMU_SetCompassAngle(
handle: Handle,
angleDeg: f64,
timeoutMs: c_int,
) -> ErrorCode;
pub fn c_PigeonIMU_EnterCalibrationMode(
handle: Handle,
calMode: c_int,
timeoutMs: c_int,
) -> ErrorCode;
pub fn c_PigeonIMU_GetGeneralStatus(
handle: Handle,
state: *mut c_int,
currentMode: *mut c_int,
calibrationError: *mut c_int,
bCalIsBooting: *mut c_int,
tempC: *mut f64,
upTimeSec: *mut c_int,
noMotionBiasCount: *mut c_int,
tempCompensationCount: *mut c_int,
lastError: *mut c_int,
) -> ErrorCode;
pub fn c_PigeonIMU_GetLastError(handle: Handle) -> ErrorCode;
pub fn c_PigeonIMU_Get6dQuaternion(handle: Handle, wxyz: *mut f64) -> ErrorCode;
pub fn c_PigeonIMU_GetYawPitchRoll(handle: Handle, ypr: *mut f64) -> ErrorCode;
pub fn c_PigeonIMU_GetAccumGyro(handle: Handle, xyz_deg: *mut f64) -> ErrorCode;
pub fn c_PigeonIMU_GetAbsoluteCompassHeading(handle: Handle, value: *mut f64) -> ErrorCode;
pub fn c_PigeonIMU_GetCompassHeading(handle: Handle, value: *mut f64) -> ErrorCode;
pub fn c_PigeonIMU_GetCompassFieldStrength(handle: Handle, value: *mut f64) -> ErrorCode;
pub fn c_PigeonIMU_GetTemp(handle: Handle, value: *mut f64) -> ErrorCode;
pub fn c_PigeonIMU_GetState(handle: Handle, state: *mut c_int) -> ErrorCode;
pub fn c_PigeonIMU_GetUpTime(handle: Handle, value: *mut c_int) -> ErrorCode;
pub fn c_PigeonIMU_GetRawMagnetometer(handle: Handle, rm_xyz: *mut c_short) -> ErrorCode;
pub fn c_PigeonIMU_GetBiasedMagnetometer(handle: Handle, bm_xyz: *mut c_short) -> ErrorCode;
pub fn c_PigeonIMU_GetBiasedAccelerometer(handle: Handle, ba_xyz: *mut c_short) -> ErrorCode;
pub fn c_PigeonIMU_GetRawGyro(handle: Handle, xyz_dps: *mut f64) -> ErrorCode;
pub fn c_PigeonIMU_GetAccelerometerAngles(handle: Handle, tiltAngles: *mut f64) -> ErrorCode;
pub fn c_PigeonIMU_GetFusedHeading2(
handle: Handle,
bIsFusing: *mut c_int,
bIsValid: *mut c_int,
value: *mut f64,
lastError: *mut c_int,
) -> ErrorCode;
pub fn c_PigeonIMU_GetFusedHeading1(handle: Handle, value: *mut f64) -> ErrorCode;
pub fn c_PigeonIMU_GetResetCount(handle: Handle, value: *mut c_int) -> ErrorCode;
pub fn c_PigeonIMU_GetResetFlags(handle: Handle, value: *mut c_int) -> ErrorCode;
pub fn c_PigeonIMU_GetFirmwareVersion(handle: Handle, firmwareVers: *mut c_int) -> ErrorCode;
pub fn c_PigeonIMU_HasResetOccurred(handle: Handle, hasReset: *mut bool) -> ErrorCode;
pub fn c_PigeonIMU_SetLastError(handle: Handle, value: c_int) -> ErrorCode;
pub fn c_PigeonIMU_GetFaults(handle: Handle, param: *mut c_int) -> ErrorCode;
pub fn c_PigeonIMU_GetStickyFaults(handle: Handle, param: *mut c_int) -> ErrorCode;
pub fn c_PigeonIMU_ClearStickyFaults(handle: Handle, timeoutMs: c_int) -> ErrorCode;
pub fn c_PigeonIMU_SetStatusFramePeriod(
handle: Handle,
frame: c_int,
periodMs: c_int,
timeoutMs: c_int,
) -> ErrorCode;
pub fn c_PigeonIMU_GetStatusFramePeriod(
handle: Handle,
frame: c_int,
periodMs: *mut c_int,
timeoutMs: c_int,
) -> ErrorCode;
pub fn c_PigeonIMU_SetControlFramePeriod(
handle: Handle,
frame: c_int,
periodMs: c_int,
) -> ErrorCode;
}