#[repr(C)]
#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
pub struct __BindgenBitfieldUnit<Storage, Align>
where
Storage: AsRef<[u8]> + AsMut<[u8]>,
{
storage: Storage,
align: [Align; 0],
}
impl<Storage, Align> __BindgenBitfieldUnit<Storage, Align>
where
Storage: AsRef<[u8]> + AsMut<[u8]>,
{
#[inline]
pub fn new(storage: Storage) -> Self {
Self { storage, align: [] }
}
#[inline]
pub fn get_bit(&self, index: usize) -> bool {
debug_assert!(index / 8 < self.storage.as_ref().len());
let byte_index = index / 8;
let byte = self.storage.as_ref()[byte_index];
let bit_index = if cfg!(target_endian = "big") {
7 - (index % 8)
} else {
index % 8
};
let mask = 1 << bit_index;
byte & mask == mask
}
#[inline]
pub fn set_bit(&mut self, index: usize, val: bool) {
debug_assert!(index / 8 < self.storage.as_ref().len());
let byte_index = index / 8;
let byte = &mut self.storage.as_mut()[byte_index];
let bit_index = if cfg!(target_endian = "big") {
7 - (index % 8)
} else {
index % 8
};
let mask = 1 << bit_index;
if val {
*byte |= mask;
} else {
*byte &= !mask;
}
}
#[inline]
pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
debug_assert!(bit_width <= 64);
debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
let mut val = 0;
for i in 0..(bit_width as usize) {
if self.get_bit(i + bit_offset) {
let index = if cfg!(target_endian = "big") {
bit_width as usize - 1 - i
} else {
i
};
val |= 1 << index;
}
}
val
}
#[inline]
pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
debug_assert!(bit_width <= 64);
debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
for i in 0..(bit_width as usize) {
let mask = 1 << i;
let val_bit_is_set = val & mask == mask;
let index = if cfg!(target_endian = "big") {
bit_width as usize - 1 - i
} else {
i
};
self.set_bit(index + bit_offset, val_bit_is_set);
}
}
}
pub const HAL_kInvalidHandle: u32 = 0;
pub const HAL_kMaxJoystickAxes: u32 = 12;
pub const HAL_kMaxJoystickPOVs: u32 = 12;
pub const HAL_kMaxJoysticks: u32 = 6;
pub type HAL_Handle = i32;
pub type HAL_PortHandle = HAL_Handle;
pub type HAL_AnalogInputHandle = HAL_Handle;
pub type HAL_AnalogOutputHandle = HAL_Handle;
pub type HAL_AnalogTriggerHandle = HAL_Handle;
pub type HAL_CompressorHandle = HAL_Handle;
pub type HAL_CounterHandle = HAL_Handle;
pub type HAL_DigitalHandle = HAL_Handle;
pub type HAL_DigitalPWMHandle = HAL_Handle;
pub type HAL_EncoderHandle = HAL_Handle;
pub type HAL_FPGAEncoderHandle = HAL_Handle;
pub type HAL_GyroHandle = HAL_Handle;
pub type HAL_InterruptHandle = HAL_Handle;
pub type HAL_NotifierHandle = HAL_Handle;
pub type HAL_RelayHandle = HAL_Handle;
pub type HAL_SolenoidHandle = HAL_Handle;
pub type HAL_CANHandle = HAL_Handle;
pub type HAL_PDPHandle = HAL_CANHandle;
pub type HAL_Bool = i32;
pub mod HAL_AccelerometerRange {
pub type Type = i32;
pub const k2G: Type = 0;
pub const k4G: Type = 1;
pub const k8G: Type = 2;
}
extern "C" {
pub fn HAL_SetAccelerometerActive(active: HAL_Bool);
}
extern "C" {
pub fn HAL_SetAccelerometerRange(range: HAL_AccelerometerRange::Type);
}
extern "C" {
pub fn HAL_GetAccelerometerX() -> f64;
}
extern "C" {
pub fn HAL_GetAccelerometerY() -> f64;
}
extern "C" {
pub fn HAL_GetAccelerometerZ() -> f64;
}
extern "C" {
pub fn HAL_IsAccumulatorChannel(
analogPortHandle: HAL_AnalogInputHandle,
status: *mut i32,
) -> HAL_Bool;
}
extern "C" {
pub fn HAL_InitAccumulator(analogPortHandle: HAL_AnalogInputHandle, status: *mut i32);
}
extern "C" {
pub fn HAL_ResetAccumulator(analogPortHandle: HAL_AnalogInputHandle, status: *mut i32);
}
extern "C" {
pub fn HAL_SetAccumulatorCenter(
analogPortHandle: HAL_AnalogInputHandle,
center: i32,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_SetAccumulatorDeadband(
analogPortHandle: HAL_AnalogInputHandle,
deadband: i32,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_GetAccumulatorValue(
analogPortHandle: HAL_AnalogInputHandle,
status: *mut i32,
) -> i64;
}
extern "C" {
pub fn HAL_GetAccumulatorCount(
analogPortHandle: HAL_AnalogInputHandle,
status: *mut i32,
) -> i64;
}
extern "C" {
pub fn HAL_GetAccumulatorOutput(
analogPortHandle: HAL_AnalogInputHandle,
value: *mut i64,
count: *mut i64,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_InitializeAnalogGyro(
handle: HAL_AnalogInputHandle,
status: *mut i32,
) -> HAL_GyroHandle;
}
extern "C" {
pub fn HAL_SetupAnalogGyro(handle: HAL_GyroHandle, status: *mut i32);
}
extern "C" {
pub fn HAL_FreeAnalogGyro(handle: HAL_GyroHandle);
}
extern "C" {
pub fn HAL_SetAnalogGyroParameters(
handle: HAL_GyroHandle,
voltsPerDegreePerSecond: f64,
offset: f64,
center: i32,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_SetAnalogGyroVoltsPerDegreePerSecond(
handle: HAL_GyroHandle,
voltsPerDegreePerSecond: f64,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_ResetAnalogGyro(handle: HAL_GyroHandle, status: *mut i32);
}
extern "C" {
pub fn HAL_CalibrateAnalogGyro(handle: HAL_GyroHandle, status: *mut i32);
}
extern "C" {
pub fn HAL_SetAnalogGyroDeadband(handle: HAL_GyroHandle, volts: f64, status: *mut i32);
}
extern "C" {
pub fn HAL_GetAnalogGyroAngle(handle: HAL_GyroHandle, status: *mut i32) -> f64;
}
extern "C" {
pub fn HAL_GetAnalogGyroRate(handle: HAL_GyroHandle, status: *mut i32) -> f64;
}
extern "C" {
pub fn HAL_GetAnalogGyroOffset(handle: HAL_GyroHandle, status: *mut i32) -> f64;
}
extern "C" {
pub fn HAL_GetAnalogGyroCenter(handle: HAL_GyroHandle, status: *mut i32) -> i32;
}
extern "C" {
pub fn HAL_InitializeAnalogInputPort(
portHandle: HAL_PortHandle,
status: *mut i32,
) -> HAL_AnalogInputHandle;
}
extern "C" {
pub fn HAL_FreeAnalogInputPort(analogPortHandle: HAL_AnalogInputHandle);
}
extern "C" {
pub fn HAL_CheckAnalogModule(module: i32) -> HAL_Bool;
}
extern "C" {
pub fn HAL_CheckAnalogInputChannel(channel: i32) -> HAL_Bool;
}
extern "C" {
pub fn HAL_SetAnalogSampleRate(samplesPerSecond: f64, status: *mut i32);
}
extern "C" {
pub fn HAL_GetAnalogSampleRate(status: *mut i32) -> f64;
}
extern "C" {
pub fn HAL_SetAnalogAverageBits(
analogPortHandle: HAL_AnalogInputHandle,
bits: i32,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_GetAnalogAverageBits(
analogPortHandle: HAL_AnalogInputHandle,
status: *mut i32,
) -> i32;
}
extern "C" {
pub fn HAL_SetAnalogOversampleBits(
analogPortHandle: HAL_AnalogInputHandle,
bits: i32,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_GetAnalogOversampleBits(
analogPortHandle: HAL_AnalogInputHandle,
status: *mut i32,
) -> i32;
}
extern "C" {
pub fn HAL_GetAnalogValue(analogPortHandle: HAL_AnalogInputHandle, status: *mut i32) -> i32;
}
extern "C" {
pub fn HAL_GetAnalogAverageValue(
analogPortHandle: HAL_AnalogInputHandle,
status: *mut i32,
) -> i32;
}
extern "C" {
pub fn HAL_GetAnalogVoltsToValue(
analogPortHandle: HAL_AnalogInputHandle,
voltage: f64,
status: *mut i32,
) -> i32;
}
extern "C" {
pub fn HAL_GetAnalogVoltage(analogPortHandle: HAL_AnalogInputHandle, status: *mut i32) -> f64;
}
extern "C" {
pub fn HAL_GetAnalogAverageVoltage(
analogPortHandle: HAL_AnalogInputHandle,
status: *mut i32,
) -> f64;
}
extern "C" {
pub fn HAL_GetAnalogLSBWeight(analogPortHandle: HAL_AnalogInputHandle, status: *mut i32)
-> i32;
}
extern "C" {
pub fn HAL_GetAnalogOffset(analogPortHandle: HAL_AnalogInputHandle, status: *mut i32) -> i32;
}
extern "C" {
pub fn HAL_InitializeAnalogOutputPort(
portHandle: HAL_PortHandle,
status: *mut i32,
) -> HAL_AnalogOutputHandle;
}
extern "C" {
pub fn HAL_FreeAnalogOutputPort(analogOutputHandle: HAL_AnalogOutputHandle);
}
extern "C" {
pub fn HAL_SetAnalogOutput(
analogOutputHandle: HAL_AnalogOutputHandle,
voltage: f64,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_GetAnalogOutput(analogOutputHandle: HAL_AnalogOutputHandle, status: *mut i32)
-> f64;
}
extern "C" {
pub fn HAL_CheckAnalogOutputChannel(channel: i32) -> HAL_Bool;
}
pub mod HAL_AnalogTriggerType {
pub type Type = i32;
pub const HAL_Trigger_kInWindow: Type = 0;
pub const HAL_Trigger_kState: Type = 1;
pub const HAL_Trigger_kRisingPulse: Type = 2;
pub const HAL_Trigger_kFallingPulse: Type = 3;
}
extern "C" {
pub fn HAL_InitializeAnalogTrigger(
portHandle: HAL_AnalogInputHandle,
index: *mut i32,
status: *mut i32,
) -> HAL_AnalogTriggerHandle;
}
extern "C" {
pub fn HAL_CleanAnalogTrigger(analogTriggerHandle: HAL_AnalogTriggerHandle, status: *mut i32);
}
extern "C" {
pub fn HAL_SetAnalogTriggerLimitsRaw(
analogTriggerHandle: HAL_AnalogTriggerHandle,
lower: i32,
upper: i32,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_SetAnalogTriggerLimitsVoltage(
analogTriggerHandle: HAL_AnalogTriggerHandle,
lower: f64,
upper: f64,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_SetAnalogTriggerAveraged(
analogTriggerHandle: HAL_AnalogTriggerHandle,
useAveragedValue: HAL_Bool,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_SetAnalogTriggerFiltered(
analogTriggerHandle: HAL_AnalogTriggerHandle,
useFilteredValue: HAL_Bool,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_GetAnalogTriggerInWindow(
analogTriggerHandle: HAL_AnalogTriggerHandle,
status: *mut i32,
) -> HAL_Bool;
}
extern "C" {
pub fn HAL_GetAnalogTriggerTriggerState(
analogTriggerHandle: HAL_AnalogTriggerHandle,
status: *mut i32,
) -> HAL_Bool;
}
extern "C" {
pub fn HAL_GetAnalogTriggerOutput(
analogTriggerHandle: HAL_AnalogTriggerHandle,
type_: HAL_AnalogTriggerType::Type,
status: *mut i32,
) -> HAL_Bool;
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct HAL_CANStreamMessage {
pub messageID: u32,
pub timeStamp: u32,
pub data: [u8; 8usize],
pub dataSize: u8,
}
#[test]
fn bindgen_test_layout_HAL_CANStreamMessage() {
assert_eq!(
::std::mem::size_of::<HAL_CANStreamMessage>(),
20usize,
concat!("Size of: ", stringify!(HAL_CANStreamMessage))
);
assert_eq!(
::std::mem::align_of::<HAL_CANStreamMessage>(),
4usize,
concat!("Alignment of ", stringify!(HAL_CANStreamMessage))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<HAL_CANStreamMessage>())).messageID as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(HAL_CANStreamMessage),
"::",
stringify!(messageID)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<HAL_CANStreamMessage>())).timeStamp as *const _ as usize },
4usize,
concat!(
"Offset of field: ",
stringify!(HAL_CANStreamMessage),
"::",
stringify!(timeStamp)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<HAL_CANStreamMessage>())).data as *const _ as usize },
8usize,
concat!(
"Offset of field: ",
stringify!(HAL_CANStreamMessage),
"::",
stringify!(data)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<HAL_CANStreamMessage>())).dataSize as *const _ as usize },
16usize,
concat!(
"Offset of field: ",
stringify!(HAL_CANStreamMessage),
"::",
stringify!(dataSize)
)
);
}
extern "C" {
pub fn HAL_InitializeCompressor(module: i32, status: *mut i32) -> HAL_CompressorHandle;
}
extern "C" {
pub fn HAL_CheckCompressorModule(module: i32) -> HAL_Bool;
}
extern "C" {
pub fn HAL_GetCompressor(compressorHandle: HAL_CompressorHandle, status: *mut i32) -> HAL_Bool;
}
extern "C" {
pub fn HAL_SetCompressorClosedLoopControl(
compressorHandle: HAL_CompressorHandle,
value: HAL_Bool,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_GetCompressorClosedLoopControl(
compressorHandle: HAL_CompressorHandle,
status: *mut i32,
) -> HAL_Bool;
}
extern "C" {
pub fn HAL_GetCompressorPressureSwitch(
compressorHandle: HAL_CompressorHandle,
status: *mut i32,
) -> HAL_Bool;
}
extern "C" {
pub fn HAL_GetCompressorCurrent(
compressorHandle: HAL_CompressorHandle,
status: *mut i32,
) -> f64;
}
extern "C" {
pub fn HAL_GetCompressorCurrentTooHighFault(
compressorHandle: HAL_CompressorHandle,
status: *mut i32,
) -> HAL_Bool;
}
extern "C" {
pub fn HAL_GetCompressorCurrentTooHighStickyFault(
compressorHandle: HAL_CompressorHandle,
status: *mut i32,
) -> HAL_Bool;
}
extern "C" {
pub fn HAL_GetCompressorShortedStickyFault(
compressorHandle: HAL_CompressorHandle,
status: *mut i32,
) -> HAL_Bool;
}
extern "C" {
pub fn HAL_GetCompressorShortedFault(
compressorHandle: HAL_CompressorHandle,
status: *mut i32,
) -> HAL_Bool;
}
extern "C" {
pub fn HAL_GetCompressorNotConnectedStickyFault(
compressorHandle: HAL_CompressorHandle,
status: *mut i32,
) -> HAL_Bool;
}
extern "C" {
pub fn HAL_GetCompressorNotConnectedFault(
compressorHandle: HAL_CompressorHandle,
status: *mut i32,
) -> HAL_Bool;
}
extern "C" {
pub fn HAL_GetSystemClockTicksPerMicrosecond() -> i32;
}
pub mod HAL_Counter_Mode {
pub type Type = i32;
pub const HAL_Counter_kTwoPulse: Type = 0;
pub const HAL_Counter_kSemiperiod: Type = 1;
pub const HAL_Counter_kPulseLength: Type = 2;
pub const HAL_Counter_kExternalDirection: Type = 3;
}
extern "C" {
pub fn HAL_InitializeCounter(
mode: HAL_Counter_Mode::Type,
index: *mut i32,
status: *mut i32,
) -> HAL_CounterHandle;
}
extern "C" {
pub fn HAL_FreeCounter(counterHandle: HAL_CounterHandle, status: *mut i32);
}
extern "C" {
pub fn HAL_SetCounterAverageSize(counterHandle: HAL_CounterHandle, size: i32, status: *mut i32);
}
extern "C" {
pub fn HAL_SetCounterUpSource(
counterHandle: HAL_CounterHandle,
digitalSourceHandle: HAL_Handle,
analogTriggerType: HAL_AnalogTriggerType::Type,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_SetCounterUpSourceEdge(
counterHandle: HAL_CounterHandle,
risingEdge: HAL_Bool,
fallingEdge: HAL_Bool,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_ClearCounterUpSource(counterHandle: HAL_CounterHandle, status: *mut i32);
}
extern "C" {
pub fn HAL_SetCounterDownSource(
counterHandle: HAL_CounterHandle,
digitalSourceHandle: HAL_Handle,
analogTriggerType: HAL_AnalogTriggerType::Type,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_SetCounterDownSourceEdge(
counterHandle: HAL_CounterHandle,
risingEdge: HAL_Bool,
fallingEdge: HAL_Bool,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_ClearCounterDownSource(counterHandle: HAL_CounterHandle, status: *mut i32);
}
extern "C" {
pub fn HAL_SetCounterUpDownMode(counterHandle: HAL_CounterHandle, status: *mut i32);
}
extern "C" {
pub fn HAL_SetCounterExternalDirectionMode(counterHandle: HAL_CounterHandle, status: *mut i32);
}
extern "C" {
pub fn HAL_SetCounterSemiPeriodMode(
counterHandle: HAL_CounterHandle,
highSemiPeriod: HAL_Bool,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_SetCounterPulseLengthMode(
counterHandle: HAL_CounterHandle,
threshold: f64,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_GetCounterSamplesToAverage(
counterHandle: HAL_CounterHandle,
status: *mut i32,
) -> i32;
}
extern "C" {
pub fn HAL_SetCounterSamplesToAverage(
counterHandle: HAL_CounterHandle,
samplesToAverage: i32,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_ResetCounter(counterHandle: HAL_CounterHandle, status: *mut i32);
}
extern "C" {
pub fn HAL_GetCounter(counterHandle: HAL_CounterHandle, status: *mut i32) -> i32;
}
extern "C" {
pub fn HAL_GetCounterPeriod(counterHandle: HAL_CounterHandle, status: *mut i32) -> f64;
}
extern "C" {
pub fn HAL_SetCounterMaxPeriod(
counterHandle: HAL_CounterHandle,
maxPeriod: f64,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_SetCounterUpdateWhenEmpty(
counterHandle: HAL_CounterHandle,
enabled: HAL_Bool,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_GetCounterStopped(counterHandle: HAL_CounterHandle, status: *mut i32) -> HAL_Bool;
}
extern "C" {
pub fn HAL_GetCounterDirection(counterHandle: HAL_CounterHandle, status: *mut i32) -> HAL_Bool;
}
extern "C" {
pub fn HAL_SetCounterReverseDirection(
counterHandle: HAL_CounterHandle,
reverseDirection: HAL_Bool,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_InitializeDIOPort(
portHandle: HAL_PortHandle,
input: HAL_Bool,
status: *mut i32,
) -> HAL_DigitalHandle;
}
extern "C" {
pub fn HAL_CheckDIOChannel(channel: i32) -> HAL_Bool;
}
extern "C" {
pub fn HAL_FreeDIOPort(dioPortHandle: HAL_DigitalHandle);
}
extern "C" {
pub fn HAL_AllocateDigitalPWM(status: *mut i32) -> HAL_DigitalPWMHandle;
}
extern "C" {
pub fn HAL_FreeDigitalPWM(pwmGenerator: HAL_DigitalPWMHandle, status: *mut i32);
}
extern "C" {
pub fn HAL_SetDigitalPWMRate(rate: f64, status: *mut i32);
}
extern "C" {
pub fn HAL_SetDigitalPWMDutyCycle(
pwmGenerator: HAL_DigitalPWMHandle,
dutyCycle: f64,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_SetDigitalPWMOutputChannel(
pwmGenerator: HAL_DigitalPWMHandle,
channel: i32,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_SetDIO(dioPortHandle: HAL_DigitalHandle, value: HAL_Bool, status: *mut i32);
}
extern "C" {
pub fn HAL_SetDIODirection(dioPortHandle: HAL_DigitalHandle, input: HAL_Bool, status: *mut i32);
}
extern "C" {
pub fn HAL_GetDIO(dioPortHandle: HAL_DigitalHandle, status: *mut i32) -> HAL_Bool;
}
extern "C" {
pub fn HAL_GetDIODirection(dioPortHandle: HAL_DigitalHandle, status: *mut i32) -> HAL_Bool;
}
extern "C" {
pub fn HAL_Pulse(dioPortHandle: HAL_DigitalHandle, pulseLength: f64, status: *mut i32);
}
extern "C" {
pub fn HAL_IsPulsing(dioPortHandle: HAL_DigitalHandle, status: *mut i32) -> HAL_Bool;
}
extern "C" {
pub fn HAL_IsAnyPulsing(status: *mut i32) -> HAL_Bool;
}
extern "C" {
pub fn HAL_SetFilterSelect(
dioPortHandle: HAL_DigitalHandle,
filterIndex: i32,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_GetFilterSelect(dioPortHandle: HAL_DigitalHandle, status: *mut i32) -> i32;
}
extern "C" {
pub fn HAL_SetFilterPeriod(filterIndex: i32, value: i64, status: *mut i32);
}
extern "C" {
pub fn HAL_GetFilterPeriod(filterIndex: i32, status: *mut i32) -> i64;
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct HAL_ControlWord {
pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
pub __bindgen_align: [u32; 0usize],
}
#[test]
fn bindgen_test_layout_HAL_ControlWord() {
assert_eq!(
::std::mem::size_of::<HAL_ControlWord>(),
4usize,
concat!("Size of: ", stringify!(HAL_ControlWord))
);
assert_eq!(
::std::mem::align_of::<HAL_ControlWord>(),
4usize,
concat!("Alignment of ", stringify!(HAL_ControlWord))
);
}
impl HAL_ControlWord {
#[inline]
pub fn enabled(&self) -> u32 {
unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
}
#[inline]
pub fn set_enabled(&mut self, val: u32) {
unsafe {
let val: u32 = ::std::mem::transmute(val);
self._bitfield_1.set(0usize, 1u8, val as u64)
}
}
#[inline]
pub fn autonomous(&self) -> u32 {
unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
}
#[inline]
pub fn set_autonomous(&mut self, val: u32) {
unsafe {
let val: u32 = ::std::mem::transmute(val);
self._bitfield_1.set(1usize, 1u8, val as u64)
}
}
#[inline]
pub fn test(&self) -> u32 {
unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
}
#[inline]
pub fn set_test(&mut self, val: u32) {
unsafe {
let val: u32 = ::std::mem::transmute(val);
self._bitfield_1.set(2usize, 1u8, val as u64)
}
}
#[inline]
pub fn eStop(&self) -> u32 {
unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
}
#[inline]
pub fn set_eStop(&mut self, val: u32) {
unsafe {
let val: u32 = ::std::mem::transmute(val);
self._bitfield_1.set(3usize, 1u8, val as u64)
}
}
#[inline]
pub fn fmsAttached(&self) -> u32 {
unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
}
#[inline]
pub fn set_fmsAttached(&mut self, val: u32) {
unsafe {
let val: u32 = ::std::mem::transmute(val);
self._bitfield_1.set(4usize, 1u8, val as u64)
}
}
#[inline]
pub fn dsAttached(&self) -> u32 {
unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
}
#[inline]
pub fn set_dsAttached(&mut self, val: u32) {
unsafe {
let val: u32 = ::std::mem::transmute(val);
self._bitfield_1.set(5usize, 1u8, val as u64)
}
}
#[inline]
pub fn control_reserved(&self) -> u32 {
unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 26u8) as u32) }
}
#[inline]
pub fn set_control_reserved(&mut self, val: u32) {
unsafe {
let val: u32 = ::std::mem::transmute(val);
self._bitfield_1.set(6usize, 26u8, val as u64)
}
}
#[inline]
pub fn new_bitfield_1(
enabled: u32,
autonomous: u32,
test: u32,
eStop: u32,
fmsAttached: u32,
dsAttached: u32,
control_reserved: u32,
) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
Default::default();
__bindgen_bitfield_unit.set(0usize, 1u8, {
let enabled: u32 = unsafe { ::std::mem::transmute(enabled) };
enabled as u64
});
__bindgen_bitfield_unit.set(1usize, 1u8, {
let autonomous: u32 = unsafe { ::std::mem::transmute(autonomous) };
autonomous as u64
});
__bindgen_bitfield_unit.set(2usize, 1u8, {
let test: u32 = unsafe { ::std::mem::transmute(test) };
test as u64
});
__bindgen_bitfield_unit.set(3usize, 1u8, {
let eStop: u32 = unsafe { ::std::mem::transmute(eStop) };
eStop as u64
});
__bindgen_bitfield_unit.set(4usize, 1u8, {
let fmsAttached: u32 = unsafe { ::std::mem::transmute(fmsAttached) };
fmsAttached as u64
});
__bindgen_bitfield_unit.set(5usize, 1u8, {
let dsAttached: u32 = unsafe { ::std::mem::transmute(dsAttached) };
dsAttached as u64
});
__bindgen_bitfield_unit.set(6usize, 26u8, {
let control_reserved: u32 = unsafe { ::std::mem::transmute(control_reserved) };
control_reserved as u64
});
__bindgen_bitfield_unit
}
}
pub mod HAL_AllianceStationID {
pub type Type = i32;
pub const kRed1: Type = 0;
pub const kRed2: Type = 1;
pub const kRed3: Type = 2;
pub const kBlue1: Type = 3;
pub const kBlue2: Type = 4;
pub const kBlue3: Type = 5;
}
pub mod HAL_MatchType {
pub type Type = i32;
pub const HAL_kMatchType_none: Type = 0;
pub const HAL_kMatchType_practice: Type = 1;
pub const HAL_kMatchType_qualification: Type = 2;
pub const HAL_kMatchType_elimination: Type = 3;
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct HAL_JoystickAxes {
pub count: i16,
pub axes: [f32; 12usize],
}
#[test]
fn bindgen_test_layout_HAL_JoystickAxes() {
assert_eq!(
::std::mem::size_of::<HAL_JoystickAxes>(),
52usize,
concat!("Size of: ", stringify!(HAL_JoystickAxes))
);
assert_eq!(
::std::mem::align_of::<HAL_JoystickAxes>(),
4usize,
concat!("Alignment of ", stringify!(HAL_JoystickAxes))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<HAL_JoystickAxes>())).count as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(HAL_JoystickAxes),
"::",
stringify!(count)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<HAL_JoystickAxes>())).axes as *const _ as usize },
4usize,
concat!(
"Offset of field: ",
stringify!(HAL_JoystickAxes),
"::",
stringify!(axes)
)
);
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct HAL_JoystickPOVs {
pub count: i16,
pub povs: [i16; 12usize],
}
#[test]
fn bindgen_test_layout_HAL_JoystickPOVs() {
assert_eq!(
::std::mem::size_of::<HAL_JoystickPOVs>(),
26usize,
concat!("Size of: ", stringify!(HAL_JoystickPOVs))
);
assert_eq!(
::std::mem::align_of::<HAL_JoystickPOVs>(),
2usize,
concat!("Alignment of ", stringify!(HAL_JoystickPOVs))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<HAL_JoystickPOVs>())).count as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(HAL_JoystickPOVs),
"::",
stringify!(count)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<HAL_JoystickPOVs>())).povs as *const _ as usize },
2usize,
concat!(
"Offset of field: ",
stringify!(HAL_JoystickPOVs),
"::",
stringify!(povs)
)
);
}
#[repr(C)]
#[derive(Debug, Default, Copy, Clone)]
pub struct HAL_JoystickButtons {
pub buttons: u32,
pub count: u8,
}
#[test]
fn bindgen_test_layout_HAL_JoystickButtons() {
assert_eq!(
::std::mem::size_of::<HAL_JoystickButtons>(),
8usize,
concat!("Size of: ", stringify!(HAL_JoystickButtons))
);
assert_eq!(
::std::mem::align_of::<HAL_JoystickButtons>(),
4usize,
concat!("Alignment of ", stringify!(HAL_JoystickButtons))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<HAL_JoystickButtons>())).buttons as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(HAL_JoystickButtons),
"::",
stringify!(buttons)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<HAL_JoystickButtons>())).count as *const _ as usize },
4usize,
concat!(
"Offset of field: ",
stringify!(HAL_JoystickButtons),
"::",
stringify!(count)
)
);
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct HAL_JoystickDescriptor {
pub isXbox: u8,
pub type_: u8,
pub name: [::std::os::raw::c_char; 256usize],
pub axisCount: u8,
pub axisTypes: [u8; 12usize],
pub buttonCount: u8,
pub povCount: u8,
}
#[test]
fn bindgen_test_layout_HAL_JoystickDescriptor() {
assert_eq!(
::std::mem::size_of::<HAL_JoystickDescriptor>(),
273usize,
concat!("Size of: ", stringify!(HAL_JoystickDescriptor))
);
assert_eq!(
::std::mem::align_of::<HAL_JoystickDescriptor>(),
1usize,
concat!("Alignment of ", stringify!(HAL_JoystickDescriptor))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<HAL_JoystickDescriptor>())).isXbox as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(HAL_JoystickDescriptor),
"::",
stringify!(isXbox)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<HAL_JoystickDescriptor>())).type_ as *const _ as usize },
1usize,
concat!(
"Offset of field: ",
stringify!(HAL_JoystickDescriptor),
"::",
stringify!(type_)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<HAL_JoystickDescriptor>())).name as *const _ as usize },
2usize,
concat!(
"Offset of field: ",
stringify!(HAL_JoystickDescriptor),
"::",
stringify!(name)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<HAL_JoystickDescriptor>())).axisCount as *const _ as usize
},
258usize,
concat!(
"Offset of field: ",
stringify!(HAL_JoystickDescriptor),
"::",
stringify!(axisCount)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<HAL_JoystickDescriptor>())).axisTypes as *const _ as usize
},
259usize,
concat!(
"Offset of field: ",
stringify!(HAL_JoystickDescriptor),
"::",
stringify!(axisTypes)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<HAL_JoystickDescriptor>())).buttonCount as *const _ as usize
},
271usize,
concat!(
"Offset of field: ",
stringify!(HAL_JoystickDescriptor),
"::",
stringify!(buttonCount)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<HAL_JoystickDescriptor>())).povCount as *const _ as usize },
272usize,
concat!(
"Offset of field: ",
stringify!(HAL_JoystickDescriptor),
"::",
stringify!(povCount)
)
);
}
impl Default for HAL_JoystickDescriptor {
fn default() -> Self {
unsafe { ::std::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct HAL_MatchInfo {
pub eventName: [::std::os::raw::c_char; 64usize],
pub matchType: HAL_MatchType::Type,
pub matchNumber: u16,
pub replayNumber: u8,
pub gameSpecificMessage: [u8; 64usize],
pub gameSpecificMessageSize: u16,
}
#[test]
fn bindgen_test_layout_HAL_MatchInfo() {
assert_eq!(
::std::mem::size_of::<HAL_MatchInfo>(),
140usize,
concat!("Size of: ", stringify!(HAL_MatchInfo))
);
assert_eq!(
::std::mem::align_of::<HAL_MatchInfo>(),
4usize,
concat!("Alignment of ", stringify!(HAL_MatchInfo))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<HAL_MatchInfo>())).eventName as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(HAL_MatchInfo),
"::",
stringify!(eventName)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<HAL_MatchInfo>())).matchType as *const _ as usize },
64usize,
concat!(
"Offset of field: ",
stringify!(HAL_MatchInfo),
"::",
stringify!(matchType)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<HAL_MatchInfo>())).matchNumber as *const _ as usize },
68usize,
concat!(
"Offset of field: ",
stringify!(HAL_MatchInfo),
"::",
stringify!(matchNumber)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<HAL_MatchInfo>())).replayNumber as *const _ as usize },
70usize,
concat!(
"Offset of field: ",
stringify!(HAL_MatchInfo),
"::",
stringify!(replayNumber)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<HAL_MatchInfo>())).gameSpecificMessage as *const _ as usize
},
71usize,
concat!(
"Offset of field: ",
stringify!(HAL_MatchInfo),
"::",
stringify!(gameSpecificMessage)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<HAL_MatchInfo>())).gameSpecificMessageSize as *const _ as usize
},
136usize,
concat!(
"Offset of field: ",
stringify!(HAL_MatchInfo),
"::",
stringify!(gameSpecificMessageSize)
)
);
}
impl Default for HAL_MatchInfo {
fn default() -> Self {
unsafe { ::std::mem::zeroed() }
}
}
extern "C" {
pub fn HAL_SendError(
isError: HAL_Bool,
errorCode: i32,
isLVCode: HAL_Bool,
details: *const ::std::os::raw::c_char,
location: *const ::std::os::raw::c_char,
callStack: *const ::std::os::raw::c_char,
printMsg: HAL_Bool,
) -> i32;
}
extern "C" {
pub fn HAL_GetControlWord(controlWord: *mut HAL_ControlWord) -> i32;
}
extern "C" {
pub fn HAL_GetAllianceStation(status: *mut i32) -> HAL_AllianceStationID::Type;
}
extern "C" {
pub fn HAL_GetJoystickAxes(joystickNum: i32, axes: *mut HAL_JoystickAxes) -> i32;
}
extern "C" {
pub fn HAL_GetJoystickPOVs(joystickNum: i32, povs: *mut HAL_JoystickPOVs) -> i32;
}
extern "C" {
pub fn HAL_GetJoystickButtons(joystickNum: i32, buttons: *mut HAL_JoystickButtons) -> i32;
}
extern "C" {
pub fn HAL_GetJoystickDescriptor(joystickNum: i32, desc: *mut HAL_JoystickDescriptor) -> i32;
}
extern "C" {
pub fn HAL_GetJoystickIsXbox(joystickNum: i32) -> HAL_Bool;
}
extern "C" {
pub fn HAL_GetJoystickType(joystickNum: i32) -> i32;
}
extern "C" {
pub fn HAL_GetJoystickName(joystickNum: i32) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn HAL_FreeJoystickName(name: *mut ::std::os::raw::c_char);
}
extern "C" {
pub fn HAL_GetJoystickAxisType(joystickNum: i32, axis: i32) -> i32;
}
extern "C" {
pub fn HAL_SetJoystickOutputs(
joystickNum: i32,
outputs: i64,
leftRumble: i32,
rightRumble: i32,
) -> i32;
}
extern "C" {
pub fn HAL_GetMatchTime(status: *mut i32) -> f64;
}
extern "C" {
pub fn HAL_GetMatchInfo(info: *mut HAL_MatchInfo) -> i32;
}
extern "C" {
pub fn HAL_ReleaseDSMutex();
}
extern "C" {
pub fn HAL_IsNewControlData() -> HAL_Bool;
}
extern "C" {
pub fn HAL_WaitForDSData();
}
extern "C" {
pub fn HAL_WaitForDSDataTimeout(timeout: f64) -> HAL_Bool;
}
extern "C" {
pub fn HAL_InitializeDriverStation();
}
extern "C" {
pub fn HAL_ObserveUserProgramStarting();
}
extern "C" {
pub fn HAL_ObserveUserProgramDisabled();
}
extern "C" {
pub fn HAL_ObserveUserProgramAutonomous();
}
extern "C" {
pub fn HAL_ObserveUserProgramTeleop();
}
extern "C" {
pub fn HAL_ObserveUserProgramTest();
}
pub mod HAL_I2CPort {
pub type Type = i32;
pub const HAL_I2C_kInvalid: Type = -1;
pub const HAL_I2C_kOnboard: Type = 0;
pub const HAL_I2C_kMXP: Type = 1;
}
extern "C" {
pub fn HAL_InitializeI2C(port: HAL_I2CPort::Type, status: *mut i32);
}
extern "C" {
pub fn HAL_TransactionI2C(
port: HAL_I2CPort::Type,
deviceAddress: i32,
dataToSend: *const u8,
sendSize: i32,
dataReceived: *mut u8,
receiveSize: i32,
) -> i32;
}
extern "C" {
pub fn HAL_WriteI2C(
port: HAL_I2CPort::Type,
deviceAddress: i32,
dataToSend: *const u8,
sendSize: i32,
) -> i32;
}
extern "C" {
pub fn HAL_ReadI2C(
port: HAL_I2CPort::Type,
deviceAddress: i32,
buffer: *mut u8,
count: i32,
) -> i32;
}
extern "C" {
pub fn HAL_CloseI2C(port: HAL_I2CPort::Type);
}
pub type HAL_InterruptHandlerFunction = ::std::option::Option<
unsafe extern "C" fn(interruptAssertedMask: u32, param: *mut ::std::os::raw::c_void),
>;
extern "C" {
pub fn HAL_InitializeInterrupts(watcher: HAL_Bool, status: *mut i32) -> HAL_InterruptHandle;
}
extern "C" {
pub fn HAL_CleanInterrupts(
interruptHandle: HAL_InterruptHandle,
status: *mut i32,
) -> *mut ::std::os::raw::c_void;
}
extern "C" {
pub fn HAL_WaitForInterrupt(
interruptHandle: HAL_InterruptHandle,
timeout: f64,
ignorePrevious: HAL_Bool,
status: *mut i32,
) -> i64;
}
extern "C" {
pub fn HAL_EnableInterrupts(interruptHandle: HAL_InterruptHandle, status: *mut i32);
}
extern "C" {
pub fn HAL_DisableInterrupts(interruptHandle: HAL_InterruptHandle, status: *mut i32);
}
extern "C" {
pub fn HAL_ReadInterruptRisingTimestamp(
interruptHandle: HAL_InterruptHandle,
status: *mut i32,
) -> i64;
}
extern "C" {
pub fn HAL_ReadInterruptFallingTimestamp(
interruptHandle: HAL_InterruptHandle,
status: *mut i32,
) -> i64;
}
extern "C" {
pub fn HAL_RequestInterrupts(
interruptHandle: HAL_InterruptHandle,
digitalSourceHandle: HAL_Handle,
analogTriggerType: HAL_AnalogTriggerType::Type,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_AttachInterruptHandler(
interruptHandle: HAL_InterruptHandle,
handler: HAL_InterruptHandlerFunction,
param: *mut ::std::os::raw::c_void,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_AttachInterruptHandlerThreaded(
interruptHandle: HAL_InterruptHandle,
handler: HAL_InterruptHandlerFunction,
param: *mut ::std::os::raw::c_void,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_SetInterruptUpSourceEdge(
interruptHandle: HAL_InterruptHandle,
risingEdge: HAL_Bool,
fallingEdge: HAL_Bool,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_InitializeNotifier(status: *mut i32) -> HAL_NotifierHandle;
}
extern "C" {
pub fn HAL_StopNotifier(notifierHandle: HAL_NotifierHandle, status: *mut i32);
}
extern "C" {
pub fn HAL_CleanNotifier(notifierHandle: HAL_NotifierHandle, status: *mut i32);
}
extern "C" {
pub fn HAL_UpdateNotifierAlarm(
notifierHandle: HAL_NotifierHandle,
triggerTime: u64,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_CancelNotifierAlarm(notifierHandle: HAL_NotifierHandle, status: *mut i32);
}
extern "C" {
pub fn HAL_WaitForNotifierAlarm(notifierHandle: HAL_NotifierHandle, status: *mut i32) -> u64;
}
extern "C" {
pub fn HAL_InitializePDP(module: i32, status: *mut i32) -> HAL_PDPHandle;
}
extern "C" {
pub fn HAL_CleanPDP(handle: HAL_PDPHandle);
}
extern "C" {
pub fn HAL_CheckPDPChannel(channel: i32) -> HAL_Bool;
}
extern "C" {
pub fn HAL_CheckPDPModule(module: i32) -> HAL_Bool;
}
extern "C" {
pub fn HAL_GetPDPTemperature(handle: HAL_PDPHandle, status: *mut i32) -> f64;
}
extern "C" {
pub fn HAL_GetPDPVoltage(handle: HAL_PDPHandle, status: *mut i32) -> f64;
}
extern "C" {
pub fn HAL_GetPDPChannelCurrent(handle: HAL_PDPHandle, channel: i32, status: *mut i32) -> f64;
}
extern "C" {
pub fn HAL_GetPDPTotalCurrent(handle: HAL_PDPHandle, status: *mut i32) -> f64;
}
extern "C" {
pub fn HAL_GetPDPTotalPower(handle: HAL_PDPHandle, status: *mut i32) -> f64;
}
extern "C" {
pub fn HAL_GetPDPTotalEnergy(handle: HAL_PDPHandle, status: *mut i32) -> f64;
}
extern "C" {
pub fn HAL_ResetPDPTotalEnergy(handle: HAL_PDPHandle, status: *mut i32);
}
extern "C" {
pub fn HAL_ClearPDPStickyFaults(handle: HAL_PDPHandle, status: *mut i32);
}
extern "C" {
pub fn HAL_InitializePWMPort(portHandle: HAL_PortHandle, status: *mut i32)
-> HAL_DigitalHandle;
}
extern "C" {
pub fn HAL_FreePWMPort(pwmPortHandle: HAL_DigitalHandle, status: *mut i32);
}
extern "C" {
pub fn HAL_CheckPWMChannel(channel: i32) -> HAL_Bool;
}
extern "C" {
pub fn HAL_SetPWMConfig(
pwmPortHandle: HAL_DigitalHandle,
maxPwm: f64,
deadbandMaxPwm: f64,
centerPwm: f64,
deadbandMinPwm: f64,
minPwm: f64,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_SetPWMConfigRaw(
pwmPortHandle: HAL_DigitalHandle,
maxPwm: i32,
deadbandMaxPwm: i32,
centerPwm: i32,
deadbandMinPwm: i32,
minPwm: i32,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_GetPWMConfigRaw(
pwmPortHandle: HAL_DigitalHandle,
maxPwm: *mut i32,
deadbandMaxPwm: *mut i32,
centerPwm: *mut i32,
deadbandMinPwm: *mut i32,
minPwm: *mut i32,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_SetPWMEliminateDeadband(
pwmPortHandle: HAL_DigitalHandle,
eliminateDeadband: HAL_Bool,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_GetPWMEliminateDeadband(
pwmPortHandle: HAL_DigitalHandle,
status: *mut i32,
) -> HAL_Bool;
}
extern "C" {
pub fn HAL_SetPWMRaw(pwmPortHandle: HAL_DigitalHandle, value: i32, status: *mut i32);
}
extern "C" {
pub fn HAL_SetPWMSpeed(pwmPortHandle: HAL_DigitalHandle, speed: f64, status: *mut i32);
}
extern "C" {
pub fn HAL_SetPWMPosition(pwmPortHandle: HAL_DigitalHandle, position: f64, status: *mut i32);
}
extern "C" {
pub fn HAL_SetPWMDisabled(pwmPortHandle: HAL_DigitalHandle, status: *mut i32);
}
extern "C" {
pub fn HAL_GetPWMRaw(pwmPortHandle: HAL_DigitalHandle, status: *mut i32) -> i32;
}
extern "C" {
pub fn HAL_GetPWMSpeed(pwmPortHandle: HAL_DigitalHandle, status: *mut i32) -> f64;
}
extern "C" {
pub fn HAL_GetPWMPosition(pwmPortHandle: HAL_DigitalHandle, status: *mut i32) -> f64;
}
extern "C" {
pub fn HAL_LatchPWMZero(pwmPortHandle: HAL_DigitalHandle, status: *mut i32);
}
extern "C" {
pub fn HAL_SetPWMPeriodScale(
pwmPortHandle: HAL_DigitalHandle,
squelchMask: i32,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_GetPWMLoopTiming(status: *mut i32) -> i32;
}
extern "C" {
pub fn HAL_GetPWMCycleStartTime(status: *mut i32) -> u64;
}
extern "C" {
pub fn HAL_GetNumAccumulators() -> i32;
}
extern "C" {
pub fn HAL_GetNumAnalogTriggers() -> i32;
}
extern "C" {
pub fn HAL_GetNumAnalogInputs() -> i32;
}
extern "C" {
pub fn HAL_GetNumAnalogOutputs() -> i32;
}
extern "C" {
pub fn HAL_GetNumCounters() -> i32;
}
extern "C" {
pub fn HAL_GetNumDigitalHeaders() -> i32;
}
extern "C" {
pub fn HAL_GetNumPWMHeaders() -> i32;
}
extern "C" {
pub fn HAL_GetNumDigitalChannels() -> i32;
}
extern "C" {
pub fn HAL_GetNumPWMChannels() -> i32;
}
extern "C" {
pub fn HAL_GetNumDigitalPWMOutputs() -> i32;
}
extern "C" {
pub fn HAL_GetNumEncoders() -> i32;
}
extern "C" {
pub fn HAL_GetNumInterrupts() -> i32;
}
extern "C" {
pub fn HAL_GetNumRelayChannels() -> i32;
}
extern "C" {
pub fn HAL_GetNumRelayHeaders() -> i32;
}
extern "C" {
pub fn HAL_GetNumPCMModules() -> i32;
}
extern "C" {
pub fn HAL_GetNumSolenoidChannels() -> i32;
}
extern "C" {
pub fn HAL_GetNumPDPModules() -> i32;
}
extern "C" {
pub fn HAL_GetNumPDPChannels() -> i32;
}
extern "C" {
pub fn HAL_GetVinVoltage(status: *mut i32) -> f64;
}
extern "C" {
pub fn HAL_GetVinCurrent(status: *mut i32) -> f64;
}
extern "C" {
pub fn HAL_GetUserVoltage6V(status: *mut i32) -> f64;
}
extern "C" {
pub fn HAL_GetUserCurrent6V(status: *mut i32) -> f64;
}
extern "C" {
pub fn HAL_GetUserActive6V(status: *mut i32) -> HAL_Bool;
}
extern "C" {
pub fn HAL_GetUserCurrentFaults6V(status: *mut i32) -> i32;
}
extern "C" {
pub fn HAL_GetUserVoltage5V(status: *mut i32) -> f64;
}
extern "C" {
pub fn HAL_GetUserCurrent5V(status: *mut i32) -> f64;
}
extern "C" {
pub fn HAL_GetUserActive5V(status: *mut i32) -> HAL_Bool;
}
extern "C" {
pub fn HAL_GetUserCurrentFaults5V(status: *mut i32) -> i32;
}
extern "C" {
pub fn HAL_GetUserVoltage3V3(status: *mut i32) -> f64;
}
extern "C" {
pub fn HAL_GetUserCurrent3V3(status: *mut i32) -> f64;
}
extern "C" {
pub fn HAL_GetUserActive3V3(status: *mut i32) -> HAL_Bool;
}
extern "C" {
pub fn HAL_GetUserCurrentFaults3V3(status: *mut i32) -> i32;
}
extern "C" {
pub fn HAL_InitializeRelayPort(
portHandle: HAL_PortHandle,
fwd: HAL_Bool,
status: *mut i32,
) -> HAL_RelayHandle;
}
extern "C" {
pub fn HAL_FreeRelayPort(relayPortHandle: HAL_RelayHandle);
}
extern "C" {
pub fn HAL_CheckRelayChannel(channel: i32) -> HAL_Bool;
}
extern "C" {
pub fn HAL_SetRelay(relayPortHandle: HAL_RelayHandle, on: HAL_Bool, status: *mut i32);
}
extern "C" {
pub fn HAL_GetRelay(relayPortHandle: HAL_RelayHandle, status: *mut i32) -> HAL_Bool;
}
pub mod HAL_SPIPort {
pub type Type = i32;
pub const HAL_SPI_kInvalid: Type = -1;
pub const HAL_SPI_kOnboardCS0: Type = 0;
pub const HAL_SPI_kOnboardCS1: Type = 1;
pub const HAL_SPI_kOnboardCS2: Type = 2;
pub const HAL_SPI_kOnboardCS3: Type = 3;
pub const HAL_SPI_kMXP: Type = 4;
}
extern "C" {
pub fn HAL_InitializeSPI(port: HAL_SPIPort::Type, status: *mut i32);
}
extern "C" {
pub fn HAL_TransactionSPI(
port: HAL_SPIPort::Type,
dataToSend: *const u8,
dataReceived: *mut u8,
size: i32,
) -> i32;
}
extern "C" {
pub fn HAL_WriteSPI(port: HAL_SPIPort::Type, dataToSend: *const u8, sendSize: i32) -> i32;
}
extern "C" {
pub fn HAL_ReadSPI(port: HAL_SPIPort::Type, buffer: *mut u8, count: i32) -> i32;
}
extern "C" {
pub fn HAL_CloseSPI(port: HAL_SPIPort::Type);
}
extern "C" {
pub fn HAL_SetSPISpeed(port: HAL_SPIPort::Type, speed: i32);
}
extern "C" {
pub fn HAL_SetSPIOpts(
port: HAL_SPIPort::Type,
msbFirst: HAL_Bool,
sampleOnTrailing: HAL_Bool,
clkIdleHigh: HAL_Bool,
);
}
extern "C" {
pub fn HAL_SetSPIChipSelectActiveHigh(port: HAL_SPIPort::Type, status: *mut i32);
}
extern "C" {
pub fn HAL_SetSPIChipSelectActiveLow(port: HAL_SPIPort::Type, status: *mut i32);
}
extern "C" {
pub fn HAL_GetSPIHandle(port: HAL_SPIPort::Type) -> i32;
}
extern "C" {
pub fn HAL_SetSPIHandle(port: HAL_SPIPort::Type, handle: i32);
}
extern "C" {
pub fn HAL_InitSPIAuto(port: HAL_SPIPort::Type, bufferSize: i32, status: *mut i32);
}
extern "C" {
pub fn HAL_FreeSPIAuto(port: HAL_SPIPort::Type, status: *mut i32);
}
extern "C" {
pub fn HAL_StartSPIAutoRate(port: HAL_SPIPort::Type, period: f64, status: *mut i32);
}
extern "C" {
pub fn HAL_StartSPIAutoTrigger(
port: HAL_SPIPort::Type,
digitalSourceHandle: HAL_Handle,
analogTriggerType: HAL_AnalogTriggerType::Type,
triggerRising: HAL_Bool,
triggerFalling: HAL_Bool,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_StopSPIAuto(port: HAL_SPIPort::Type, status: *mut i32);
}
extern "C" {
pub fn HAL_SetSPIAutoTransmitData(
port: HAL_SPIPort::Type,
dataToSend: *const u8,
dataSize: i32,
zeroSize: i32,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_ForceSPIAutoRead(port: HAL_SPIPort::Type, status: *mut i32);
}
extern "C" {
pub fn HAL_ReadSPIAutoReceivedData(
port: HAL_SPIPort::Type,
buffer: *mut u32,
numToRead: i32,
timeout: f64,
status: *mut i32,
) -> i32;
}
extern "C" {
pub fn HAL_GetSPIAutoDroppedCount(port: HAL_SPIPort::Type, status: *mut i32) -> i32;
}
pub mod HAL_SerialPort {
pub type Type = i32;
pub const Onboard: Type = 0;
pub const MXP: Type = 1;
pub const USB1: Type = 2;
pub const USB2: Type = 3;
}
extern "C" {
pub fn HAL_InitializeSerialPort(port: HAL_SerialPort::Type, status: *mut i32);
}
extern "C" {
pub fn HAL_InitializeSerialPortDirect(
port: HAL_SerialPort::Type,
portName: *const ::std::os::raw::c_char,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_SetSerialBaudRate(port: HAL_SerialPort::Type, baud: i32, status: *mut i32);
}
extern "C" {
pub fn HAL_SetSerialDataBits(port: HAL_SerialPort::Type, bits: i32, status: *mut i32);
}
extern "C" {
pub fn HAL_SetSerialParity(port: HAL_SerialPort::Type, parity: i32, status: *mut i32);
}
extern "C" {
pub fn HAL_SetSerialStopBits(port: HAL_SerialPort::Type, stopBits: i32, status: *mut i32);
}
extern "C" {
pub fn HAL_SetSerialWriteMode(port: HAL_SerialPort::Type, mode: i32, status: *mut i32);
}
extern "C" {
pub fn HAL_SetSerialFlowControl(port: HAL_SerialPort::Type, flow: i32, status: *mut i32);
}
extern "C" {
pub fn HAL_SetSerialTimeout(port: HAL_SerialPort::Type, timeout: f64, status: *mut i32);
}
extern "C" {
pub fn HAL_EnableSerialTermination(
port: HAL_SerialPort::Type,
terminator: ::std::os::raw::c_char,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_DisableSerialTermination(port: HAL_SerialPort::Type, status: *mut i32);
}
extern "C" {
pub fn HAL_SetSerialReadBufferSize(port: HAL_SerialPort::Type, size: i32, status: *mut i32);
}
extern "C" {
pub fn HAL_SetSerialWriteBufferSize(port: HAL_SerialPort::Type, size: i32, status: *mut i32);
}
extern "C" {
pub fn HAL_GetSerialBytesReceived(port: HAL_SerialPort::Type, status: *mut i32) -> i32;
}
extern "C" {
pub fn HAL_ReadSerial(
port: HAL_SerialPort::Type,
buffer: *mut ::std::os::raw::c_char,
count: i32,
status: *mut i32,
) -> i32;
}
extern "C" {
pub fn HAL_WriteSerial(
port: HAL_SerialPort::Type,
buffer: *const ::std::os::raw::c_char,
count: i32,
status: *mut i32,
) -> i32;
}
extern "C" {
pub fn HAL_FlushSerial(port: HAL_SerialPort::Type, status: *mut i32);
}
extern "C" {
pub fn HAL_ClearSerial(port: HAL_SerialPort::Type, status: *mut i32);
}
extern "C" {
pub fn HAL_CloseSerial(port: HAL_SerialPort::Type, status: *mut i32);
}
extern "C" {
pub fn HAL_InitializeSolenoidPort(
portHandle: HAL_PortHandle,
status: *mut i32,
) -> HAL_SolenoidHandle;
}
extern "C" {
pub fn HAL_FreeSolenoidPort(solenoidPortHandle: HAL_SolenoidHandle);
}
extern "C" {
pub fn HAL_CheckSolenoidModule(module: i32) -> HAL_Bool;
}
extern "C" {
pub fn HAL_CheckSolenoidChannel(channel: i32) -> HAL_Bool;
}
extern "C" {
pub fn HAL_GetSolenoid(solenoidPortHandle: HAL_SolenoidHandle, status: *mut i32) -> HAL_Bool;
}
extern "C" {
pub fn HAL_GetAllSolenoids(module: i32, status: *mut i32) -> i32;
}
extern "C" {
pub fn HAL_SetSolenoid(
solenoidPortHandle: HAL_SolenoidHandle,
value: HAL_Bool,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_SetAllSolenoids(module: i32, state: i32, status: *mut i32);
}
extern "C" {
pub fn HAL_GetPCMSolenoidBlackList(module: i32, status: *mut i32) -> i32;
}
extern "C" {
pub fn HAL_GetPCMSolenoidVoltageStickyFault(module: i32, status: *mut i32) -> HAL_Bool;
}
extern "C" {
pub fn HAL_GetPCMSolenoidVoltageFault(module: i32, status: *mut i32) -> HAL_Bool;
}
extern "C" {
pub fn HAL_ClearAllPCMStickyFaults(module: i32, status: *mut i32);
}
extern "C" {
pub fn HAL_SetOneShotDuration(
solenoidPortHandle: HAL_SolenoidHandle,
durMS: i32,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_FireOneShot(solenoidPortHandle: HAL_SolenoidHandle, status: *mut i32);
}
pub mod HAL_RuntimeType {
pub type Type = i32;
pub const HAL_Athena: Type = 0;
pub const HAL_Mock: Type = 1;
}
extern "C" {
pub fn HAL_GetErrorMessage(code: i32) -> *const ::std::os::raw::c_char;
}
extern "C" {
pub fn HAL_GetFPGAVersion(status: *mut i32) -> i32;
}
extern "C" {
pub fn HAL_GetFPGARevision(status: *mut i32) -> i64;
}
extern "C" {
pub fn HAL_GetRuntimeType() -> HAL_RuntimeType::Type;
}
extern "C" {
pub fn HAL_GetFPGAButton(status: *mut i32) -> HAL_Bool;
}
extern "C" {
pub fn HAL_GetSystemActive(status: *mut i32) -> HAL_Bool;
}
extern "C" {
pub fn HAL_GetBrownedOut(status: *mut i32) -> HAL_Bool;
}
extern "C" {
pub fn HAL_BaseInitialize(status: *mut i32);
}
extern "C" {
pub fn HAL_GetPort(channel: i32) -> HAL_PortHandle;
}
extern "C" {
pub fn HAL_GetPortWithModule(module: i32, channel: i32) -> HAL_PortHandle;
}
extern "C" {
pub fn HAL_GetFPGATime(status: *mut i32) -> u64;
}
extern "C" {
pub fn HAL_Initialize(timeout: i32, mode: i32) -> HAL_Bool;
}
extern "C" {
pub fn HAL_Report(
resource: i32,
instanceNumber: i32,
context: i32,
feature: *const ::std::os::raw::c_char,
) -> i64;
}
pub mod HALUsageReporting_tResourceType {
pub type Type = u32;
pub const Controller: Type = 0;
pub const Module: Type = 1;
pub const Language: Type = 2;
pub const CANPlugin: Type = 3;
pub const Accelerometer: Type = 4;
pub const ADXL345: Type = 5;
pub const AnalogChannel: Type = 6;
pub const AnalogTrigger: Type = 7;
pub const AnalogTriggerOutput: Type = 8;
pub const CANJaguar: Type = 9;
pub const Compressor: Type = 10;
pub const Counter: Type = 11;
pub const Dashboard: Type = 12;
pub const DigitalInput: Type = 13;
pub const DigitalOutput: Type = 14;
pub const DriverStationCIO: Type = 15;
pub const DriverStationEIO: Type = 16;
pub const DriverStationLCD: Type = 17;
pub const Encoder: Type = 18;
pub const GearTooth: Type = 19;
pub const Gyro: Type = 20;
pub const I2C: Type = 21;
pub const Framework: Type = 22;
pub const Jaguar: Type = 23;
pub const Joystick: Type = 24;
pub const Kinect: Type = 25;
pub const KinectStick: Type = 26;
pub const PIDController: Type = 27;
pub const Preferences: Type = 28;
pub const PWM: Type = 29;
pub const Relay: Type = 30;
pub const RobotDrive: Type = 31;
pub const SerialPort: Type = 32;
pub const Servo: Type = 33;
pub const Solenoid: Type = 34;
pub const SPI: Type = 35;
pub const Task: Type = 36;
pub const Ultrasonic: Type = 37;
pub const Victor: Type = 38;
pub const Button: Type = 39;
pub const Command: Type = 40;
pub const AxisCamera: Type = 41;
pub const PCVideoServer: Type = 42;
pub const SmartDashboard: Type = 43;
pub const Talon: Type = 44;
pub const HiTechnicColorSensor: Type = 45;
pub const HiTechnicAccel: Type = 46;
pub const HiTechnicCompass: Type = 47;
pub const SRF08: Type = 48;
pub const AnalogOutput: Type = 49;
pub const VictorSP: Type = 50;
pub const PWMTalonSRX: Type = 51;
pub const CANTalonSRX: Type = 52;
pub const ADXL362: Type = 53;
pub const ADXRS450: Type = 54;
pub const RevSPARK: Type = 55;
pub const MindsensorsSD540: Type = 56;
pub const DigitalGlitchFilter: Type = 57;
pub const ADIS16448: Type = 58;
pub const PDP: Type = 59;
pub const PCM: Type = 60;
pub const PigeonIMU: Type = 61;
pub const NidecBrushless: Type = 62;
pub const CANifier: Type = 63;
pub const CTRE_future0: Type = 64;
pub const CTRE_future1: Type = 65;
pub const CTRE_future2: Type = 66;
pub const CTRE_future3: Type = 67;
pub const CTRE_future4: Type = 68;
pub const CTRE_future5: Type = 69;
pub const CTRE_future6: Type = 70;
pub const LinearFilter: Type = 71;
pub const XboxController: Type = 72;
pub const UsbCamera: Type = 73;
pub const NavX: Type = 74;
pub const Pixy: Type = 75;
pub const Pixy2: Type = 76;
pub const ScanseSweep: Type = 77;
pub const Shuffleboard: Type = 78;
pub const CAN: Type = 79;
pub const DigilentDMC60: Type = 80;
pub const PWMVictorSPX: Type = 81;
pub const RevSparkMaxPWM: Type = 82;
pub const RevSparkMaxCAN: Type = 83;
pub const ADIS16470: Type = 84;
}
pub mod HALUsageReporting_tInstances {
pub type Type = u32;
pub const kLanguage_LabVIEW: Type = 1;
pub const kLanguage_CPlusPlus: Type = 2;
pub const kLanguage_Java: Type = 3;
pub const kLanguage_Python: Type = 4;
pub const kLanguage_DotNet: Type = 5;
pub const kCANPlugin_BlackJagBridge: Type = 1;
pub const kCANPlugin_2CAN: Type = 2;
pub const kFramework_Iterative: Type = 1;
pub const kFramework_Simple: Type = 2;
pub const kFramework_CommandControl: Type = 3;
pub const kFramework_Timed: Type = 4;
pub const kFramework_ROS: Type = 5;
pub const kFramework_RobotBuilder: Type = 6;
pub const kRobotDrive_ArcadeStandard: Type = 1;
pub const kRobotDrive_ArcadeButtonSpin: Type = 2;
pub const kRobotDrive_ArcadeRatioCurve: Type = 3;
pub const kRobotDrive_Tank: Type = 4;
pub const kRobotDrive_MecanumPolar: Type = 5;
pub const kRobotDrive_MecanumCartesian: Type = 6;
pub const kRobotDrive2_DifferentialArcade: Type = 7;
pub const kRobotDrive2_DifferentialTank: Type = 8;
pub const kRobotDrive2_DifferentialCurvature: Type = 9;
pub const kRobotDrive2_MecanumCartesian: Type = 10;
pub const kRobotDrive2_MecanumPolar: Type = 11;
pub const kRobotDrive2_KilloughCartesian: Type = 12;
pub const kRobotDrive2_KilloughPolar: Type = 13;
pub const kDriverStationCIO_Analog: Type = 1;
pub const kDriverStationCIO_DigitalIn: Type = 2;
pub const kDriverStationCIO_DigitalOut: Type = 3;
pub const kDriverStationEIO_Acceleration: Type = 1;
pub const kDriverStationEIO_AnalogIn: Type = 2;
pub const kDriverStationEIO_AnalogOut: Type = 3;
pub const kDriverStationEIO_Button: Type = 4;
pub const kDriverStationEIO_LED: Type = 5;
pub const kDriverStationEIO_DigitalIn: Type = 6;
pub const kDriverStationEIO_DigitalOut: Type = 7;
pub const kDriverStationEIO_FixedDigitalOut: Type = 8;
pub const kDriverStationEIO_PWM: Type = 9;
pub const kDriverStationEIO_Encoder: Type = 10;
pub const kDriverStationEIO_TouchSlider: Type = 11;
pub const kADXL345_SPI: Type = 1;
pub const kADXL345_I2C: Type = 2;
pub const kCommand_Scheduler: Type = 1;
pub const kSmartDashboard_Instance: Type = 1;
}
pub mod HAL_EncoderIndexingType {
pub type Type = i32;
pub const HAL_kResetWhileHigh: Type = 0;
pub const HAL_kResetWhileLow: Type = 1;
pub const HAL_kResetOnFallingEdge: Type = 2;
pub const HAL_kResetOnRisingEdge: Type = 3;
}
pub mod HAL_EncoderEncodingType {
pub type Type = i32;
pub const HAL_Encoder_k1X: Type = 0;
pub const HAL_Encoder_k2X: Type = 1;
pub const HAL_Encoder_k4X: Type = 2;
}
extern "C" {
pub fn HAL_InitializeEncoder(
digitalSourceHandleA: HAL_Handle,
analogTriggerTypeA: HAL_AnalogTriggerType::Type,
digitalSourceHandleB: HAL_Handle,
analogTriggerTypeB: HAL_AnalogTriggerType::Type,
reverseDirection: HAL_Bool,
encodingType: HAL_EncoderEncodingType::Type,
status: *mut i32,
) -> HAL_EncoderHandle;
}
extern "C" {
pub fn HAL_FreeEncoder(encoderHandle: HAL_EncoderHandle, status: *mut i32);
}
extern "C" {
pub fn HAL_GetEncoder(encoderHandle: HAL_EncoderHandle, status: *mut i32) -> i32;
}
extern "C" {
pub fn HAL_GetEncoderRaw(encoderHandle: HAL_EncoderHandle, status: *mut i32) -> i32;
}
extern "C" {
pub fn HAL_GetEncoderEncodingScale(encoderHandle: HAL_EncoderHandle, status: *mut i32) -> i32;
}
extern "C" {
pub fn HAL_ResetEncoder(encoderHandle: HAL_EncoderHandle, status: *mut i32);
}
extern "C" {
pub fn HAL_GetEncoderPeriod(encoderHandle: HAL_EncoderHandle, status: *mut i32) -> f64;
}
extern "C" {
pub fn HAL_SetEncoderMaxPeriod(
encoderHandle: HAL_EncoderHandle,
maxPeriod: f64,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_GetEncoderStopped(encoderHandle: HAL_EncoderHandle, status: *mut i32) -> HAL_Bool;
}
extern "C" {
pub fn HAL_GetEncoderDirection(encoderHandle: HAL_EncoderHandle, status: *mut i32) -> HAL_Bool;
}
extern "C" {
pub fn HAL_GetEncoderDistance(encoderHandle: HAL_EncoderHandle, status: *mut i32) -> f64;
}
extern "C" {
pub fn HAL_GetEncoderRate(encoderHandle: HAL_EncoderHandle, status: *mut i32) -> f64;
}
extern "C" {
pub fn HAL_SetEncoderMinRate(encoderHandle: HAL_EncoderHandle, minRate: f64, status: *mut i32);
}
extern "C" {
pub fn HAL_SetEncoderDistancePerPulse(
encoderHandle: HAL_EncoderHandle,
distancePerPulse: f64,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_SetEncoderReverseDirection(
encoderHandle: HAL_EncoderHandle,
reverseDirection: HAL_Bool,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_SetEncoderSamplesToAverage(
encoderHandle: HAL_EncoderHandle,
samplesToAverage: i32,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_GetEncoderSamplesToAverage(
encoderHandle: HAL_EncoderHandle,
status: *mut i32,
) -> i32;
}
extern "C" {
pub fn HAL_SetEncoderIndexSource(
encoderHandle: HAL_EncoderHandle,
digitalSourceHandle: HAL_Handle,
analogTriggerType: HAL_AnalogTriggerType::Type,
type_: HAL_EncoderIndexingType::Type,
status: *mut i32,
);
}
extern "C" {
pub fn HAL_GetEncoderFPGAIndex(encoderHandle: HAL_EncoderHandle, status: *mut i32) -> i32;
}
extern "C" {
pub fn HAL_GetEncoderDecodingScaleFactor(
encoderHandle: HAL_EncoderHandle,
status: *mut i32,
) -> f64;
}
extern "C" {
pub fn HAL_GetEncoderDistancePerPulse(
encoderHandle: HAL_EncoderHandle,
status: *mut i32,
) -> f64;
}
extern "C" {
pub fn HAL_GetEncoderEncodingType(
encoderHandle: HAL_EncoderHandle,
status: *mut i32,
) -> HAL_EncoderEncodingType::Type;
}