|
|
@ -17,14 +17,17 @@ cdef extern from "opendbc/can/common.h": |
|
|
|
vector[CanFrame] frames |
|
|
|
vector[CanFrame] frames |
|
|
|
|
|
|
|
|
|
|
|
cdef extern from "can_list_to_can_capnp.cc": |
|
|
|
cdef extern from "can_list_to_can_capnp.cc": |
|
|
|
void can_list_to_can_capnp_cpp(const vector[CanFrame] &can_list, string &out, bool sendcan, bool valid) |
|
|
|
void can_list_to_can_capnp_cpp(const vector[CanFrame] &can_list, string &out, bool sendcan, bool valid) nogil |
|
|
|
void can_capnp_to_can_list_cpp(const vector[string] &strings, vector[CanData] &can_data, bool sendcan) |
|
|
|
void can_capnp_to_can_list_cpp(const vector[string] &strings, vector[CanData] &can_data, bool sendcan) |
|
|
|
|
|
|
|
|
|
|
|
def can_list_to_can_capnp(can_msgs, msgtype='can', valid=True): |
|
|
|
def can_list_to_can_capnp(can_msgs, msgtype='can', valid=True): |
|
|
|
cdef CanFrame *f |
|
|
|
cdef CanFrame *f |
|
|
|
cdef vector[CanFrame] can_list |
|
|
|
cdef vector[CanFrame] can_list |
|
|
|
|
|
|
|
cdef uint32_t cpp_can_msgs_len = len(can_msgs) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
with nogil: |
|
|
|
|
|
|
|
can_list.reserve(cpp_can_msgs_len) |
|
|
|
|
|
|
|
|
|
|
|
can_list.reserve(len(can_msgs)) |
|
|
|
|
|
|
|
for can_msg in can_msgs: |
|
|
|
for can_msg in can_msgs: |
|
|
|
f = &(can_list.emplace_back()) |
|
|
|
f = &(can_list.emplace_back()) |
|
|
|
f.address = can_msg[0] |
|
|
|
f.address = can_msg[0] |
|
|
@ -32,7 +35,10 @@ def can_list_to_can_capnp(can_msgs, msgtype='can', valid=True): |
|
|
|
f.src = can_msg[2] |
|
|
|
f.src = can_msg[2] |
|
|
|
|
|
|
|
|
|
|
|
cdef string out |
|
|
|
cdef string out |
|
|
|
can_list_to_can_capnp_cpp(can_list, out, msgtype == 'sendcan', valid) |
|
|
|
cdef bool is_sendcan = (msgtype == 'sendcan') |
|
|
|
|
|
|
|
cdef bool is_valid = valid |
|
|
|
|
|
|
|
with nogil: |
|
|
|
|
|
|
|
can_list_to_can_capnp_cpp(can_list, out, is_sendcan, is_valid) |
|
|
|
return out |
|
|
|
return out |
|
|
|
|
|
|
|
|
|
|
|
def can_capnp_to_list(strings, msgtype='can'): |
|
|
|
def can_capnp_to_list(strings, msgtype='can'): |
|
|
|