#include <iostream>
#include <ros/ros.h>
#include <std_msgs/Bool.h>
#include <std_msgs/Int32.h>
#include <std_msgs/String.h>


std::string syntax;
ros::Publisher int_pub;
int syntax_num = 0;

void string_callback(const std_msgs::String::ConstPtr &msg);

int main(int argc, char** argv)
{
    ros::init(argc, argv, "one");
    ros::NodeHandle nh;


    ros::Publisher bool_pub = nh.advertise<std_msgs::Bool>("/flag", 1);
    int_pub = nh.advertise<std_msgs::Int32>("/syntax_num", 1);

    ros::Subscriber string_sub;
    string_sub = nh.subscribe<std_msgs::String>("/syntax", 1, &string_callback);


    while(ros::ok())
    {
        ROS_INFO("Plaese Input Character");
        std_msgs::Bool bool_msg;
        char start;
        std::cin >> start;
        if(start == 's')
        {
            bool_msg.data = true;
            bool_pub.publish(bool_msg);
            break;
        }
        else
        {
            ROS_ERROR("Error Syntax : %c , Please Retry", start);
            bool_msg.data = false;
            bool_pub.publish(bool_msg);
            continue;
        }
    }

    ros::spin();
    return 0;
}

void string_callback(const std_msgs::String::ConstPtr &msg)
{
    syntax = msg->data;
    ROS_INFO("Get String Message : %s", syntax.c_str());
    syntax_num = syntax.length();

    std_msgs::Int32 int_msg;
    int_msg.data = syntax_num;

    int_pub.publish(int_msg);
}

이게 1번


#include <iostream>
#include <ros/ros.h>
#include <std_msgs/Bool.h>
#include <std_msgs/Int32.h>
#include <std_msgs/String.h>

bool flag = false;
int syntax_num = 0;

ros::Publisher string_pub;
std::string syntax = "";

void bool_callback(const std_msgs::Bool::ConstPtr &msg);
void int_callback(const std_msgs::Int32::ConstPtr &msg);

int main(int argc, char** argv)
{
    ros::init(argc, argv, "two");
    ros::NodeHandle nh;

    ROS_INFO("sequence start");
    string_pub = nh.advertise<std_msgs::String>("/syntax", 1);

    ros::Subscriber bool_sub;
    ros::Subscriber int_sub;

    bool_sub = nh.subscribe<std_msgs::Bool>("/flag", 1, &bool_callback);
    int_sub = nh.subscribe<std_msgs::Int32>("/syntax_num", 1, &int_callback);

    ros::spin();
    return 0;

}

void bool_callback(const std_msgs::Bool::ConstPtr &msg)
{
    flag = msg->data;

    if(flag)
    {
        ROS_INFO("flag is %s, please input syntax string ", flag ? "true" : "false");

        std::cin >> syntax;
        std_msgs::String string_msg;
        string_msg.data = syntax;


        string_pub.publish(string_msg);
    }
}

void int_callback(const std_msgs::Int32::ConstPtr &msg)
{
    syntax_num = msg->data;
    ROS_INFO("syntax %s's length is %d", syntax.c_str(), syntax_num);
}

이게 2번인데


이걸 어떻게든 뜯어보고 오라는데 혹시 해석 가능한 사람 있음?

아주 작은 거라도 힌트 좀 

어디부터 손대야 할 지 전혀 감이 안 잡힘