mirror of https://github.com/rusefi/opendbc.git
use std::string for SignalPackValue::name (#390)
This commit is contained in:
parent
83afde21fa
commit
b6ceded26b
|
@ -66,7 +66,7 @@ cdef extern from "common_dbc.h":
|
|||
double value
|
||||
|
||||
cdef struct SignalPackValue:
|
||||
const char * name
|
||||
string name
|
||||
double value
|
||||
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
#define ARRAYSIZE(x) (sizeof(x)/sizeof(x[0]))
|
||||
|
||||
struct SignalPackValue {
|
||||
const char* name;
|
||||
std::string name;
|
||||
double value;
|
||||
};
|
||||
|
||||
|
|
|
@ -51,12 +51,11 @@ CANPacker::CANPacker(const std::string& dbc_name) {
|
|||
uint64_t CANPacker::pack(uint32_t address, const std::vector<SignalPackValue> &signals, int counter) {
|
||||
uint64_t ret = 0;
|
||||
for (const auto& sigval : signals) {
|
||||
std::string name = std::string(sigval.name);
|
||||
double value = sigval.value;
|
||||
|
||||
auto sig_it = signal_lookup.find(std::make_pair(address, name));
|
||||
auto sig_it = signal_lookup.find(std::make_pair(address, sigval.name));
|
||||
if (sig_it == signal_lookup.end()) {
|
||||
WARN("undefined signal %s - %d\n", name.c_str(), address);
|
||||
WARN("undefined signal %s - %d\n", sigval.name.c_str(), address);
|
||||
continue;
|
||||
}
|
||||
const auto& sig = sig_it->second;
|
||||
|
|
|
@ -33,15 +33,11 @@ cdef class CANPacker:
|
|||
|
||||
cdef uint64_t pack(self, addr, values, counter):
|
||||
cdef vector[SignalPackValue] values_thing
|
||||
values_thing.reserve(len(values))
|
||||
cdef SignalPackValue spv
|
||||
|
||||
names = []
|
||||
|
||||
for name, value in values.iteritems():
|
||||
n = name.encode('utf8')
|
||||
names.append(n) # TODO: find better way to keep reference to temp string around
|
||||
|
||||
spv.name = n
|
||||
spv.name = name.encode('utf8')
|
||||
spv.value = value
|
||||
values_thing.push_back(spv)
|
||||
|
||||
|
|
Loading…
Reference in New Issue