Program Listing for File mocap4r2_control.hpp
↰ Return to documentation for file (/tmp/ws/src/mocap4r2/mocap4r2_control/rqt_mocap4r2_control/include/rqt_mocap4r2_control/mocap4r2_control.hpp
)
// Copyright 2021 Intelligent Robotics Lab
//
// 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.
#ifndef RQT_MOCAP4R2_CONTROL__MOCAP4R2_CONTROL__HPP_
#define RQT_MOCAP4R2_CONTROL__MOCAP4R2_CONTROL__HPP_
#include <rqt_gui_cpp/plugin.h>
#include <ui_mocap4r2_control.h>
#include <map>
#include <QAction>
#include <QImage>
#include <QList>
#include <QString>
#include <QSet>
#include <QSize>
#include <QWidget>
#include <vector>
#include "mocap4r2_control_msgs/msg/mocap_info.hpp"
#include "mocap4r2_control/ControllerNode.hpp"
#include "rqt_mocap4r2_control/SystemController.hpp"
#include "rclcpp/rclcpp.hpp"
namespace rqt_mocap4r2_control
{
class MocapControl
: public rqt_gui_cpp::Plugin
{
Q_OBJECT
public:
MocapControl();
virtual void initPlugin(qt_gui_cpp::PluginContext & context);
virtual void shutdownPlugin();
virtual void saveSettings(
qt_gui_cpp::Settings & plugin_settings,
qt_gui_cpp::Settings & instance_settings) const;
virtual void restoreSettings(
const qt_gui_cpp::Settings & plugin_settings,
const qt_gui_cpp::Settings & instance_settings);
protected slots:
// virtual void updateTopicList();
protected:
// virtual QSet<QString> getTopics(const QSet<QString>& message_types, const QSet<QString>& message_sub_types, const QList<QString>& transports);
// virtual void selectTopic(const QString& topic);
protected slots:
void start_capture();
void select_output_dir();
void select_record_all(bool checked);
void select_active_all(bool checked);
void enable_ros1(int state);
void spin_loop();
// virtual void onTopicChanged(int index);
//
// virtual void onZoom1(bool checked);
//
// virtual void onDynamicRange(bool checked);
//
// virtual void saveImage();
//
// virtual void updateNumGridlines();
//
// virtual void onMousePublish(bool checked);
//
// virtual void onMouseLeft(int x, int y);
//
// virtual void onPubTopicChanged();
//
// virtual void onHideToolbarChanged(bool hide);
//
// virtual void onRotateLeft();
// virtual void onRotateRight();
protected:
// virtual void callbackImage(const sensor_msgs::msg::Image::ConstSharedPtr& msg);
//
// virtual void invertPixels(int x, int y);
//
// QList<int> getGridIndices(int size) const;
//
// virtual void overlayGrid();
Ui::mocapControlWidget ui_;
QWidget * widget_;
// image_transport::Subscriber subscriber_;
private:
rclcpp::Subscription<mocap4r2_control_msgs::msg::MocapInfo>::SharedPtr mocap4r2_env_sub_;
std::map<std::string, SystemController *> mocap4r2_env_;
std::shared_ptr<mocap4r2_control::ControllerNode> controller_node_;
QTimer * controller_spin_timer_;
bool capturing_ {false};
void update_tree(const mocap4r2_control_msgs::msg::MocapInfo::SharedPtr msg);
void control_callback(const mocap4r2_control_msgs::msg::Control::SharedPtr msg);
void start_roscore_bridges();
pid_t pid_roscore_ {0}, pid_bridge1_{0}, pid_bridge2_{0};
std::string current_output_dir_;
};
} // namespace rqt_mocap4r2_control
#endif // RQT_MOCAP4R2_CONTROL__mocap4r2_CONTRO__HPP_