<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[SDS PLC/PAC: Měření Energie & OnlineTechnology.cz - [vyřešeno] Převod 4 bytů na číslo float]]></title>
		<link>https://forum.sds.an-d.cz/viewtopic.php?id=1021</link>
		<atom:link href="https://forum.sds.an-d.cz/extern.php?action=feed&amp;tid=1021&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Nejnovější příspěvky v [vyřešeno] Převod 4 bytů na číslo float.]]></description>
		<lastBuildDate>Fri, 12 Mar 2021 15:12:48 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: [vyřešeno] Převod 4 bytů na číslo float]]></title>
			<link>https://forum.sds.an-d.cz/viewtopic.php?pid=6998#p6998</link>
			<description><![CDATA[<p>Díky moc! Funguje perfektně.</p>]]></description>
			<author><![CDATA[null@example.com (dockys)]]></author>
			<pubDate>Fri, 12 Mar 2021 15:12:48 +0000</pubDate>
			<guid>https://forum.sds.an-d.cz/viewtopic.php?pid=6998#p6998</guid>
		</item>
		<item>
			<title><![CDATA[Re: [vyřešeno] Převod 4 bytů na číslo float]]></title>
			<link>https://forum.sds.an-d.cz/viewtopic.php?pid=6993#p6993</link>
			<description><![CDATA[<p>Možností bude více. Tady popíši jednu z nich.</p><p>Nejprve ty bajty uložit do unsigned 32bit typu, tedy v SDS např. &quot;unsigned int&quot;.<br />A ten potom převést přes ukazatel.</p><div class="codebox"><pre><code> unsigned int a;
 float b;

 // nejprve slozit cislo &quot;a&quot; z tech ctyr prichozich bajtu
 a = (b1 &lt;&lt; 24) | (b2 &lt;&lt; 16) | (b3 &lt;&lt; 8) | b4; // samozrejme pozor na poradi, v SDS je vse little-endian, takze ...

 // precteme obsah pameti, tam kde je ulozeno cislo &quot;a&quot; - ale precteme si to jako typ float
 b = *(float *)&amp;a;</code></pre></div><p>Jak jsem napsal, pozor jestli jsou vaše data Big Endian nebo Little Endian - podle toho je potřeba přeházet pořadí při skládání &quot;a&quot;.</p>]]></description>
			<author><![CDATA[null@example.com (adamn)]]></author>
			<pubDate>Fri, 12 Mar 2021 11:06:36 +0000</pubDate>
			<guid>https://forum.sds.an-d.cz/viewtopic.php?pid=6993#p6993</guid>
		</item>
		<item>
			<title><![CDATA[[vyřešeno] Převod 4 bytů na číslo float]]></title>
			<link>https://forum.sds.an-d.cz/viewtopic.php?pid=6992#p6992</link>
			<description><![CDATA[<p>Hezký den, prosím o radu. Načítám data přes RS485 z elektroměru a jednotlivé hodnoty, např. hodnota napětí na jedné fázi je reprezentována jako sekvence 4 bytů. Jsem schopen nějak ve FULL-C z těchto 4 bytů dostat číslo float (Float - Big Endian (ABCD)).</p><p>Tohle mi příjde:<br />[67, 101, 102, 102] </p><p>A tohle z toho má vzniknout: <br />229.4</p><p>Takhle to vypadá např. v Javě:<br /></p><div class="codebox"><pre><code>byte[] bytes = {67, 101, 102, 102};        
float f = ByteBuffer.wrap(bytes).order(ByteOrder.BIG_ENDIAN).getFloat();
//Výsledek je: 229.4</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (dockys)]]></author>
			<pubDate>Fri, 12 Mar 2021 10:32:44 +0000</pubDate>
			<guid>https://forum.sds.an-d.cz/viewtopic.php?pid=6992#p6992</guid>
		</item>
	</channel>
</rss>
