@Override public final void sendAddressReads( Collection<EcuQuery> queries, byte id, PollingState pollState) { final int obdQueryListLength = queries.size(); for (int i = 0; i < obdQueryListLength; i += 6) { for (int j = i; (j < i + 6) && (j < obdQueryListLength); j++) { obdQueries.add(((ArrayList<EcuQuery>) queries).get(j)); } final byte[] request = protocol.constructReadAddressRequest(id, obdQueries); LOGGER.debug( String.format( "Mode:%d OBD Request ---> %s", pollState.getCurrentState(), asHex(request))); final byte[] response = protocol.constructReadAddressResponse(obdQueries, pollState); manager.send(request, response, pollState); final byte[] processedResponse = protocol.preprocessResponse(request, response, pollState); LOGGER.debug( String.format( "Mode:%d OBD Response <--- %s", pollState.getCurrentState(), asHex(processedResponse))); protocol.processReadAddressResponses(obdQueries, processedResponse, pollState); obdQueries.clear(); } }