10#include <initializer_list>
92 const char* name, int32_t direction,
121 int32_t initialValue) {
141 int64_t initialValue) {
161 double initialValue) {
183 const char* name, int32_t direction,
185 const char** options,
186 int32_t initialValue);
207 int32_t numOptions,
const char** options,
const double* optionValues,
208 int32_t initialValue);
805 int64_t initialValue) {
821 double initialValue) {
840 std::initializer_list<const char*> options,
841 int32_t initialValue) {
843 const_cast<const char**
>(options.begin()),
862 std::span<const char* const> options,
863 int32_t initialValue) {
865 const_cast<const char**
>(options.data()),
886 std::initializer_list<const char*> options,
887 std::initializer_list<double> optionValues,
888 int32_t initialValue) {
889 if (options.size() != optionValues.size()) {
893 m_handle, name, direction, options.size(),
894 const_cast<const char**
>(options.begin()), optionValues.begin(),
915 std::span<const char* const> options,
916 std::span<const double> optionValues,
917 int32_t initialValue) {
918 if (options.size() != optionValues.size()) {
922 m_handle, name, direction, options.size(),
923 const_cast<const char**
>(options.data()), optionValues.data(),
struct HAL_Value HAL_MakeBoolean(HAL_Bool v)
Build a HAL boolean value.
Definition Value.h:46
struct HAL_Value HAL_MakeDouble(double v)
Build a HAL double value.
Definition Value.h:98
struct HAL_Value HAL_MakeEnum(int v)
Build a HAL enum value.
Definition Value.h:59
struct HAL_Value HAL_MakeInt(int v)
Build a HAL int value.
Definition Value.h:72
struct HAL_Value HAL_MakeLong(int64_t v)
Build a HAL long value.
Definition Value.h:85
@ HAL_DOUBLE
Double.
Definition Value.h:16
@ HAL_LONG
Long.
Definition Value.h:22
@ HAL_BOOLEAN
Boolean.
Definition Value.h:14
@ HAL_INT
Int.
Definition Value.h:20
C++ wrapper around a HAL simulator boolean value handle.
Definition SimDevice.h:611
void Set(bool value)
Sets the simulated value.
Definition SimDevice.h:639
bool Get() const
Gets the simulated value.
Definition SimDevice.h:632
SimBoolean()=default
Default constructor that results in an "empty" object that is false in a boolean context.
SimBoolean(HAL_SimValueHandle val)
Wraps a simulated value handle as returned by HAL_CreateSimValueBoolean().
Definition SimDevice.h:624
A move-only C++ wrapper around a HAL simulator device handle.
Definition SimDevice.h:645
SimDouble CreateDouble(const char *name, int32_t direction, double initialValue)
Creates a double value on the simulated device.
Definition SimDevice.h:820
SimLong CreateLong(const char *name, int32_t direction, int64_t initialValue)
Creates a long value on the simulated device.
Definition SimDevice.h:804
SimDevice & operator=(const SimDevice &)=delete
HAL_SimDeviceHandle m_handle
Definition SimDevice.h:944
~SimDevice()
Definition SimDevice.h:719
SimInt CreateInt(const char *name, int32_t direction, int32_t initialValue)
Creates an int value on the simulated device.
Definition SimDevice.h:789
SimEnum CreateEnum(const char *name, int32_t direction, std::span< const char *const > options, int32_t initialValue)
Creates an enumerated value on the simulated device.
Definition SimDevice.h:861
SimDevice(const SimDevice &)=delete
SimEnum CreateEnumDouble(const char *name, int32_t direction, std::span< const char *const > options, std::span< const double > optionValues, int32_t initialValue)
Creates an enumerated value on the simulated device with double values.
Definition SimDevice.h:914
std::string GetName() const
Get the name of the simulated device.
Definition SimDevice.h:758
SimDevice & operator=(SimDevice &&rhs)
Definition SimDevice.h:732
SimBoolean CreateBoolean(const char *name, int32_t direction, bool initialValue)
Creates a boolean value on the simulated device.
Definition SimDevice.h:938
SimDevice(const char *name, int index)
Creates a simulated device.
SimDevice(const char *name)
Creates a simulated device.
Definition SimDevice.h:678
SimDevice(SimDevice &&rhs)
Definition SimDevice.h:728
SimEnum CreateEnum(const char *name, int32_t direction, std::initializer_list< const char * > options, int32_t initialValue)
Creates an enumerated value on the simulated device.
Definition SimDevice.h:839
Direction
Direction of a simulated value (from the perspective of user code).
Definition SimDevice.h:650
@ kInput
Definition SimDevice.h:651
@ kBidir
Definition SimDevice.h:653
@ kOutput
Definition SimDevice.h:652
SimValue CreateValue(const char *name, int32_t direction, const HAL_Value &initialValue)
Creates a value on the simulated device.
Definition SimDevice.h:773
SimEnum CreateEnumDouble(const char *name, int32_t direction, std::initializer_list< const char * > options, std::initializer_list< double > optionValues, int32_t initialValue)
Creates an enumerated value on the simulated device with double values.
Definition SimDevice.h:885
SimDevice()=default
Default constructor that results in an "empty" object that is false in a boolean context.
SimDevice(const char *name, int index, int channel)
Creates a simulated device.
C++ wrapper around a HAL simulator double value handle.
Definition SimDevice.h:536
void Set(double value)
Sets the simulated value.
Definition SimDevice.h:564
void Reset()
Resets the simulated value to 0.
Definition SimDevice.h:571
SimDouble()=default
Default constructor that results in an "empty" object that is false in a boolean context.
SimDouble(HAL_SimValueHandle val)
Wraps a simulated value handle as returned by HAL_CreateSimValueDouble().
Definition SimDevice.h:549
double Get() const
Gets the simulated value.
Definition SimDevice.h:557
C++ wrapper around a HAL simulator enum value handle.
Definition SimDevice.h:577
SimEnum()=default
Default constructor that results in an "empty" object that is false in a boolean context.
int32_t Get() const
Gets the simulated value.
Definition SimDevice.h:598
void Set(int32_t value)
Sets the simulated value.
Definition SimDevice.h:605
SimEnum(HAL_SimValueHandle val)
Wraps a simulated value handle as returned by HAL_CreateSimValueEnum().
Definition SimDevice.h:590
C++ wrapper around a HAL simulator int value handle.
Definition SimDevice.h:454
SimInt()=default
Default constructor that results in an "empty" object that is false in a boolean context.
void Set(int32_t value)
Sets the simulated value.
Definition SimDevice.h:482
void Reset()
Resets the simulated value to 0.
Definition SimDevice.h:489
int32_t Get() const
Gets the simulated value.
Definition SimDevice.h:475
SimInt(HAL_SimValueHandle val)
Wraps a simulated value handle as returned by HAL_CreateSimValueInt().
Definition SimDevice.h:467
C++ wrapper around a HAL simulator long value handle.
Definition SimDevice.h:495
int64_t Get() const
Gets the simulated value.
Definition SimDevice.h:516
void Reset()
Resets the simulated value to 0.
Definition SimDevice.h:530
SimLong()=default
Default constructor that results in an "empty" object that is false in a boolean context.
SimLong(HAL_SimValueHandle val)
Wraps a simulated value handle as returned by HAL_CreateSimValueLong().
Definition SimDevice.h:508
void Set(int64_t value)
Sets the simulated value.
Definition SimDevice.h:523
C++ wrapper around a HAL simulator value handle.
Definition SimDevice.h:402
SimValue()=default
Default constructor that results in an "empty" object that is false in a boolean context.
void SetValue(const HAL_Value &value)
Sets the simulated value.
Definition SimDevice.h:445
HAL_Value GetValue() const
Gets the simulated value.
Definition SimDevice.h:438
HAL_SimValueHandle m_handle
Definition SimDevice.h:448
SimValue(HAL_SimValueHandle val)
Wraps a simulated value handle as returned by HAL_CreateSimValue().
Definition SimDevice.h:415
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.
HAL_SimValueHandle HAL_CreateSimValueInt(HAL_SimDeviceHandle device, const char *name, int32_t direction, int32_t initialValue)
Creates an int value on a simulated device.
Definition SimDevice.h:118
double HAL_GetSimValueDouble(HAL_SimValueHandle handle)
Gets a simulated value (double).
Definition SimDevice.h:278
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.
int32_t HAL_GetSimValueEnum(HAL_SimValueHandle handle)
Gets a simulated value (enum).
Definition SimDevice.h:290
HAL_SimValueHandle HAL_CreateSimValueBoolean(HAL_SimDeviceHandle device, const char *name, int32_t direction, HAL_Bool initialValue)
Creates a boolean value on a simulated device.
Definition SimDevice.h:222
void HAL_SetSimValueEnum(HAL_SimValueHandle handle, int32_t value)
Sets a simulated value (enum).
Definition SimDevice.h:363
void HAL_SetSimValueDouble(HAL_SimValueHandle handle, double value)
Sets a simulated value (double).
Definition SimDevice.h:352
void HAL_FreeSimDevice(HAL_SimDeviceHandle handle)
Frees a simulated device.
void HAL_SetSimValue(HAL_SimValueHandle handle, const struct HAL_Value *value)
Sets a simulated value.
void HAL_SetSimValueLong(HAL_SimValueHandle handle, int64_t value)
Sets a simulated value (long).
Definition SimDevice.h:341
HAL_SimDeviceHandle HAL_CreateSimDevice(const char *name)
Creates a simulated device.
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.
HAL_SimValueHandle HAL_CreateSimValueDouble(HAL_SimDeviceHandle device, const char *name, int32_t direction, double initialValue)
Creates a double value on a simulated device.
Definition SimDevice.h:158
HAL_SimValueHandle HAL_CreateSimValueLong(HAL_SimDeviceHandle device, const char *name, int32_t direction, int64_t initialValue)
Creates a long value on a simulated device.
Definition SimDevice.h:138
void HAL_SetSimValueInt(HAL_SimValueHandle handle, int value)
Sets a simulated value (int).
Definition SimDevice.h:330
HAL_SimValueDirection
Direction of a simulated value (from the perspective of user code).
Definition SimDevice.h:33
HAL_Bool HAL_GetSimValueBoolean(HAL_SimValueHandle handle)
Gets a simulated value (boolean).
Definition SimDevice.h:302
void HAL_GetSimValue(HAL_SimValueHandle handle, struct HAL_Value *value)
Gets a simulated value.
int64_t HAL_GetSimValueLong(HAL_SimValueHandle handle)
Gets a simulated value (long).
Definition SimDevice.h:266
const char * HAL_GetSimDeviceName(HAL_SimDeviceHandle handle)
Get the name of a simulated device.
void HAL_SetSimValueBoolean(HAL_SimValueHandle handle, HAL_Bool value)
Sets a simulated value (boolean).
Definition SimDevice.h:374
int32_t HAL_GetSimValueInt(HAL_SimValueHandle handle)
Gets a simulated value (int).
Definition SimDevice.h:254
void HAL_ResetSimValue(HAL_SimValueHandle handle)
Resets a simulated double or integral value to 0.
@ HAL_SimValueBidir
bidirectional between user code and simulator
Definition SimDevice.h:36
@ HAL_SimValueOutput
output from user code to the simulator
Definition SimDevice.h:35
@ HAL_SimValueInput
input to user code from the simulator
Definition SimDevice.h:34
int32_t HAL_Bool
Definition Types.h:73
HAL_Handle HAL_SimDeviceHandle
Definition Types.h:53
#define HAL_ENUM(name)
Definition Types.h:76
HAL_Handle HAL_SimValueHandle
Definition Types.h:55
#define HAL_kInvalidHandle
Definition Types.h:15
WPILib Hardware Abstraction Layer (HAL) namespace.
Definition InterruptManager.h:13
HAL Entry Value.
Definition Value.h:26
union HAL_Value::@76 data
double v_double
Definition Value.h:32
int64_t v_long
Definition Value.h:31
HAL_Bool v_boolean
Definition Value.h:28
int32_t v_int
Definition Value.h:30
enum HAL_Type type
Definition Value.h:34
int32_t v_enum
Definition Value.h:29