1
1
#include " cereal/messaging/messaging.h"
2
2
#include " selfdrive/pandad/panda.h"
3
- #include " opendbc/can/common.h"
4
3
5
- void can_list_to_can_capnp_cpp (const std::vector<can_frame> &can_list, std::string &out, bool sendcan , bool valid) {
4
+ void can_list_to_can_capnp_cpp (const std::vector<can_frame> &can_list, std::string &out, bool sendCan , bool valid) {
6
5
MessageBuilder msg;
7
6
auto event = msg.initEvent (valid);
8
7
9
- auto canData = sendcan ? event.initSendcan (can_list.size ()) : event.initCan (can_list.size ());
8
+ auto canData = sendCan ? event.initSendcan (can_list.size ()) : event.initCan (can_list.size ());
10
9
int j = 0 ;
11
10
for (auto it = can_list.begin (); it != can_list.end (); it++, j++) {
12
11
auto c = canData[j];
@@ -19,33 +18,3 @@ void can_list_to_can_capnp_cpp(const std::vector<can_frame> &can_list, std::stri
19
18
kj::ArrayOutputStream output_stream (kj::ArrayPtr<capnp::byte>((unsigned char *)out.data (), msg_size));
20
19
capnp::writeMessage (output_stream, msg);
21
20
}
22
-
23
- // Converts a vector of Cap'n Proto serialized can strings into a vector of CanData structures.
24
- void can_capnp_to_can_list_cpp (const std::vector<std::string> &strings, std::vector<CanData> &can_list, bool sendcan) {
25
- AlignedBuffer aligned_buf;
26
- can_list.reserve (strings.size ());
27
-
28
- for (const auto &str : strings) {
29
- // extract the messages
30
- capnp::FlatArrayMessageReader reader (aligned_buf.align (str.data (), str.size ()));
31
- cereal::Event::Reader event = reader.getRoot <cereal::Event>();
32
-
33
- auto frames = sendcan ? event.getSendcan () : event.getCan ();
34
-
35
- // Add new CanData entry
36
- CanData &can_data = can_list.emplace_back ();
37
- can_data.nanos = event.getLogMonoTime ();
38
- can_data.frames .reserve (frames.size ());
39
-
40
- // Populate CAN frames
41
- for (const auto &frame : frames) {
42
- CanFrame &can_frame = can_data.frames .emplace_back ();
43
- can_frame.src = frame.getSrc ();
44
- can_frame.address = frame.getAddress ();
45
-
46
- // Copy CAN data
47
- auto dat = frame.getDat ();
48
- can_frame.dat .assign (dat.begin (), dat.end ());
49
- }
50
- }
51
- }
0 commit comments