Skip to content

Commit ac50431

Browse files
committed
Add property that lets the user control whether or not to specify the number of responses in PID queries
1 parent 464ecaa commit ac50431

2 files changed

Lines changed: 39 additions & 18 deletions

File tree

src/ELMduino.cpp

Lines changed: 38 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -227,21 +227,30 @@ void ELM327::formatQueryArray(uint8_t service, uint16_t pid, uint8_t num_respons
227227
query[4] = ((pid >> 4) & 0xF) + '0';
228228
query[5] = (pid & 0xF) + '0';
229229

230-
if (num_responses > 0xF)
230+
if (specifyNumResponses)
231231
{
232-
query[6] = ((num_responses >> 4) & 0xF) + '0';
233-
query[7] = (num_responses & 0xF) + '0';
234-
query[8] = '\0';
232+
if (num_responses > 0xF)
233+
{
234+
query[6] = ((num_responses >> 4) & 0xF) + '0';
235+
query[7] = (num_responses & 0xF) + '0';
236+
query[8] = '\0';
237+
238+
upper(query, 8);
239+
}
240+
else
241+
{
242+
query[6] = (num_responses & 0xF) + '0';
243+
query[7] = '\0';
244+
query[8] = '\0';
235245

236-
upper(query, 8);
246+
upper(query, 7);
247+
}
237248
}
238249
else
239250
{
240-
query[6] = (num_responses & 0xF) + '0';
251+
query[6] = '\0';
241252
query[7] = '\0';
242253
query[8] = '\0';
243-
244-
upper(query, 7);
245254
}
246255
}
247256
else
@@ -254,25 +263,36 @@ void ELM327::formatQueryArray(uint8_t service, uint16_t pid, uint8_t num_respons
254263
query[2] = ((pid >> 4) & 0xF) + '0';
255264
query[3] = (pid & 0xF) + '0';
256265

257-
if (num_responses > 0xF)
266+
if (specifyNumResponses)
258267
{
259-
query[4] = ((num_responses >> 4) & 0xF) + '0';
260-
query[5] = (num_responses & 0xF) + '0';
261-
query[6] = '\0';
262-
query[7] = '\0';
263-
query[8] = '\0';
268+
if (num_responses > 0xF)
269+
{
270+
query[4] = ((num_responses >> 4) & 0xF) + '0';
271+
query[5] = (num_responses & 0xF) + '0';
272+
query[6] = '\0';
273+
query[7] = '\0';
274+
query[8] = '\0';
264275

265-
upper(query, 6);
276+
upper(query, 6);
277+
}
278+
else
279+
{
280+
query[4] = (num_responses & 0xF) + '0';
281+
query[5] = '\0';
282+
query[6] = '\0';
283+
query[7] = '\0';
284+
query[8] = '\0';
285+
286+
upper(query, 5);
287+
}
266288
}
267289
else
268290
{
269-
query[4] = (num_responses & 0xF) + '0';
291+
query[4] = '\0';
270292
query[5] = '\0';
271293
query[6] = '\0';
272294
query[7] = '\0';
273295
query[8] = '\0';
274-
275-
upper(query, 5);
276296
}
277297
}
278298

src/ELMduino.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,7 @@ class ELM327
296296
Stream* elm_port;
297297

298298
bool connected = false;
299+
bool specifyNumResponses = true;
299300
bool debugMode;
300301
char* payload;
301302
uint16_t PAYLOAD_LEN;

0 commit comments

Comments
 (0)