more messagebuilder (#2162)

* more messagebuilder

* little more

* revert

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
pull/2167/head
Dean Lee 2020-09-14 04:00:06 +08:00 committed by GitHub
parent ea06941d4d
commit 9fa56b4eab
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 13 additions and 31 deletions

View File

@ -187,13 +187,9 @@ void usb_retry_connect() {
}
void can_recv(PubMaster &pm) {
uint64_t start_time = nanos_since_boot();
// create message
MessageBuilder msg;
auto event = msg.initEvent();
event.setLogMonoTime(start_time);
int recv = panda->can_receive(event);
if (recv){
pm.send("can", msg);

View File

@ -1,9 +1,4 @@
#include <vector>
#include <tuple>
#include <string>
#include "messaging.hpp"
#include "cereal/gen/cpp/log.capnp.h"
#include "cereal/gen/cpp/car.capnp.h"
typedef struct {
long address;
@ -16,16 +11,16 @@ extern "C" {
void can_list_to_can_capnp_cpp(const std::vector<can_frame> &can_list, std::string &out, bool sendCan, bool valid) {
MessageBuilder msg;
auto event = msg.initEvent();
event.setValid(valid);
auto event = msg.initEvent(valid);
auto canData = sendCan ? event.initSendcan(can_list.size()) : event.initCan(can_list.size());
int j = 0;
for (auto it = can_list.begin(); it != can_list.end(); it++, j++) {
canData[j].setAddress(it->address);
canData[j].setBusTime(it->busTime);
canData[j].setDat(kj::arrayPtr((uint8_t*)it->dat.data(), it->dat.size()));
canData[j].setSrc(it->src);
auto c = canData[j];
c.setAddress(it->address);
c.setBusTime(it->busTime);
c.setDat(kj::arrayPtr((uint8_t*)it->dat.data(), it->dat.size()));
c.setSrc(it->src);
}
auto bytes = msg.toBytes();
out.append((const char *)bytes.begin(), bytes.size());

View File

@ -404,10 +404,8 @@ void append_property(const char* key, const char* value, void *cookie) {
}
kj::Array<capnp::word> gen_init_data() {
capnp::MallocMessageBuilder msg;
auto event = msg.initRoot<cereal::Event>();
event.setLogMonoTime(nanos_since_boot());
auto init = event.initInitData();
MessageBuilder msg;
auto init = msg.initEvent().initInitData();
init.setDeviceType(cereal::InitData::DeviceType::NEO);
init.setVersion(capnp::Text::Reader(COMMA_VERSION));
@ -509,11 +507,8 @@ static void bootlog() {
LOGW("bootlog to %s", s.segment_path);
{
capnp::MallocMessageBuilder msg;
auto event = msg.initRoot<cereal::Event>();
event.setLogMonoTime(nanos_since_boot());
auto boot = event.initBoot();
MessageBuilder msg;
auto boot = msg.initEvent().initBoot();
boot.setWallTimeNanos(nanos_since_epoch());

View File

@ -60,16 +60,12 @@ int sensor_loop() {
while (!do_exit){
std::chrono::steady_clock::time_point begin = std::chrono::steady_clock::now();
uint64_t log_time = nanos_since_boot();
const int num_events = sensors.size();
MessageBuilder msg;
auto event = msg.initEvent();
event.setLogMonoTime(log_time);
auto sensor_events = msg.initEvent().initSensorEvents(num_events);
int num_events = sensors.size();
auto sensor_events = event.initSensorEvents(num_events);
for (size_t i = 0; i < num_events; i++){
for (int i = 0; i < num_events; i++){
auto event = sensor_events[i];
sensors[i]->get_event(event);
}