In genere non sono una "persona di macchina", quindi spero di poterlo spiegare abbastanza bene per ottenere un aiuto qui:
Quando invio messaggi a un dispositivo OBD-II, ricevo una risposta nella maggior parte delle auto che ho provato. Tuttavia, con le auto che apparentemente hanno più di un chip ECU, ottengo una risposta da ciascuno di essi. Ad esempio, se invio un 01 0C
comando PID a un veicolo con 3 chip ECU, ricevo 3 risposte che sono generalmente molto simili ma comunque diverse.
Un 01 00
comando dovrebbe restituire 4 byte che indicano i PID supportati del veicolo, ma questo restituisce anche 4 byte per ogni ECU - uno è un 4 byte completamente arricchito con diverse bandiere accese e spente, mentre gli altri sembrano avere solo una manciata di flag attivati (tali flag sembrano essere sempre flag inclusi nella risposta "principale", ma non sono sicuro che sia sempre così).
Esempio:
SENT: 01 00
RECEIVED:
00 BF BF AC D3 - This response has the most binary flags turned on
00 98 18 80 11 - 8 flags on here
00 98 18 80 13 - 9 flags on here
Le ultime due righe sono costituite da flag contrassegnati anche nella prima riga, ma la riga 3 ha un flag aggiuntivo rispetto alla riga 2.
Mi sembra che forse esiste una singola ECU che si qualifica come il chip "primario" che dovrei ascoltare quando invio comandi e (penso) capisco che posso usare una maschera / filtro CAN ID per presta attenzione solo a quelli di cui ho bisogno.
La domanda è: esiste davvero una "ECU primaria" a cui dovrei prestare attenzione o tutte queste risposte sono ugualmente importanti? Se ce n'è uno primario che devo scegliere come target, esiste un comando che posso inviare per determinare quale sia il "più significativo"?
Veicoli testati su:
2011 Chevy Cruze [2 ECUs]
2015 BMW M5 [3 ECUs]
2015 Range Rover Autobiography [3 ECUs]