<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[SDS PLC/PAC: Měření Energie & OnlineTechnology.cz - [vyřešeno] funkce sprintf >> lcd_echo]]></title>
	<link rel="self" href="https://forum.sds.an-d.cz/extern.php?action=feed&amp;tid=306&amp;type=atom" />
	<updated>2012-09-19T17:11:44Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.sds.an-d.cz/viewtopic.php?id=306</id>
		<entry>
			<title type="html"><![CDATA[Re: [vyřešeno] funkce sprintf >> lcd_echo]]></title>
			<link rel="alternate" href="https://forum.sds.an-d.cz/viewtopic.php?pid=2289#p2289" />
			<content type="html"><![CDATA[<p>TO adamn - vřelé díky za flexibilitu a rychlou spolupráci, <strong>vše funguje jak má</strong><br />(na nic nekalého jsem nepřišel). <br />Téma výpisu pole text na LCD je zřejmě možné ukončit. MŠ</p>]]></content>
			<author>
				<name><![CDATA[milan.simunek]]></name>
				<uri>https://forum.sds.an-d.cz/profile.php?id=85</uri>
			</author>
			<updated>2012-09-19T17:11:44Z</updated>
			<id>https://forum.sds.an-d.cz/viewtopic.php?pid=2289#p2289</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: [vyřešeno] funkce sprintf >> lcd_echo]]></title>
			<link rel="alternate" href="https://forum.sds.an-d.cz/viewtopic.php?pid=2272#p2272" />
			<content type="html"><![CDATA[<p>Beta s doplněnou funkcí lcd_echo() je k dispozici.</p>]]></content>
			<author>
				<name><![CDATA[adamn]]></name>
				<uri>https://forum.sds.an-d.cz/profile.php?id=7</uri>
			</author>
			<updated>2012-09-15T11:05:25Z</updated>
			<id>https://forum.sds.an-d.cz/viewtopic.php?pid=2272#p2272</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: [vyřešeno] funkce sprintf >> lcd_echo]]></title>
			<link rel="alternate" href="https://forum.sds.an-d.cz/viewtopic.php?pid=2256#p2256" />
			<content type="html"><![CDATA[<p>Protože neřeším žádnou komerční aplikaci za úplatu, ale jedná se o soukromo-pracovní seznamování se zařízeními SDS, nemusíte to nijak hrotit. Pokud na problém nikdo jiný nenarazil, nemusíte spěchat, není to urgentní. Jsem si jist, že se k tomu časem dostanete (priority na Vás). V každém případě platí - díky za stálou podporu fóra (umím si představit, kolik máte práce). Až bude nová beta verze, rád ji vyzkouším a výsledek sem napíši.</p>]]></content>
			<author>
				<name><![CDATA[milan.simunek]]></name>
				<uri>https://forum.sds.an-d.cz/profile.php?id=85</uri>
			</author>
			<updated>2012-09-10T17:47:56Z</updated>
			<id>https://forum.sds.an-d.cz/viewtopic.php?pid=2256#p2256</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: [vyřešeno] funkce sprintf >> lcd_echo]]></title>
			<link rel="alternate" href="https://forum.sds.an-d.cz/viewtopic.php?pid=2254#p2254" />
			<content type="html"><![CDATA[<p>Tento týden to vyřeším.</p>]]></content>
			<author>
				<name><![CDATA[adamn]]></name>
				<uri>https://forum.sds.an-d.cz/profile.php?id=7</uri>
			</author>
			<updated>2012-09-10T17:32:46Z</updated>
			<id>https://forum.sds.an-d.cz/viewtopic.php?pid=2254#p2254</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: [vyřešeno] funkce sprintf >> lcd_echo]]></title>
			<link rel="alternate" href="https://forum.sds.an-d.cz/viewtopic.php?pid=2251#p2251" />
			<content type="html"><![CDATA[<p>Rozumím.<br />Díky za Váš čas.</p>]]></content>
			<author>
				<name><![CDATA[milan.simunek]]></name>
				<uri>https://forum.sds.an-d.cz/profile.php?id=85</uri>
			</author>
			<updated>2012-09-09T19:21:56Z</updated>
			<id>https://forum.sds.an-d.cz/viewtopic.php?pid=2251#p2251</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: [vyřešeno] funkce sprintf >> lcd_echo]]></title>
			<link rel="alternate" href="https://forum.sds.an-d.cz/viewtopic.php?pid=2249#p2249" />
			<content type="html"><![CDATA[<p>Ok, to vypadá na něco ve firmware pro SDS MACRO - zkontroluji to a dám sem informace. <br />Pokud to bude oprava ve firmware, bude to nejprve přidáno do beta verze.</p>]]></content>
			<author>
				<name><![CDATA[adamn]]></name>
				<uri>https://forum.sds.an-d.cz/profile.php?id=7</uri>
			</author>
			<updated>2012-09-09T19:07:52Z</updated>
			<id>https://forum.sds.an-d.cz/viewtopic.php?pid=2249#p2249</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: [vyřešeno] funkce sprintf >> lcd_echo]]></title>
			<link rel="alternate" href="https://forum.sds.an-d.cz/viewtopic.php?pid=2244#p2244" />
			<content type="html"><![CDATA[<p>Zápis do pole text[] po jednotlivých indexech jsem na wiki četl, sprintf() mi však přišla vstřícnější.<br />Ad popletený zápis ram[] - v proceduře jsem to napsal blbě, přestože v initu jsem to napsal správně :-). Díky za korekci!</p><p>Co se týče volání echa() po inicializaci, na sds-c záložce na uživatelské stránce se echo() vypíše přesně tak, jak jsem jej dopsal do programu kvůli vyzkoušení, tedy: Cerpadlo solarniho okruhu:VYP, resp. Uvolneni tepelneho cerpadla:ANO<br /></p><div class="codebox"><pre><code>sprintf(text[0], &#039;VYP&#039;); 
sprintf(text[5], &#039;ANO&#039;); 
echotime(); 
echo(&#039;Cerpadlo solarniho okruhu:&#039;, text[0]);
echo(&#039;Uvolneni tepelneho cerpadla:&#039;, text[5]);</code></pre></div><p>Vyzkoušel jsem tedy samostatný kus kódu bez procedur (níže), nicméně na LCD jsem zápis nedostal ani v tomto případě - výpis proveden pouze na 1. řádek (Pokus o vypis sprintf:), 2. řádek prázdný. Samotné echo() vypsáno v pořádku (VYP).<br /></p><div class="codebox"><pre><code>init
{
sprintf(text[0], &#039;VYP&#039;);
lcd_echo(1,1,1, &#039;Pokus o vypis sprintf:&#039;);
lcd_echo(1,2,1, text[0]);
echo(text[0]);
}</code></pre></div><p>Můžete kdokoli ověřit tento kousek kódu na svém Macru (s lcd)?</p><p>EDIT(8/9/2012; 22:24): <br />- vyzkoušena samotná fce text[], ale lcd_echo() text rovněž nevypíše &lt;text[0]=&#039;V&#039;; text[1]=0x00; lcd_echo(text[0]);&gt;<br />- následně přehrán březnový firmware na verzi z května; stav beze změn.</p>]]></content>
			<author>
				<name><![CDATA[milan.simunek]]></name>
				<uri>https://forum.sds.an-d.cz/profile.php?id=85</uri>
			</author>
			<updated>2012-09-08T19:41:46Z</updated>
			<id>https://forum.sds.an-d.cz/viewtopic.php?pid=2244#p2244</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: [vyřešeno] funkce sprintf >> lcd_echo]]></title>
			<link rel="alternate" href="https://forum.sds.an-d.cz/viewtopic.php?pid=2240#p2240" />
			<content type="html"><![CDATA[<p>Do pole text[] lze zapisovat po jednotlivých místech (indexech), např.<br /></p><div class="codebox"><pre><code> text[10] = &#039;a&#039;;
 text[11] = &#039;h&#039;;
 text[12] = &#039;o&#039;;
 text[13] = &#039;j&#039;;
 text[14] = 0;</code></pre></div><p>Následující zápis:<br /></p><div class="codebox"><pre><code> ram[5]+20;</code></pre></div><p>neprovede to co by se od něj možná čekalo. <br />Spočte sice výsledek, ale neví už co s ním.<br />Správně to je takto:<br /></p><div class="codebox"><pre><code> ram[5] = ram[5]+20;</code></pre></div><p>Takto se spočte nová hodnota (ram[5]+20) a program také ví kam tuto novou hodnotu uložit (levá strana před = ).</p>]]></content>
			<author>
				<name><![CDATA[adamn]]></name>
				<uri>https://forum.sds.an-d.cz/profile.php?id=7</uri>
			</author>
			<updated>2012-09-08T15:38:06Z</updated>
			<id>https://forum.sds.an-d.cz/viewtopic.php?pid=2240#p2240</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: [vyřešeno] funkce sprintf >> lcd_echo]]></title>
			<link rel="alternate" href="https://forum.sds.an-d.cz/viewtopic.php?pid=2235#p2235" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>adamn napsal:</cite><blockquote><p>Chtělo by to ověřit, hned po zavolání sprintf(), pomocí funkce echo(text[0]);, zda-li to funguje jak má.</p></blockquote></div><p>Vyzkouším (test v Debuggeru je však OK - zápis do pole text[], i výpis LCD). Ta echa z kódu níže přepíši s použítím text[]. <br /></p><div class="quotebox"><blockquote><p>Není text[] někde ještě jinde přepsán?</p></blockquote></div><p>Ano, při změně stavu relé:<br /></p><div class="codebox"><pre><code>//Procedura pro AKTIVACI cerpadla solarniho okruhu
cerpadlo_on
{
  if (sys[231]!=1) 
  { 
  sys[231]=1; 
  sys[232]=1; 
  sprintf(text[0], &#039;ZAP&#039;); 
  sprintf(text[5], &#039; NE&#039;); 
  echotime(); 
  echo(&#039;Cerpadlo solarniho okruhu ZAPNUTO&#039;); 
  echo(&#039;Tep.cerpadlo ODSTAVENO&#039;);
  };
}
//Procedura pro DEAKTIVACI cerpadla solarniho okruhu
cerpadlo_off
{
  if (sys[231]!=0) 
  { 
  sys[231]=0; 
  sys[232]=0; 
  sprintf(text[0], &#039;VYP&#039;); 
  sprintf(text[5], &#039;ANO&#039;); 
  echotime(); 
  echo(&#039;Cerpadlo solarniho okruhu VYPNUTO&#039;); 
  echo(&#039;Tep.cerpadlo UVOLNENO&#039;);
  };
}</code></pre></div><p>Ad Vaše otázka - je možné pole text přepisovat pomocí sprintf() bez nějaké &quot;okliky&quot; (pomocná proměnná)? Jsem jen trochu poučený laik a o přepisu jsem na wiki nic nenašel.</p><p>Řádek &lt;ram[20]+5&gt; slouží k navýšení proměnné _lcd_timeout o dalších 5 sekund, abych měl na LCD pravidelné výpisy stavu a teplot (INIT: ram[20] = sys[4]; _lcd_timeout=ram[20]+5; PROCEDURA vypis_lcd = další navýšení: ram[20]+5).</p>]]></content>
			<author>
				<name><![CDATA[milan.simunek]]></name>
				<uri>https://forum.sds.an-d.cz/profile.php?id=85</uri>
			</author>
			<updated>2012-09-08T06:57:38Z</updated>
			<id>https://forum.sds.an-d.cz/viewtopic.php?pid=2235#p2235</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: [vyřešeno] funkce sprintf >> lcd_echo]]></title>
			<link rel="alternate" href="https://forum.sds.an-d.cz/viewtopic.php?pid=2229#p2229" />
			<content type="html"><![CDATA[<p>Co má dělat tento řádek:<br /></p><div class="codebox"><pre><code>ram[20]+5;</code></pre></div><p>?</p><p>Funkce sprintf by měla fungovat tak jak je popsáno na WiKi. Jestliže tomu tak není, tak je problém jinde - není text[] někde ještě jinde přepsán?<br />Chtělo by to ověřit, hned po zavolání sprintf(), pomocí funkce echo(text[0]);, zda-li to funguje jak má.</p>]]></content>
			<author>
				<name><![CDATA[adamn]]></name>
				<uri>https://forum.sds.an-d.cz/profile.php?id=7</uri>
			</author>
			<updated>2012-09-07T16:00:27Z</updated>
			<id>https://forum.sds.an-d.cz/viewtopic.php?pid=2229#p2229</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[[vyřešeno] funkce sprintf >> lcd_echo]]></title>
			<link rel="alternate" href="https://forum.sds.an-d.cz/viewtopic.php?pid=2228#p2228" />
			<content type="html"><![CDATA[<p>Zdravím,</p><p>nedaří se mi vypsat na LCD SDS Macro znaky, zadávané pomocí fce <em> sprintf</em> do pole <em> text</em>.<br />Protože se výpis neprovede ani po inicializaci programu, vypadá to na špatné pochopení fce z mé strany (i když vše ostatní - teploty, poruchy, žádost o reset, odřádkování - se na LCD zobrazuje řádně).</p><p>Z hlediska procedury <em> vypis_lcd</em> (viz níže) je tedy zobrazeno vše, až na ty <em> text [0/5]</em>.<br />Zajímavé však je, že při testech v <em> SDS-C Debbugeru</em> je na záložce <em> LCD (MACRO)</em> vše vypisováno v pořádku (a to i při změně konkrétního stavu - (de)aktivaci konkrétního okruhu).</p><div class="codebox"><pre><code>vypis_lcd
{
 if (_text==1) { lcd_clear(0); _text=0; };
 lcd_echo(1,100,1, &#039;Tep_Cerp &#039;);
 lcd_echo(11,100,1, &#039;Solar       &#039;);
 lcd_echo(1,200,0, &#039; Sani: &#039;, _temp_vzduch_in);
 lcd_echo(11,200,0, &#039;Kolektor: &#039;, _temp_kolektor);
 lcd_echo(1,300,0, &#039;Vyfuk: &#039;, _temp_vzduch_out);
 lcd_echo(16,300,0, &#039;TUV: &#039;, _temp_tuv);

 lcd_echo(1,400,0, &#039; Stav:&#039;, text[5]);
 lcd_echo(11,400,0, &#039;Cerpadlo:&#039;, text[0]);

 //Nove nastaveni intervalu pro vypis na LCD
 ram[20]+5;
}

-------
init
{
...
 sprintf(text[0],&#039;VYP&#039;);     //Pocatecni hlaseni o stavu cerpadla solarniho okruhu
 sprintf(text[5],&#039;ANO&#039;);    //Pocatecni hlaseni o stavu tepelneho cerpadla
 ...
}

main
{
...
vypis_lcd();
...
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[milan.simunek]]></name>
				<uri>https://forum.sds.an-d.cz/profile.php?id=85</uri>
			</author>
			<updated>2012-09-07T14:32:20Z</updated>
			<id>https://forum.sds.an-d.cz/viewtopic.php?pid=2228#p2228</id>
		</entry>
</feed>
