Hi Maleficarum, Great News for your help, I managed to read the data of the cam and select the one I want. but I’m not sure if the data is correct, but i have dome doubt, if message.data[2] it’s the PID and message.data[3] it’s data A and message.data[4] it’s B, what means message.data[1]?
and how i know if data is correct well, in my case I take the data 2f to know the value of gasoline but it does not give me exact always changes. that is my code
#include <carloop.h>
// Set up the Carloop hardware
Carloop carloop;
int canMessageCount = 0;
void updateCanMessageCount();
void setup() {
Serial.begin(9600);
carloop.begin();
Particle.connect();
}
void loop() {
carloop.update();
updateCanMessageCount();
}
void updateCanMessageCount()
{
CANMessage message;
while(carloop.can().receive(message))
{
if(message.data[2] == 0x2F){
Serial.printf(“Bencina:”);
Serial.println(“”);
Serial.print(“PID\tA\tB\tC\tD”);
Serial.println(“”);
Serial.print(message.data[2], HEX); //PID
Serial.print(“\t”);
Serial.print(message.data[3], HEX); //A
Serial.print(“\t”);
Serial.print(message.data[4], HEX); //B
Serial.print(“\t”);
Serial.print(message.data[5], HEX); //C
Serial.print(“\t”);
Serial.print(message.data[6], HEX);
Serial.println(“\t”);
//Serial.println(“\tEND”);
canMessageCount++;
}else if(message.data[2] == 0x31){
Serial.printf(“Revoluciones:”);
Serial.println(“”);
Serial.print(“PID\tA\tB\tC\tD”);
Serial.println(“”);
Serial.print(message.data[2], HEX); //PID
Serial.print(“\t”);
Serial.print(message.data[3], HEX); //A
Serial.print(“\t”);
Serial.print(message.data[4], HEX); //B
Serial.print(“\t”);
Serial.print(message.data[5], HEX); //C
Serial.print(“\t”);
Serial.print(message.data[6], HEX);
Serial.println(“\t”);
//Serial.println(“\tEND”);
canMessageCount++;
}else if(message.data[2] == 0x0C){
Serial.printf(“Distancia:”);
Serial.println(“”);
Serial.print(“PID\tA\tB\tC\tD”);
Serial.println(“”);
Serial.print(message.data[2], HEX); //PID
Serial.print(“\t”);
Serial.print(message.data[3], HEX); //A
Serial.print(“\t”);
Serial.print(message.data[4], HEX); //B
Serial.print(“\t”);
Serial.print(message.data[5], HEX); //C
Serial.print(“\t”);
Serial.print(message.data[6], HEX);
Serial.println(“\t”);
//Serial.println(“\tEND”);
canMessageCount++;
}else if(message.data[2] == 0x0D){
Serial.printf(“Velocidad:”);
Serial.println(“”);
Serial.print(“PID\tA\tB\tC\tD”);
Serial.println(“”);
Serial.print(message.data[2], HEX); //PID
Serial.print(“\t”);
Serial.print(message.data[3], HEX); //A
Serial.print(“\t”);
Serial.print(message.data[4], HEX); //B
Serial.print(“\t”);
Serial.print(message.data[5], HEX); //C
Serial.print(“\t”);
Serial.print(message.data[6], HEX);
Serial.println(“\t”);
//Serial.println(“\tEND”);
canMessageCount++;
}
}
}
and my response is that
Revolution:
PID A B C D
31 30 30 36 37
Speed:
PID A B C D
D 0 0 0 0
Revolution:
PID A B C D
31 30 30 36 37
Revolution:
PID A B C D
31 FE 2 C9 0
Revolution:
PID A B C D
31 DF 3 D 0
Revolution:
PID A B C D
31 B4 3 20 0
Fuell tank:
PID A B C D
2F 0 80 20 0
Fuell tank:
PID A B C D
2F 20 D8 20 DC
Bencina:
PID A B C D
2F 3 2C 1 0
thanks for support me!