<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="cs">
	<id>https://wiki.merenienergie.cz/subdom/wiki/index.php?action=history&amp;feed=atom&amp;title=FULL-C%3A_OneWire</id>
	<title>FULL-C: OneWire - Historie editací</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.merenienergie.cz/subdom/wiki/index.php?action=history&amp;feed=atom&amp;title=FULL-C%3A_OneWire"/>
	<link rel="alternate" type="text/html" href="https://wiki.merenienergie.cz/subdom/wiki/index.php?title=FULL-C:_OneWire&amp;action=history"/>
	<updated>2026-06-13T17:59:27Z</updated>
	<subtitle>Historie editací této stránky</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.merenienergie.cz/subdom/wiki/index.php?title=FULL-C:_OneWire&amp;diff=130&amp;oldid=prev</id>
		<title>Adamn v 19. 3. 2021, 09:07</title>
		<link rel="alternate" type="text/html" href="https://wiki.merenienergie.cz/subdom/wiki/index.php?title=FULL-C:_OneWire&amp;diff=130&amp;oldid=prev"/>
		<updated>2021-03-19T09:07:58Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;cs&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Starší verze&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Verze z 19. 3. 2021, 09:07&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l121&quot; &gt;Řádek 121:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádek 121:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  };&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  };&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Příklad FULL-C kódu je k dispozici na stránce [[FULL-&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;C_set_and_get_&lt;/del&gt;:&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;_detailed&lt;/del&gt;]].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Příklad FULL-C kódu je k dispozici na stránce [[FULL-&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;C&lt;/ins&gt;: &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;set and get: detailed&lt;/ins&gt;]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Pozn. při každé žádosti o 1-W Konfigurační Strukturu sahá SDS do pevné paměti (DF) aby přečetl DeviceName. SDS používá cache, ale pouze na čtyři tyto pole textu, které jsou v rámci jedné DF stránky (tj. 0,1,2,3 jsou spolu, pak 3,4,5,6 jsou spolu, a tak dále). Proto je doporučeno optimalizovat přístup (dotazy) tak, aby se četlo postupně, výrazně se tím celý proces zrychlí (využije se cache a načítání z DF bude jen jednou za čtyři postupné dotazy). Samozřejmě není zde jakékoliv omezení pro jakkoliv náhodný přístup k těmto datům, jde zde jen o tip jak být optimální při psaní kódu pro SDS.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Pozn. při každé žádosti o 1-W Konfigurační Strukturu sahá SDS do pevné paměti (DF) aby přečetl DeviceName. SDS používá cache, ale pouze na čtyři tyto pole textu, které jsou v rámci jedné DF stránky (tj. 0,1,2,3 jsou spolu, pak 3,4,5,6 jsou spolu, a tak dále). Proto je doporučeno optimalizovat přístup (dotazy) tak, aby se četlo postupně, výrazně se tím celý proces zrychlí (využije se cache a načítání z DF bude jen jednou za čtyři postupné dotazy). Samozřejmě není zde jakékoliv omezení pro jakkoliv náhodný přístup k těmto datům, jde zde jen o tip jak být optimální při psaní kódu pro SDS.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Adamn</name></author>
	</entry>
	<entry>
		<id>https://wiki.merenienergie.cz/subdom/wiki/index.php?title=FULL-C:_OneWire&amp;diff=129&amp;oldid=prev</id>
		<title>Adamn v 19. 3. 2021, 09:06</title>
		<link rel="alternate" type="text/html" href="https://wiki.merenienergie.cz/subdom/wiki/index.php?title=FULL-C:_OneWire&amp;diff=129&amp;oldid=prev"/>
		<updated>2021-03-19T09:06:48Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;cs&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Starší verze&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Verze z 19. 3. 2021, 09:06&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l196&quot; &gt;Řádek 196:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádek 196:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Pokud je dále něco nejasné, napište to na naše Fórum.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Pokud je dále něco nejasné, napište to na naše Fórum.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;__NOTOC__&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Adamn</name></author>
	</entry>
	<entry>
		<id>https://wiki.merenienergie.cz/subdom/wiki/index.php?title=FULL-C:_OneWire&amp;diff=128&amp;oldid=prev</id>
		<title>Adamn: Založena nová stránka s textem „ Tato stránka popisuje programovací jazyk '''FULL-C''', který je dostupný na vybraných zařízeních SDS.   Některá zařízení používají SDS-C,…“</title>
		<link rel="alternate" type="text/html" href="https://wiki.merenienergie.cz/subdom/wiki/index.php?title=FULL-C:_OneWire&amp;diff=128&amp;oldid=prev"/>
		<updated>2021-03-19T09:06:18Z</updated>

		<summary type="html">&lt;p&gt;Založena nová stránka s textem „ Tato stránka popisuje programovací jazyk &amp;#039;&amp;#039;&amp;#039;FULL-C&amp;#039;&amp;#039;&amp;#039;, který je dostupný na vybraných zařízeních SDS.   Některá zařízení používají SDS-C,…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nová stránka&lt;/b&gt;&lt;/p&gt;&lt;div&gt; Tato stránka popisuje programovací jazyk '''FULL-C''', který je dostupný na vybraných zařízeních SDS. &lt;br /&gt;
 Některá zařízení používají SDS-C, pro který máme návody jinde na této WiKi.&lt;br /&gt;
&lt;br /&gt;
== 1-W ==&lt;br /&gt;
&lt;br /&gt;
Zařízení SDS (OnlineTechnology.cz) druhé produktové řady poskytují komunikační rozhraní OneWire(TM), zkráceně 1-W.&lt;br /&gt;
&lt;br /&gt;
Velmi podobé funkce nabízí i SDS první produktové řady, ale s jistými odlišnostmi, které na této stránce nejsou uvedeny, protože tato stránka se specificky věnuje jen SDS druhé produktové řady.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Funkce 1-W v SDS ==&lt;br /&gt;
&lt;br /&gt;
Zařízení SDS (2. produktová řada) automaticky obsluhuje obě své 1-W sběrnice. Na každé sběrnici může být trvale připojeno až 64 zařízení, takže na jedno SDS může být připojeno nejvíce 128 OneWire zařízení (za předpokladu, že napájení každého z těchto zařízení neklesne pod výrobcem stanovenou mez, což se může stát z různých fyzikálních důvodů - a není to samozřejme problém řešit, např. doplňkovými napájecími zdroji).&lt;br /&gt;
&lt;br /&gt;
Pod pojmem OneWire zařízení si lze představit jakékoliv zařízení, které splňuje normu 1-Wire. Specificky pro SDS, je nutné říct že na SDS 1-W sběrnice lze připojit skutečně jakékoliv kompatibilní zařízení (a nic se &amp;quot;nerozbije&amp;quot; nebo nepřestane komunikovat), ale jen některá z nich budou schopna být i programově obslouženy (a ty která SDS &amp;quot;nezná&amp;quot; tak je ignoruje - přeskočí). &lt;br /&gt;
&lt;br /&gt;
Typicky, zařízení SDS (FW 2017) podporuje různé teploměrné chipy (samozřejmě každý typ má jiné vlastnosti, zejména přesnost měření teploty):&lt;br /&gt;
* DS18S20 &lt;br /&gt;
* DS18B20  (doporučený chip)&lt;br /&gt;
* DS1822&lt;br /&gt;
* MAX31826&lt;br /&gt;
* DS28EA00&lt;br /&gt;
&lt;br /&gt;
A dále lze připojit chip DS1990(A) jehož jedinou funkcí je &amp;quot;ohlásit svou přítomnost (připojení ke sběrnici)&amp;quot;. &lt;br /&gt;
Toto je tzv. &amp;quot;i-Button chip&amp;quot;, tzn. dynamicky připojitelný chip, který se používá pro identifikaci (uživatele, věci, výrobku, atd.) v rámci např. přístupových systémů.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zařízení SDS tedy automaticky komunikuje s každým připojeným zařízení, přičemž postupuje &amp;quot;krok-za-krokem&amp;quot; - tedy - obslouží první zařízení, po něm druhé, pak třetí, atd. až na konec (64) a pak zase od začátku, a pořád dokola, bez přerušení. Protože jsou k dispozici dvě nezávislé sběrnice, děje se tato činnost paralelně (první zařízení na sběrnici A a první zařízení na sběrnice B, a tak dále).&lt;br /&gt;
&lt;br /&gt;
Stav této činnosti je stále k dispozici, a dá se získat různými způsoby. Vždy je vidět na vybrané webové stránce (webová administrace SDS), a dále je k dispozici pro FULL-C program, který si může tyto údaje zjistit dotazem přes příslušnou funkci.&lt;br /&gt;
&lt;br /&gt;
Data ze 1-W sběrnic jsou tedy k diposizici i na specifických datových souborech (M2M soubory), které lze z SDS stáhnout:&lt;br /&gt;
* onewire.xml&lt;br /&gt;
* onewire.csv&lt;br /&gt;
* temp.xml&lt;br /&gt;
* temp.txt &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== FULL-C: Stav sběrnice 1-W ==&lt;br /&gt;
&lt;br /&gt;
V první řadě váš FULL-C program potřebuje vědět, v jakém stavu je samotný systém SDS - jestli má schopnost pracovat se svými 1-W sběrnicemi. Pokud nemá, nemají všechny další kroky smysl.&lt;br /&gt;
&lt;br /&gt;
 -----------+---------+------+----------------------------------------------&lt;br /&gt;
   index    | i\u\f\a | směr |  popis &lt;br /&gt;
 -----------+---------+------+----------------------------------------------&lt;br /&gt;
  2998      | u       |  GET |  general 1-W Master Chip status: 1/2/4/8/16&lt;br /&gt;
  2998      |         |  SET |  n/a (read-only)&lt;br /&gt;
 -----------+---------+------+----------------------------------------------&lt;br /&gt;
  2999      | u       |  GET |  general 1-W Master Chip status: detection-retry countdown&lt;br /&gt;
  2999      |         |  SET |  n/a (read-only)&lt;br /&gt;
 -----------+---------+------+----------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Index 2998 udává stav systému:&lt;br /&gt;
&lt;br /&gt;
 1   = systém se teprve spouští (ověřování stavu hardware uvnitř SDS - detekce 1-W Master chipů)&lt;br /&gt;
 2   = porucha - ale bude ješte následovat další pokus o spuštění (po 10 vteřinách) (max 4 pokusy)&lt;br /&gt;
 4   = porucha - už nebudou další pokusy&lt;br /&gt;
 8   = VŠE V POŘADKU - vše funguje&lt;br /&gt;
 16  = obě sběrnice 1-W jsou zakázany (vypnuty) uživatelem&lt;br /&gt;
&lt;br /&gt;
Samozřejmě je žádoucí vidět index 2998 s hodnotou 8, tj. vše funguje. &lt;br /&gt;
&lt;br /&gt;
Speciální hodnota 16 je tam pouze v případě že vy ve vašem FULL-C programu zavoláte speciální funkci SDS_disable_onewire() - což je vždy žádoucí pokud 1-W sběrnice nevyužíváte (příklad: OEM aplikace modulu SDS-STSW, kde 1-W není fyzicky použita).&lt;br /&gt;
&lt;br /&gt;
Pro případ hodnoty 2, se systém SDS pokusí o opakování spuštění obsluhy 1-W sběrnice. Pokud se to ani po několikaterém opakování nepovede, zůstane 1-W vypnuta, až do restartu (kdy se SDS opět po svém spuštění pokusí svůj interní 1-W hardware inicilizovat). Pokud uvidíte hodnotu 4, tak to obvykle znamená poruchu hardware, a SDS bude potřeba opravit nebo vyměnit.&lt;br /&gt;
&lt;br /&gt;
Pro hodnotu 2 (stále index 2998) je k dispozici doplňkový údaj v indexu 2999, který ukazuje počet zbývajících násobků 10msec času, do dalšího pokusu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== FULL-C: jednotlivé zařízení na 1-W ==&lt;br /&gt;
&lt;br /&gt;
Pro každé z celkem 2x 64 zařízení udržuje SDS svou vnitřní stavovou strukturu. K té je se možné dostat různými způsoby, a to jak ve formě interpretovaných dat v M2M datových souborech (viz výše) nebo na webové administraci SDS, tak také pomocí funkcí FULL-C a dále je v programu zpracovat.&lt;br /&gt;
&lt;br /&gt;
Každé 1-W zařízení má uvnitř SDS tyto čtyři datové body:&lt;br /&gt;
* Konfigurační Struktura s těmito údaji:&lt;br /&gt;
** ROM-CODE identifikace připojeného zařízení&lt;br /&gt;
** Uživatelský název (jen pro &amp;quot;orientaci&amp;quot; bez vlivu na vnitřní funkci SDS, např. &amp;quot;Čidlo Venkovní Teploty&amp;quot;)&lt;br /&gt;
* stav respektive aktuální akce od SDS - např. &amp;quot;Start převodu teploty&amp;quot;&lt;br /&gt;
* Základní přečtená hodnota (např. Změřená teplota z teplotního čidla)&lt;br /&gt;
* Doplňková přečtená hodnota (využívá se podle typu 1-W zařízení, u těch zařízení, které při čtení vracejí více než jednu hodnotu)&lt;br /&gt;
&lt;br /&gt;
Ke každemu z těchto bodů se přistupuje specificky, pomocí FULL-C funkcí pro čtení hodnot.&lt;br /&gt;
&lt;br /&gt;
 -----------+---------+------+----------------------------------------------&lt;br /&gt;
   index    | i\u\f\a | směr |  popis &lt;br /&gt;
 -----------+---------+------+----------------------------------------------&lt;br /&gt;
  2000..2063| u   (a) |  GET |  [1-W BUS (A)] device status&lt;br /&gt;
  2000..2063|         |  SET |  n/a (reserved)&lt;br /&gt;
 -----------+---------+------+----------------------------------------------&lt;br /&gt;
  2100..2163| a       |  GET |  [1-W BUS (A)] konfigurační Struktura&lt;br /&gt;
  2100..2163|         |  SET |  n/a (reserved)&lt;br /&gt;
 -----------+---------+------+----------------------------------------------&lt;br /&gt;
  2200..2263| i   (a) |  GET |  [1-W BUS (A)] přečtená hodnota (základní)&lt;br /&gt;
  2200..2263|         |  SET |  n/a (reserved)&lt;br /&gt;
 -----------+---------+------+----------------------------------------------&lt;br /&gt;
  2300..2363| i   (a) |  GET |  [1-W BUS (A)] přečtená hodnota (doplňková)&lt;br /&gt;
  2300..2363|         |  SET |  n/a (reserved)&lt;br /&gt;
 -----------+---------+------+----------------------------------------------&lt;br /&gt;
  2500..2563| u   (a) |  GET |  [1-W BUS (B)] device status&lt;br /&gt;
  2500..2563|         |  SET |  n/a (reserved)&lt;br /&gt;
 -----------+---------+------+----------------------------------------------&lt;br /&gt;
  2600..2663| a       |  GET |  [1-W BUS (B)] konfigurační Struktura&lt;br /&gt;
  2600..2663|         |  SET |  n/a (reserved)&lt;br /&gt;
 -----------+---------+------+----------------------------------------------&lt;br /&gt;
  2700..2763| i   (a) |  GET |  [1-W BUS (B)] přečtená hodnota (základní)&lt;br /&gt;
  2700..2763|         |  SET |  n/a (reserved)&lt;br /&gt;
 -----------+---------+------+----------------------------------------------&lt;br /&gt;
  2800..2863| i   (a) |  GET |  [1-W BUS (B)] přečtená hodnota (doplňková)&lt;br /&gt;
  2800..2863|         |  SET |  n/a (reserved)&lt;br /&gt;
 -----------+---------+------+----------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Nejprve si všimněte důležitého detailu, a to, že k jednotlivým 1-W sběrnicím (sběrnice A a sběrnice B) se přistupuje odděleně. V následujícím textu provedeme popis pro 1-W sběrnici A, přičemž vše platí i pro sběrnici B, jen je potřeba použít jiné čísla indexů (viz tabulka), což je jediný rozdíl.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Indexy 2100 až 2163 (respektive 2600 až 2663)''' vracejí data konfigurační struktury s tímto obsahem:&lt;br /&gt;
&lt;br /&gt;
 struct OW_DEVICE_CFG_t {&lt;br /&gt;
   unsigned char ROMcode[8];&lt;br /&gt;
   unsigned char DeviceName[16+1];&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Příklad FULL-C kódu je k dispozici na stránce [[FULL-C_set_and_get_:_detailed]].&lt;br /&gt;
&lt;br /&gt;
Pozn. při každé žádosti o 1-W Konfigurační Strukturu sahá SDS do pevné paměti (DF) aby přečetl DeviceName. SDS používá cache, ale pouze na čtyři tyto pole textu, které jsou v rámci jedné DF stránky (tj. 0,1,2,3 jsou spolu, pak 3,4,5,6 jsou spolu, a tak dále). Proto je doporučeno optimalizovat přístup (dotazy) tak, aby se četlo postupně, výrazně se tím celý proces zrychlí (využije se cache a načítání z DF bude jen jednou za čtyři postupné dotazy). Samozřejmě není zde jakékoliv omezení pro jakkoliv náhodný přístup k těmto datům, jde zde jen o tip jak být optimální při psaní kódu pro SDS.&lt;br /&gt;
&lt;br /&gt;
Pokud není na dané pozici připojené zařízení, je ROMcode buď celý nastaven na 0x00 nebo na 0xFF. Pokud je tedy celé pole ROMcode souvisle vyplněno jednou z těchto hodnot, může se FULL-C program spolehnout že na dané 1-W sběrnici a na dané pozici nic připojeno není.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Indexy 2000 až 2063 (respektive 2200 až 2263)''' vracejí aktuální živý status pro každé připojené zařízení.&lt;br /&gt;
&lt;br /&gt;
Hodnota využívá slovo o délce 17 bitů, a tyto bity jsou použity následovně:&lt;br /&gt;
&lt;br /&gt;
 LOCKBIT WS WS WS WS WS WS WS WS DS DS DS DS DS DS DS DS&lt;br /&gt;
      16 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0&lt;br /&gt;
&lt;br /&gt;
Takže:&lt;br /&gt;
* LOCKBIT = pouze 16. bit&lt;br /&gt;
* WS = 15. bit až 8. bit včetně (je to potřeba &amp;quot;vykrojit&amp;quot; a &amp;quot;posunout&amp;quot;)&lt;br /&gt;
* DS = 7. bit až 0. bit včetně (je to potřeba &amp;quot;vykrojit&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Parametry WS a DS jsou čísla o hodnotě 0 až 255 - což je zřejmé, protože každý parametr je vyjádřen osmi bity.&lt;br /&gt;
Je potřeba umět ty hodnoty vyjmout z celého slova, např. takto:&lt;br /&gt;
&lt;br /&gt;
 uint32_t hodnota;&lt;br /&gt;
 uint8_t WS, DS;&lt;br /&gt;
 uint32_t Lock;&lt;br /&gt;
 //&lt;br /&gt;
 hodnota = SDS_get_u32(2000); // index zvolte dle pozice čidla, zde 2000 pro úplně první čidlo&lt;br /&gt;
 //&lt;br /&gt;
 WS = hodnota &amp;amp; 0x000000FF; &lt;br /&gt;
 DS = (hodnota &amp;amp; 0x0000FF00) &amp;gt;&amp;gt; 8;&lt;br /&gt;
 Lock = hodnota &amp;amp; 0x10000;&lt;br /&gt;
 //&lt;br /&gt;
 &lt;br /&gt;
 // příklady vyhodnocení&lt;br /&gt;
 if (5 == WS) printf(&amp;quot;výsledek převodu teploty je k dispozici\n&amp;quot;);&lt;br /&gt;
 if (3 == DS) printf(&amp;quot;zřejmě chyba na sběrnici, opravte si ji\n&amp;quot;);&lt;br /&gt;
 if (0 != Lock) printf(&amp;quot;čidlo je zamčeno\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Plný popis hodnot:&lt;br /&gt;
&lt;br /&gt;
'''Parametr WS''' (po ''extrakci - bitovém posunu'' na 0. bit) má tyto možné dekadické hodnoty:&lt;br /&gt;
* Teplotní čidla (DS18B20 a podobné)&lt;br /&gt;
** 0  = prvotní start (po zapnutí SDS, teprve se chystá něco dělat)&lt;br /&gt;
** 1  = spouští se převod teploty&lt;br /&gt;
** 2  = převod spušten (příkaz poslán přes 1-W sběrnici do 1-W zařízení), čeká se na dokončení měření a převodu teploty na digitální údaj&lt;br /&gt;
** 3  = porucha (nepovedlo se spustit převod)&lt;br /&gt;
** 4  = SDS se chystá přečíst výsledek (čtení dat přes 1-W sběrnici ze 1-W zařízení)&lt;br /&gt;
** 5  = výsledek měření a převodu teploty byl úspěšně přečten a je k dispozici&lt;br /&gt;
** 6  = chyba čtení výsledku, data nejsou k dispozici&lt;br /&gt;
** 15 = teploměrný chip nenalezen (na dané pozici na sběrnici)&lt;br /&gt;
&lt;br /&gt;
'''Parametr DS''' (po extrakci) má tyto možné dekadické hodnoty:&lt;br /&gt;
* 0  = nic (se neděje)&lt;br /&gt;
* 1  = SDS ví že by na dané pozici mělo být 1-W zařízení, ale ještě s ním nekomunikoval (toto je stav po zapnutí SDS)&lt;br /&gt;
* 2  = stala se generická, blíže neurčená chyba (podívejte se na hodnotu WS)&lt;br /&gt;
* 3  = stala se chyba CRC (neplatné data) při komunikaci na sběrnici (rušení, porucha kabeláže, chybné čidlo, nízké napájecí napětí, chybějící čidlo, atd.)&lt;br /&gt;
* 8  = SDS pracuje (tzn. sběrnice je aktivní, probíhá komunikace), sledujte hodnotu WS&lt;br /&gt;
* 10 = pouze pro Teploměrná Čidla: poslední pokus o komunikaci s teploměrným čidlem selhal&lt;br /&gt;
* 11 = pouze pro Teploměrná Čidla: poslední pokus o komunikaci s teploměrným čidlem byl úspěšný, hodnoty jsou k dispozici a jsou platné&lt;br /&gt;
&lt;br /&gt;
'''Parametr LOCKBIT''' - je buď nastaven (log1) nebo ne (log0) a jen informuje o konfiguraci dané pozice (zda-li uživatel danou pozici &amp;quot;uzamkl&amp;quot; tzn. nebude při 1-W Rescan akci přepsána).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Indexy 2200 až 2263 (respektive 2700 až 2763)''' vracejí aktuální živou hodnotu přečtenou ze zařízení - napŕ. teplotu z teplotního čidla. &lt;br /&gt;
&lt;br /&gt;
Tato hodnota je reprezentována jako &amp;quot;signed int&amp;quot; (32-bit se znaménkem), takže je často &amp;quot;upravena&amp;quot; tak, aby mohla (trikem) přenést desetinná čísla.&lt;br /&gt;
&lt;br /&gt;
Příklad: Teplotní čidlo změří teplotu -15.89 stupňů Celsia. Hodnota pak bude zapsána tak, že ji SDS nejprve vnitřně vynásobí 100, a až pak dá k dispozici FULL-C programu - takže pro tento příklad, hodnota bude -1589.&lt;br /&gt;
&lt;br /&gt;
Samozřejmě závisí na typu konkrétního připojeného 1-W zařízení na dané pozici - např. převod hodnoty násobení 100 aplikuje SDS jen u teplotních čidel (viz seznam výše). Vždy závisí na daném zařízení a firmware v SDS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Další dotazy ==&lt;br /&gt;
&lt;br /&gt;
Pokud je dále něco nejasné, napište to na naše Fórum.&lt;/div&gt;</summary>
		<author><name>Adamn</name></author>
	</entry>
</feed>