1

Тема: Замена сообщений CAN

Добрый день!
Решил не создавать новую тему, поскольку задача аналогичная.
Не могу разобраться с построением диаграмм, прошу помочь с конкретным примером под мои задачи.
Одним слово, есть задача, как ее реализовать в CANNYLAB?
В CAN ID 0x204 приходит 3 пакета их нужно заменить, все остальное оставить без изменений.
ЧТО ИМЕЕМ:
can.id       D0      D1         D2        D3         D4         D5        D6        D7
0x204      0x00   0x57      0x44      0x42      0x34      0x36     0x33     0x32   
0x204      0x01     0x37      0x32      0x31      0x58      0x32     0x32     0x30
0x204      0x02     0x39      0x37      0x30      0xff        0xff       0xff      0xff

ЧТО НУЖНО (в скобках указаны изменения):
can.id       D0      D1          D2       D3          D4        D5        D6         D7
0x204      0x00   0x57       0x44    0x42      0x34      0x36    0x33      0x32
0x204      0x01   0x37       0x32    0x31      0x58      0x32    0x32     (0x35)
0x204      0x02  (0x38)    (0x31)  (0x38)     0xff       0xff      0xff        0xff

Модераторское: перенесено в новую тему

Вложений в сообщении

Иконка вложения проект CAN.txt 580 б, скачивался 140 раз, последний раз 2022-03-25 

2

Re: Замена сообщений CAN

Примеры можно найти здесь: https://canny.ru/docs/c72duo/cangateway/

Общие рекомендации по разработке и получению помощи - здесь:  https://canny.ru/docs/tips_tricks/solut … ents_tips/

3

Re: Замена сообщений CAN

Спасибо за ответ. Если я верно понял, если не сложно можете проверить, на наличие ошибок?

Вложений в сообщении

Иконка вложения МОЙ проект.cfd 6.3 кб, скачивался 146 раз, последний раз 2022-03-25 

4

Re: Замена сообщений CAN

Отбор 0, для сообщения с D0=0x00, в принципе не требуется, в нем не меняется ни одно значение, следовательно он может и должен пропускаться на интерфейс CAN1 без изменений. Кроме того в масках замены и значениях замены указаны разные регистры данных.
Настройка отборов 1 и 2, для сообщений с D0=0x01 и с D0=0x02 соответственно, выполнена верно, а вот настройка замены нет. Следует указывать замену только тех данных, которые требуется заменить, а остальные будут передаваться в CAN1 без изменения.

5 (21-04-2022 09:03:05 отредактировано dibanoff)

Re: Замена сообщений CAN

Здравствуйте!
Помогите новичку пожалуйста!
Прочитал раздел "Помощь и сам форум, и решил продолжить более подходящее мне сообщение.

Имеем автомобиль с замененным штатным головным устройством (ГУ) на китайское, управляемые по шине CAN-INC (125к).
В свою очередь, данные из шины проходят обработку в CanBus (прилагается к ГУ), в котором имеются ошибки обработки данных.
В частности работа кнопок на руле "Вперед" - "Назад" в них перепутана. Исправить это программным путем не получается.
Надумал следующий вариант решения проблемы...

1. В разрыв шины CAN-INC идущей к CanBus ставлю Canny 7 Duo (возможно ли такое подключение?)
2. Интересует следующий пакет из всего потока данных:
can.id       D0      D1       D2       D3       D4        D5       D6       D7
0x122      0x00   0x00    0x00    0x00    0x00     0x00    0x00    0x00   
В этом пакете необходимо штатное (из автомобиля) сообщение D3 заменить и передать в ГУ:
- при нажании "Вперед" получаем 0x01 и заменяем его на 0x40
- при нажании "Назад" получаем 0x40 и заменяем его на 0x01

Набрал по предыдущему проекту свой. Если не сложно, можете проверить на наличие ошибок?
Если все правильно, то еще вопрос.
В этом же пакете и сообщении приходят команды громкости (работают правильно).
Но так как весь пакет блокируется и будут пропускаться только два измененных мной сообщения (Вперед-Назад), то мне нужно добавить еще два таких фильтра, в которых "правильные" сообщения заменять на такие-же (в целях пропуска далее).

Спасибо!

Вложений в сообщении

Иконка вложения c7d_can_change.cfd 2.46 кб, скачивался 129 раз, последний раз 2022-04-21 

Иконка вложения с7d_can_change.png 40.57 кб, скачивался 43 раз, последний раз 2022-04-21 

6

Re: Замена сообщений CAN

dibanoff пишет:

1. ...возможно ли такое подключение?...

Возможно. Но может потребоваться подключение терминирующих сопротивлений на интерфейсы CAN ( https://canny.ru/docs/c72duo/#sec--c72d … peremychek )

dibanoff пишет:

2. Интересует следующий пакет из всего потока данных:
can.id       D0      D1       D2       D3       D4        D5       D6       D7
0x122      0x00   0x00    0x00    0x00    0x00     0x00    0x00    0x00   
В этом пакете необходимо штатное (из автомобиля) сообщение D3 заменить и передать в ГУ:
- при нажании "Вперед" получаем 0x01 и заменяем его на 0x40
- при нажании "Назад" получаем 0x40 и заменяем его на 0x01

Диаграмма составлена верно. Каждый из отборов будет отслеживать сообщение с ID=0x122 со своим значением байта D3 и обрабатывать его, заменяя только байт D3. Остальные байты сообщений, попавших в отборы, будут ретранслироваться без изменений.
Вводить дополнительные отборы не требуется, т.к. сообщения, не попавшие в отбор (по ID, с учетом значения D3), при приведенных настройках Драйвера шлюза (не включен фильтрующий режим), ретранслируются без изменений.

7

Re: Замена сообщений CAN

Огромное спасибо!
Тех.поддержка на высоте!