1

Тема: 7.2duo

Доброго дня. У меня стоит задача фильтровать один байт с 1-2 идентификаторов. Дело в том, что с этих IDL идут динамичные данные разовой посылкой, у каждого сообщения есть свой заголовок, контрольной суммы в конце сообщения нет, возможно в конце пакета, но ещё не изучил. Если я установлю "Регистр установки маски отбора X шлюза, CAN IDL", то заблокирую весь пакет, правильно? Весь пакет блокировать не нужно, также хотелось бы соблюдать очередность сообщений в пакете. Я взял за шаблон из примера в описании к контроллеру и слегка подправил его. Но получается на выходе какая то каша, снифил канхакером.

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

Иконка вложения c72duo_cangate.cfd 10.79 кб, скачивался 77 раз, последний раз 2023-07-23 

2

Re: 7.2duo

Если я установлю "Регистр установки маски отбора X шлюза, CAN IDL", то заблокирую весь пакет, правильно?

Назначение регистров шлюза описано здесь: https://canny.ru/docs/c72duo/cangateway … y-drajvera
Кроме того, на той же странице изображена блок-схема работы шлюза, которая является исчерпывающей иллюстрацией его функций.

Но получается на выходе какая то каша

См.:https://forum.canny.ru/viewtopic.php?pid=9810#p9810

В качестве рекомендации:

Если нужно обрабатывать каждое сообщение и они передаются с достаточным интервалом, то возможно вам подойдет динамический шлюз. В этом случае:

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

Пользуйтесь симулятором для отладки ваших диаграмм, для быстрого обнаружения алгоритмических ошибок.

Остальные рекомендации даны здесь: https://canny.ru/docs/tips_tricks/solut … ents_tips/

3

Re: 7.2duo

Дело в том, что динамический фильтр настроен в моей диаграмме и работает, но криво. Он видит поступающее сообщение с этим IDL, видит нужные данные в D0 D1 и тупа их ретранслирует в can1, не заменяя значения в этом сообщении. И дальше подставляет уже нужные данные но уже в другое сообщение. Я могу прислать трассу.

4

Re: 7.2duo

В моей диаграмме я работаю  с IDL407 и D0D1 0108, а на скрине с другими данными, но смысл тот же.

5

Re: 7.2duo

почему свои сообщения нельзя редактировать?

6

Re: 7.2duo

как вставить фото?

7

Re: 7.2duo

Для того чтоб фильтровать нужное мне сообщение, пришлось за условие брать предыдущее сообщение и только тогда получить нужную подмену. Ну это же не правильно. Почему контроллер не может не ретранслировать это сообщение в кан1 из кан0, а ретранслировать сразу измененное? И получается, что последовательность данных не соблюсти правильно. Мне надо фильтровать 2 IDL, и я понимаю, что сообщения с разных адресов идут одно за другим с нужными мне данными, но как теперь их отфильтровать я не понимаю. У меня в IDL 400 это не первое сообщение, тут понятно, берем за основу предыдущее и вроде криво, но работает, а в 407 оно первое. Что делать? Наверное перифразирую, почему нельзя транслировать сообщение из кан0 в кан1 уже измененное, не ретранслировав его исходник?

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

Иконка вложения c72duo_cangate.cfd 10.69 кб, скачивался 87 раз, последний раз 2023-07-26 

8

Re: 7.2duo

Игорь пишет:

Дело в том, что динамический фильтр настроен в моей диаграмме и работает, но криво. Он видит поступающее сообщение с этим IDL, видит нужные данные в D0 D1 и тупа их ретранслирует в can1, не заменяя значения в этом сообщении. И дальше подставляет уже нужные данные но уже в другое сообщение. Я могу прислать трассу.

Для того чтобы автоматической ретрансляции по конкретному отбору не происходило, должно быть установлено значение "1" в Регистр установки запрета ретрансляции отбора Х шлюза CAN: https://canny.ru/docs/c72duo/cangateway … y-drajvera

9

Re: 7.2duo

Игорь пишет:

как вставить фото?

Так же, как вы вставляете файл диаграммы

10

Re: 7.2duo

Константин, CANNY пишет:
Игорь пишет:

Дело в том, что динамический фильтр настроен в моей диаграмме и работает, но криво. Он видит поступающее сообщение с этим IDL, видит нужные данные в D0 D1 и тупа их ретранслирует в can1, не заменяя значения в этом сообщении. И дальше подставляет уже нужные данные но уже в другое сообщение. Я могу прислать трассу.

Для того чтобы автоматической ретрансляции по конкретному отбору не происходило, должно быть установлено значение "1" в Регистр установки запрета ретрансляции отбора Х шлюза CAN: https://canny.ru/docs/c72duo/cangateway … y-drajvera

