![]() |
Идентификатор 520, байты 0 и 1
C = buf[0]; C = (C*256+buf[1])/8; Только файлы можно просто прикреплять к сообщению, а не вставлять их в текст |
Bersenev
Как ты это делаешь шаман? :) Какой прогой анализируешь? Спасибо огромное! Кстати по запросу через OBD II я так ни чего и не понял, но попробую ещё подумать. Вики я всю пересмотрел. PS. А что ещё можно извлечь из данного лога? И проверил ща в машине. Там опять какая-то каша! Без запуска двигателя кажет Скетч приобрёл вид #include #include "mcp_can.h" MCP_CAN CAN(10); unsigned char len = 0; unsigned char buf[8]; unsigned int RPM; INT32U canId = 0x000; // идентификаторы могут быть 11-ти или 29-битные void setup() { Serial.begin(115200); START_INIT: if(CAN_OK == CAN.begin(CAN_500KBPS,MCP_8MHz)) { Serial.println("Init OK!"); } else { Serial.println("Init fail"); delay(100); goto START_INIT; } } void loop() { if(CAN_MSGAVAIL == CAN.checkReceive()) // check if data coming { CAN.readMsgBuf(&len, buf); canId = CAN.getCanId(); if (canId = 520) { RPM = buf[0]; RPM = (RPM*256+buf[1])/8; Serial.print("Engine RPM: "); Serial.println(RPM); } } } |
Цитата:
Цитата:
|
Цитата:
if (canId == 520) |
Bersenev всё- заработало, ещё раз спасибо!
А остальные цифры в 520 что-то значат? Возможно ли что в одном ID два параметра находятся? А в принципе видимо из этих данных можно выловить всё о машине что касается двигателя? Как сделать лог для всего остального? Ну например той же температуры ОЖ, скорости, напряжения, уровня топлива и самое главное расхода топлива? И можно ли каким-то стандартным софтом анализировать протокол? Хочу хоть примерно понять. PS. Температура ОЖ там врядли была. она ровнялась температуре окружающей среды :) |
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
(buf[1]*256 + buf[2])/256 то есть в байте 1 температура в градусах, а в байте 2 значение после запятой. У тебя в логе она поднялась с 37.8 до 39.2 |
Цитата:
Цитата:
И если будет время запишу лог разгона и торможения. По поводу напряжения- хочется всётаки понять где оно там спрятано. По поводу топлива- алгоритм-то понятен. Надо только лейку найти и доехать в канистру 20л бензина налить, вот только как потом ровно по 10 литров налить? А второй канистры нету. По поводу расхода- понятно. Там наверняка берётся из расчёта времени открытия форсунок и может быть давления в рампе. |
Вложений: 1
Снял лог.
Разгон 0-60 и потом 60-0 с отпущенным газом. Файл приложил. В архиве txt Про температуру. Вчера ты написал Цитата:
Ща схожу проверю в машине. |
ид 1101 скорость в 0 и 1, 2 и 3, 4 и 5, 6 и 7 байтах, но судя по всему в первых трёх парах скорость в милях, а в последней в километрах
Если разгонялся до 60 км/ч, то формула такая (buf[6]*256 + buf[7])/200 Но это ещё надо разбираться, возможно что скорость в км именно в 0 и 1 байтах, тогда (buf[0]*256 + buf[1])/100 что именно верно надо уже проверять экспериментально. также скорость в ид 909 байт 0 и 1 (buf[0]*256 + buf[1])/100 В моторной шине скорость часто идёт с разными ид. Но лучше их брать с шины которая идёт на панель приборов., там она всегда одна. а ид 1362 ночно не температура ОЖ |
Bersenev
1362 это какой-то таймер и обновляется раз в секунду. По поводу скорости- я примерно до 60 разогнался. Может чуть меньше. в 909 скорость в милях? В итоге всётаки выходит что мне проще читать через OBD II данные. Мне на самом деле нужно просто повторить показания на экране бортового компа. А всё остальное это уже баловство. А на экране отображается 1 Расход на 100 2 Моментальный расход 3 Расстояние которое можно проехать до заправки 4 Трип счётчик Из всего что мне нужно- расход на 100 и моментальный. Как я понимаю дёрнуть из протокола ситра будет это очень не просто. Так что думаю что сделаю проще. В диаг разъём вставлю ELM, а с него уже буду брать данные. Так проще и про ELM всё рассказано уже. А свой CAN Shield переделаю на комфорт шину и оттуда буду читать температуру за бортом, нажатие кнопок на магнитоле и руле и сообщения от магнитолы на дисплей. То что ты расшифровал в логе по скорости- проверю. |
Часовой пояс GMT +4, время: 09:36. |
Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot