# include <cstdint>
# include "common.h"
namespace {
{ % for address , msg_name , msg_size , sigs in msgs % }
const Signal sigs_ { { address } } [ ] = {
{ % for sig in sigs % }
{
{ % if sig . is_little_endian % }
{ % set b1 = sig . start_bit % }
{ % else % }
{ % set b1 = ( sig . start_bit //8)*8 + (-sig.start_bit-1) % 8 %}
{ % endif % }
. name = " {{sig.name}} " ,
. b1 = { { b1 } } ,
. b2 = { { sig . size } } ,
. bo = { { 64 - ( b1 + sig . size ) } } ,
. is_signed = { { " true " if sig . is_signed else " false " } } ,
. factor = { { sig . factor } } ,
. offset = { { sig . offset } } ,
. is_little_endian = { { " true " if sig . is_little_endian else " false " } } ,
{ % if checksum_type = = " honda " and sig . name = = " CHECKSUM " % }
. type = SignalType : : HONDA_CHECKSUM ,
{ % elif checksum_type = = " honda " and sig . name = = " COUNTER " % }
. type = SignalType : : HONDA_COUNTER ,
{ % elif checksum_type = = " toyota " and sig . name = = " CHECKSUM " % }
. type = SignalType : : TOYOTA_CHECKSUM ,
{ % else % }
. type = SignalType : : DEFAULT ,
{ % endif % }
} ,
{ % endfor % }
} ;
{ % endfor % }
const Msg msgs [ ] = {
{ % for address , msg_name , msg_size , sigs in msgs % }
{ % set address_hex = " 0x%X " % address % }
{
. name = " {{msg_name}} " ,
. address = { { address_hex } } ,
. size = { { msg_size } } ,
. num_sigs = ARRAYSIZE ( sigs_ { { address } } ) ,
. sigs = sigs_ { { address } } ,
} ,
{ % endfor % }
} ;
}
const DBC { { dbc . name } } = {
. name = " {{dbc.name}} " ,
. num_msgs = ARRAYSIZE ( msgs ) ,
. msgs = msgs ,
} ;
dbc_init ( { { dbc . name } } )