FengD / apollo_cyber_test

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Description

This project is a demo which show you how to use apollo cyber.

Build

mkdir build && cd build
cmake ..
make

Steps

  1. Create your own proto file. You could also use the pre-defined proto in cyber project;
  2. Read the user guide of apollo cyber. Create the test code. talker listener
// talker
#include "cyber/cyber.h"
#include "test.pb.h"

using apollo::cyber::Rate;
using apollo::cyber::Time;

int main(int argc, char *argv[]) {
  // init cyber framework
  apollo::cyber::Init(argv[0]);
  // create talker node
  auto talker_node = apollo::cyber::CreateNode("test");
  // create talker
  auto talker = talker_node->CreateWriter<test::Test>("test");
  Rate rate(100.0);
  uint64_t seq = 0;
  while (apollo::cyber::OK()) {
    auto msg = std::make_shared<test::Test>();
    msg->set_a(Time::Now().ToNanosecond());
    msg->set_b(seq);
    talker->Write(msg);
    AINFO << "talker sent a message! No. " << seq;
    seq++;
    rate.Sleep();
  }
  return 0;
}

// listener
#include "cyber/cyber.h"
#include "test.pb.h"

void MessageCallback(const std::shared_ptr<test::Test>& msg) {
  std::cout << "a: " << msg->a() <<  "; b: " << msg->b() << std::endl;
}

int main(int argc, char* argv[]) {
  // init cyber framework
  apollo::cyber::Init(argv[0]);
  // create listener node
  auto listener_node = apollo::cyber::CreateNode("listener");
  // create listener
  auto listener = listener_node->CreateReader<test::Test>("test", MessageCallback);
  apollo::cyber::WaitForShutdown();
  return 0;
}
  1. develop tools
  • cyber_monitor 1 2
  • cyber_recorder 3 4

About


Languages

Language:C++ 56.6%Language:CMake 43.4%