Files
allwpilib/wpilibc/src/main/python/semiwrap/RobotBase.yml
2025-11-07 23:09:21 -08:00

63 lines
1.7 KiB
YAML

extra_includes:
- wpi/driverstation/DriverStation.hpp
- rpy/ControlWord.h
functions:
# TODO
RunHALInitialization:
ignore: true
RunRobot:
ignore: true
StartRobot:
ignore: true
ResetMotorSafety:
ignore: true
classes:
wpi::RobotBase:
attributes:
m_threadId:
ignore: true
connListenerHandle:
ignore: true
methods:
IsEnabled:
IsDisabled:
IsAutonomous:
IsAutonomousEnabled:
IsTeleop:
IsTeleopEnabled:
IsTest:
IsTestEnabled:
GetThreadId:
ignore: true
StartCompetition:
EndCompetition:
GetRuntimeType:
IsReal:
IsSimulation:
RobotBase:
inline_code: |
.def_static("main",
[](py::object robot_cls) -> py::object {
auto start = py::module::import("wpilib._impl.start");
auto starter = start.attr("RobotStarter")();
return starter.attr("run")(robot_cls);
},
py::arg("robot_cls"), py::doc("Starting point for the application"))
.def(
"getControlState",
[](RobotBase *self) -> std::tuple<bool, bool, bool> {
py::gil_scoped_release release;
return rpy::GetControlState();
},
py::doc("More efficient way to determine what state the robot is in.\n"
"\n"
":returns: booleans representing enabled, isautonomous, istest\n"
"\n"
".. versionadded:: 2019.2.1\n"
"\n"
".. note:: This function only exists in RobotPy\n"));
auto logger = py::module::import("logging").attr("getLogger")("robot");
cls_RobotBase.attr("logger") = logger;