MCPcopy Create free account
hub / github.com/KDE/labplot / getSignals

Method getSignals

src/backend/datasources/filters/DBCParser.cpp:57–107  ·  view source on GitHub ↗

! * \brief numberSignals * Determines the number of signals * \param ids Vector with all id's found in a log file * \return */

Source from the content-addressed store, hash-verified

55 * \return
56 */
57void DbcParser::getSignals(const QVector<uint32_t> ids, PrefixType p, SuffixType s, QHash<uint32_t, int>& idIndex, Signals& out) const {
58 out.signal_names.clear();
59 out.value_descriptions.clear();
60#ifdef HAVE_DBC_PARSER
61 for (const auto id : ids) {
62 for (const auto& message : m_parser.get_messages()) {
63 if (message.id() == id) {
64 idIndex.insert(id, out.value_descriptions.size());
65 for (const auto& signal_ : message.get_signals()) {
66 std::string signal_name;
67 switch (p) {
68 case PrefixType::Message:
69 signal_name += message.name() + "_";
70 break;
71 case PrefixType::None:
72 break;
73 }
74
75 signal_name += signal_.name;
76
77 switch (s) {
78 case SuffixType::None:
79 break;
80 case SuffixType::Unit:
81 signal_name += "_" + signal_.unit;
82 break;
83 case SuffixType::UnitIfAvailable:
84 if (signal_.unit.size() != 0)
85 signal_name += "_" + signal_.unit;
86 break;
87 }
88 out.signal_names.append(QString::fromStdString(signal_name));
89 std::vector<ValueDescriptions> vd;
90 vd.reserve(signal_.value_descriptions.size());
91 for (const auto& svdescription : signal_.value_descriptions) {
92 vd.push_back({svdescription.value, QString::fromStdString(svdescription.description)});
93 }
94 out.value_descriptions.push_back({vd});
95 }
96 break;
97 }
98 }
99 }
100#else
101 Q_UNUSED(ids)
102 Q_UNUSED(p)
103 Q_UNUSED(s)
104 Q_UNUSED(idIndex)
105 Q_UNUSED(out)
106#endif
107}

Callers 1

Calls 7

idMethod · 0.80
insertMethod · 0.80
appendMethod · 0.80
clearMethod · 0.45
sizeMethod · 0.45
nameMethod · 0.45
reserveMethod · 0.45

Tested by

no test coverage detected