Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
#
# create target Matrix
#
db3 = canmatrix.CanMatrix()
#
# Here a new Can-Matrix can be 'programmed':
# -----------------------------------------------------
#
# Copy Can-ID 1234 from second CAN-Matrix to target-Matrix
canmatrix.copy.copy_frame(1234, db2, db3)
# Copy frame "Engine_123" from first CAN-Matrix to target-Matrix
canmatrix.copy.copy_frame("Engine_123", db1, db3)
# Copy ECU (with all Frames) "Gateway" from first CAN-Matrix to target-Matrix
canmatrix.copy.copy_ecu_with_frames("Gateway", db1, db3)
#
# -----------------------------------------------------
#
#
#
# export the new (target)-Matrix for example as .dbc:
#
canmatrix.formats.dumpp(db3, "target.dbc")
def merge(self, mergeArray): # type: (typing.Sequence[CanMatrix]) -> None
"""Merge multiple Matrices to this Matrix.
Try to copy all Frames and all environment variables from source Matrices. Don't make duplicates.
Log collisions.
:param list of Matrix mergeArray: list of source CAN Matrices to be merged to to self.
"""
for dbTemp in mergeArray: # type: CanMatrix
for frame in dbTemp.frames:
copyResult = canmatrix.copy.copy_frame(frame.arbitration_id, dbTemp, self)
if copyResult is False:
logger.error(
"ID Conflict, could not copy/merge frame " + frame.name + " %xh " % frame.arbitration_id.id + self.frame_by_id(frame.arbitration_id).name
)
for envVar in dbTemp.env_vars:
if envVar not in self.env_vars:
self.add_env_var(envVar, dbTemp.env_vars[envVar])
else:
logger.error(
"Name Conflict, could not copy/merge EnvVar " + envVar)
# import of a second CAN-Matrix (*.dbc, *.dbf, *.kcd, *.arxml)
db2 = canmatrix.formats.loadp("second.dbc", flat_import=True)
#
# create target Matrix
#
db3 = canmatrix.CanMatrix()
#
# Here a new Can-Matrix can be 'programmed':
# -----------------------------------------------------
#
# Copy Can-ID 1234 from second CAN-Matrix to target-Matrix
canmatrix.copy.copy_frame(1234, db2, db3)
# Copy frame "Engine_123" from first CAN-Matrix to target-Matrix
canmatrix.copy.copy_frame("Engine_123", db1, db3)
# Copy ECU (with all Frames) "Gateway" from first CAN-Matrix to target-Matrix
canmatrix.copy.copy_ecu_with_frames("Gateway", db1, db3)
#
# -----------------------------------------------------
#
#
#
# export the new (target)-Matrix for example as .dbc:
#