<?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=523</link>
		<atom:link href="https://forum.canny.ru/extern.php?action=feed&amp;tid=523&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Подсчет контрольной суммы. Как эффективнее всего?».]]></description>
		<lastBuildDate>Tue, 27 Nov 2018 12:54:29 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Подсчет контрольной суммы. Как эффективнее всего?]]></title>
			<link>https://forum.canny.ru/viewtopic.php?pid=7505#p7505</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>Речь о i-bus шине, контрольная сумма для которой - последний байт посылки, как результат всех предыдущих через XOR</p></blockquote></div><p>Ясно. Появись эта информация в исходном сообщении, тема была бы намного короче.</p>]]></description>
			<author><![CDATA[null@example.com (Константин, CANNY)]]></author>
			<pubDate>Tue, 27 Nov 2018 12:54:29 +0000</pubDate>
			<guid>https://forum.canny.ru/viewtopic.php?pid=7505#p7505</guid>
		</item>
		<item>
			<title><![CDATA[Re: Подсчет контрольной суммы. Как эффективнее всего?]]></title>
			<link>https://forum.canny.ru/viewtopic.php?pid=7504#p7504</link>
			<description><![CDATA[<p>Пока у меня два пути, по которым все получается:<br />1. подсчет вручную виндосовским калькулятором через XOR всех байтов посылки<br />2. отправкой через I-Bus analyser посылки без чек суммы, программа добавляет ее автоматом, и я могу на выходе &quot;подсмотреть&quot; результат.<br />Но это годится только для статичных сообщений. </p><p>Речь о i-bus шине, контрольная сумма для которой - последний байт посылки, как результат всех предыдущих через XOR</p><p>Буду пробовать реализовать через блоки диаграммы.</p><p>Благодарю</p>]]></description>
			<author><![CDATA[null@example.com (alex_engine)]]></author>
			<pubDate>Tue, 27 Nov 2018 12:26:37 +0000</pubDate>
			<guid>https://forum.canny.ru/viewtopic.php?pid=7504#p7504</guid>
		</item>
		<item>
			<title><![CDATA[Re: Подсчет контрольной суммы. Как эффективнее всего?]]></title>
			<link>https://forum.canny.ru/viewtopic.php?pid=7502#p7502</link>
			<description><![CDATA[<p>Как я понял, вы не можете выбирать алгоритм расчета контрольной суммы самостоятельно, а должны использовать какой-то определенный? В этом случае, разумеется Modbus вам не подойдет. Вам необходимо организовать подсчет контрольной суммы в диаграмме, в соответствии с требуемым алгоритмом.</p>]]></description>
			<author><![CDATA[null@example.com (Константин, CANNY)]]></author>
			<pubDate>Tue, 27 Nov 2018 09:37:05 +0000</pubDate>
			<guid>https://forum.canny.ru/viewtopic.php?pid=7502#p7502</guid>
		</item>
		<item>
			<title><![CDATA[Re: Подсчет контрольной суммы. Как эффективнее всего?]]></title>
			<link>https://forum.canny.ru/viewtopic.php?pid=7501#p7501</link>
			<description><![CDATA[<p>Прошу прощения. <br />Рабочая, имел ввиду - что воспринимается адресатом как надо и строка символов из посылки на экране отображается.<br />Эта посылка сформирована &quot;вручную&quot;, чек сумму считал калькулятором.</p><p>Нерабочая - в шину передается, но никакой реакции нет.&nbsp; Навкодер (я им параллельно смотрю) - тоже во втором случае не реагирует на посылку, так обычно происходит, когда неправильная структура посылки (длинна-чексумма).</p><p>Насколько я успел заметить - во втором случае изменяются две последние позиции посылки. А в &quot;оригинале&quot; чексумма - одна последняя позиция (27)</p>]]></description>
			<author><![CDATA[null@example.com (alex_engine)]]></author>
			<pubDate>Tue, 27 Nov 2018 09:30:27 +0000</pubDate>
			<guid>https://forum.canny.ru/viewtopic.php?pid=7501#p7501</guid>
		</item>
		<item>
			<title><![CDATA[Re: Подсчет контрольной суммы. Как эффективнее всего?]]></title>
			<link>https://forum.canny.ru/viewtopic.php?pid=7497#p7497</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>рабочая посылка</p></blockquote></div><div class="quotebox"><blockquote><p>нерабочая посылка</p></blockquote></div><p>Что это значит?</p>]]></description>
			<author><![CDATA[null@example.com (Константин, CANNY)]]></author>
			<pubDate>Mon, 26 Nov 2018 20:18:40 +0000</pubDate>
			<guid>https://forum.canny.ru/viewtopic.php?pid=7497#p7497</guid>
		</item>
		<item>
			<title><![CDATA[Re: Подсчет контрольной суммы. Как эффективнее всего?]]></title>
			<link>https://forum.canny.ru/viewtopic.php?pid=7496#p7496</link>
			<description><![CDATA[<p>Спасибо, попробовал. </p><br /><p>У меня получается так:<br />30 19 80 1A 35 00 20 20 20 20 20 20 20 2D 24 42 4D 57 24 2D 20 20 20 20 20 20 FE&nbsp; - без RTU, рабочая посылка. FE - чек сумма. Строка на экране отображается.</p><p>30 19 80 1A 35 00 20 20 20 20 20 20 20 2D 24 42 4D 57 24 2D 20 20 20 20 20 9E 62&nbsp; -&nbsp; с RTU, нерабочая посылка.&nbsp; </p><p>Длинна сообщения UART - 27 в обоих случаях. </p><p>Увеличил длину до 28, в шину шлет такое:<br />30 19 80 1A 35 00 20 20 20 20 20 20 20 2D 24 42 4D 57 24 2D 20 20 20 20 20 20 E2 70&nbsp; - rtu (28), все равно не получается. </p><p>В описании RTU указано, что чек сумма это два байта. В моей посылке - один. Я так понимаю, проблема в этом. Это как-то можно победить? <br />Благодарю</p>]]></description>
			<author><![CDATA[null@example.com (alex_engine)]]></author>
			<pubDate>Mon, 26 Nov 2018 20:14:57 +0000</pubDate>
			<guid>https://forum.canny.ru/viewtopic.php?pid=7496#p7496</guid>
		</item>
		<item>
			<title><![CDATA[Re: Подсчет контрольной суммы. Как эффективнее всего?]]></title>
			<link>https://forum.canny.ru/viewtopic.php?pid=7495#p7495</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>Но, кроме этого,&nbsp; посылка должна содержать чек сумму.</p></blockquote></div><p>Если алгоритм расчета контрольной суммой не фиксированный, то я бы использовал протокол Modbus RTU: <a href="http://wiki.canny.ru/index.php?title=CANNY_7,_%D0%94%D1%80%D0%B0%D0%B9%D0%B2%D0%B5%D1%80_UART_-_RS232_-_Modbus#.D0.A0.D0.B5.D0.B0.D0.BB.D0.B8.D0.B7.D0.B0.D1.86.D0.B8.D1.8F_Modbus_RTU" rel="noopener noreferrer" target="_blank">http://wiki.canny.ru/index.php?title=CA … Modbus_RTU</a></p><p>в этом случае, драйвер UART рассчитает с добавит контрольную сумму сам.</p><p>Начиная с версии CannyLab 1.35 поддержка Modbus RTU добавлена в драйвер UART контроллера Canny 5 nano.</p>]]></description>
			<author><![CDATA[null@example.com (Константин, CANNY)]]></author>
			<pubDate>Mon, 26 Nov 2018 15:08:47 +0000</pubDate>
			<guid>https://forum.canny.ru/viewtopic.php?pid=7495#p7495</guid>
		</item>
		<item>
			<title><![CDATA[Re: Подсчет контрольной суммы. Как эффективнее всего?]]></title>
			<link>https://forum.canny.ru/viewtopic.php?pid=7493#p7493</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>Посылка состоит из HEX кодов символов ASCII, которые принимаемое устройство само в символы преобразует.</p></blockquote></div><p>Блок &quot;Число в строку&quot; по основанию 10, преобразует именно в ASCII коды символов. То, в какой системе счисления вы видите ASCII коды, зависит только от средства просмотра. Полагаю, что никаких дополнительных преобразований вам не потребуется.</p>]]></description>
			<author><![CDATA[null@example.com (Константин, CANNY)]]></author>
			<pubDate>Mon, 26 Nov 2018 12:14:16 +0000</pubDate>
			<guid>https://forum.canny.ru/viewtopic.php?pid=7493#p7493</guid>
		</item>
		<item>
			<title><![CDATA[Подсчет контрольной суммы. Как эффективнее всего?]]></title>
			<link>https://forum.canny.ru/viewtopic.php?pid=7488#p7488</link>
			<description><![CDATA[<p>Здравствуйте<br />Подскажите, плиз, в такой ситуации оптимальный путь:</p><p>Имеется надобность посылать через UART посылку, в которой из диаграммы будет передаваться число (десятичное), которое принимаемым устройством должно быть отображено на экране цифрами. Посылка состоит из HEX кодов символов ASCII, которые принимаемое устройство само в символы преобразует.</p><p>Если я правильно понял, для преобразования десятичного числа в символы нужно воспользоваться блоком &quot;число в строку&quot;</p><p><a href="http://piccy.info/view3/12794561/429662ac2797e991f13955fd38de38b9/" rel="noopener noreferrer" target="_blank"><span class="postimg"><img src="http://i.piccy.info/i9/3aaeac7b25c79fad3d940dd79cc96200/1543161039/27880/1232451/Bezymiannyi.jpg" alt="http://i.piccy.info/i9/3aaeac7b25c79fad3d940dd79cc96200/1543161039/27880/1232451/Bezymiannyi.jpg" /></span></a><a href="http://i.piccy.info/a3c/2018-11-25-15-50/i9-12794561/469x418-r" rel="noopener noreferrer" target="_blank"><span class="postimg"><img src="http://i.piccy.info/a3/2018-11-25-15-50/i9-12794561/469x418-r/i.gif" alt="http://i.piccy.info/a3/2018-11-25-15-50/i9-12794561/469x418-r/i.gif" /></span></a><br />Но мне нужно десятичное число в шестнадцатиричное преобразовать для пересылки. И таким образом этого не добиться. <br />Сначала число в строку по основанию 10, потом строку в число по основанию 16? Это сработает?</p><p>Но, кроме этого,&nbsp; посылка должна содержать чек сумму. А значение меняется по результатам работы диаграммы.<br />Есть какой-то более оптимальный способ для вычисления чексуммы чем банальное XOR всех бит посылки? (их почти три десятка <img src="https://forum.canny.ru/img/smilies/sad.png" width="15" height="15" alt="sad" /> )<br />Спасибо</p>]]></description>
			<author><![CDATA[null@example.com (alex_engine)]]></author>
			<pubDate>Sun, 25 Nov 2018 16:00:25 +0000</pubDate>
			<guid>https://forum.canny.ru/viewtopic.php?pid=7488#p7488</guid>
		</item>
	</channel>
</rss>
