getResponse() и

bublonik
Offline
Зарегистрирован: 19.03.2016

Не пойму как работает код:

delay(delay_var);
  Serial.flush();
  Serial.print("0105");  // температура
  Serial.print("\r");
  getResponse();
  getResponse();  
  if ((strtol(&rxData[0],0,16)==65) and (strtol(&rxData[3],0,16)==5)) {  
    tmp_var = strtol(&rxData[6],0,16)-40;

В частности что делают getResponse() и strtol. Нигде не нашел толкового описания этих функций. В самом коде выполняется отправка запроса в эбу автомобиля и получение ответа (температура двигателя). Ответ ЭБУ выглядит так  "41 05 XX", где XX это обороты, а 41 05 это проверка, где 05 это запрос температуры.

 

 

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

strtol

а getResponse() - какая то внутренняя функция.

bublonik
Offline
Зарегистрирован: 19.03.2016

По strtol недостаточно информации. Нужно понять что означают "[0],0,16" в  strtol(&rxData[0],0,16). А getResponse() кто то использовал в скетче, значит где то есть описание, только вопрос где?

С автором скетча нет возможности связаться.

releyshic
Offline
Зарегистрирован: 20.11.2015

а что здесь непонятного??? передаём в функцию strtol() аргументы: указатель на массив, &rxData[0], числовенную константу 0, числовенную константу 16

найди в коде или в подключаемых файлах Тело этой функции и понимай что она делает

bublonik
Offline
Зарегистрирован: 19.03.2016

Да, уже почти разобрался. getResponse считывает данные из Serial.print а strtol() преобразует из строки в long.