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;
}
}
}