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
|
double value
|
||||||
|
|
||||||
cdef struct SignalPackValue:
|
cdef struct SignalPackValue:
|
||||||
const char * name
|
string name
|
||||||
double value
|
double value
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
#define ARRAYSIZE(x) (sizeof(x)/sizeof(x[0]))
|
#define ARRAYSIZE(x) (sizeof(x)/sizeof(x[0]))
|
||||||
|
|
||||||
struct SignalPackValue {
|
struct SignalPackValue {
|
||||||
const char* name;
|
std::string name;
|
||||||
double value;
|
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 CANPacker::pack(uint32_t address, const std::vector<SignalPackValue> &signals, int counter) {
|
||||||
uint64_t ret = 0;
|
uint64_t ret = 0;
|
||||||
for (const auto& sigval : signals) {
|
for (const auto& sigval : signals) {
|
||||||
std::string name = std::string(sigval.name);
|
|
||||||
double value = sigval.value;
|
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()) {
|
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;
|
continue;
|
||||||
}
|
}
|
||||||
const auto& sig = sig_it->second;
|
const auto& sig = sig_it->second;
|
||||||
|
|
|
@ -33,15 +33,11 @@ cdef class CANPacker:
|
||||||
|
|
||||||
cdef uint64_t pack(self, addr, values, counter):
|
cdef uint64_t pack(self, addr, values, counter):
|
||||||
cdef vector[SignalPackValue] values_thing
|
cdef vector[SignalPackValue] values_thing
|
||||||
|
values_thing.reserve(len(values))
|
||||||
cdef SignalPackValue spv
|
cdef SignalPackValue spv
|
||||||
|
|
||||||
names = []
|
|
||||||
|
|
||||||
for name, value in values.iteritems():
|
for name, value in values.iteritems():
|
||||||
n = name.encode('utf8')
|
spv.name = name.encode('utf8')
|
||||||
names.append(n) # TODO: find better way to keep reference to temp string around
|
|
||||||
|
|
||||||
spv.name = n
|
|
||||||
spv.value = value
|
spv.value = value
|
||||||
values_thing.push_back(spv)
|
values_thing.push_back(spv)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue