WPILibC++  2018.4.1-20180921151738-1194-gf89274f
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
WPILib HAL API

Hardware Abstraction Layer to hardware or simulator. More...

Modules

 Relay Output Functions
 
 Notifier Functions
 
 I2C Functions
 
 Type Definitions
 
 Power Functions
 
 Analog Output Functions
 
 DIO Functions
 
 Analog Trigger Functions
 
 Threads Functions
 
 Analog Gyro Functions
 
 CAN API Functions
 
 SPI Functions
 
 CAN Stream Functions
 
 Error Defines
 
 Serial Port Functions
 
 Solenoid Output Functions
 
 Interrupts Functions
 
 Encoder Functions
 
 Accelerometer Functions
 
 PDP Functions
 Functions to control the Power Distribution Panel.
 
 Simulator Extensions
 HAL Simulator Extensions.
 
 PWM Output Functions
 
 Analog Input Functions
 
 Driver Station Functions
 
 Analog Accumulator Functions
 
 Counter Functions
 
 Compressor Functions
 
 Constants Functions
 
 Ports Functions
 

Functions

 HAL_ENUM (HAL_RuntimeType)
 
const char * HAL_GetErrorMessage (int32_t code)
 Gets the error message for a specific status code. More...
 
int32_t HAL_GetFPGAVersion (int32_t *status)
 Returns the FPGA Version number. More...
 
int64_t HAL_GetFPGARevision (int32_t *status)
 Returns the FPGA Revision number. More...
 
HAL_RuntimeType HAL_GetRuntimeType (void)
 
HAL_Bool HAL_GetFPGAButton (int32_t *status)
 Gets the state of the "USER" button on the roboRIO. More...
 
HAL_Bool HAL_GetSystemActive (int32_t *status)
 Gets if the system outputs are currently active. More...
 
HAL_Bool HAL_GetBrownedOut (int32_t *status)
 Gets if the system is in a browned out state. More...
 
void HAL_BaseInitialize (int32_t *status)
 The base HAL initialize function. More...
 
HAL_PortHandle HAL_GetPort (int32_t channel)
 Gets a port handle for a specific channel. More...
 
HAL_PortHandle HAL_GetPortWithModule (int32_t module, int32_t channel)
 Gets a port handle for a specific channel and module. More...
 
uint64_t HAL_GetFPGATime (int32_t *status)
 Reads the microsecond-resolution timer on the FPGA. More...
 
HAL_Bool HAL_Initialize (int32_t timeout, int32_t mode)
 Call this to start up HAL. More...
 
int64_t HAL_Report (int32_t resource, int32_t instanceNumber, int32_t context, const char *feature)
 Reports a hardware usage to the HAL. More...
 

Detailed Description

Hardware Abstraction Layer to hardware or simulator.

Function Documentation

void HAL_BaseInitialize ( int32_t *  status)

The base HAL initialize function.

Useful if you need to ensure the DS and base HAL functions (the ones above this declaration in HAL.h) are properly initialized. For normal programs and executables, please use HAL_Initialize.

This is mainly expected to be use from libraries that are expected to be used from LabVIEW, as it handles its own initialization for objects.

HAL_Bool HAL_GetBrownedOut ( int32_t *  status)

Gets if the system is in a browned out state.

Returns
true if the system is in a low voltage brown out, false otherwise
const char* HAL_GetErrorMessage ( int32_t  code)

Gets the error message for a specific status code.

Parameters
codethe status code
Returns
the error message for the code. This does not need to be freed.
HAL_Bool HAL_GetFPGAButton ( int32_t *  status)

Gets the state of the "USER" button on the roboRIO.

Returns
true if the button is currently pressed down
int64_t HAL_GetFPGARevision ( int32_t *  status)

Returns the FPGA Revision number.

The format of the revision is 3 numbers. The 12 most significant bits are the Major Revision. the next 8 bits are the Minor Revision. The 12 least significant bits are the Build Number.

Returns
FPGA Revision number.
uint64_t HAL_GetFPGATime ( int32_t *  status)

Reads the microsecond-resolution timer on the FPGA.

Returns
The current time in microseconds according to the FPGA (since FPGA reset).
int32_t HAL_GetFPGAVersion ( int32_t *  status)

Returns the FPGA Version number.

For now, expect this to be competition year.

Returns
FPGA Version number.
HAL_PortHandle HAL_GetPort ( int32_t  channel)

Gets a port handle for a specific channel.

The created handle does not need to be freed.

Parameters
channelthe channel number
Returns
the created port
HAL_PortHandle HAL_GetPortWithModule ( int32_t  module,
int32_t  channel 
)

Gets a port handle for a specific channel and module.

This is expected to be used for PCMs, as the roboRIO does not work with modules anymore.

The created handle does not need to be freed.

Parameters
modulethe module number
channelthe channel number
Returns
the created port
HAL_Bool HAL_GetSystemActive ( int32_t *  status)

Gets if the system outputs are currently active.

Returns
true if the system outputs are active, false if disabled
HAL_Bool HAL_Initialize ( int32_t  timeout,
int32_t  mode 
)

Call this to start up HAL.

This is required for robot programs.

This must be called before any other HAL functions. Failure to do so will result in undefined behavior, and likely segmentation faults. This means that any statically initialized variables in a program MUST call this function in their constructors if they want to use other HAL calls.

The common parameters are 500 for timeout and 0 for mode.

This function is safe to call from any thread, and as many times as you wish. It internally guards from any reentrancy.

The applicable modes are: 0: Try to kill an existing HAL from another program, if not successful, error. 1: Force kill a HAL from another program. 2: Just warn if another hal exists and cannot be killed. Will likely result in undefined behavior.

Parameters
timeoutthe initialization timeout (ms)
modethe initialization mode (see remarks)
Returns
true if initialization was successful, otherwise false.
int64_t HAL_Report ( int32_t  resource,
int32_t  instanceNumber,
int32_t  context,
const char *  feature 
)

Reports a hardware usage to the HAL.

Parameters
resourcethe used resource
instanceNumberthe instance of the resource
contexta user specified context index
featurea user specified feature string
Returns
the index of the added value in NetComm