WPILibC++ 2023.4.3
|
WPILib Hardware Abstraction Layer (HAL) namespace. More...
Namespaces | |
namespace | detail |
namespace | impl |
Classes | |
class | DigitalHandleResource |
The DigitalHandleResource class is a way to track handles. More... | |
struct | DIOSetProxy |
Proxy class for directly manipulating the DIO pins. More... | |
class | fpga_clock |
A std::chrono compatible wrapper around the FPGA Timer. More... | |
class | HandleBase |
Base for all HAL Handles. More... | |
class | IndexedClassedHandleResource |
The IndexedClassedHandleResource class is a way to track handles. More... | |
class | IndexedHandleResource |
The IndexedHandleResource class is a way to track handles. More... | |
class | InterruptManager |
class | LimitedClassedHandleResource |
The LimitedClassedHandleResource class is a way to track handles. More... | |
class | LimitedHandleResource |
The LimitedHandleResource class is a way to track handles. More... | |
class | SerialHelper |
A class for deterministically getting information about Serial Ports. More... | |
class | SimCallbackRegistry |
Simulation callback registry. More... | |
class | SimDataValue |
Simulation data value wrapper. More... | |
class | UnlimitedHandleResource |
The UnlimitedHandleResource class is a way to track handles. More... | |
Enumerations | |
enum class | HAL_HandleEnum { Undefined = 0 , DIO = wpi::kHandleTypeHALBase , Port = 2 , Notifier = 3 , Interrupt = 4 , AnalogOutput = 5 , AnalogInput = 6 , AnalogTrigger = 7 , Relay = 8 , PWM = 9 , DigitalPWM = 10 , Counter = 11 , FPGAEncoder = 12 , Encoder = 13 , Compressor = 14 , Solenoid = 15 , AnalogGyro = 16 , Vendor = 17 , SimulationJni = 18 , CAN = 19 , SerialPort = 20 , DutyCycle = 21 , DMA = 22 , AddressableLED = 23 , CTREPCM = 24 , CTREPDP = 25 , REVPDH = 26 , REVPH = 27 } |
Enum of HAL handle types. More... | |
Functions | |
template<typename Functor > | |
void | UnsafeManipulateDIO (HAL_DigitalHandle handle, int32_t *status, Functor func) |
Unsafe digital output set function This function can be used to perform fast and deterministically set digital outputs. More... | |
static int16_t | getHandleIndex (HAL_Handle handle) |
Get the handle index from a handle. More... | |
static HAL_HandleEnum | getHandleType (HAL_Handle handle) |
Get the handle type from a handle. More... | |
static bool | isHandleType (HAL_Handle handle, HAL_HandleEnum handleType) |
Get if the handle is a specific type. More... | |
static bool | isHandleCorrectVersion (HAL_Handle handle, int16_t version) |
Get if the version of the handle is correct. More... | |
int16_t | getHandleTypedIndex (HAL_Handle handle, HAL_HandleEnum enumType, int16_t version) |
Get if the handle is a correct type and version. More... | |
int16_t | getPortHandleChannel (HAL_PortHandle handle) |
Gets the port channel of a port handle. More... | |
int16_t | getPortHandleModule (HAL_PortHandle handle) |
Gets the port module of a port handle. More... | |
int16_t | getPortHandleSPIEnable (HAL_PortHandle handle) |
Gets the SPI channel of a port handle. More... | |
HAL_PortHandle | createPortHandle (uint8_t channel, uint8_t module) |
Create a port handle. More... | |
HAL_PortHandle | createPortHandleForSPI (uint8_t channel) |
Create a port handle for SPI. More... | |
HAL_Handle | createHandle (int16_t index, HAL_HandleEnum handleType, int16_t version) |
Create a handle for a specific index, type and version. More... | |
Variables | |
constexpr int16_t | InvalidHandleIndex = -1 |
WPILib Hardware Abstraction Layer (HAL) namespace.
|
strong |
Enum of HAL handle types.
Vendors/Teams should use Vendor (17).
HAL_Handle hal::createHandle | ( | int16_t | index, |
HAL_HandleEnum | handleType, | ||
int16_t | version | ||
) |
Create a handle for a specific index, type and version.
Note the version is not checked on the roboRIO.
index | the index |
handleType | the handle type |
version | the handle version |
HAL_PortHandle hal::createPortHandle | ( | uint8_t | channel, |
uint8_t | module | ||
) |
Create a port handle.
channel | the channel |
module | the module |
HAL_PortHandle hal::createPortHandleForSPI | ( | uint8_t | channel | ) |
Create a port handle for SPI.
channel | the SPI channel |
|
inlinestatic |
Get the handle index from a handle.
handle | the handle |
|
inlinestatic |
Get the handle type from a handle.
handle | the handle |
|
inline |
Get if the handle is a correct type and version.
Note the version is not checked on the roboRIO.
handle | the handle |
enumType | the type to check |
version | the handle version to check |
|
inline |
Gets the port channel of a port handle.
handle | the port handle |
|
inline |
Gets the port module of a port handle.
handle | the port handle |
|
inline |
Gets the SPI channel of a port handle.
handle | the port handle |
|
inlinestatic |
Get if the version of the handle is correct.
Do not use on the roboRIO, used specifically for the sim to handle resets.
handle | the handle |
version | the handle version to check |
|
inlinestatic |
Get if the handle is a specific type.
handle | the handle |
handleType | the type to check |
void hal::UnsafeManipulateDIO | ( | HAL_DigitalHandle | handle, |
int32_t * | status, | ||
Functor | func | ||
) |
Unsafe digital output set function This function can be used to perform fast and deterministically set digital outputs.
This function holds the DIO lock, so calling anything other then functions on the Proxy object passed as a parameter can deadlock your program.
[in] | handle | the HAL digital handle of the pin to toggle. |
[out] | status | status check |
[in] | func | A functor taking a ref to a DIOSetProxy object. |
|
constexpr |