From d0ddb6c84c79a38da6d3967b7b58435f5e6dcce3 Mon Sep 17 00:00:00 2001 From: Jiangtao Hu Date: Tue, 18 Sep 2018 10:16:56 -0700 Subject: [PATCH] routing: add routing cast tool to broadcast routing response from a pb file. --- modules/routing/tools/BUILD | 11 ++++++ modules/routing/tools/routing_cast.cc | 57 +++++++++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 modules/routing/tools/routing_cast.cc diff --git a/modules/routing/tools/BUILD b/modules/routing/tools/BUILD index 59a2334564..98ad9c6833 100644 --- a/modules/routing/tools/BUILD +++ b/modules/routing/tools/BUILD @@ -25,4 +25,15 @@ cc_binary( ], ) +cc_binary( + name = "routing_cast", + srcs = ["routing_cast.cc"], + deps = [ + "//modules/common", + "//modules/common/util", + "//modules/routing:routing_lib", + "//framework:cybertron", + ], +) + cpplint() diff --git a/modules/routing/tools/routing_cast.cc b/modules/routing/tools/routing_cast.cc new file mode 100644 index 0000000000..4047ae3e6b --- /dev/null +++ b/modules/routing/tools/routing_cast.cc @@ -0,0 +1,57 @@ +/****************************************************************************** + * Copyright 2018 The Apollo Authors. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *****************************************************************************/ + +#include "cybertron/common/log.h" +#include "cybertron/cybertron.h" +#include "cybertron/time/rate.h" +#include "cybertron/time/time.h" +#include "modules/common/adapters/adapter_gflags.h" +#include "modules/common/util/file.h" +#include "modules/common/util/message_util.h" +#include "modules/routing/proto/routing.pb.h" + +DEFINE_string(routing_dump_file, + "/tmp/routing.pb.txt", + "file name to dump routing response."); + +using apollo::cybertron::Rate; +using apollo::cybertron::Time; + +int main(int argc, char *argv[]) { + google::ParseCommandLineFlags(&argc, &argv, true); + apollo::cybertron::Init(argv[0]); + + std::shared_ptr cast_node( + apollo::cybertron::CreateNode("routing_cast")); + + apollo::routing::RoutingResponse routing_response; + if (!apollo::common::util::GetProtoFromFile(FLAGS_routing_dump_file, + &routing_response)) { + AERROR << "failed to load file: " << FLAGS_routing_dump_file; + return -1; + } + + auto cast_writer = + cast_node->CreateWriter( + FLAGS_routing_response_topic); + Rate rate(1.0); + while (apollo::cybertron::OK()) { + apollo::common::util::FillHeader("routing", &routing_response); + cast_writer->Write(routing_response); + rate.Sleep(); + } + return 0; +} -- GitLab