• 1.安装


    1.安装依赖

    sudo apt-get install uuid-dev libboost-all-dev libpoco-dev libgoogle-glog-dev python-dev python-setuptools python-pip 
    sudo dpkg -i bros_1.3.0_amd64.deb cmake_3.15.4_amd64.deb cyber-bzl_5.0.0_amd64.deb fastrtps-bzl_1.5.0_amd64.deb protobuf-bzl_3.6.1_amd64.deb
    sudo python easy_install protobuf-3.6.1-py2.7.egg

    easy_install

    #!/usr/bin/python
    # EASY-INSTALL-ENTRY-SCRIPT: 'setuptools==20.7.0','console_scripts','easy_install'
    __requires__ = 'setuptools==20.7.0'
    import sys
    from pkg_resources import load_entry_point
    
    if __name__ == '__main__':
        sys.exit(
            load_entry_point('setuptools==20.7.0', 'console_scripts', 'easy_install')()
        )
    View Code

    2.构建

    打开终端

    测试protobuf安装成功没:

    protoc --version

    libprotoc 3.6.1

    libprotobuf.so->libprotobuf.so.3.6.1

    export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
    cd examples
    mkdir build
    cd build
    cmake ../ -DCMAKE_PREFIX_PATH=/opt/bros
    make
    View Code

    3.运行

    /opt/cyber/setup.bash
    ./talker # 运行talker
    ./listener # 运行listener

     4.使用action

    # 使用Action
    
    复制examples/proto目录下的fibonacci.proto,改为带上你自己的Action名字的protobuf文件,如TestAction.proto
    
    仅仅修改Goal,Result和Feedback部分,其他不要动
    
    ```proto
    syntax = "proto2";
    
    message Fibonacci // 这里改成你自己的如TestAction
    {
        // App definition
        message Goal
        {
            // 这部分改为你自己的Goal定义
            required int32 order = 1;
        }
        message Result
        {
            // 这部分改为你自己的Result定义
           repeated int32 sequence = 1;
        }
        message Feedback
        {
            // 这部分改为你自己的Feedback定义
            repeated int32 sequence = 1;
        }
    
        // Impl definition
        message Impl
        {
            // Common
            message Time
            {
                required int32 sec = 1;
                required uint32 nanosec = 2;
            }
            message GoalInfo
            {
                required bytes goal_id = 1;
                required Time stamp = 2;
            }
            message GoalStatus
            {
                required GoalInfo goal_info = 1;
                required int32 status = 2;
            }
            // Goal Service
            message SendGoalService
            {
                message Request
                {
                    required bytes goal_id = 1;
                    required Goal goal = 2;
                }
                message Response
                {
                    required Time stamp = 1;
                    required bool accepted = 2;
                }
            }
            // CancelGaol service
            message CancelGoalService
            {
                message Request
                {
                    required GoalInfo goal_info = 1;
                }
                message Response
                {
         required int32 return_code = 1;
                }
            }
            // Result Service
            message GetResultService
            {
                message Request
                {
                    required bytes goal_id = 1;
                }
                message Response
                {
                    required bytes goal_id = 1;
                    required int32 status = 2;
                    required Result result = 3;
                }
            }
            // Feedback publisher
            message FeedbackMessage
            {
                required bytes goal_id = 1;
                required Feedback feedback = 2;
            }
            // GoalStatus publisher
            message GoalStatusMessage
            {
                repeated GoalStatus status_list = 1;
            }
        }
    }
    ```
  • 相关阅读:
    socket多线程TCP和UDP
    unittest基本使用
    go语言中的文件创建,写入,读取,删除(转)
    关于mvn多模块的理解
    uniapp云开发使用云对象获取请求信息与用户信息
    Springboot2.x 使用 micaxss 实现 xss 过滤
    北大韦神透露现状:自己课讲得不太好,中期学生退课后就剩下5、6个人
    来看看一位阿里P9的年薪和资产
    埋头苦干熬到年底,还是没有被提拔!
    【运维】Linux内存占用分析的几个方法,你知道几个?
  • 原文地址:https://www.cnblogs.com/gary-guo/p/12318888.html
Copyright © 2020-2023  润新知