J'ai écrit un code qui réussit à trouver l'OBD apparié et établir la connexion avec ELM327 mais quand j'essaye d'envoyer la commande ATZ l'application obtient crash.Impossible d'envoyer la commande ATZ à ELM 327 après avoir établi la connexion avec ELM327 dans android
est ici l'extrait de code, je l'ai fait mal
public HashMap<String, String> startOBDCommunicator(
BluetoothSocket btSocketConnected, String paramClassName,
String methodName) {
HashMap<String, String> dataRetriever = new HashMap<String, String>();
sendDataToOBD(btSocketConnected, "ATZ\r");
dataRetriever.put("Reset", readDataFromOBD(btSocketConnected));
sendDataToOBD(btSocketConnected, "ATS0\r");
dataRetriever.put("Space Control", readDataFromOBD(btSocketConnected));
sendDataToOBD(btSocketConnected, "ATE0\r");
dataRetriever.put("Echo control", readDataFromOBD(btSocketConnected));
sendDataToOBD(btSocketConnected, "ATL0\r");
dataRetriever.put("Line feed", readDataFromOBD(btSocketConnected));
sendDataToOBD(btSocketConnected, "ATAT0\r");
dataRetriever
.put("Adaptive Timing", readDataFromOBD(btSocketConnected));
sendDataToOBD(btSocketConnected, "ATST10\r");
dataRetriever.put("Time Out", readDataFromOBD(btSocketConnected));
sendDataToOBD(btSocketConnected, "ATI\r");
dataRetriever.put("Device Description",
readDataFromOBD(btSocketConnected));
sendDataToOBD(btSocketConnected, "ATDP\r");
dataRetriever.put("Protocol Information1",
readDataFromOBD(btSocketConnected));
sendDataToOBD(btSocketConnected, "ATSPA0\r");
dataRetriever
.put("Auto Protocol",
readBytesFromOBD(btSocketConnected, paramClassName,
methodName));
sendDataToOBD(btSocketConnected, "010C\r");
dataRetriever
.put("RPM param",
readBytesFromOBD(btSocketConnected, paramClassName,
methodName));
sendDataToOBD(btSocketConnected, "010D\r");
dataRetriever
.put("Speed parameters",
readBytesFromOBD(btSocketConnected, paramClassName,
methodName));
sendDataToOBD(btSocketConnected, "0104\r");
dataRetriever
.put("engine load value parameters",
readBytesFromOBD(btSocketConnected, paramClassName,
methodName));
sendDataToOBD(btSocketConnected, "0105\r");
dataRetriever
.put("Engine coolant temperature parameters",
readBytesFromOBD(btSocketConnected, paramClassName,
methodName));
sendDataToOBD(btSocketConnected, "012F\r");
dataRetriever
.put("Fuel Level Input",
readBytesFromOBD(btSocketConnected, paramClassName,
methodName));
return dataRetriever;
}
Je ne suis pas sûr où je l'ai fait des erreurs, donc im partager le flux du code entier comme deux point essentiel, https://gist.github.com/sankarganesh/6376031, cet essentiel tient le Fichier d'activité et un autre élément pour l'écouteur de sockets Bluetooth https://gist.github.com/sankarganesh/6376039
Crash d'application -> pouvons-nous avoir un stacktrace? –
@ Skaard-Solo: Même si j'ai écrit le bloc try catch et essayé de recopier la trace de la pile dans un fichier sous test dans la carte SD, je n'ai pas pu capturer la trace de la pile. –
@ Skaard-Solo :: Je vous demande de passer par l'essentiel que j'ai partagé dans la Question et de me dire si j'ai mal utilisé les commandes –