<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Problem mit BYTE*??]]></title><description><![CDATA[<p>Hallo,<br />
ich sende Daten über RS232, dazu benutze ich datentyp unsigned char(BYTE).<br />
Ich lese aus meinem Programm 2 Floats in die Variablen BYTE* UpperRangeValue und BYTE* LowerRangeValue ein. Doch dann steht in beiden der selbe Wert.</p>
<pre><code class="language-cpp">//COMMAND 35, write PVUnit, upper range, lower range
	BYTE* UpperRangeValue;
	BYTE* LowerRangeValue;	
	UpperRangeValue=GetTH200HexValues(MyApp-&gt;GetView()-&gt;GetVarUpperRangeValue());
	LowerRangeValue=GetTH200HexValues(MyApp-&gt;GetView()-&gt;GetVarLowerRangeValue());
	BYTE HARTCOMMAND_035[23] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x82, 0xAA, Flags,
		DeviceId[0], DeviceId[1], DeviceId[2], 0x23, 0x09, PVUnit,
		UpperRangeValue[3], UpperRangeValue[2], UpperRangeValue[1], UpperRangeValue[0],
		LowerRangeValue[3], LowerRangeValue[2], LowerRangeValue[1], LowerRangeValue[0], 0xE8};
	MyCOM.Communication(HARTCOMMAND_035, 23, Response, 0, 3000);

BYTE* TH200COM::GetTH200HexValues(float FloatValue)
{
	Hex2Float hex2float;
	hex2float.fValue=FloatValue;

	return hex2float.Hex;
}

float GetVarLowerRangeValue(){return m_fAnfangswert;}
		float GetVarUpperRangeValue(){return m_fEndwert;}
</code></pre>
<p>Wer hat ne Idee woran es liegt?<br />
Ich denke mal es liegt an Pointer BYTE*?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/175818/problem-mit-byte</link><generator>RSS for Node</generator><lastBuildDate>Fri, 24 Apr 2026 11:16:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/175818.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 14 Mar 2007 12:57:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit BYTE*?? on Wed, 14 Mar 2007 12:57:06 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich sende Daten über RS232, dazu benutze ich datentyp unsigned char(BYTE).<br />
Ich lese aus meinem Programm 2 Floats in die Variablen BYTE* UpperRangeValue und BYTE* LowerRangeValue ein. Doch dann steht in beiden der selbe Wert.</p>
<pre><code class="language-cpp">//COMMAND 35, write PVUnit, upper range, lower range
	BYTE* UpperRangeValue;
	BYTE* LowerRangeValue;	
	UpperRangeValue=GetTH200HexValues(MyApp-&gt;GetView()-&gt;GetVarUpperRangeValue());
	LowerRangeValue=GetTH200HexValues(MyApp-&gt;GetView()-&gt;GetVarLowerRangeValue());
	BYTE HARTCOMMAND_035[23] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x82, 0xAA, Flags,
		DeviceId[0], DeviceId[1], DeviceId[2], 0x23, 0x09, PVUnit,
		UpperRangeValue[3], UpperRangeValue[2], UpperRangeValue[1], UpperRangeValue[0],
		LowerRangeValue[3], LowerRangeValue[2], LowerRangeValue[1], LowerRangeValue[0], 0xE8};
	MyCOM.Communication(HARTCOMMAND_035, 23, Response, 0, 3000);

BYTE* TH200COM::GetTH200HexValues(float FloatValue)
{
	Hex2Float hex2float;
	hex2float.fValue=FloatValue;

	return hex2float.Hex;
}

float GetVarLowerRangeValue(){return m_fAnfangswert;}
		float GetVarUpperRangeValue(){return m_fEndwert;}
