mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-20 00:51:42 +00:00
- GenericHID is now concrete, and has only getRawAxis/Button(int) functionality - getXxx() has been moved into Joystick as that's the only place where it makes sense - Hand (and therefore getXxx(Hand)) has been removed, replaced by specific getLeft/RightXxx() methods in XboxController and the new PS4Controller class - C++ ::Button:: and ::Axis:: enums have been converted to identically-namespaced static constexpr ints
40 lines
2.0 KiB
C
40 lines
2.0 KiB
C
// Copyright (c) FIRST and other WPILib contributors.
|
|
// Open Source Software; you can modify and/or share it under the terms of
|
|
// the WPILib BSD license file in the root directory of this project.
|
|
|
|
#pragma once
|
|
|
|
#define AXIS_TEST(JoystickType, AxisName) \
|
|
TEST(JoystickType##Test, Get##AxisName) { \
|
|
JoystickType joy{2}; \
|
|
sim::JoystickType##Sim joysim{joy}; \
|
|
joysim.Set##AxisName(0.35); \
|
|
joysim.NotifyNewData(); \
|
|
ASSERT_NEAR(joy.Get##AxisName(), 0.35, 0.001); \
|
|
}
|
|
|
|
#define BUTTON_TEST(JoystickType, ButtonName) \
|
|
TEST(JoystickType##Test, Get##ButtonName) { \
|
|
JoystickType joy{1}; \
|
|
sim::JoystickType##Sim joysim{joy}; \
|
|
\
|
|
joysim.Set##ButtonName(false); \
|
|
joysim.NotifyNewData(); \
|
|
ASSERT_FALSE(joy.Get##ButtonName()); \
|
|
/* need to call pressed and released to clear flags */ \
|
|
joy.Get##ButtonName##Pressed(); \
|
|
joy.Get##ButtonName##Released(); \
|
|
\
|
|
joysim.Set##ButtonName(true); \
|
|
joysim.NotifyNewData(); \
|
|
ASSERT_TRUE(joy.Get##ButtonName()); \
|
|
ASSERT_TRUE(joy.Get##ButtonName##Pressed()); \
|
|
ASSERT_FALSE(joy.Get##ButtonName##Released()); \
|
|
\
|
|
joysim.Set##ButtonName(false); \
|
|
joysim.NotifyNewData(); \
|
|
ASSERT_FALSE(joy.Get##ButtonName()); \
|
|
ASSERT_FALSE(joy.Get##ButtonName##Pressed()); \
|
|
ASSERT_TRUE(joy.Get##ButtonName##Released()); \
|
|
}
|