20 #ifndef ROS_GS_BRIDGE_ROS_GS_BRIDGE_H_
21 #define ROS_GS_BRIDGE_ROS_GS_BRIDGE_H_
27 #include <ff_util/ff_action.h>
28 #include <ff_common/ff_names.h>
29 #include <isaac_util/isaac_names.h>
32 #include <ff_msgs/AccessControlStateStamped.h>
33 #include <ff_msgs/CommandConstants.h>
34 #include <ff_msgs/CommandStamped.h>
35 #include <ff_msgs/GuestScienceData.h>
36 #include <isaac_hw_msgs/WifiSignals.h>
39 #include <isaac_msgs/ImageInspectionAction.h>
40 #include <isaac_msgs/InspectionAction.h>
43 #include <std_srvs/Empty.h>
49 namespace ros_gs_bridge {
56 bool Initialize(ros::NodeHandle *nh);
59 void AccessControlStateCallback(ff_msgs::AccessControlStateStampedConstPtr
61 void GuestScienceDataCallback(ff_msgs::GuestScienceDataConstPtr
const& data);
65 bool GrabControlService(std_srvs::Empty::Request& req,
66 std_srvs::Empty::Response& res);
70 void ImageInspectionResultCallback(
71 ff_util::FreeFlyerActionState::Enum
const& state,
72 isaac_msgs::ImageInspectionResultConstPtr
const& result);
74 void InspectionGoalCallback(isaac_msgs::InspectionGoalConstPtr
const& goal);
75 void InspectionPreemptCallback();
76 void InspectionCancelCallback();
78 void FillTimeIdInGSCmd();
79 void GrabControl(std::string cookie);
81 void RequestControl();
82 void SendNextGSCommand();
85 bool requesting_control_, grabbing_control_, send_command_;
87 ff_util::FreeFlyerActionClient<isaac_msgs::ImageInspectionAction> img_ac_;
88 ff_util::FreeFlyerActionServer<isaac_msgs::InspectionAction> inspection_as_;
90 int pub_queue_size_, sub_queue_size_, cmd_counter_;
93 ros::Publisher cmd_pub_, wifi_signals_pub_;
94 ros::ServiceServer grab_control_srv_;
95 ros::Subscriber sub_access_control_state_, sub_gs_data_;
100 ff_msgs::CommandStamped custom_gs_command_;
101 std::string controller_, isaac_apk_name_, isaac_controller_name_;
106 #endif // ROS_GS_BRIDGE_ROS_GS_BRIDGE_H_