# distutils: language = c++
# cython: language_level=3
from libcpp.vector cimport vector
from libcpp.string cimport string
from libcpp cimport bool
cdef extern from " panda.h " :
cdef struct can_frame :
long address
string dat
long busTime
long src
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 vector [can_frame ] can_list
can_list . reserve ( len ( can_msgs ) )
cdef can_frame f
for can_msg in can_msgs :
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