You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.3 KiB
54 lines
1.3 KiB
#include <cstdint>
|
|
|
|
#include "common.h"
|
|
|
|
namespace {
|
|
|
|
{% for address, msg_name, msg_size, sigs in msgs %}
|
|
const Signal sigs_{{address}}[] = {
|
|
{% for sig in sigs %}
|
|
{
|
|
{% set b1 = (sig.start_bit//8)*8 + (-sig.start_bit-1) % 8 %}
|
|
.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}},
|
|
{% 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}})
|
|
|