1 (20-03-2022 08:02:03 отредактировано Davinci)

Тема: CAN -> CAN

Тяжело дается логика, помогите сориентироваться.

Нужен пример

прослушка CAN 500k
и при логике равенства CAN ID 0x0400, не обращать внимания на первые 4 байта и проверять состояние только D5:D4 D7:D6 и если оно равно 20 01 15 00 выполнять отправку CAN ID 0x0600 10 21 00 72 C0 F1 C1 00.

и в обратную сторону
CAN ID 0x0400 (А1 01 10 01)D5:D4 D7:D6 отправлять CAN ID 0x0600 10 21 00 72 C0 F1 В1 00.

Но самое неприятное из этого, что не спамить в CAN и уходить из циклов в ожидание изменения CAN ID 0x0400 на другой(

перечитал все по несколько раз не могу понять реально его реализовать или нет, не получается до конца разобраться прочитал уже по 20-30 раз циклы и работу с CAN
помогите с реализацией пожалуйста, голову сломал( руками проше написать было бы)) с логикой еще CANNY не разобрался) получилось пока исправить так похожую диаграмму, но чувствую что то не так)))

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

Иконка вложения TEST2 CAN to CAN 500kbs .cfd 6.13 кб, скачивался 101 раз, последний раз 2022-03-20 

Иконка вложения TEST3 CAN to CAN 500kbs .cfd 6.44 кб, скачивался 91 раз, последний раз 2022-03-20 

Иконка вложения TEST4 CAN to CAN 500kbs .cfd 6.33 кб, скачивался 91 раз, последний раз 2022-03-20 

2

Re: CAN -> CAN

Проще заново написать smile В частности в части отправки. Не верно заданы параметры отправляемых пакетов, ну и сконфигурированы не корректно.

3

Re: CAN -> CAN

К сожалению, текстовое описание задачи несколько запутано, не понятно. Сопоставить его с приложенными диаграммами также не получается.
Попробуйте сформулировать задачу более четко.

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

4 (23-03-2022 04:19:59 отредактировано Davinci)

Re: CAN -> CAN

Денис, CANNY пишет:

К сожалению, текстовое описание задачи несколько запутано, не понятно. Сопоставить его с приложенными диаграммами также не получается.
Попробуйте сформулировать задачу более четко.

Общие рекомендации по разработке даны здесь:


CAN 500k

принято сообщение CAN ID 0x0400 xx xx xx A1:D1 C0:00 -> отправить 1 раз CAN ID 0x0500 00 A1 C0 A1:D1 C1:01
если сообщение не изменяется с CAN ID 0x0400 xx xx xx A1:D1 C0:00 то ничего не делать и сидеть в цикле
если изменилось на CAN ID 0x0400 xx xx xx A1:D1 D1:01 то -> отправить 1 раз CAN ID 0x0500 00 A1 C0 01:D0 C1:00
и опять сидеть в цикле и ждать изменения) не понимаю как реализовать в Canny(