<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[CANNY forum &mdash; Объясните где ошибка]]></title>
		<link>https://forum.canny.ru/viewtopic.php?id=389</link>
		<atom:link href="https://forum.canny.ru/extern.php?action=feed&amp;tid=389&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Объясните где ошибка».]]></description>
		<lastBuildDate>Mon, 20 Nov 2017 14:43:35 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Объясните где ошибка]]></title>
			<link>https://forum.canny.ru/viewtopic.php?pid=6333#p6333</link>
			<description><![CDATA[<p>Рады, что у Вас все получилось. Желаем успехов в Ваших проектах!</p>]]></description>
			<author><![CDATA[null@example.com (Денис, CANNY)]]></author>
			<pubDate>Mon, 20 Nov 2017 14:43:35 +0000</pubDate>
			<guid>https://forum.canny.ru/viewtopic.php?pid=6333#p6333</guid>
		</item>
		<item>
			<title><![CDATA[Re: Объясните где ошибка]]></title>
			<link>https://forum.canny.ru/viewtopic.php?pid=6331#p6331</link>
			<description><![CDATA[<p>Ну что ж, коллеги, результат теста производительности - положительный.<br />блоки по 16 сообщений от целевого ID(попадающие в отбор) с интервалом 1 мс, <br />перерыв между блоками 2 мс,<br />2 теста по 8 мин<br />Общее количество трафика(в обе стороны) примерно 820-850 сообщений в секунду<br />потерь данных - нет.</p><p>В целом очень приятные ощущения от работы с вашим продуктом, хорошая концепция GUI, большое спасибо!<br />Обязательно будем пользовать в дальнейших разработках!</p>]]></description>
			<author><![CDATA[null@example.com (ladan)]]></author>
			<pubDate>Mon, 20 Nov 2017 10:46:20 +0000</pubDate>
			<guid>https://forum.canny.ru/viewtopic.php?pid=6331#p6331</guid>
		</item>
		<item>
			<title><![CDATA[Re: Объясните где ошибка]]></title>
			<link>https://forum.canny.ru/viewtopic.php?pid=6330#p6330</link>
			<description><![CDATA[<div class="quotebox"><cite>ladan пишет:</cite><blockquote><p>...И все таки, в вашем варианте при совпадении условия по данным( D1:D0=CONST D3:D2=CONST2) и при НЕ СОВПАДЕНИИ по IDL ретрансляции нет.</p></blockquote></div><p>В исходной постановке задачи значился отбор только по 1 ID. Все остальные сообщения ретранслируются автоматически.<br />Даже если отборов будет больше и с ними нужно будет производить подобные действия, подход не изменится: пришел нужный ID, заданные байты данных равны установленным константам (через блок &quot;И&quot; с инверсией), отправка сообщения. Просто для нескольких ID эта конструкция будет размножена (скопирована) соответствующее количество раз, только со своими параметрами и потребуется еще несколько небольших изменений. Если на дополнительные отборы не будет установлен запрет ретрансляции, то принудительно отправлять сообщения с их ID не потребуется.</p><p>Предложенное решение было предоставлено для описанной изначально задачи. Сформулируйте алгоритм полностью - тогда можно будет найти оптимальный подход.</p>]]></description>
			<author><![CDATA[null@example.com (Денис, CANNY)]]></author>
			<pubDate>Fri, 17 Nov 2017 07:27:13 +0000</pubDate>
			<guid>https://forum.canny.ru/viewtopic.php?pid=6330#p6330</guid>
		</item>
		<item>
			<title><![CDATA[Re: Объясните где ошибка]]></title>
			<link>https://forum.canny.ru/viewtopic.php?pid=6329#p6329</link>
			<description><![CDATA[<p>с изящностью - разобрались ))<br />Инверсия - ясно, увидел и кружок на диаграмме и понял что рвало мой шаблон логического И, понял и как задается,&nbsp; спасибо! </p><p>И все таки, в вашем варианте при совпадении условия по данным( D1:D0=CONST D3:D2=CONST2) и при НЕ СОВПАДЕНИИ по IDL ретрансляции нет.<br />В данном варианте (когда отбирается только 1 IDL), согласен, будет работать, можно даже совсем убрать блоки 6 и 7, но при расширении отбора будут проблемы. <br />В моем последнем - нужно убрать блоки НЕ и поставить еще одну инверсию.(ну либо убрать инверсию, о которой я не знал)</p><p>Если дорабатывать ПО то может, все-таки, сделать второй(или параллельный) круг отбора по значению? мне кажется это более перспективно, судя по количеству аналогичных задач на форуме. Хотя &quot;сброс&quot; тоже пригодится и, вероятно, сильно проще доработать.</p><p>По производительности - оттестирую в понедельник, дам знать.</p>]]></description>
			<author><![CDATA[null@example.com (ladan)]]></author>
			<pubDate>Thu, 16 Nov 2017 22:47:39 +0000</pubDate>
			<guid>https://forum.canny.ru/viewtopic.php?pid=6329#p6329</guid>
		</item>
		<item>
			<title><![CDATA[Re: Объясните где ошибка]]></title>
			<link>https://forum.canny.ru/viewtopic.php?pid=6328#p6328</link>
			<description><![CDATA[<div class="quotebox"><cite>ladan пишет:</cite><blockquote><p>Я вот подумал, можно наверное еще изящнее - подменить IDL &quot;при разрешении ретрансляции&quot; на шлюзе по умолчанию, и пакет уйдет &quot;в никуда&quot; как думаете?</p></blockquote></div><p>Думаю, что не изящнее. Режим запрета ретрансляции специально введен в драйвер для решения подобных задач.</p>]]></description>
			<author><![CDATA[null@example.com (Константин, CANNY)]]></author>
			<pubDate>Thu, 16 Nov 2017 20:46:30 +0000</pubDate>
			<guid>https://forum.canny.ru/viewtopic.php?pid=6328#p6328</guid>
		</item>
		<item>
			<title><![CDATA[Re: Объясните где ошибка]]></title>
			<link>https://forum.canny.ru/viewtopic.php?pid=6327#p6327</link>
			<description><![CDATA[<div class="quotebox"><cite>ladan пишет:</cite><blockquote><p>Отсюда 2 вопроса:<br /></p><ul><li><p>Можно ли сделать при равенстве данных из d1:d0 и d3:d2 заданным константам&nbsp; дроп, а по умолчанию - передачу. или только ручная передача</p></li></ul><ul><li><p>При загрузке шины 500кБод на 50% целевой ID засылает пакет каждые 2-3 мс - ручная обработка в диаграмме облом?</p></li></ul></blockquote></div><ul><li><p>Это потребует изменения системного ПО контроллера. Посмотрим что можно сделать.</p></li></ul><ul><li><p>В контексте вашей задачи, вероятнее всего - да. Но возможны варианты.</p></li></ul>]]></description>
			<author><![CDATA[null@example.com (Константин, CANNY)]]></author>
			<pubDate>Thu, 16 Nov 2017 20:43:06 +0000</pubDate>
			<guid>https://forum.canny.ru/viewtopic.php?pid=6327#p6327</guid>
		</item>
		<item>
			<title><![CDATA[Re: Объясните где ошибка]]></title>
			<link>https://forum.canny.ru/viewtopic.php?pid=6326#p6326</link>
			<description><![CDATA[<p>Как было указано в сообщении №10:<br /></p><div class="quotebox"><blockquote><p>Проверил работу вложенной диаграммы &quot;на столе&quot; - должно работать.</p></blockquote></div><p>Представленный мной вариант диаграммы (test_f_1a.cfd) работает корректно, тем более что в симуляторе как раз все и видно.<br />У блока №10 &quot;Логическое И&quot; на выходе установлена <strong>инверсия</strong>. Отправляться будут все сообщения у которых указанные байты (все 4, т.е. оба регистра принятого сообщения) <strong>НЕ</strong> равны заданным константам. Иначе на выходе блока №10, с учетом инверсии, будет 0 и в регистр начала передачи сообщения не будет записано значение 1.</p><p>Что показывает симулятор на диаграмме test_f_2.cfd? У блока №12 &quot;Логическое И&quot; осталась инверсия, которая снова инвертируется блоком &quot;Логическое НЕ&quot;. Комбинация блоков №№6,11,8 вообще не позволит отправить ни одного сообщения с ID=0x111.</p><p>Все блоки и в симуляторе и в &quot;реале&quot; работают правильно. Ознакомьтесь с <a href="http://wiki.canny.ru/index.php?title=%D0%AF%D0%B7%D1%8B%D0%BA_CFD" rel="noopener noreferrer" target="_blank"><strong>описанием</strong></a> языка CFD.</p><p>Наверное, более &quot;изящный&quot; вариант не подойдет.</p><p>Номера блоков - справочные, присваиваются по мере добавления блоков на поле диаграммы, могут быть изменены пользователем или автоматически при перенумерации и используются для возможности быстрого поиска нужного блока по номеру. Номера, дополнительно добавляемые в режиме симулятора (над блоком в правом углу), показывают порядок выполения элементов функциональной диаграммы. Все это есть в соответствующих разделах <a href="http://wiki.canny.ru/index.php?title=%D0%94%D0%BE%D0%B1%D1%80%D0%BE_%D0%BF%D0%BE%D0%B6%D0%B0%D0%BB%D0%BE%D0%B2%D0%B0%D1%82%D1%8C_%D0%B2_CANNY_Wiki!" rel="noopener noreferrer" target="_blank"><strong>wiki</strong></a>.</p>]]></description>
			<author><![CDATA[null@example.com (Денис, CANNY)]]></author>
			<pubDate>Thu, 16 Nov 2017 20:30:24 +0000</pubDate>
			<guid>https://forum.canny.ru/viewtopic.php?pid=6326#p6326</guid>
		</item>
		<item>
			<title><![CDATA[Re: Объясните где ошибка]]></title>
			<link>https://forum.canny.ru/viewtopic.php?pid=6325#p6325</link>
			<description><![CDATA[<p>ЭЭЭ, мне кажется или ваша диаграмма будет отправлять только то сообщение которое нужно сбросить? а все остальные - сбрасывать ? )))</p><p>ХМ....&nbsp; а почему в дебагере&nbsp; на логическом И два нуля дают 1 на выходе?&nbsp; Чет ваще в дебагере запутка с логическим И....<br />В реале так же?</p><p>Допустим, добавим &quot;НЕ&quot;<br />При соблюдении только 1 равенства (по данным) - логическое &quot;И&quot; должно давать 0 - нет ретрансляции</p><p>Из вашего варианта получился такой, если конечно логическое И в реале работает правильно.</p><br /><p>Я вот подумал, можно наверное еще изящнее - подменить IDL &quot;при разрешении ретрансляции&quot; на шлюзе по умолчанию, и пакет уйдет &quot;в никуда&quot; как думаете? <br />Это как раз и будет аналог &quot;все ретранслируем, кроме сообщения прошедшего условия диаграммы&quot;</p><p>Подскажите еще - номера имеют какое то значение?</p>]]></description>
			<author><![CDATA[null@example.com (ladan)]]></author>
			<pubDate>Thu, 16 Nov 2017 15:03:07 +0000</pubDate>
			<guid>https://forum.canny.ru/viewtopic.php?pid=6325#p6325</guid>
		</item>
		<item>
			<title><![CDATA[Re: Объясните где ошибка]]></title>
			<link>https://forum.canny.ru/viewtopic.php?pid=6324#p6324</link>
			<description><![CDATA[<p>Если все же необходимо сообщение, удовлетворяющее условию, именно не отправлять, тогда я предложил бы такой вариант (см. вложение), т.к. запоминать проверяемые данные не требуется и в дальнейшем они не обрабатываются, а на момент получения этого сообщения в этих регистрах находится актуальная информация. Проверил работу вложенной диаграммы &quot;на столе&quot; - должно работать.</p><p>Длительность выполнения данной диаграммы не более 1мс. ЮИ убирать нет необходимости и смысла, т.к. он дает хоть какую-то диагностику, что всегда полезно.</p>]]></description>
			<author><![CDATA[null@example.com (Денис, CANNY)]]></author>
			<pubDate>Thu, 16 Nov 2017 14:47:20 +0000</pubDate>
			<guid>https://forum.canny.ru/viewtopic.php?pid=6324#p6324</guid>
		</item>
		<item>
			<title><![CDATA[Re: Объясните где ошибка]]></title>
			<link>https://forum.canny.ru/viewtopic.php?pid=6323#p6323</link>
			<description><![CDATA[<p>Ну вот как то так получилось у меня....<br />Ловим пакеты ID 111&nbsp; &nbsp;и все пакеты кроме 111 11 22 33 44 передаем на другой интерфейс.&nbsp; <br />отбор для 222 - на вторую часть(фильтр в обратном направлении), на него пока не обращаем внимания.</p><p>Что скажете, с точки зрения логичности и оптимизации?<br />Отмена ЮИ&nbsp; (моргания светодиодиками) имеет смысл для ускорения?</p>]]></description>
			<author><![CDATA[null@example.com (ladan)]]></author>
			<pubDate>Thu, 16 Nov 2017 13:22:42 +0000</pubDate>
			<guid>https://forum.canny.ru/viewtopic.php?pid=6323#p6323</guid>
		</item>
		<item>
			<title><![CDATA[Re: Объясните где ошибка]]></title>
			<link>https://forum.canny.ru/viewtopic.php?pid=6322#p6322</link>
			<description><![CDATA[<p>Если запрет ретрансляции не установлен - сообщение будет ретранслировано автоматически в соответствии с настройками отбора.</p>]]></description>
			<author><![CDATA[null@example.com (Денис, CANNY)]]></author>
			<pubDate>Thu, 16 Nov 2017 12:04:49 +0000</pubDate>
			<guid>https://forum.canny.ru/viewtopic.php?pid=6322#p6322</guid>
		</item>
		<item>
			<title><![CDATA[Re: Объясните где ошибка]]></title>
			<link>https://forum.canny.ru/viewtopic.php?pid=6321#p6321</link>
			<description><![CDATA[<p>Тем не менее использование фильтра CAN, чтобы в диаграмму попадал только нужный ID, рекомендуется.</p><p>В <a href="http://wiki.canny.ru/index.php?title=CANNY_5.2_duo,_%D0%94%D1%80%D0%B0%D0%B9%D0%B2%D0%B5%D1%80_%D1%88%D0%BB%D1%8E%D0%B7%D0%B0_CAN#.D0.9F.D1.80.D0.B8.D0.BC.D0.B5.D1.80.D1.8B" rel="noopener noreferrer" target="_blank"><strong>примере 3</strong></a>, из описания драйвера шлюза CAN, показан подход который можно использовать для данной задачи: получить в диаграмму сообщение с нужным ID через установленный отбор, запретить его ретрансляцию, обрабатывать данные в диаграмме. Т.е. после получения сообщения, при невыполнении условий &quot;дропа&quot; - перегрузить данные из регистров приема CAN0 в регистры отправки CAN1 и отправить сообщение в CAN1 на этом же цикле выполнения диаграммы; при выполнении условий &quot;дропа&quot; - не отправлять сообщение или отправить с нужными данными.</p>]]></description>
			<author><![CDATA[null@example.com (Денис, CANNY)]]></author>
			<pubDate>Thu, 16 Nov 2017 12:02:42 +0000</pubDate>
			<guid>https://forum.canny.ru/viewtopic.php?pid=6321#p6321</guid>
		</item>
		<item>
			<title><![CDATA[Re: Объясните где ошибка]]></title>
			<link>https://forum.canny.ru/viewtopic.php?pid=6320#p6320</link>
			<description><![CDATA[<p>Дроп - это сброс пакета.<br />Нужно &quot;сбросить&quot;( не передать ) 1 конкретный пакет(IDXXX D0=XX D1=XX D2=XX ...), при том что все остальные пакеты от этого ID должны проходить нормально<br />Остальных пакетов от этого ID бывает 300-400 в 1 сек.(в определенных режимах) Фильтр на этих режимах не поможет, так как сторонних сообщений (других ID) в это время нет (можно пренебречь)<br />Мы говорим не про стандартный &quot;пакет состояния&quot;, а про передачу большого массива данных для которой используется CAN как транспортный уровень. Опять же из-за этого - велики потенциальные проблемы в случае потери части сообщений</p><p>что бы перенастроить шлюз в диаграмме - нужно обработать сообщение - т.е. все сообщения пойдут в диаграмму. с точки зрения оптимизации - сомнительно.</p><p>Идеальный вариант - отбор по ID -&gt;отбор по данным из пакета -&gt; обработка в диаграмме.</p><p>В случае если НЕ СТОИТ запрет ретрансляции для шлюза, пакет попавший в диаграмму можно сбросить(не передать)? или он передается независимо и можно только использовать данные из него?</p>]]></description>
			<author><![CDATA[null@example.com (ladan)]]></author>
			<pubDate>Thu, 16 Nov 2017 11:46:13 +0000</pubDate>
			<guid>https://forum.canny.ru/viewtopic.php?pid=6320#p6320</guid>
		</item>
		<item>
			<title><![CDATA[Re: Объясните где ошибка]]></title>
			<link>https://forum.canny.ru/viewtopic.php?pid=6319#p6319</link>
			<description><![CDATA[<div class="quotebox"><cite>ladan пишет:</cite><blockquote><p>...с транссивером просто игрался уже(искал трабл до запайки терминатора).....&nbsp; Кстати, не нашел документацию по этой фиче...</p></blockquote></div><p>Описание регистра конфигурации трансивера CAN1 есть в таблице &quot;Регистры конфигурации драйвера CAN&quot; описания <a href="http://Регистры%20конфигурации%20драйвера%20CAN" rel="noopener noreferrer" target="_blank"><strong>драйвера CAN</strong></a>.</p><div class="quotebox"><cite>ladan пишет:</cite><blockquote><p>Теперь следующий вопрос - отбор по данным отсутствует, правильно? (может есть возможность допилить?&nbsp; много аналогичных вопросов то) только по ID. Если мне нужно дропнуть(или модифицировать) пакет в зависимости от содержимого - нужно использовать ручную обработку в диаграмме, правильно?</p></blockquote></div><p>Существует 3 основных режима работы шлюза (см. примеры из описания <a href="http://wiki.canny.ru/index.php?title=CANNY_5.2_duo,_%D0%94%D1%80%D0%B0%D0%B9%D0%B2%D0%B5%D1%80_%D1%88%D0%BB%D1%8E%D0%B7%D0%B0_CAN" rel="noopener noreferrer" target="_blank"><strong>драйвера шлюза CAN</strong></a>):<br />* статический шлюз - запрет ретрансляции ID, постоянная замена определенных бит/байт данных, изменение ID, изменение длины сообщения, и т.п.<br />* динамический шлюз - то же что и статический шлюз, но с возможностью изменения настроек отборов по определенным условиям (внешним командам и т.п.).<br />* обработка и ретрансляция сообщений с помощью диаграммы - возможность управления работой шлюза по более сложным условиям.</p><div class="quotebox"><cite>ladan пишет:</cite><blockquote><p>Можно ли сделать при равенстве данных из d1:d0 и d3:d2 заданным константам&nbsp; дроп, а по умолчанию - передачу. или только ручная передача</p></blockquote></div><p>Дроп - это полный запрет ретрансляции? Если да, то может есть смысл не сбрасывать сообщение полностью, а просто заменять постоянно на нужные значения (статический шлюз)? Если нет, то тогда, наверное только третий вариант: обработка сообщений из диаграммы.</p><div class="quotebox"><cite>ladan пишет:</cite><blockquote><p>При загрузке шины 500кБод на 50% целевой ID засылает пакет каждые 2-3 мс - ручная обработка в диаграмме облом?</p></blockquote></div><p>Не факт. При небольшой диаграмме, установке CAN-фильтров... должно справляться.</p>]]></description>
			<author><![CDATA[null@example.com (Денис, CANNY)]]></author>
			<pubDate>Thu, 16 Nov 2017 11:15:23 +0000</pubDate>
			<guid>https://forum.canny.ru/viewtopic.php?pid=6319#p6319</guid>
		</item>
		<item>
			<title><![CDATA[Re: Объясните где ошибка]]></title>
			<link>https://forum.canny.ru/viewtopic.php?pid=6318#p6318</link>
			<description><![CDATA[<p>Ну, собственно, с терминаторами разобрался, стенд собрал, да. ( это быстрее чем бегать к авто.)<br />С регистром есть принятые данные тож разобрался, спасибо.<br />с транссивером просто игрался уже(искал трабл до запайки терминатора).....&nbsp; Кстати, не нашел документацию по этой фиче. В итоге - просто убрал.</p><p>Базовый дроп пакета тоже сделал.... </p><p>Теперь следующий вопрос - отбор по данным отсутствует, правильно? (может есть возможность допилить?&nbsp; много аналогичных вопросов то) только по ID. Если мне нужно дропнуть(или модифицировать) пакет в зависимости от содержимого - нужно использовать ручную обработку в диаграмме, правильно?</p><p>Отсюда 2 вопроса:<br /></p><ul><li><p>Можно ли сделать при равенстве данных из d1:d0 и d3:d2 заданным константам&nbsp; дроп, а по умолчанию - передачу. или только ручная передача</p></li></ul><ul><li><p>При загрузке шины 500кБод на 50% целевой ID засылает пакет каждые 2-3 мс - ручная обработка в диаграмме облом?</p></li></ul>]]></description>
			<author><![CDATA[null@example.com (ladan)]]></author>
			<pubDate>Thu, 16 Nov 2017 09:38:48 +0000</pubDate>
			<guid>https://forum.canny.ru/viewtopic.php?pid=6318#p6318</guid>
		</item>
	</channel>
</rss>
