@ -99,11 +99,7 @@ void safety_setter_thread() {
}
LOGW ( " got %d bytes CarParams " , params . size ( ) ) ;
// format for board, make copy due to alignment issues, will be freed on out of scope
auto amsg = kj : : heapArray < capnp : : word > ( ( params . size ( ) / sizeof ( capnp : : word ) ) + 1 ) ;
memcpy ( amsg . begin ( ) , params . data ( ) , params . size ( ) ) ;
capnp : : FlatArrayMessageReader cmsg ( amsg ) ;
capnp : : FlatArrayMessageReader cmsg ( AlignedBuffer ( params . data ( ) , params . size ( ) ) ) ;
cereal : : CarParams : : Reader car_params = cmsg . getRoot < cereal : : CarParams > ( ) ;
cereal : : CarParams : : SafetyModel safety_model = car_params . getSafetyModel ( ) ;
@ -201,7 +197,7 @@ void can_recv(PubMaster &pm) {
void can_send_thread ( bool fake_send ) {
LOGD ( " start send thread " ) ;
kj : : Array < capnp : : word > buf = kj : : heapArray < capnp : : word > ( 1024 ) ;
AlignedBuffer aligned_buf ;
Context * context = Context : : create ( ) ;
SubSocket * subscriber = SubSocket : : create ( context , " sendcan " ) ;
assert ( subscriber ! = NULL ) ;
@ -217,13 +213,8 @@ void can_send_thread(bool fake_send) {
}
continue ;
}
const size_t size = ( msg - > getSize ( ) / sizeof ( capnp : : word ) ) + 1 ;
if ( buf . size ( ) < size ) {
buf = kj : : heapArray < capnp : : word > ( size ) ;
}
memcpy ( buf . begin ( ) , msg - > getData ( ) , msg - > getSize ( ) ) ;
capnp : : FlatArrayMessageReader cmsg ( buf . slice ( 0 , size ) ) ;
capnp : : FlatArrayMessageReader cmsg ( aligned_buf . get ( msg ) ) ;
cereal : : Event : : Reader event = cmsg . getRoot < cereal : : Event > ( ) ;
//Dont send if older than 1 second