Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
start=32,
length=8,
is_multiplexer=True),
cantools.db.Signal(name='S7',
start=40,
length=24,
multiplexer_ids=[1],
multiplexer_signal='S6'),
cantools.db.Signal(name='S8',
start=40,
length=8,
multiplexer_ids=[2],
multiplexer_signal='S6')
]
message = cantools.db.Message(frame_id=1,
name='M0',
length=8,
signals=signals)
self.assertEqual(message.signal_tree,
[
{
'S0': {
0: [
{
'S1': {
0: ['S2', 'S3'],
2: ['S4']
}
}
],
multiplexer_ids=[1],
multiplexer_signal='S4'),
cantools.db.Signal('S7',
14,
1,
'big_endian',
multiplexer_ids=[0],
multiplexer_signal='S6')
],
'The signals S6 and S4 are overlapping in message M.'
)
]
for signals, expected_overlpping in datas:
with self.assertRaises(cantools.db.Error) as cm:
cantools.db.Message(1, 'M', 7, signals, strict=True)
self.assertEqual(str(cm.exception), expected_overlpping)
def test_missing_dbc_specifics(self):
db = cantools.db.Database()
node = cantools.db.Node('FakeNode', 'Comment')
db.nodes.append(node)
signals = [cantools.db.Signal('C', 0, 8)]
message = cantools.db.Message(0x20, 'D', 8, signals)
db.messages.append(message)
# Test that dump executes without raising.
db.as_dbc_string()
start=32,
length=8,
is_multiplexer=True),
cantools.db.Signal(name='S7',
start=40,
length=24,
multiplexer_ids=[1],
multiplexer_signal='S6'),
cantools.db.Signal(name='S8',
start=40,
length=8,
multiplexer_ids=[2],
multiplexer_signal='S6')
]
message = cantools.db.Message(frame_id=1,
name='M0',
length=8,
signals=signals)
self.assertEqual(message.signal_tree,
[
{
'S0': {
0: [
{
'S1': {
0: ['S2', 'S3'],
2: ['S4']
}
}
],
multiplexer_ids=[1],
multiplexer_signal='S4'),
cantools.db.Signal('S7',
14,
1,
'big_endian',
multiplexer_ids=[0],
multiplexer_signal='S6')
],
'The signals S6 and S4 are overlapping in message M.'
)
]
for signals, expected_overlpping in datas:
with self.assertRaises(cantools.db.Error) as cm:
cantools.db.Message(1, 'M', 7, signals, strict=True)
self.assertEqual(str(cm.exception), expected_overlpping)
Data(start=56, length=2, byte_order='big_endian'),
Data(start=63, length=2, byte_order='little_endian'),
Data(start=64, length=1, byte_order='big_endian'),
Data(start=64, length=1, byte_order='little_endian'),
Data(start=7, length=65, byte_order='big_endian'),
Data(start=0, length=65, byte_order='little_endian')
]
for data in datas:
signal = cantools.db.Signal('S',
data.start,
data.length,
data.byte_order)
with self.assertRaises(cantools.db.Error) as cm:
cantools.db.Message(1,
'M',
8,
[signal],
strict=True)
self.assertEqual(str(cm.exception),
'The signal S does not fit in message M.')
(
Data(start=2, length=7, byte_order='little_endian'),
Data(start=1, length=9, byte_order='big_endian')
)
]
for data0, data1 in datas:
signal_0 = cantools.db.Signal('S0',
data0.start,
data0.length,
data0.byte_order)
signal_1 = cantools.db.Signal('S1',
data1.start,
data1.length,
data1.byte_order)
cantools.db.Message(1,
'M',
7,
[signal_0, signal_1],
strict=True)
# Signals overlapping.
datas = [
(
Data(start=7, length=1, byte_order='big_endian'),
Data(start=7, length=1, byte_order='big_endian')
),
(
Data(start=7, length=8, byte_order='big_endian'),
Data(start=5, length=10, byte_order='big_endian')
),
(
def test_missing_dbc_specifics(self):
db = cantools.db.Database()
node = cantools.db.Node('FakeNode', 'Comment')
db.nodes.append(node)
signals = [cantools.db.Signal('C', 0, 8)]
message = cantools.db.Message(0x20, 'D', 8, signals)
db.messages.append(message)
# Test that dump executes without raising.
db.as_dbc_string()
"""
iterations = 10000
signals = [
cantools.db.Signal('S0', 7, 4, 'big_endian'),
cantools.db.Signal('S1', 3, 4, 'big_endian'),
cantools.db.Signal('S2', 15, 4, 'big_endian'),
cantools.db.Signal('S3', 11, 8, 'big_endian'),
cantools.db.Signal('S4', 19, 1, 'big_endian'),
cantools.db.Signal('S5', 17, 17, 'big_endian'),
cantools.db.Signal('S6', 47, 15, 'big_endian')
]
message = cantools.db.Message(frame_id=1,
name='M0',
length=8,
signals=signals)
# Encode.
def encode():
message.encode({
'S0': 3,
'S1': 0,
'S2': 2,
'S3': 55,
'S4': 1,
'S5': 2323,
'S6': 3224
})