Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitcf4ac28

Browse files
committed
Simple support for multiplexed signals.
1 parentb952fab commitcf4ac28

File tree

3 files changed

+35
-3
lines changed

3 files changed

+35
-3
lines changed

‎src/codegen/c-main-generator.cpp‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -322,6 +322,15 @@ void CiMainGenerator::WriteSigStructField(const SignalDescriptor_t& sig, bool bi
322322
fwriter->AppendLine(" //" +std::regex_replace(sig.ValueText,std::regex("\n"),"\n //"));
323323
}
324324

325+
if (sig.Multiplex == MultiplexType::kMulValue)
326+
{
327+
fwriter->AppendLine(" // multiplex variable");
328+
}
329+
elseif (sig.Multiplex == MultiplexType::kMaster)
330+
{
331+
fwriter->AppendLine(" // MULTIPLEX master signal");
332+
}
333+
325334
std::string dtype ="";
326335

327336
dtype +="" +PrintType((int)sig.Type) +"" + sig.Name;

‎src/parser/dbclineparser.cpp‎

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -153,11 +153,25 @@ bool DbcLineParser::ParseSignalLine(SignalDescriptor_t* sig, const std::string&
153153
// split middle part on dedicated values
154154
auto valpart =resplit(trim(tailpart[0]),kRegSigReceivers, -1);
155155

156-
halfs =resplit(halfs[0],kRegSigSplit0, -1);
156+
halfs =resplit(halfs[0],kRegValTable,0);
157157

158-
if (halfs.size() >1)
158+
if (halfs.size() >=2)
159159
{
160-
sig->Name = halfs[halfs.size() -1];
160+
sig->Name = halfs[1];
161+
sig->Multiplex = MultiplexType::kNone;
162+
163+
if (halfs.size() ==3)
164+
{
165+
// Multiplex signal, put additional comment
166+
if (halfs[2] =="M")
167+
{
168+
sig->Multiplex = MultiplexType::kMaster;
169+
}
170+
else
171+
{
172+
sig->Multiplex = MultiplexType::kMulValue;
173+
}
174+
}
161175
}
162176
else
163177
{

‎src/types/message.h‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,13 @@ enum class BitLayout
1313
kMotorolla
1414
};
1515

16+
enumclassMultiplexType
17+
{
18+
kNone,
19+
kMaster,
20+
kMulValue
21+
};
22+
1623
enumclassSigType
1724
{
1825
i8 =0,
@@ -77,6 +84,8 @@ typedef struct
7784

7885
std::string ValueText;
7986

87+
MultiplexType Multiplex;
88+
8089
} SignalDescriptor_t;
8190

8291
typedefstruct

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp