@Sterlingがすでに説明したことを少し拡張するだけです...
「test_messages」というプロジェクト (およびディレクトリ) があり、次の 2 種類のメッセージが にあるとしますtest_messages/msg
。
#> cat test.msg
string first_name
string last_name
uint8 age
uint32 score
#> cat test_vector.msg
string vector_name
uint32 vector_len # not really necessary, just for testing
test[] vector_test
その後、次の C++ コードを記述できます。
#include "test_messages/test.h"
#include "test_messages/test_vector.h"
...
::test_messages::test test_msg;
test_msg.age = 29;
test_msg.first_name = "Firstname";
test_msg.last_name = "Lastname";
test_msg.score = 79;
test_pub.publish(test_msg);
::test_messages::test_vector test_vec;
test_vec.vector_len = 5;
test_vec.vector_name = std::string("test vector name");
for (int idx = 0; idx < test_vec.vector_len; idx++)
{
test_msg.age = 50;
test_msg.score = 100;
test_msg.first_name = std::string("aaaa");
test_msg.last_name = std::string("bbbb");
test_vec.vector_test.push_back(test_msg);
}
test_vector_pub.publish(test_vec);