zoukankan      html  css  js  c++  java
  • Srv数据格式

    1、简介

    类似msg文件, srv文件是用来描述服务( service数据类型的, service通信的数据格式定义在
    *.srv中。 它声明了一个服务, 包括请求(request)和响应( reply) 两部分。 其格式声明如下:
    举例: msgs_demo/srv/DetectHuman.srv

    bool start_detect
    ---
    my_pkg/HumanPose[] pose_data

    msgs_demo/msg/HumanPose.msg 

    std_msgs/Header header
    string uuid
    int32 number_of_joints
    my_pkg/JointPose[]joint_data

    srv文件格式很固定, 第一行是请求的格式, 中间用---隔开, 第三行是应答的格式。

    srv可以嵌套msg在其中, 但它不能嵌套srv

    2、操作命令

    3、修改部分文件

    义完了msgsrv文件, 还有重要的一个步骤就是修改package.xml和修改CMakeList.txt。 这
    些文件需要添加一些必要的依赖等, 例如:

    <build_depend>** message_generation **</build_depend>
    <run_depend>** message_runtime **</run_depend>

    上述文本中“**”所引就是新添加的依赖。 又例如:

    find_package(...roscpp rospy std_msgs ** message_generation **)
    catkin_package(
    ...
    CATJIN_DEPENDS ** message_runtime ** ...
    ...)
    add_message_file(
    FILES
    ** DetectHuman.srv **
    ** HumanPose.msg **
    ** JointPos.msg **)
    ** generate_messages(DEPENDENCIES std_msgs) **

    添加的这些内容指定了srv或者msg在编译或者运行中需要的依赖。无论我们自定义了srv,还是msg

    修改上述部分添加依赖都是必不可少的一步 。

  • 相关阅读:
    MFC 简介
    C++使用thread类多线程编程
    C++中stack
    C++中头文件简介(stdio.h & chrono)
    别人写的很好Arduino教材
    Communicating to 2 SPI Slaves with USART & SPI ports on Atmega16U2
    HDU 2089 不要62(挖个坑=-=)
    HDU 3555 Bomb(数位DP)
    HDU 3480 Division(斜率优化+二维DP)
    HDU 3045 Picnic Cows(斜率优化DP)
  • 原文地址:https://www.cnblogs.com/long5683/p/9941636.html
Copyright © 2011-2022 走看看