ATZ-Befehl kann nicht an ELM 327 gesendet werden, nachdem eine Verbindung mit ELM327 in Android hergestellt wurde

Ich habe einen Code geschrieben, der erfolgreich in der Lage ist, das gekoppelte OBD zu finden und die Verbindung mit ELM327 herzustellen, aber wenn ich versuche, ATZ-Befehl zu senden, wird die Anwendung zum Absturz gebracht.

Hier ist der Codeausschnitt, den ich möglicherweise falsch gemacht habe

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;

    }

Ich bin nicht sicher, wo ich Fehler gemacht habe, also teile ich den Fluss des gesamten Codes als zwei Kernpunkte,https://gist.github.com/sankarganesh/6376031Diese Liste enthält die Aktivitätsdatei und eine weitere Liste für Bluetooth Socket Listenerhttps://gist.github.com/sankarganesh/6376039

Antworten auf die Frage(1)

Ihre Antwort auf die Frage