Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions marinholab/sas/core/_core.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,9 @@ class RobotDriver:
def get_joint_limits(self) -> tuple[np.ndarray, np.ndarray]: ...
def set_joint_limits(self, joint_limits: tuple[np.ndarray, np.ndarray]) -> None: ...

def get_tool_gpio(self) -> list[bool]: ...
def set_tool_gpio(self, tool_gpio: list[bool]) -> None: ...

def watchdog_start(self, period: timedelta) -> None: ...
def watchdog_trigger(
self,
Expand Down
27 changes: 27 additions & 0 deletions src/sas_robot_driver_py.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@
#
# #################################################################
# Contributors:
#
# 1. Erwin Lopez (erwin.lopez@manchester.ac.uk)
# Added bindings for tool gpio
#*/

/**
Expand Down Expand Up @@ -129,6 +132,27 @@ class RobotDriverPy: public RobotDriver, public py::trampoline_self_life_support
);
}

std::array<bool, 2> get_tool_gpio() override
{
// The return type contains a comma, so it must be wrapped in
// PYBIND11_TYPE(...) to keep the macro's argument list intact.
PYBIND11_OVERRIDE(
PYBIND11_TYPE(std::array<bool, 2>),
RobotDriver,
get_tool_gpio,
);
}

void set_tool_gpio(const std::array<bool, 2>& tool_gpio) override
{
PYBIND11_OVERRIDE(
void,
RobotDriver,
set_tool_gpio,
tool_gpio
);
}

void connect() override
{
PYBIND11_OVERRIDE_PURE(
Expand Down Expand Up @@ -188,6 +212,9 @@ void init_sas_robot_driver_py(py::module_& m)
c.def("get_joint_limits", &RobotDriver::get_joint_limits, "");
c.def("set_joint_limits", &RobotDriver::set_joint_limits, "");

c.def("get_tool_gpio", &RobotDriver::get_tool_gpio, "");
c.def("set_tool_gpio", &RobotDriver::set_tool_gpio, "");

c.def("watchdog_start", &RobotDriver::watchdog_start, "");
c.def("watchdog_trigger", &RobotDriver::watchdog_trigger, "");
c.def("watchdog_set_maximum_acceptable_delay", &RobotDriver::watchdog_set_maximum_acceptable_delay, "");
Expand Down