Es gibt den fahrzeuginternen Antriebs-CAN und den Diagnose CAN.
Auf dem Fahrzeuginternen sind dauerhaft alle für den Fahrzeugbetrieb relevanten Daten unterwegs.
Dort kannst du ohne Request mithören, solange du die CAN ID und das zughörige Bit deiner gewünschten Messgröße kennst. Dafür gibt es meist die von dir angesprochenen CAN DBCs.
Um auf diesem CAN Daten abgreifen zu können muss man allerdings die CAN-Leitungen durchschleifen und einen 120 Ohm Widerstand installieren. Dafür sollte man aber ein Grundverständnis für das ganze CAN-System haben. Andernfalls holt man sich sonst nur Probleme ins Fahrzeug.
Der einfachere Weg ist, die Daten über den Diagnose CAN an der OBD-Buchse abzugreifen. Dort ist die Datenrate zwar langsamer, aber für uns Otto-Normalverbraucher mehr als ausreichend.
Ich erstelle gerade mit Matlab Simulink eine einfache Fahrzeugsimulation, in der ich ebenfalls die Messdaten über OBD abgreife. Anschließend rechne ich die binären Rohdaten einfach mit der Umrechnungsvorschrift, die ich verlinkt hatte, in dezimale Messwerte um.
Wenn das dein verwendetes Programm nicht zulässt und du nur mit dbc-files arbeiten kannst, such doch einfach bei google nach "OBD2 dbc". Da gibt es mit Sicherheit fertige dbcs.
Da die PIDS und Umrechnungsformeln nach ISO genormt sind, brauchst du für die von dir gewünschten Messgrößen keine subaru-spezifische dbc.
Hier noch kurz eine übersichtliche Abbildung für alle Interessierten:
Das blaue ist der Highspeed-Antriebs-CAN und das dunkelrote der Diagnose-CAN. Über die OBD-Buchse wird sozusagen eine Anfrage an das Gateway geschickt. Dieses filtert dann die angefragten Messgrößen aus den CAN-Botschaften des Antriebs-CANs heraus und sendet sie zurück an das Diagnose-Interface, das man an der OBD-Buchse angeschlossen hat.
Wer sich noch etwas in die Materie einlesen möchte kann hier ein wenig stöbern:
https://www.kfztech.de/kfztechnik/elo/ca…rundlagen_1.htm
In meinen Augen ist das ganze CAN-System auch für fachfremde Personen nachvollziehbar erklärt.