1 (24-04-2017 07:57:05 отредактировано grantik.s)

Тема: Ретрансляция ID

Добрый день! Возможно ли средствами CANNY7 ретранслировать около 8 ID под другим номером ID? Т.е. В шине уже имеется необходимая информация, которая нужна для подключаемого устройства, но ID не совпадает.
Перечитав форум нашел более подходящий для меня вариант http://forum.canny.ru/viewtopic.php?id=110, но так и не смог разобраться каким образом это реализуется. Прошу отнестись с понимаем, только начинаю осваивать азы. Не прошу готового решения, всего лишь пнуть в нужном направлении.

2

Re: Ретрансляция ID

Требуется заменять только ID (вариант 1) или необходимо как-то анализировать полученные данные и на их основании формировать новые сообщения с новыми ID (вариант 2)? В результате в CAN-шине появятся новые ID, воспринимаемые новым устройством и эти ID не пересекаются с уже имеющимися в шине?
В общем, в указанной теме рассмотрен вариант 2, только данные подставляются статические. В честности в сообщении http://forum.canny.ru/viewtopic.php?pid=5160#p5160 приведен такой пример (замена трех пакетов1a.cfd): если получено сообщение с определенным идентификатором и набором данных, отправить в шину заранее определенное сообщение с другим идентификатором.
В чем конкретно возникла трудность?

3

Re: Ретрансляция ID

В моем случае первый вариант. Повторюсь, если есть такая возможность, мне надо передавать в шину некоторый имеющийся поток данных под другим ID. Всего около 8ми. К примеру, нужные данные в шине транслируются под ID 0B6, эти данные нужно ретранслировать под ID 0B8. В этой шине такого ID нет. Не без Вашей помощи я провел экперимент и запустил в шину 16 различных ID по необходимому алогритму, которых нет в шине автомобиля, никаких ошибок не возникло и мое подключаемое устройстово абы как но заработало. Но вся проблема в том, что изменения происходяшие в шине по нужным ID я при помощи CANNY физически не сделаю. Даже при Вашей помощи получится слишком большой объем данных и мне кажется не хватит ресурсов процессора. По моему проще, если конечно так будет проще, ретранслировать нужные ID не выделяя по каждому из них данные в байтах. Мало того, еще надо будет добавить как минимум 2 ID, которых в шине вообще нет. Как все это собрать в одну рабочую диаграмму с моим не богатым опытом даже в такой простой среде программирования , у меня просто неукладывается в голове. Пару элементарных задач решил, но что касается такого грандиозного проекта мне просто необходима Ваша помощь.

4

Re: Ретрансляция ID

Если вариант 1 (анализировать или менять данные в сообщениях не требуется, сообщение ретранслируется просто с новым ID), то там не должно быть особых трудностей. Вариант решения во вложении. При получении одного из ожидаемых идентификаторов, выполняется отправка в CAN сообщения, все байты которого идентичны байтам полученного сообщения с этим ID, выполняется только замена идентификатора. При необходимости количество ретранслируемых сообщений может быть увеличено.

grantik.s пишет:

...Но вся проблема в том, что изменения происходяшие в шине по нужным ID я при помощи CANNY физически не сделаю...

Что конкретно требуется делать? До этого задача была только поменять ID. Сформулируйте задачу полностью.

grantik.s пишет:

...получится слишком большой объем данных и мне кажется не хватит ресурсов процессора...

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

grantik.s пишет:

...что касается такого грандиозного проекта мне просто необходима Ваша помощь...

Давайте постепенно, поэтапно, разбираться с задачей. Мы всегда готовы оказать посильную помощь, подсказать правильное направление движения. Присылайте Ваши решения (диаграммы), возможно мы сможем что-либо посоветовать, указать на ошибки.

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

Иконка вложения can_retranslator.cfd 6.57 кб, скачивался 73 раз, последний раз 2017-04-25 

5

Re: Ретрансляция ID

Не ужели все так просто? Спасибо огромное! Оставшуюся часть схемы попрубую прикрутить сам.