PCCar.ru - Ваш автомобильный компьютер

Вернуться   PCCar.ru - Ваш автомобильный компьютер > MP3Car ТехИнфа > Общение с машиной

Ответ
 
Опции темы Поиск в этой теме
Старый 04.02.2016, 13:53   #151
autowp
Пользователь
 
Аватар для autowp
 
Регистрация: 13.12.2012
Возраст: 41
Город: Москва
Регион: 77, 97, 99, 177
Машина: Peugeot 407 Coupe
Сообщений: 82
autowp is on a distinguished road
По умолчанию

Цитата:
Сообщение от GASCHE Посмотреть сообщение
Не знаю как у вас но если стандартно то
10 - SID
1D - PID
19 10 56 45 53 54 49 20 46 4D 90 Какие то данные
Cудя по SID это запрос каких-то данных
Зацепило слово "стандартно". Есть какой-то стандарт?

Для меня открытыми и интересующими по TP являются вопросы:
- как выбирается ID traffic control frame'ов
- как определяется, какие ID являются multiframe

Пока мой ответ на это: стандарта нет, по согласованию разработчиков. Но мне не нравится такой ответ.
autowp вне форума   Ответить с цитированием
Старый 04.02.2016, 14:06   #152
lti1
Старший Пользователь
 
Аватар для lti1
 
Регистрация: 17.01.2010
Возраст: 48
Город: Самара
Регион: 63, 163
Машина: Skoda Octavia A5 FL && Skoda Octavia Tour && ̶F̶F̶3̶
Сообщений: 457
lti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond repute
По умолчанию

Цитата:
Сообщение от Dmitry8 Посмотреть сообщение
10 90 A3 0 0 5 0 5 - First frame
всё что дальше: 144 байта - Consecutive frame
Мне не понятно то, что выделено жирным, то что там 144 байта я и так понял, калькулятором умею пользоваться. То есть начиная с A3 начинаются данные и их нужно как то разбирать?
lti1 вне форума   Ответить с цитированием
Старый 04.02.2016, 14:07   #153
T_r_D
Старший Пользователь
 
Регистрация: 03.07.2015
Регион: 77, 97, 99, 177
Сообщений: 372
T_r_D is a jewel in the roughT_r_D is a jewel in the roughT_r_D is a jewel in the rough
По умолчанию

Так народ, не путайте меня.
Моё рассуждение правильно?
Что если пакет начинается с 0001 или 0000 это или первый пакет или единственный.
Младшая часть нулевого байта и весь первый байт это размер дальнейшего пакета(ов) с данными.
Пакеты с данными начинаются всегда 0010
кусок из вики: Consecutive 7 .. 4 (byte 0) 2.
T_r_D вне форума   Ответить с цитированием
Старый 04.02.2016, 14:08   #154
GASCHE
Старший Пользователь
 
Аватар для GASCHE
 
Регистрация: 01.04.2010
Регион: 35
Сообщений: 697
GASCHE is on a distinguished road
По умолчанию

Цитата:
Сообщение от autowp Посмотреть сообщение
Есть какой-то стандарт?.
Под стандартом следует читать ISO 15765-2, ссылку на который приводили выше.
GASCHE вне форума   Ответить с цитированием
Старый 04.02.2016, 14:13   #155
Dmitry8
Пользователь
 
Регистрация: 10.12.2013
Регион: 63, 163
Сообщений: 53
Dmitry8 is on a distinguished road
По умолчанию

Цитата:
Сообщение от GASCHE Посмотреть сообщение
10 - SID
1D - PID
Про это ничего нет в ISO 15765-2
Dmitry8 вне форума   Ответить с цитированием
Старый 04.02.2016, 14:28   #156
GASCHE
Старший Пользователь
 
Аватар для GASCHE
 
Регистрация: 01.04.2010
Регион: 35
Сообщений: 697
GASCHE is on a distinguished road
По умолчанию

Цитата:
Сообщение от T_r_D Посмотреть сообщение
Что если пакет начинается с 0001 или 0000 это или первый пакет или единственный
Не понял?
Single frame
01 3E FF FF FF FF FF FF
02 10 81 FF FF FF FF FF

Цитата:
Сообщение от Dmitry8 Посмотреть сообщение
Про это ничего нет в ISO 15765-2
Согласен!
GASCHE вне форума   Ответить с цитированием
Старый 04.02.2016, 14:31   #157
Dmitry8
Пользователь
 
Регистрация: 10.12.2013
Регион: 63, 163
Сообщений: 53
Dmitry8 is on a distinguished road
По умолчанию

GASCHE,
тогда поясните откуда вы взяли SID и PID?
Dmitry8 вне форума   Ответить с цитированием
Старый 04.02.2016, 14:51   #158
T_r_D
Старший Пользователь
 
Регистрация: 03.07.2015
Регион: 77, 97, 99, 177
Сообщений: 372
T_r_D is a jewel in the roughT_r_D is a jewel in the roughT_r_D is a jewel in the rough
По умолчанию

GASCHE в вики написано что 4 старших бита нулевого байта если 0000, то это одиночный пакет, а если 0001, то длинный, тоесть с мультифреймом.

так, скажите мне по коду- я правильно смещаю?

PHP код:
int Length;
       if(!
digitalRead(9)) // пин 9 можно переназначить                         
       
{
       
CAN.readMsgBuf(&lenbuf);
       
canId CAN.getCanId();

          if(
canId == 293// 125HEX
          
{
            if ((
buf[0] >> 4) == 16){
              
Length = ((buf[0] << 4) | buf[1]) - (len 2); 
            }
          }


T_r_D вне форума   Ответить с цитированием
Старый 04.02.2016, 14:57   #159
autowp
Пользователь
 
Аватар для autowp
 
Регистрация: 13.12.2012
Возраст: 41
Город: Москва
Регион: 77, 97, 99, 177
Машина: Peugeot 407 Coupe
Сообщений: 82
autowp is on a distinguished road
По умолчанию

Цитата:
Сообщение от T_r_D Посмотреть сообщение
GASCHE в вики написано что 4 старших бита нулевого байта если 0000, то это одиночный пакет, а если 0001, то длинный, тоесть с мультифреймом.

так, скажите мне по коду- я правильно смещаю?

PHP код:
int Length;
       if(!
digitalRead(9)) // пин 9 можно переназначить                         
       
{
       
CAN.readMsgBuf(&lenbuf);
       
canId CAN.getCanId();

          if(
canId == 293// 125HEX
          
{
            if ((
buf[0] >> 4) == 16){
              
Length = ((buf[0] << 4) | buf[1]) - (len 2); 
            }
          }


Чтобы не писать "if(canId == 293) // 125HEX" и не забивать себе голову никому не нужными DEC'ами, рекомендую "if(canId == 0x125)"

(buf[0] >> 4) == 16

Это всегда false, не может быть равен 16и байт, 4 раза поделенный на 2

- (len - 2)

Вот это не понятно. Length - это что? (понятно, что длина, но длина чего?)
autowp вне форума   Ответить с цитированием
Старый 04.02.2016, 14:59   #160
Dmitry8
Пользователь
 
Регистрация: 10.12.2013
Регион: 63, 163
Сообщений: 53
Dmitry8 is on a distinguished road
По умолчанию

Код:
 if ((buf[0] >> 4) == 0 // Single frame
...
 if ((buf[0] >> 4) == 0x01 // First Frame
...
 if ((buf[0] >> 4) == 0x02 // Consecutive Frame
Dmitry8 вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 2 (пользователей: 0 , гостей: 2)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +4, время: 21:53.


Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot