Невозможно отправить команду ATZ на ELM 327 после установления соединения с ELM327 в Android

Я написал код, который успешно может найти парный OBD и установить соединение с ELM327, но когда я пытаюсь отправить команду ATZ, приложение выходит из строя.

Вот'С фрагмент кода, возможно, я сделал неправильно

public HashMap startOBDCommunicator(
            BluetoothSocket btSocketConnected, String paramClassName,
            String methodName) {

        HashMap dataRetriever = new HashMap();
        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;

    }

Я не уверен, где я сделал ошибки, поэтому я делюсь потоком всего кода в два этапа,https://gist.github.com/sankarganesh/6376031эта строка содержит файл Activity и еще одну строку для прослушивателя Bluetooth Sockethttps://gist.github.com/sankarganesh/6376039