Спасибо за ответ. Но он, сообщение принимаемое за условие, пропускает в кан1 и запрещает на ретрансляцию уже следующее сообщение. А мне надо сообщение, являющееся условием и заменить. А если поставить запрет на весь IDL 400 по умолчанию, то он полностью блокирует весь пакет.

11

Re: 7.2duo

Константин, CANNY пишет:
Игорь пишет:

как вставить фото?

Так же, как вы вставляете файл диаграммы

не получилось у меня этого сделать

12

Re: 7.2duo

Игорь пишет:

Спасибо за ответ. Но он, сообщение принимаемое за условие, пропускает в кан1 и запрещает на ретрансляцию уже следующее сообщение. А мне надо сообщение, являющееся условием и заменить. А если поставить запрет на весь IDL 400 по умолчанию, то он полностью блокирует весь пакет.

Возьмите за основу пример №4 отсюда: https://canny.ru/docs/c72duo/cangateway … y-drajvera

И выполните рекомендации из моего предыдущего сообщения: https://forum.canny.ru/viewtopic.php?pid=11110#p11110

13

Re: 7.2duo

Игорь пишет:
Константин, CANNY пишет:
Игорь пишет:

как вставить фото?

Так же, как вы вставляете файл диаграммы

не получилось у меня этого сделать

Проверка:

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

c72duo_cangateway_4.png, 145.4 кб, 884 x 1797
c72duo_cangateway_4.png 145.4 кб, скачивался 73 раз, последний раз 2023-07-26 

14 (26-07-2023 19:35:33 отредактировано Игорь)

Re: 7.2duo

Константин, CANNY пишет:
Игорь пишет:
Константин, CANNY пишет:

Так же, как вы вставляете файл диаграммы

не получилось у меня этого сделать

Проверка:

Спасибо. Да, из четвертого примера рабочая схема и без нагромождений. Всё получилось гораздо проще.
Теперь ещё одна проблема нарисовалась. Межу сообщениями одного IDL 0.130с, а вот между фильтруемыми сообщениями с разных адресов, которые мне надо фильтровать, всего лишь 0.001с. Вот тут тупик у меня. Четвёртый пример не справляется с этим. В дэбаге всё красиво работает, а наяву нет. Куда дальше копать?

15

Re: 7.2duo

Вы опять говорите загадками.

Четвёртый пример не справляется с этим. В дэбаге всё красиво работает, а наяву нет.

Что это значит? Где диаграмма? Где лог-файл?

16

Re: 7.2duo

Константин, CANNY пишет:

Вы опять говорите загадками.

Четвёртый пример не справляется с этим. В дэбаге всё красиво работает, а наяву нет.

Что это значит? Где диаграмма? Где лог-файл?

Я пришлю трассу и диаграмму на почту. С первым IDL400 всё хорошо, а вот второй слегка некорректно выдает, но может сам разберусь. Если по отдельности кидать контроллеру данные, то каждый ID отрабатывает правильно.

17

Re: 7.2duo

Диаграмму и лог получил. Лог соответствует диаграмме.
Вопрос прежний:

Четвёртый пример не справляется с этим. В дэбаге всё красиво работает, а наяву нет.

Что это значит?

18

Re: 7.2duo

Константин, CANNY пишет:

Диаграмму и лог получил. Лог соответствует диаграмме.
Вопрос прежний:

Четвёртый пример не справляется с этим. В дэбаге всё красиво работает, а наяву нет.

Что это значит?

Добрый день.
Первый адрес и подмену отрабатывает хорошо, а вот со вторым адресом и подменой не очень. Принятое сообщение вроде считывает, но отправка подмены происходит уже не в те адреса. Данные, предназначенные для id 407, накладываются на последующее сообщение уже на ID 400 и причем 3 раза подряд, а нужное сообщение остаётся неизменным.

19

Re: 7.2duo

Игорь пишет:

... но отправка подмены происходит уже не в те адреса. Данные, предназначенные для id 407, накладываются на последующее сообщение уже на ID 400 и причем 3 раза подряд, а нужное сообщение остаётся неизменным.

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

20

Re: 7.2duo

Константин, CANNY пишет:
Игорь пишет:

... но отправка подмены происходит уже не в те адреса. Данные, предназначенные для id 407, накладываются на последующее сообщение уже на ID 400 и причем 3 раза подряд, а нужное сообщение остаётся неизменным.

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

Добрый вечер. В ближайшие дни соберу макет и все продемонстрирую.

21

Re: 7.2duo

Константин, CANNY пишет:
Игорь пишет:

... но отправка подмены происходит уже не в те адреса. Данные, предназначенные для id 407, накладываются на последующее сообщение уже на ID 400 и причем 3 раза подряд, а нужное сообщение остаётся неизменным.

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

Добрый день. На почту кинул лог.