Apollo 10.0
自动驾驶开放平台
record.cc 文件参考
#include <string>
#include "cyber/proto/record.pb.h"
#include "cyber/cyber.h"
#include "cyber/message/raw_message.h"
#include "cyber/record/record_message.h"
#include "cyber/record/record_reader.h"
#include "cyber/record/record_writer.h"
record.cc 的引用(Include)关系图:

浏览源代码.

函数

void test_write (const std::string &writefile)
 
void test_read (const std::string &readfile)
 
int main (int argc, char *argv[])
 

变量

const char CHANNEL_NAME_1 [] = "/test/channel1"
 
const char CHANNEL_NAME_2 [] = "/test/channel2"
 
const char MESSAGE_TYPE_1 [] = "apollo.cyber.proto.Test"
 
const char MESSAGE_TYPE_2 [] = "apollo.cyber.proto.Channel"
 
const char PROTO_DESC [] = "1234567890"
 
const char STR_10B [] = "1234567890"
 
const char TEST_FILE [] = "test.record"
 

函数说明

◆ main()

int main ( int  argc,
char *  argv[] 
)

在文件 record.cc78 行定义.

78 {
79 apollo::cyber::Init(argv[0]);
81 sleep(1);
83 return 0;
84}
bool Init(const char *binary_name, const std::string &dag_info)
Definition init.cc:98
void test_read(const std::string &readfile)
Definition record.cc:53
void test_write(const std::string &writefile)
Definition record.cc:40
const char TEST_FILE[]
Definition record.cc:38

◆ test_read()

void test_read ( const std::string &  readfile)

在文件 record.cc53 行定义.

53 {
54 RecordReader reader(readfile);
55 RecordMessage message;
56 uint64_t msg_count = reader.GetMessageNumber(CHANNEL_NAME_1);
57 AINFO << "MSGTYPE: " << reader.GetMessageType(CHANNEL_NAME_1);
58 AINFO << "MSGDESC: " << reader.GetProtoDesc(CHANNEL_NAME_1);
59
60 // read all message
61 uint64_t i = 0;
62 uint64_t valid = 0;
63 for (i = 0; i < msg_count; ++i) {
64 if (reader.ReadMessage(&message)) {
65 AINFO << "msg[" << i << "]-> "
66 << "channel name: " << message.channel_name
67 << "; content: " << message.content
68 << "; msg time: " << message.time;
69 valid++;
70 } else {
71 AERROR << "read msg[" << i << "] failed";
72 }
73 }
74 AINFO << "static msg=================";
75 AINFO << "MSG validmsg:totalcount: " << valid << ":" << msg_count;
76}
#define AERROR
Definition log.h:44
#define AINFO
Definition log.h:42
const char CHANNEL_NAME_1[]
Definition record.cc:32

◆ test_write()

void test_write ( const std::string &  writefile)

在文件 record.cc40 行定义.

40 {
41 RecordWriter writer;
42 writer.SetSizeOfFileSegmentation(0);
43 writer.SetIntervalOfFileSegmentation(0);
44 writer.Open(writefile);
45 writer.WriteChannel(CHANNEL_NAME_1, MESSAGE_TYPE_1, PROTO_DESC);
46 for (uint32_t i = 0; i < 100; ++i) {
47 auto msg = std::make_shared<RawMessage>("abc" + std::to_string(i));
48 writer.WriteMessage(CHANNEL_NAME_1, msg, 888 + i);
49 }
50 writer.Close();
51}
const char MESSAGE_TYPE_1[]
Definition record.cc:34
const char PROTO_DESC[]
Definition record.cc:36

变量说明

◆ CHANNEL_NAME_1

const char CHANNEL_NAME_1[] = "/test/channel1"

在文件 record.cc32 行定义.

◆ CHANNEL_NAME_2

const char CHANNEL_NAME_2[] = "/test/channel2"

在文件 record.cc33 行定义.

◆ MESSAGE_TYPE_1

const char MESSAGE_TYPE_1[] = "apollo.cyber.proto.Test"

在文件 record.cc34 行定义.

◆ MESSAGE_TYPE_2

const char MESSAGE_TYPE_2[] = "apollo.cyber.proto.Channel"

在文件 record.cc35 行定义.

◆ PROTO_DESC

const char PROTO_DESC[] = "1234567890"

在文件 record.cc36 行定义.

◆ STR_10B

const char STR_10B[] = "1234567890"

在文件 record.cc37 行定义.

◆ TEST_FILE

const char TEST_FILE[] = "test.record"

在文件 record.cc38 行定义.