自定义复杂请求消息
消息自定义流程¶
根据总结归纳,大致上我们的消息如下:
service数据 | 名称 | 类型 | 描述 |
---|---|---|---|
Request | student |
Student |
学生对象 |
Response | id |
string |
生成的id |
1. 新建srv文件¶
现在我们制定一个.srv
文件,用来描述一项服务:发送学生信息到服务端,让服务端返回生成的学生Id。
新建GenStudentId.srv
文件,内容如下:
1 2 3 |
|
2. 依赖添加¶
这里的request
中,包含的是一个复杂数据类型Student
,这种类型来源于前面demo_msgs
包中定义的Student.msg
。那么我们该如何正确构建这个srv?
首先,在package.xml中去添加demo_msgs
包的依赖:
1 2 3 |
|
接着,在CMakeLists.txt
中添加需要查找的包demo_msgs
:
1 2 3 4 5 6 7 8 |
|
然后,在generate_messages
中添加demo_msgs
如下:
1 2 3 4 5 6 |
|
最后,在add_service_fils
中,添加此文件:
1 2 3 4 5 |
|
3. 校验自定义消息¶
首先,我们先通过catkin_make
进行编译:
1 |
|
接着,查看生成的头文件,来到devel
的include
目录下,如果生成了头文件说明,自定义消息创建成功。
还可以通过rossrv工具校验:
1 |
|