WPILibC++ 2023.4.3-108-ge5452e3
|
HAL Simulator Device Framework. More...
Enumerations | |
enum | HAL_SimValueDirection : int32_t { HAL_SimValueInput = 0 , HAL_SimValueOutput , HAL_SimValueBidir } |
Direction of a simulated value (from the perspective of user code). More... | |
Functions | |
HAL_SimDeviceHandle | HAL_CreateSimDevice (const char *name) |
Creates a simulated device. More... | |
void | HAL_FreeSimDevice (HAL_SimDeviceHandle handle) |
Frees a simulated device. More... | |
const char * | HAL_GetSimDeviceName (HAL_SimDeviceHandle handle) |
Get the name of a simulated device. More... | |
HAL_SimValueHandle | HAL_CreateSimValue (HAL_SimDeviceHandle device, const char *name, int32_t direction, const struct HAL_Value *initialValue) |
Creates a value on a simulated device. More... | |
HAL_SimValueHandle | HAL_CreateSimValue (HAL_SimDeviceHandle device, const char *name, int32_t direction, const HAL_Value &initialValue) |
HAL_SimValueHandle | HAL_CreateSimValueInt (HAL_SimDeviceHandle device, const char *name, int32_t direction, int32_t initialValue) |
Creates an int value on a simulated device. More... | |
HAL_SimValueHandle | HAL_CreateSimValueLong (HAL_SimDeviceHandle device, const char *name, int32_t direction, int64_t initialValue) |
Creates a long value on a simulated device. More... | |
HAL_SimValueHandle | HAL_CreateSimValueDouble (HAL_SimDeviceHandle device, const char *name, int32_t direction, double initialValue) |
Creates a double value on a simulated device. More... | |
HAL_SimValueHandle | HAL_CreateSimValueEnum (HAL_SimDeviceHandle device, const char *name, int32_t direction, int32_t numOptions, const char **options, int32_t initialValue) |
Creates an enumerated value on a simulated device. More... | |
HAL_SimValueHandle | HAL_CreateSimValueEnumDouble (HAL_SimDeviceHandle device, const char *name, int32_t direction, int32_t numOptions, const char **options, const double *optionValues, int32_t initialValue) |
Creates an enumerated value on a simulated device with double values. More... | |
HAL_SimValueHandle | HAL_CreateSimValueBoolean (HAL_SimDeviceHandle device, const char *name, int32_t direction, HAL_Bool initialValue) |
Creates a boolean value on a simulated device. More... | |
void | HAL_GetSimValue (HAL_SimValueHandle handle, struct HAL_Value *value) |
Gets a simulated value. More... | |
HAL_Value | HAL_GetSimValue (HAL_SimValueHandle handle) |
int32_t | HAL_GetSimValueInt (HAL_SimValueHandle handle) |
Gets a simulated value (int). More... | |
int64_t | HAL_GetSimValueLong (HAL_SimValueHandle handle) |
Gets a simulated value (long). More... | |
double | HAL_GetSimValueDouble (HAL_SimValueHandle handle) |
Gets a simulated value (double). More... | |
int32_t | HAL_GetSimValueEnum (HAL_SimValueHandle handle) |
Gets a simulated value (enum). More... | |
HAL_Bool | HAL_GetSimValueBoolean (HAL_SimValueHandle handle) |
Gets a simulated value (boolean). More... | |
void | HAL_SetSimValue (HAL_SimValueHandle handle, const struct HAL_Value *value) |
Sets a simulated value. More... | |
void | HAL_SetSimValue (HAL_SimValueHandle handle, const HAL_Value &value) |
void | HAL_SetSimValueInt (HAL_SimValueHandle handle, int value) |
Sets a simulated value (int). More... | |
void | HAL_SetSimValueLong (HAL_SimValueHandle handle, int64_t value) |
Sets a simulated value (long). More... | |
void | HAL_SetSimValueDouble (HAL_SimValueHandle handle, double value) |
Sets a simulated value (double). More... | |
void | HAL_SetSimValueEnum (HAL_SimValueHandle handle, int32_t value) |
Sets a simulated value (enum). More... | |
void | HAL_SetSimValueBoolean (HAL_SimValueHandle handle, HAL_Bool value) |
Sets a simulated value (boolean). More... | |
void | HAL_ResetSimValue (HAL_SimValueHandle handle) |
Resets a simulated double or integral value to 0. More... | |
HAL Simulator Device Framework.
This enables creating simulation-only variables for higher level device access. For example, a device such as a SPI gyro can expose angle and rate variables to enable direct access from simulation extensions or user test code instead of requiring that the SPI bit-level protocol be implemented in simulation code.
enum HAL_SimValueDirection : int32_t |
HAL_SimDeviceHandle HAL_CreateSimDevice | ( | const char * | name | ) |
Creates a simulated device.
The device name must be unique. 0 is returned if the device name already exists. If multiple instances of the same device are desired, recommend appending the instance/unique identifier in brackets to the base name, e.g. "device[1]".
0 is returned if not in simulation.
name | device name |
|
inline |
HAL_SimValueHandle HAL_CreateSimValue | ( | HAL_SimDeviceHandle | device, |
const char * | name, | ||
int32_t | direction, | ||
const struct HAL_Value * | initialValue | ||
) |
Creates a value on a simulated device.
Returns 0 if not in simulation; this can be used to avoid calls to Set/Get functions.
device | simulated device handle |
name | value name |
direction | input/output/bidir (from perspective of user code) |
initialValue | initial value |
|
inline |
Creates a boolean value on a simulated device.
Returns 0 if not in simulation; this can be used to avoid calls to Set/Get functions.
device | simulated device handle |
name | value name |
direction | input/output/bidir (from perspective of user code) |
initialValue | initial value |
|
inline |
Creates a double value on a simulated device.
Returns 0 if not in simulation; this can be used to avoid calls to Set/Get functions.
device | simulated device handle |
name | value name |
direction | input/output/bidir (from perspective of user code) |
initialValue | initial value |
HAL_SimValueHandle HAL_CreateSimValueEnum | ( | HAL_SimDeviceHandle | device, |
const char * | name, | ||
int32_t | direction, | ||
int32_t | numOptions, | ||
const char ** | options, | ||
int32_t | initialValue | ||
) |
Creates an enumerated value on a simulated device.
Enumerated values are always in the range 0 to numOptions-1.
Returns 0 if not in simulation; this can be used to avoid calls to Set/Get functions.
device | simulated device handle |
name | value name |
direction | input/output/bidir (from perspective of user code) |
numOptions | number of enumerated value options (length of options) |
options | array of option descriptions |
initialValue | initial value (selection) |
HAL_SimValueHandle HAL_CreateSimValueEnumDouble | ( | HAL_SimDeviceHandle | device, |
const char * | name, | ||
int32_t | direction, | ||
int32_t | numOptions, | ||
const char ** | options, | ||
const double * | optionValues, | ||
int32_t | initialValue | ||
) |
Creates an enumerated value on a simulated device with double values.
Enumerated values are always in the range 0 to numOptions-1.
Returns 0 if not in simulation; this can be used to avoid calls to Set/Get functions.
device | simulated device handle |
name | value name |
direction | input/output/bidir (from perspective of user code) |
numOptions | number of enumerated value options (length of options) |
options | array of option descriptions |
optionValues | array of option double values |
initialValue | initial value (selection) |
|
inline |
Creates an int value on a simulated device.
Returns 0 if not in simulation; this can be used to avoid calls to Set/Get functions.
device | simulated device handle |
name | value name |
direction | input/output/bidir (from perspective of user code) |
initialValue | initial value |
|
inline |
Creates a long value on a simulated device.
Returns 0 if not in simulation; this can be used to avoid calls to Set/Get functions.
device | simulated device handle |
name | value name |
direction | input/output/bidir (from perspective of user code) |
initialValue | initial value |
void HAL_FreeSimDevice | ( | HAL_SimDeviceHandle | handle | ) |
Frees a simulated device.
This also allows the same device name to be used again. This also frees all the simulated values created on the device.
handle | simulated device handle |
const char * HAL_GetSimDeviceName | ( | HAL_SimDeviceHandle | handle | ) |
Get the name of a simulated device.
handle | simulated device handle |
|
inline |
void HAL_GetSimValue | ( | HAL_SimValueHandle | handle, |
struct HAL_Value * | value | ||
) |
Gets a simulated value.
handle | simulated value handle |
value | value (output parameter) |
|
inline |
Gets a simulated value (boolean).
handle | simulated value handle |
|
inline |
Gets a simulated value (double).
handle | simulated value handle |
|
inline |
Gets a simulated value (enum).
handle | simulated value handle |
|
inline |
Gets a simulated value (int).
handle | simulated value handle |
|
inline |
Gets a simulated value (long).
handle | simulated value handle |
void HAL_ResetSimValue | ( | HAL_SimValueHandle | handle | ) |
Resets a simulated double or integral value to 0.
Has no effect on other value types. Use this instead of Set(0) for resetting incremental sensor values like encoder counts or gyro accumulated angle to ensure correct behavior in a distributed system (e.g. WebSockets).
handle | simulated value handle |
|
inline |
void HAL_SetSimValue | ( | HAL_SimValueHandle | handle, |
const struct HAL_Value * | value | ||
) |
Sets a simulated value.
handle | simulated value handle |
value | the value to set |
|
inline |
Sets a simulated value (boolean).
handle | simulated value handle |
value | the value to set |
|
inline |
Sets a simulated value (double).
handle | simulated value handle |
value | the value to set |
|
inline |
Sets a simulated value (enum).
handle | simulated value handle |
value | the value to set |
|
inline |
Sets a simulated value (int).
handle | simulated value handle |
value | the value to set |
|
inline |
Sets a simulated value (long).
handle | simulated value handle |
value | the value to set |