<?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; Подмена 1 байта в конкретном пакете]]></title>
		<link>https://forum.canny.ru/viewtopic.php?id=390</link>
		<atom:link href="https://forum.canny.ru/extern.php?action=feed&amp;tid=390&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Подмена 1 байта в конкретном пакете».]]></description>
		<lastBuildDate>Tue, 21 Nov 2017 07:04:53 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Подмена 1 байта в конкретном пакете]]></title>
			<link>https://forum.canny.ru/viewtopic.php?pid=6336#p6336</link>
			<description><![CDATA[<div class="quotebox"><cite>ladan пишет:</cite><blockquote><p>Побитовые И+ИЛИ быстрее чем сдвиги + сложение, оптимальнее, правильно понял? Или разница в 1 такт за счет отсутствия 1 операции?</p></blockquote></div><p>Побитовые операции оптимальнее арифметических. К тому же они используются в соответствии с логикой алгоритма: выделить то что оставить и добавить то чего не хватает. Разница в 1 функциональный блок экономит машинное время сокращая длительность цикла выполнения диаграммы.</p><div class="quotebox"><cite>ladan пишет:</cite><blockquote><p>вариант начала передачи через буфер - нормально?</p></blockquote></div><p><strong>UPD:</strong> Буфер использовать нет необходимости (зачем откладывать отправку на целый цикл выполнения диаграммы?) и это, в данном случае, даже неправильно. Актуальность данных в регистрах приема сообщения CAN гарантируется только при наличии &quot;1&quot; в регистре наличия нового сообщения, т.е. на данном цикле выполнения диаграммы. Если значения регистров принятого сообщения не сохраняются с помощью триггеров для дальнейшей обработки, а перегружаются в регистры отправки напрямую, то следует отправлять сообщение в этом же цикле.<br />Откорректированный вариант диаграммы во вложении.</p>]]></description>
			<author><![CDATA[null@example.com (Денис, CANNY)]]></author>
			<pubDate>Tue, 21 Nov 2017 07:04:53 +0000</pubDate>
			<guid>https://forum.canny.ru/viewtopic.php?pid=6336#p6336</guid>
		</item>
		<item>
			<title><![CDATA[Re: Подмена 1 байта в конкретном пакете]]></title>
			<link>https://forum.canny.ru/viewtopic.php?pid=6335#p6335</link>
			<description><![CDATA[<p>Угу, блок 7 в моей конкретике лишний, т.к.&nbsp; отсутствие данных D7:D6 контролируется в D0 (там по протоколу транспорта длинна значащих байт) потому&nbsp; я его и не учитываю в сравнении</p><p>Побитовые И+ИЛИ быстрее чем сдвиги + сложение, оптимальнее, правильно понял? Или разница в 1 такт за счет отсутствия 1 операции? <br />вариант начала передачи через буфер - нормально?</p>]]></description>
			<author><![CDATA[null@example.com (ladan)]]></author>
			<pubDate>Mon, 20 Nov 2017 16:28:00 +0000</pubDate>
			<guid>https://forum.canny.ru/viewtopic.php?pid=6335#p6335</guid>
		</item>
		<item>
			<title><![CDATA[Re: Подмена 1 байта в конкретном пакете]]></title>
			<link>https://forum.canny.ru/viewtopic.php?pid=6334#p6334</link>
			<description><![CDATA[<p>Вариант решения во вложении: при получении сообщения заданного содержания (все байты равны указанным значениям), заменить байт D4.<br />Маска+Замена: блок №11 &quot;Побитовое И&quot; с константой 0xFF00 выделяет из регистра D5:D4 байт D5; блок №12 &quot;Побитовое ИЛИ&quot; устанавливает на место байта D4 нужную константу.<br />Если бы в сообщении с ID=0x222 нужно было постоянно менять значение байта D4 на одну и туже константу, вне зависимости от содержания всего сообщения, то это можно было бы легко сделать через настройки отбора драйвера шлюза (маска отбора/замена отбора).</p>]]></description>
			<author><![CDATA[null@example.com (Денис, CANNY)]]></author>
			<pubDate>Mon, 20 Nov 2017 15:16:11 +0000</pubDate>
			<guid>https://forum.canny.ru/viewtopic.php?pid=6334#p6334</guid>
		</item>
		<item>
			<title><![CDATA[Подмена 1 байта в конкретном пакете]]></title>
			<link>https://forum.canny.ru/viewtopic.php?pid=6332#p6332</link>
			<description><![CDATA[<p>Помучаю еще, если позволите:<br />Задача:<br />в конкретном пакете ID222&nbsp; Data: 00 11 22 33 44 55 66 77 заменить D4 на &quot;0х41&quot; (на константу)<br />Все остальные пакеты от этого ID передать без изменений.</p><p>Получилось как то так.... но что то мне подсказывает что это не совсем оптимальный вариант...&nbsp; хотя он и работает.<br />Может подскажете как сделать через маску/замену?</p>]]></description>
			<author><![CDATA[null@example.com (ladan)]]></author>
			<pubDate>Mon, 20 Nov 2017 14:42:28 +0000</pubDate>
			<guid>https://forum.canny.ru/viewtopic.php?pid=6332#p6332</guid>
		</item>
	</channel>
</rss>
