私はラズベリーパイとarduino CAN schieldを使用しています。これはMCP2515とSPIを使ってOBD II PIDを1つ要求しています。MCP2515 OBD IIマルチプルPID
OBDエミュレータ(Freematics)から単一のPIDをリクエストして受信することができます。私は、単一のクエリで複数のPID(最大6個のPID)を要求できることを知っています。
他の種類のメッセージを使用するたびに、最初のリクエストのみを受信します。誰も助けてくれるの?動作していない複数の要求に対する
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:私たちのFreematics OBD IIエミュレータは複数の応答の送信をサポートしていません
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;
んFreematics OBD IIもないVINをサポートしていますか?つまり、私はFreematicsデバイスを通じてVINの最初の3文字を取得できますか?私は正しい? – Mogi
私たちのFreematics OBD IIはvinをサポートしています。私たちはコマンド "0902"を送信することによってそれを取得します...あなたは 'vin'の最初の3文字を意味しますか?...あなたはどんなコマンドを送信していますか、どんな値を返していますか? –
私はSPIとMCP2515を使ってC++コードでデータを送受信することを考慮しています。だから、私が送るものは7DFをヘッダーに、02 09 02を3バイトとしています。 (データバイト数、SIDおよびPID)。これは大丈夫です。私は8バイトの7E8ヘッダーと8バイトの10 14 49 02 01 57 50 4Fを受け取ります。問題は、私が7DFのフロー制御を送信するときです30 00 00 00 00 00 00 00他の14バイトのECUからの応答がなくなりました。 – Mogi