J'utilise un champ CAN Raspberry Pi et Arduino qui utilise un MCP2515 et un SPI pour demander un seul PID OBD II.MCP2515 OBD II PID multiple
Je peux demander et recevoir un seul PID de mon émulateur OBD (Freematique). Je sais qu'il est possible de demander plusieurs PID (jusqu'à 6 PID) dans une même requête.
Chaque fois que j'utilise d'autres types de messages, je reçois uniquement la première requête. Quelqu'un peut-il aider?
Voici le message pour PID unique qui fonctionne (C++)
:
msg.id = 0x7DF; //ID_QUERY
msg.header.rtr = 0;
msg.header.length = 0x08;
msg.data[0] = 0x02;
msg.data[1] = 0x01;
msg.data[2] = PID; //Whatever PID I want!
Message pour la demande multiple qui ne fonctionne pas:
msg.id = 0x7DF; //ID_QUERY
msg.header.rtr = 0;
msg.header.length = 0x08;
msg.data[0] = 0x07; //! Also it is not working with 0x08
msg.data[1] = 0x01;
msg.data[2] = PID0;
msg.data[3] = PID1;
msg.data[4] = PID2;
msg.data[5] = PID3;
msg.data[6] = PID4;
msg.data[7] = PID5;
Est-ce que Freematics OBD II ne supporte pas même le VIN? Cela signifie que je peux seulement obtenir les trois premiers caractères de VIN à travers l'appareil de Freematics? Ai-je raison? – Mogi
Notre Freemaps OBD II soutient le vin. Nous le récupérons en envoyant la commande "0902" ... Qu'entendez-vous par "les 3 premiers caractères du vin"? ... quelles commandes envoyez-vous et quelles valeurs obtenez-vous en retour? –
considère que j'envoie et reçois des données via un code C++ avec SPI et MCP2515. Donc ce que j'envoie est 7DF comme en-tête et 02 09 02 comme trois octets. (Nombre d'octets de données, SID et PID). C'est d'accord. Je reçois 8 octets avec en-tête 7E8 avec 8 octets de 10 14 49 02 01 57 50 4F.Le problème est quand j'envoie le contrôle de flux de 7DF 30 00 00 00 00 00 00 00 je n'obtiens plus de réponse de l'ECU pour les quatorze autres octets. – Mogi