private void serviceOBD()

in tools/android-app/app/src/main/java/com/aws/iotfleetwise/FweApplication.java [215:260]


    private void serviceOBD(String bluetoothDevice)
    {
        mElm327.connect(bluetoothDevice);
        if (!checkVehicleConnected()) {
            return;
        }
        int[] pidsToRequest = Fwe.getObdPidsToRequest();
        if (pidsToRequest.length == 0) {
            return;
        }
        Arrays.sort(pidsToRequest);
        List<Integer> supportedPids = new ArrayList<>();
        for (int pid : pidsToRequest) {
            if ((mSupportedPids != null) && !mSupportedPids.contains(pid)) {
                continue;
            }
            Log.i("FweApplication", String.format("Requesting PID: 0x%02X", pid));
            String request = String.format("01 %02X", pid);
            String responseString = mElm327.sendObdRequest(request);
            int[] responseBytes = convertResponse(responseString);
            if ((responseBytes == null) || (responseBytes.length == 0)) {
                Log.e("FweApplication", String.format("No response for PID: 0x%02X", pid));
                // If vehicle is disconnected:
                if (mSupportedPids != null) {
                    synchronized (mSupportedSignalsLock) {
                        mSupportedPids = null;
                    }
                    return;
                }
            }
            else {
                supportedPids.add(pid);
                Fwe.setObdPidResponse(pid, responseBytes);
            }
        }
        if ((mSupportedPids == null) && (supportedPids.size() > 0)) {
            StringBuilder sb = new StringBuilder();
            for (int b : supportedPids) {
                sb.append(String.format("%02X ", b));
            }
            Log.i("FweApplication", "Supported PIDs: " + sb.toString());
            synchronized (mSupportedSignalsLock) {
                mSupportedPids = supportedPids;
            }
        }
    }