From b1d82c2be6e00e09690f1280d35066648ddf1d54 Mon Sep 17 00:00:00 2001 From: Tristan Schnell Date: Tue, 9 Apr 2019 10:15:30 +0200 Subject: [PATCH] Added and implemented rtde message types --- CMakeLists.txt | 7 +++ .../ur_rtde_driver/primary/primary_package.h | 1 - .../rtde/control_package_pause.h | 59 +++++++++++++++++ .../rtde/control_package_setup_inputs.h | 62 ++++++++++++++++++ .../rtde/control_package_setup_outputs.h | 63 +++++++++++++++++++ .../rtde/control_package_start.h | 59 +++++++++++++++++ include/ur_rtde_driver/rtde/data_package.h | 2 +- .../rtde/get_urcontrol_version.h | 62 ++++++++++++++++++ .../rtde/request_protocol_version.h | 61 ++++++++++++++++++ include/ur_rtde_driver/rtde/rtde_package.h | 2 +- include/ur_rtde_driver/rtde/text_message.h | 13 +++- src/rtde/control_package_pause.cpp | 48 ++++++++++++++ src/rtde/control_package_setup_inputs.cpp | 50 +++++++++++++++ src/rtde/control_package_setup_outputs.cpp | 50 +++++++++++++++ src/rtde/control_package_start.cpp | 48 ++++++++++++++ src/rtde/get_urcontrol_version.cpp | 52 +++++++++++++++ src/rtde/request_protocol_version.cpp | 45 +++++++++++++ src/rtde/text_message.cpp | 54 ++++++++++++++++ 18 files changed, 733 insertions(+), 5 deletions(-) create mode 100644 include/ur_rtde_driver/rtde/control_package_pause.h create mode 100644 include/ur_rtde_driver/rtde/control_package_setup_inputs.h create mode 100644 include/ur_rtde_driver/rtde/control_package_setup_outputs.h create mode 100644 include/ur_rtde_driver/rtde/control_package_start.h create mode 100644 include/ur_rtde_driver/rtde/get_urcontrol_version.h create mode 100644 include/ur_rtde_driver/rtde/request_protocol_version.h create mode 100644 src/rtde/control_package_pause.cpp create mode 100644 src/rtde/control_package_setup_inputs.cpp create mode 100644 src/rtde/control_package_setup_outputs.cpp create mode 100644 src/rtde/control_package_start.cpp create mode 100644 src/rtde/get_urcontrol_version.cpp create mode 100644 src/rtde/request_protocol_version.cpp create mode 100644 src/rtde/text_message.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 2c7e203..cd90cad 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -79,6 +79,13 @@ add_library(ur_rtde_driver src/primary/robot_message.cpp src/primary/robot_message/version_message.cpp src/primary/robot_state/kinematics_info.cpp + src/rtde/request_protocol_version.cpp + src/rtde/get_urcontrol_version.cpp + src/rtde/text_message.cpp + src/rtde/control_package_setup_outputs.cpp + src/rtde/control_package_setup_inputs.cpp + src/rtde/control_package_start.cpp + src/rtde/control_package_pause.cpp ) target_link_libraries(ur_rtde_driver ${catkin_LIBRARIES}) add_dependencies(ur_rtde_driver ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) diff --git a/include/ur_rtde_driver/primary/primary_package.h b/include/ur_rtde_driver/primary/primary_package.h index cf44c00..8e0ce7c 100644 --- a/include/ur_rtde_driver/primary/primary_package.h +++ b/include/ur_rtde_driver/primary/primary_package.h @@ -48,7 +48,6 @@ private: std::string buffer_; }; - } // namespace primary_interface } // namespace ur_driver diff --git a/include/ur_rtde_driver/rtde/control_package_pause.h b/include/ur_rtde_driver/rtde/control_package_pause.h new file mode 100644 index 0000000..543f424 --- /dev/null +++ b/include/ur_rtde_driver/rtde/control_package_pause.h @@ -0,0 +1,59 @@ +// this is for emacs file handling -*- mode: c++; indent-tabs-mode: nil -*- + +// -- BEGIN LICENSE BLOCK ---------------------------------------------- +// Copyright 2019 FZI Forschungszentrum Informatik +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// -- END LICENSE BLOCK ------------------------------------------------ + +//---------------------------------------------------------------------- +/*!\file + * + * \author Tristan Schnell schnell@fzi.de + * \date 2019-04-09 + * + */ +//---------------------------------------------------------------------- + +#ifndef UR_RTDE_DRIVER_CONTROL_PACKAGE_PAUSE_H_INCLUDED +#define UR_RTDE_DRIVER_CONTROL_PACKAGE_PAUSE_H_INCLUDED + +#include "ur_rtde_driver/rtde/rtde_package.h" + +namespace ur_driver +{ +namespace rtde_interface +{ +class ControlPackagePause : public RTDEPackage +{ +public: + ControlPackagePause() = default; + virtual ~ControlPackagePause() = default; + + virtual bool parseWith(comm::BinParser& bp); + virtual std::string toString() const; + + uint8_t accepted_; +}; + +class ControlPackagePauseRequest : public RTDEPackage +{ +public: + ControlPackagePauseRequest() = default; + virtual ~ControlPackagePauseRequest() = default; +}; + +} // namespace rtde_interface +} // namespace ur_driver + +#endif // UR_RTDE_DRIVER_CONTROL_PACKAGE_PAUSE_H_INCLUDED diff --git a/include/ur_rtde_driver/rtde/control_package_setup_inputs.h b/include/ur_rtde_driver/rtde/control_package_setup_inputs.h new file mode 100644 index 0000000..8599003 --- /dev/null +++ b/include/ur_rtde_driver/rtde/control_package_setup_inputs.h @@ -0,0 +1,62 @@ +// this is for emacs file handling -*- mode: c++; indent-tabs-mode: nil -*- + +// -- BEGIN LICENSE BLOCK ---------------------------------------------- +// Copyright 2019 FZI Forschungszentrum Informatik +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// -- END LICENSE BLOCK ------------------------------------------------ + +//---------------------------------------------------------------------- +/*!\file + * + * \author Tristan Schnell schnell@fzi.de + * \date 2019-04-09 + * + */ +//---------------------------------------------------------------------- + +#ifndef UR_RTDE_DRIVER_CONTROL_PACKAGE_SETUP_INPUTS_H_INCLUDED +#define UR_RTDE_DRIVER_CONTROL_PACKAGE_SETUP_INPUTS_H_INCLUDED + +#include "ur_rtde_driver/rtde/rtde_package.h" + +namespace ur_driver +{ +namespace rtde_interface +{ +class ControlPackageSetupInputs : public RTDEPackage +{ +public: + ControlPackageSetupInputs() = default; + virtual ~ControlPackageSetupInputs() = default; + + virtual bool parseWith(comm::BinParser& bp); + virtual std::string toString() const; + + uint8_t input_recipe_id_; + std::string variable_types_; +}; + +class ControlPackageSetupInputsRequest : public RTDEPackage +{ +public: + ControlPackageSetupInputsRequest() = default; + virtual ~ControlPackageSetupInputsRequest() = default; + + std::string variable_names_; +}; + +} // namespace rtde_interface +} // namespace ur_driver + +#endif // UR_RTDE_DRIVER_CONTROL_PACKAGE_SETUP_INPUTS_H_INCLUDED diff --git a/include/ur_rtde_driver/rtde/control_package_setup_outputs.h b/include/ur_rtde_driver/rtde/control_package_setup_outputs.h new file mode 100644 index 0000000..d8e02f1 --- /dev/null +++ b/include/ur_rtde_driver/rtde/control_package_setup_outputs.h @@ -0,0 +1,63 @@ +// this is for emacs file handling -*- mode: c++; indent-tabs-mode: nil -*- + +// -- BEGIN LICENSE BLOCK ---------------------------------------------- +// Copyright 2019 FZI Forschungszentrum Informatik +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// -- END LICENSE BLOCK ------------------------------------------------ + +//---------------------------------------------------------------------- +/*!\file + * + * \author Tristan Schnell schnell@fzi.de + * \date 2019-04-09 + * + */ +//---------------------------------------------------------------------- + +#ifndef UR_RTDE_DRIVER_CONTROL_PACKAGE_SETUP_OUTPUTS_H_INCLUDED +#define UR_RTDE_DRIVER_CONTROL_PACKAGE_SETUP_OUTPUTS_H_INCLUDED + +#include "ur_rtde_driver/rtde/rtde_package.h" + +namespace ur_driver +{ +namespace rtde_interface +{ +class ControlPackageSetupOutputs : public RTDEPackage +{ +public: + ControlPackageSetupOutputs() = default; + virtual ~ControlPackageSetupOutputs() = default; + + virtual bool parseWith(comm::BinParser& bp); + virtual std::string toString() const; + + uint8_t output_recipe_id_; + std::string variable_types_; +}; + +class ControlPackageSetupOutputsRequest : public RTDEPackage +{ +public: + ControlPackageSetupOutputsRequest() = default; + virtual ~ControlPackageSetupOutputsRequest() = default; + + double output_frequency_; + std::string variable_names_; +}; + +} // namespace rtde_interface +} // namespace ur_driver + +#endif // UR_RTDE_DRIVER_CONTROL_PACKAGE_SETUP_OUTPUTS_H_INCLUDED diff --git a/include/ur_rtde_driver/rtde/control_package_start.h b/include/ur_rtde_driver/rtde/control_package_start.h new file mode 100644 index 0000000..2eb9c3e --- /dev/null +++ b/include/ur_rtde_driver/rtde/control_package_start.h @@ -0,0 +1,59 @@ +// this is for emacs file handling -*- mode: c++; indent-tabs-mode: nil -*- + +// -- BEGIN LICENSE BLOCK ---------------------------------------------- +// Copyright 2019 FZI Forschungszentrum Informatik +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// -- END LICENSE BLOCK ------------------------------------------------ + +//---------------------------------------------------------------------- +/*!\file + * + * \author Tristan Schnell schnell@fzi.de + * \date 2019-04-09 + * + */ +//---------------------------------------------------------------------- + +#ifndef UR_RTDE_DRIVER_CONTROL_PACKAGE_START_H_INCLUDED +#define UR_RTDE_DRIVER_CONTROL_PACKAGE_START_H_INCLUDED + +#include "ur_rtde_driver/rtde/rtde_package.h" + +namespace ur_driver +{ +namespace rtde_interface +{ +class ControlPackageStart : public RTDEPackage +{ +public: + ControlPackageStart() = default; + virtual ~ControlPackageStart() = default; + + virtual bool parseWith(comm::BinParser& bp); + virtual std::string toString() const; + + uint8_t accepted_; +}; + +class ControlPackageStartRequest : public RTDEPackage +{ +public: + ControlPackageStartRequest() = default; + virtual ~ControlPackageStartRequest() = default; +}; + +} // namespace rtde_interface +} // namespace ur_driver + +#endif // UR_RTDE_DRIVER_CONTROL_PACKAGE_START_H_INCLUDED diff --git a/include/ur_rtde_driver/rtde/data_package.h b/include/ur_rtde_driver/rtde/data_package.h index 0151329..26e3663 100644 --- a/include/ur_rtde_driver/rtde/data_package.h +++ b/include/ur_rtde_driver/rtde/data_package.h @@ -34,7 +34,7 @@ namespace ur_driver { namespace rtde_interface { -class DataPackage : RTDEPackage +class DataPackage : public RTDEPackage { private: uint8_t recipe_id_; diff --git a/include/ur_rtde_driver/rtde/get_urcontrol_version.h b/include/ur_rtde_driver/rtde/get_urcontrol_version.h new file mode 100644 index 0000000..ef87ec9 --- /dev/null +++ b/include/ur_rtde_driver/rtde/get_urcontrol_version.h @@ -0,0 +1,62 @@ +// this is for emacs file handling -*- mode: c++; indent-tabs-mode: nil -*- + +// -- BEGIN LICENSE BLOCK ---------------------------------------------- +// Copyright 2019 FZI Forschungszentrum Informatik +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// -- END LICENSE BLOCK ------------------------------------------------ + +//---------------------------------------------------------------------- +/*!\file + * + * \author Tristan Schnell schnell@fzi.de + * \date 2019-04-09 + * + */ +//---------------------------------------------------------------------- + +#ifndef UR_RTDE_DRIVER_GET_URCONTROL_VERSION_H_INCLUDED +#define UR_RTDE_DRIVER_GET_URCONTROL_VERSION_H_INCLUDED + +#include "ur_rtde_driver/rtde/rtde_package.h" + +namespace ur_driver +{ +namespace rtde_interface +{ +class GetUrcontrolVersion : public RTDEPackage +{ +public: + GetUrcontrolVersion() = default; + virtual ~GetUrcontrolVersion() = default; + + virtual bool parseWith(comm::BinParser& bp); + virtual std::string toString() const; + + uint32_t major_; + uint32_t minor_; + uint32_t bugfix_; + uint32_t build_; +}; + +class GetUrcontrolVersionRequest : public RTDEPackage +{ +public: + GetUrcontrolVersionRequest() = default; + virtual ~GetUrcontrolVersionRequest() = default; +}; + +} // namespace rtde_interface +} // namespace ur_driver + +#endif // UR_RTDE_DRIVER_GET_URCONTROL_VERSION_H_INCLUDED diff --git a/include/ur_rtde_driver/rtde/request_protocol_version.h b/include/ur_rtde_driver/rtde/request_protocol_version.h new file mode 100644 index 0000000..6ddf5b9 --- /dev/null +++ b/include/ur_rtde_driver/rtde/request_protocol_version.h @@ -0,0 +1,61 @@ +// this is for emacs file handling -*- mode: c++; indent-tabs-mode: nil -*- + +// -- BEGIN LICENSE BLOCK ---------------------------------------------- +// Copyright 2019 FZI Forschungszentrum Informatik +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// -- END LICENSE BLOCK ------------------------------------------------ + +//---------------------------------------------------------------------- +/*!\file + * + * \author Tristan Schnell schnell@fzi.de + * \date 2019-04-09 + * + */ +//---------------------------------------------------------------------- + +#ifndef UR_RTDE_DRIVER_REQUEST_PROTOCOL_VERSION_H_INCLUDED +#define UR_RTDE_DRIVER_REQUEST_PROTOCOL_VERSION_H_INCLUDED + +#include "ur_rtde_driver/rtde/rtde_package.h" + +namespace ur_driver +{ +namespace rtde_interface +{ +class RequestProtocolVersion : public RTDEPackage +{ +public: + RequestProtocolVersion() = default; + virtual ~RequestProtocolVersion() = default; + + virtual bool parseWith(comm::BinParser& bp); + virtual std::string toString() const; + + uint8_t accepted_; +}; + +class RequestProtocolVersionRequest : public RTDEPackage +{ +public: + RequestProtocolVersionRequest() = default; + virtual ~RequestProtocolVersionRequest() = default; + + uint16_t protocol_version_; +}; + +} // namespace rtde_interface +} // namespace ur_driver + +#endif // UR_RTDE_DRIVER_REQUEST_PROTOCOL_VERSION_H_INCLUDED diff --git a/include/ur_rtde_driver/rtde/rtde_package.h b/include/ur_rtde_driver/rtde/rtde_package.h index f8c8296..cbde74c 100644 --- a/include/ur_rtde_driver/rtde/rtde_package.h +++ b/include/ur_rtde_driver/rtde/rtde_package.h @@ -35,7 +35,7 @@ namespace ur_driver { namespace rtde_interface { -class RTDEPackage : comm::URPackage +class RTDEPackage : public comm::URPackage { public: RTDEPackage() = default; diff --git a/include/ur_rtde_driver/rtde/text_message.h b/include/ur_rtde_driver/rtde/text_message.h index b09262f..b57d847 100644 --- a/include/ur_rtde_driver/rtde/text_message.h +++ b/include/ur_rtde_driver/rtde/text_message.h @@ -34,14 +34,23 @@ namespace ur_driver { namespace rtde_interface { -class TextMessage : RTDEPackage +class TextMessage : public RTDEPackage { public: TextMessage() = default; virtual ~TextMessage() = default; + + virtual bool parseWith(comm::BinParser& bp); + virtual std::string toString() const; + + uint8_t message_length_; + std::string message_; + uint8_t source_length_; + std::string source_; + uint8_t warning_level_; }; } // namespace rtde_interface } // namespace ur_driver -#endif // UR_RTDE_DRIVER_TEXT_MESSAGE_H_INCLUDED \ No newline at end of file +#endif // UR_RTDE_DRIVER_TEXT_MESSAGE_H_INCLUDED diff --git a/src/rtde/control_package_pause.cpp b/src/rtde/control_package_pause.cpp new file mode 100644 index 0000000..1c05a68 --- /dev/null +++ b/src/rtde/control_package_pause.cpp @@ -0,0 +1,48 @@ +// this is for emacs file handling -*- mode: c++; indent-tabs-mode: nil -*- + +// -- BEGIN LICENSE BLOCK ---------------------------------------------- +// Copyright 2019 FZI Forschungszentrum Informatik +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// -- END LICENSE BLOCK ------------------------------------------------ + +//---------------------------------------------------------------------- +/*!\file + * + * \author Tristan Schnell schnell@fzi.de + * \date 2019-04-09 + * + */ +//---------------------------------------------------------------------- + +#include "ur_rtde_driver/rtde/control_package_pause.h" + +namespace ur_driver +{ +namespace rtde_interface +{ +bool ControlPackagePause::parseWith(comm::BinParser& bp) +{ + bp.parse(accepted_); + + return true; +} +std::string ControlPackagePause::toString() const +{ + std::stringstream ss; + ss << "accepted: " << accepted_; + + return ss.str(); +} +} // namespace rtde_interface +} // namespace ur_driver diff --git a/src/rtde/control_package_setup_inputs.cpp b/src/rtde/control_package_setup_inputs.cpp new file mode 100644 index 0000000..6561f3e --- /dev/null +++ b/src/rtde/control_package_setup_inputs.cpp @@ -0,0 +1,50 @@ +// this is for emacs file handling -*- mode: c++; indent-tabs-mode: nil -*- + +// -- BEGIN LICENSE BLOCK ---------------------------------------------- +// Copyright 2019 FZI Forschungszentrum Informatik +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// -- END LICENSE BLOCK ------------------------------------------------ + +//---------------------------------------------------------------------- +/*!\file + * + * \author Tristan Schnell schnell@fzi.de + * \date 2019-04-09 + * + */ +//---------------------------------------------------------------------- + +#include "ur_rtde_driver/rtde/control_package_setup_inputs.h" + +namespace ur_driver +{ +namespace rtde_interface +{ +bool ControlPackageSetupInputs::parseWith(comm::BinParser& bp) +{ + bp.parse(input_recipe_id_); + bp.parseRemainder(variable_types_); + + return true; +} +std::string ControlPackageSetupInputs::toString() const +{ + std::stringstream ss; + ss << "input recipe id: " << input_recipe_id_ << std::endl; + ss << "variable types: " << variable_types_; + + return ss.str(); +} +} // namespace rtde_interface +} // namespace ur_driver diff --git a/src/rtde/control_package_setup_outputs.cpp b/src/rtde/control_package_setup_outputs.cpp new file mode 100644 index 0000000..aa2fc61 --- /dev/null +++ b/src/rtde/control_package_setup_outputs.cpp @@ -0,0 +1,50 @@ +// this is for emacs file handling -*- mode: c++; indent-tabs-mode: nil -*- + +// -- BEGIN LICENSE BLOCK ---------------------------------------------- +// Copyright 2019 FZI Forschungszentrum Informatik +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// -- END LICENSE BLOCK ------------------------------------------------ + +//---------------------------------------------------------------------- +/*!\file + * + * \author Tristan Schnell schnell@fzi.de + * \date 2019-04-09 + * + */ +//---------------------------------------------------------------------- + +#include "ur_rtde_driver/rtde/control_package_setup_outputs.h" + +namespace ur_driver +{ +namespace rtde_interface +{ +bool ControlPackageSetupOutputs::parseWith(comm::BinParser& bp) +{ + bp.parse(output_recipe_id_); + bp.parseRemainder(variable_types_); + + return true; +} +std::string ControlPackageSetupOutputs::toString() const +{ + std::stringstream ss; + ss << "output recipe id: " << output_recipe_id_ << std::endl; + ss << "variable types: " << variable_types_; + + return ss.str(); +} +} // namespace rtde_interface +} // namespace ur_driver diff --git a/src/rtde/control_package_start.cpp b/src/rtde/control_package_start.cpp new file mode 100644 index 0000000..2202192 --- /dev/null +++ b/src/rtde/control_package_start.cpp @@ -0,0 +1,48 @@ +// this is for emacs file handling -*- mode: c++; indent-tabs-mode: nil -*- + +// -- BEGIN LICENSE BLOCK ---------------------------------------------- +// Copyright 2019 FZI Forschungszentrum Informatik +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// -- END LICENSE BLOCK ------------------------------------------------ + +//---------------------------------------------------------------------- +/*!\file + * + * \author Tristan Schnell schnell@fzi.de + * \date 2019-04-09 + * + */ +//---------------------------------------------------------------------- + +#include "ur_rtde_driver/rtde/control_package_start.h" + +namespace ur_driver +{ +namespace rtde_interface +{ +bool ControlPackageStart::parseWith(comm::BinParser& bp) +{ + bp.parse(accepted_); + + return true; +} +std::string ControlPackageStart::toString() const +{ + std::stringstream ss; + ss << "accepted: " << accepted_; + + return ss.str(); +} +} // namespace rtde_interface +} // namespace ur_driver diff --git a/src/rtde/get_urcontrol_version.cpp b/src/rtde/get_urcontrol_version.cpp new file mode 100644 index 0000000..dad4aed --- /dev/null +++ b/src/rtde/get_urcontrol_version.cpp @@ -0,0 +1,52 @@ +// this is for emacs file handling -*- mode: c++; indent-tabs-mode: nil -*- + +// -- BEGIN LICENSE BLOCK ---------------------------------------------- +// Copyright 2019 FZI Forschungszentrum Informatik +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// -- END LICENSE BLOCK ------------------------------------------------ + +//---------------------------------------------------------------------- +/*!\file + * + * \author Tristan Schnell schnell@fzi.de + * \date 2019-04-09 + * + */ +//---------------------------------------------------------------------- + +#include "ur_rtde_driver/rtde/get_urcontrol_version.h" + +namespace ur_driver +{ +namespace rtde_interface +{ +bool GetUrcontrolVersion::parseWith(comm::BinParser& bp) +{ + bp.parse(major_); + bp.parse(minor_); + bp.parse(bugfix_); + bp.parse(build_); + + return true; +} +std::string GetUrcontrolVersion::toString() const +{ + std::stringstream ss; + ss << "version: " << major_ << "."; + ss << minor_ << "." << bugfix_ << "." << build_; + + return ss.str(); +} +} // namespace rtde_interface +} // namespace ur_driver diff --git a/src/rtde/request_protocol_version.cpp b/src/rtde/request_protocol_version.cpp new file mode 100644 index 0000000..65e5b80 --- /dev/null +++ b/src/rtde/request_protocol_version.cpp @@ -0,0 +1,45 @@ +// this is for emacs file handling -*- mode: c++; indent-tabs-mode: nil -*- + +// -- BEGIN LICENSE BLOCK ---------------------------------------------- +// Copyright 2019 FZI Forschungszentrum Informatik +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// -- END LICENSE BLOCK ------------------------------------------------ + +//---------------------------------------------------------------------- +/*!\file + * + * \author Tristan Schnell schnell@fzi.de + * \date 2019-04-09 + * + */ +//---------------------------------------------------------------------- + +#include "ur_rtde_driver/rtde/request_protocol_version.h" + +namespace ur_driver +{ +namespace rtde_interface +{ +bool RequestProtocolVersion::parseWith(comm::BinParser& bp) +{ + bp.parse(accepted_); + + return true; +} +std::string RequestProtocolVersion::toString() const +{ + return "accepted: " + accepted_; +} +} // namespace rtde_interface +} // namespace ur_driver diff --git a/src/rtde/text_message.cpp b/src/rtde/text_message.cpp new file mode 100644 index 0000000..1a35fef --- /dev/null +++ b/src/rtde/text_message.cpp @@ -0,0 +1,54 @@ +// this is for emacs file handling -*- mode: c++; indent-tabs-mode: nil -*- + +// -- BEGIN LICENSE BLOCK ---------------------------------------------- +// Copyright 2019 FZI Forschungszentrum Informatik +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// -- END LICENSE BLOCK ------------------------------------------------ + +//---------------------------------------------------------------------- +/*!\file + * + * \author Tristan Schnell schnell@fzi.de + * \date 2019-04-09 + * + */ +//---------------------------------------------------------------------- + +#include "ur_rtde_driver/rtde/text_message.h" + +namespace ur_driver +{ +namespace rtde_interface +{ +bool TextMessage::parseWith(comm::BinParser& bp) +{ + bp.parse(message_length_); + bp.parse(message_, message_length_); + bp.parse(source_length_); + bp.parse(source_, source_length_); + bp.parse(warning_level_); + + return true; +} +std::string TextMessage::toString() const +{ + std::stringstream ss; + ss << "message: " << message_ << std::endl; + ss << "source: " << source_ << std::endl; + ss << "warning level: " << warning_level_; + + return ss.str(); +} +} // namespace rtde_interface +} // namespace ur_driver