boardd: Improve performance of `can_list_to_can_capnp()` (#32356)

old-commit-hash: e548742701
pull/32199/head
Dean Lee 1 year ago committed by GitHub
parent ec604b1907
commit ddd09f528b
  1. 7
      selfdrive/boardd/boardd_api_impl.pyx

@ -15,16 +15,17 @@ cdef extern from "can_list_to_can_capnp.cc":
void can_list_to_can_capnp_cpp(const vector[can_frame] &can_list, string &out, bool sendCan, bool valid)
def can_list_to_can_capnp(can_msgs, msgtype='can', valid=True):
cdef can_frame *f
cdef vector[can_frame] can_list
can_list.reserve(len(can_msgs))
cdef can_frame f
can_list.reserve(len(can_msgs))
for can_msg in can_msgs:
f = &(can_list.emplace_back())
f.address = can_msg[0]
f.busTime = can_msg[1]
f.dat = can_msg[2]
f.src = can_msg[3]
can_list.push_back(f)
cdef string out
can_list_to_can_capnp_cpp(can_list, out, msgtype == 'sendcan', valid)
return out

Loading…
Cancel
Save