WPILibC++  2019.3.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
hal Namespace Reference

WPILib Hardware Abstraction Layer (HAL) namespace. More...

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...
 
struct  HalCallbackListener
 
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  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  HAL_HandleEnum {
  Undefined = 0, DIO = 1, 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
}
 Enum of HAL handle types. More...
 

Functions

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...
 
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 determinstically set digital outputs. More...
 

Variables

constexpr int16_t InvalidHandleIndex = -1
 

Detailed Description

WPILib Hardware Abstraction Layer (HAL) namespace.

Enumeration Type Documentation

enum hal::HAL_HandleEnum
strong

Enum of HAL handle types.

Vendors/Teams should use Vendor (17).

Function Documentation

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.

Parameters
indexthe index
handleTypethe handle type
versionthe handle version
Returns
the created handle
HAL_PortHandle hal::createPortHandle ( uint8_t  channel,
uint8_t  module 
)

Create a port handle.

Parameters
channelthe channel
modulethe module
Returns
port handle for the module and channel
HAL_PortHandle hal::createPortHandleForSPI ( uint8_t  channel)

Create a port handle for SPI.

Parameters
channelthe SPI channel
Returns
port handle for the channel
template<typename Functor >
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 determinstically set digital outputs.

This function holds the DIO lock, so calling anyting other then functions on the Proxy object passed as a parameter can deadlock your program.

Parameters
handlethe HAL digital handle of the pin to toggle.
statusstatus check
funcA functor taking a ref to a DIOSetProxy object.