</code></pre>
<p>Wer hat ne Idee woran es liegt?<br />
Ich denke mal es liegt an Pointer BYTE*?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1245388</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1245388</guid><dc:creator><![CDATA[maRKus23]]></dc:creator><pubDate>Wed, 14 Mar 2007 12:57:06 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit BYTE*?? on Wed, 14 Mar 2007 13:10:48 GMT]]></title><description><![CDATA[<p>Wie arbeitet denn die Funktion GetTH200HexValues()? Ich würde ja darauf tippen, daß sie ein statisches BYTE-Array hat und bei jedem Afuruf überschreibt. (daraus folgt, daß du den Rückgabewert auslesen mußt, bevor du die Funktion das nächste Mal aufrufen kannst).</p>
<p>(PS: Zeig doch das nächste Mal etwas zusammenhängendes - aus den Bruchstücken lässt sich noch nicht einmal ein lauffähiges Programm rekonstruieren)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1245403</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1245403</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 14 Mar 2007 13:10:48 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit BYTE*?? on Wed, 14 Mar 2007 13:19:23 GMT]]></title><description><![CDATA[<p>GetTH200HexValues hat ein Union hex2float, mit dem ich float in BYTE umwandle.<br />
Die Werte stehn dann in einem Array.<br />
Den Rückgabewert von GetTH200HexValues schreibe ich dann in UpperRangeValue.<br />
Was sollte ich denn ändern damit es funktioniert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1245414</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1245414</guid><dc:creator><![CDATA[maRKus23]]></dc:creator><pubDate>Wed, 14 Mar 2007 13:19:23 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit BYTE*?? on Wed, 14 Mar 2007 13:27:37 GMT]]></title><description><![CDATA[<p>Auf jeden Fall keinen Zeiger auf eine lokale Variable zurückgeben (daß die sich in einem union verbirgt, macht die Sache auch nicht besser). Aber diese Hilfskonstruktion mit dem union brauchst du auch nicht wirklich - nimm doch stattdessen reinterpret_cast&lt;&gt;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1245425</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1245425</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 14 Mar 2007 13:27:37 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit BYTE*?? on Wed, 14 Mar 2007 13:33:37 GMT]]></title><description><![CDATA[<p>Kein Plan wie ich das jetzt anders machen soll.<br />
Muss mal überlegen, viel möchte ich jetzt auch nicht mehr an diesem Konstrukt ändern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1245433</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1245433</guid><dc:creator><![CDATA[maRKus23]]></dc:creator><pubDate>Wed, 14 Mar 2007 13:33:37 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit BYTE*?? on Wed, 14 Mar 2007 13:36:07 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">char* UpperRangeValue=reinterpret_cast&lt;char*&gt;(&amp;MyApp-&gt;GetView()-&gt;GetVarUpperRangeValue());
</code></pre>
<p>So schwierig ist das doch gar nicht, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1245434</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1245434</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 14 Mar 2007 13:36:07 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit BYTE*?? on Wed, 14 Mar 2007 13:44:26 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">char* UpperRangeValue=reinterpret_cast&lt;char*&gt;(&amp;MyApp-&gt;GetView()-&gt;GetVarUpperRangeValue
</code></pre>
<p>das wandelt mir einen Float-Wert in ein unsigned char um?<br />
Also Beispielsweise macht es aus dem Float-Wert 32.00 -&gt; 42 00 00 00?<br />
Na wenn das funktioniert wär ja nicht schlecht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1245441</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1245441</guid><dc:creator><![CDATA[maRKus23]]></dc:creator><pubDate>Wed, 14 Mar 2007 13:44:26 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit BYTE*?? on Wed, 14 Mar 2007 14:22:37 GMT]]></title><description><![CDATA[<p>Habs mit deiner Methode probiert, doch ich bekomme folgende Fehlermeldung:<br />
'&amp;' erwartet L-Wert.<br />
Was hat das zu bedeuten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1245476</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1245476</guid><dc:creator><![CDATA[maRKus23]]></dc:creator><pubDate>Wed, 14 Mar 2007 14:22:37 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit BYTE*?? on Thu, 15 Mar 2007 07:39:35 GMT]]></title><description><![CDATA[<p>Erstens: dein BYTE* ist auch nur ein Zeiger auf ein char-Array (BYTE ist idR ein typedef für 'unsigned char')</p>
<p>Zweitens: An das Problem RWert/LWert habe ich jetzt nicht gedacht, sorry. Aber das kannst du lösen, indem du den Rückgabetyp der beiden GetVar...() Funktionen auf 'const float&amp;' änderst (oder ihre Rückgabe in eine lokale float-Variable packst).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1245857</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1245857</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 15 Mar 2007 07:39:35 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit BYTE*?? on Thu, 15 Mar 2007 11:28:29 GMT]]></title><description><![CDATA[<p>Danke es klappt einwandfrei.<br />
Jetzt kann ich auch die blöden Unions löschen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1245978</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1245978</guid><dc:creator><![CDATA[maRKus23]]></dc:creator><pubDate>Thu, 15 Mar 2007 11:28:29 GMT</pubDate></item></channel></rss>