Modularity
An important feature of RemotiveTopology is the ability to create both modular platforms and instances.
Platform examples
In this example the platform describes a small subsystem of the vehicle:
The following sections show different ways to describe the same subsystem.
Files per channel
When creating a platform from DBC or LDF files it can be convenient to start with separate platform files for each channel and then combining them into a subsystem.
drivercan.platform.yaml
schema: remotive-topology-platform:0.18
channels:
DriverCan:
type: can
database: ../databases/driver_can.dbc
bodycan.platform.yaml
schema: remotive-topology-platform:0.18
channels:
BodyCan:
type: can
database: ../databases/body_can.dbc
Then combined into sybsystem.platform.yaml
schema: remotive-topology-platform:0.18
includes:
- ../drivercan.platform.yaml
- ../bodycan.platform.yaml
Notice that in this example ECUs are automatically derived from the DBC files. It's important that the DBC files agree on the names for all ECUs. Make sure to use DBC files that correspond to the same version of the vehicle.
One file per subsystem
It's also possible to combine the channel platform files into a larger file and skip the channel specific files. This decision is a matter of taste and what makes sense for your architecture.
schema: remotive-topology-platform:0.18
channels:
DriverCan:
type: can
database: ../databases/driver_can.dbc
BodyCan:
type: can
database: ../databases/body_can.dbc
Files per ECU
When using ARXML it's common to have ECU extracts which can be combined into a larger platform.
schema: remotive-topology-platform:0.18
includes:
- ../databases/SCCM.arxml
- ../databases/BCM.arxml
- ../databases/DIM.arxml
Notice that in this example both channels and ECUs are automatically derived from the ECU extracts. It's important that the ECU extracts agree on naming and other information, otherwise there are validation errors. Make sure to use ECU extracts that correspond to the same version of the platform.
Also notice that it's often useful for testing and debugging purposes to provide a signal database that covers the entire channel, e.g. provide a DBC file for each CAN channel. This way you can decode all messages on a single topology-namespace.