https://senzor.robotika.sk/sensorwiki/index.php?title=AP_Blok_3&feed=atom&action=history
AP Blok 3 - História úprav
2024-03-28T23:23:10Z
História úprav pre túto stránku na wiki
MediaWiki 1.29.0
https://senzor.robotika.sk/sensorwiki/index.php?title=AP_Blok_3&diff=12563&oldid=prev
Balogh: /* 3. 4. Prijmi znak */
2021-04-03T12:57:09Z
<p><span dir="auto"><span class="autocomment">3. 4. Prijmi znak</span></span></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='sk'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Staršia verzia</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Verzia zo dňa a času 12:57, 3. apríl 2021</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l214" >Riadok 214:</td>
<td colspan="2" class="diff-lineno">Riadok 214:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>           &Data,        // Pointer na buffer, kam ukladáme prijaté dáta</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>           &Data,        // Pointer na buffer, kam ukladáme prijaté dáta</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>           1,            // Počet bytov, na ktoré čakáme</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>           1,            // Počet bytov, na ktoré čakáme</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div><del class="diffchange diffchange-inline">          &d, </del>          <del class="diffchange diffchange-inline">// Pointer na skutočný počet prijatých dát</del></div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div>            </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>           &Pocet,        // Pointer na skutočný počet prijatých dát</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>           &Pocet,        // Pointer na skutočný počet prijatých dát</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>           NULL);        // Musí byť NULL</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>           NULL);        // Musí byť NULL</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l230" >Riadok 230:</td>
<td colspan="2" class="diff-lineno">Riadok 230:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>'''Úloha:''' Napíšte program, ktorý bude na čakať na zvolenom porte a stále dokola zobrazovať všetky prijaté znaky. Overte funkciu vysielaním v bežnom terminálovom programe, ako je napr. Hyperterminál, alebo Terminal.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>'''Úloha:''' Napíšte program, ktorý bude na čakať na zvolenom porte a stále dokola zobrazovať všetky prijaté znaky. Overte funkciu vysielaním v bežnom terminálovom programe, ako je napr. Hyperterminál, alebo Terminal.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div><del style="font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div><del style="font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>=== '''3. 5. Timeouty''' ===</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>=== '''3. 5. Timeouty''' ===</div></td></tr>
</table>
Balogh
https://senzor.robotika.sk/sensorwiki/index.php?title=AP_Blok_3&diff=12562&oldid=prev
Balogh: /* = */
2021-04-03T12:56:40Z
<p><span dir="auto"><span class="autocomment">=</span></span></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='sk'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Staršia verzia</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Verzia zo dňa a času 12:56, 3. apríl 2021</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l163" >Riadok 163:</td>
<td colspan="2" class="diff-lineno">Riadok 163:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>''Tip:'' Aby ste mohli meniť parametre, musíte port najprv otvoriť.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>''Tip:'' Aby ste mohli meniť parametre, musíte port najprv otvoriť.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div>===  </div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div>=== '''3.3 Vysielanie''' ===</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div>'''3.3 Vysielanie''' ===</div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div> </div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div>Zápis na port má na starosti funkcia <ins class="diffchange diffchange-inline"><code></ins>WriteFile<ins class="diffchange diffchange-inline"></code></ins>, pričom sa použijú aktuálne prenosové parametre. Funkcia uloží do premennej Pocet počet skutočne odvysielaných znakov, ktorý treba kontrolovať. V prípade zlyhania buď prenos zopakujeme, alebo skončíme s chybou.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div>Zápis na port má na starosti funkcia WriteFile, pričom sa použijú aktuálne prenosové parametre. Funkcia uloží do premennej Pocet počet skutočne odvysielaných znakov, ktorý treba kontrolovať. V prípade zlyhania buď prenos zopakujeme, alebo skončíme s chybou.</div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Nasledujúca ukážka samozrejme predpokladá, že port je otvorený a správne nakonfigurovaný.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Nasledujúca ukážka samozrejme predpokladá, že port je otvorený a správne nakonfigurovaný.</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l190" >Riadok 190:</td>
<td colspan="2" class="diff-lineno">Riadok 188:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div></source></div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div></source></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div><del style="font-weight: bold; text-decoration: none;">Úloha: Napíšte program, ktorý bude na zvolený port stále dokola vysielať znak 'A'. Overte funkciu prijímaním v bežnom terminálovom programe, ako je napr. Hyperterminál.</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div>Tip: <del class="diffchange diffchange-inline">Lepšie ako hyperterminál je </del>napr. <del class="diffchange diffchange-inline">toto: </del>Terminal by Bray++, neinštaluje sa, len spustí.</div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline">'''Úloha:''' Napíšte program, ktorý bude na zvolený port stále dokola vysielať znak 'A'. Overte funkciu prijímaním v bežnom terminálovom programe.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; 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;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; 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;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline">''</ins>Tip:<ins class="diffchange diffchange-inline">'' Použite </ins>napr. Terminal by Bray++, neinštaluje sa, len spustí.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l199" >Riadok 199:</td>
<td colspan="2" class="diff-lineno">Riadok 199:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div>Prijímanie znakov zabezpečí funkcia ReadFile, ktorá načítaný znak uloží do buffera Data (v našom príklade 1 byte). Zároveň vráti aj počet prijatých bytov. Táto funkcia čaká, až kým nejaký znak nepríde. Takže ak nepríde nič, program "zamrzne". Tomu sa dá vyhnúť použitím timeoutov, ktoré uvedieme ďalej.</div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div>Prijímanie znakov zabezpečí funkcia <ins class="diffchange diffchange-inline"><code></ins>ReadFile<ins class="diffchange diffchange-inline"></code></ins>, ktorá načítaný znak uloží do buffera <ins class="diffchange diffchange-inline"><code></ins>Data<ins class="diffchange diffchange-inline"></code> </ins>(v našom príklade 1 byte). Zároveň vráti aj počet prijatých bytov. Táto funkcia čaká, až kým nejaký znak nepríde. Takže ak nepríde nič, program "zamrzne". Tomu sa dá vyhnúť použitím timeoutov, ktoré uvedieme ďalej.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div>V nasledujúcej ukážke sme navyše vyčistili prijímací a vysielací zásobník (buffer) funkciou PurgeComm.</div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div>V nasledujúcej ukážke sme navyše vyčistili prijímací a vysielací zásobník (buffer) funkciou <ins class="diffchange diffchange-inline"><code></ins>PurgeComm<ins class="diffchange diffchange-inline"></code></ins>.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l228" >Riadok 228:</td>
<td colspan="2" class="diff-lineno">Riadok 228:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div></source></div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div></source></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div>Úloha: Napíšte program, ktorý bude na čakať na zvolenom porte a stále dokola zobrazovať všetky prijaté znaky. Overte funkciu vysielaním v bežnom terminálovom programe, ako je napr. Hyperterminál, alebo Terminal.</div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline">'''</ins>Úloha:<ins class="diffchange diffchange-inline">''' </ins>Napíšte program, ktorý bude na čakať na zvolenom porte a stále dokola zobrazovať všetky prijaté znaky. Overte funkciu vysielaním v bežnom terminálovom programe, ako je napr. Hyperterminál, alebo Terminal.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div>=== '''3. 5. Timeouty'''</div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div>=== '''3. 5. Timeouty''' ===</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div><del class="diffchange diffchange-inline"> </del>===</div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div>Aby funkcia ReadFile nezostala čakajúca na znak, používajú sa tzv. timeouty, maximálne časy, ktoré má daná funkcia trvať. Konkrétne hodnoty sú uložené v štruktúre COMMTIMEOUTS, ktorá má tieto prvky:</div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div>Aby funkcia <ins class="diffchange diffchange-inline"><code></ins>ReadFile<ins class="diffchange diffchange-inline"></code> </ins>nezostala čakajúca na znak, používajú sa tzv. timeouty, maximálne časy, ktoré má daná funkcia trvať. Konkrétne hodnoty sú uložené v štruktúre <ins class="diffchange diffchange-inline"><code></ins>COMMTIMEOUTS<ins class="diffchange diffchange-inline"></code></ins>, ktorá má tieto prvky:</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>   ReadIntervalTimeout        =  20;  Max. doba v [ms] medzi dvoma príchodzími znakmi</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>   ReadIntervalTimeout        =  20;  Max. doba v [ms] medzi dvoma príchodzími znakmi</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l251" >Riadok 251:</td>
<td colspan="2" class="diff-lineno">Riadok 251:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>                                       sa ešte pripočíta táto hodnota v [ms].</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>                                       sa ešte pripočíta táto hodnota v [ms].</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div>Ak je hodnota niektorého parametra 0, potom sa daný timeout nevyhodnotí. Ako vidno, máme vlastne dve hodnoty timeoutu. Prvá je IntervalTimeout, druhá je (TotalTimeoutConstant + TotalTimeoutMultiplier * Počet bytov) - aplikuje sa vždz tá hodnota, ktorá nastane skôr.</div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div>Ak je hodnota niektorého parametra 0, potom sa daný timeout nevyhodnotí. Ako vidno, máme vlastne dve hodnoty timeoutu. Prvá je <ins class="diffchange diffchange-inline"><code></ins>IntervalTimeout<ins class="diffchange diffchange-inline"></code></ins>, druhá je <ins class="diffchange diffchange-inline"><code></ins>(TotalTimeoutConstant + TotalTimeoutMultiplier * Počet bytov)<ins class="diffchange diffchange-inline"></code> </ins>- aplikuje sa vždz tá hodnota, ktorá nastane skôr.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div>Po naplnení štruktúry vhodnými hodnotami sa ešte musia stať platnými pre daný komunikačný port, čo urobíme funkciou SetCommTimeouts.</div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div>Po naplnení štruktúry vhodnými hodnotami sa ešte musia stať platnými pre daný komunikačný port, čo urobíme funkciou <ins class="diffchange diffchange-inline"><code></ins>SetCommTimeouts<ins class="diffchange diffchange-inline"></code></ins>.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div><source lang="c++" style="background: LightYellow;"></div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div><source lang="c++" style="background: LightYellow;"></div></td></tr>
</table>
Balogh
https://senzor.robotika.sk/sensorwiki/index.php?title=AP_Blok_3&diff=12560&oldid=prev
Balogh: /* 3.2 Komunikačné parametre. */
2021-04-03T12:53:37Z
<p><span dir="auto"><span class="autocomment">3.2 Komunikačné parametre.</span></span></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='sk'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Staršia verzia</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Verzia zo dňa a času 12:53, 3. apríl 2021</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l121" >Riadok 121:</td>
<td colspan="2" class="diff-lineno">Riadok 121:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div><div style='text-align: center;'></div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div><div style='text-align: center;'></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div>[[Súbor:AP_SerialSignal1.<del class="diffchange diffchange-inline">png</del>|500px]]<BR></div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div>[[Súbor:AP_SerialSignal1.<ins class="diffchange diffchange-inline">gif</ins>|500px]]<BR></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>[[Súbor:AP_SerialSignal2.jpg|500px]]<BR></div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>[[Súbor:AP_SerialSignal2.jpg|500px]]<BR></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>''Teoretický a nameraný priebeh signálov pri prenose znaku 'U'.''</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>''Teoretický a nameraný priebeh signálov pri prenose znaku 'U'.''</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l132" >Riadok 132:</td>
<td colspan="2" class="diff-lineno">Riadok 132:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Uvedený príkaz nastaví port COM1 na rýchlosť 9600 Baudov, bude sa prenášať vždy 8 bitov ukončených 1 stopbitom a nezabezpečené paritou.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Uvedený príkaz nastaví port COM1 na rýchlosť 9600 Baudov, bude sa prenášať vždy 8 bitov ukončených 1 stopbitom a nezabezpečené paritou.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div>Samozrejme, že parametre je možné (a vhodné) meniť aj priamo z vášho programu v jazyku C. Parametre sú uložené v štruktúre typu DCB, ktorej jednotlivé položky zodpovedajú jednotlivým parametrom komunikácie. Pomocou funkcie GetCommState naplníme štruktúru aktuálnymi parametrami, funkciou SetCommState zasa nastavíme komunikačné parametre podľa zodpovedajúcich položiek štruktúry. Samotný zápis do štruktúry DCB nikde nič nezmení.</div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div>Samozrejme, že parametre je možné (a vhodné) meniť aj priamo z vášho programu v jazyku C. Parametre sú uložené v štruktúre typu DCB, ktorej jednotlivé položky zodpovedajú jednotlivým parametrom komunikácie. Pomocou funkcie <ins class="diffchange diffchange-inline"><code></ins>GetCommState<ins class="diffchange diffchange-inline"></code> </ins>naplníme štruktúru aktuálnymi parametrami, funkciou <ins class="diffchange diffchange-inline"><code></ins>SetCommState<ins class="diffchange diffchange-inline"></code> </ins>zasa nastavíme komunikačné parametre podľa zodpovedajúcich položiek štruktúry. Samotný zápis do štruktúry DCB nikde nič nezmení.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>   </div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>   </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div><source lang="c++" style="background: LightYellow;"></div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div><source lang="c++" style="background: LightYellow;"></div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l154" >Riadok 154:</td>
<td colspan="2" class="diff-lineno">Riadok 154:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div></source></div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div></source></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div><del style="font-weight: bold; text-decoration: none;">Úloha: Preštudujte si na stránkach MSDN ako je vytvorená štruktúra "databázy" DCB (Structure Members) s parametrami sériového komunikačného rozhrania. Napíšte program (funkciu), ktorá vypíše obsah jednotlivých členov štruktúry. Nemusíte vypisovať všetko, stačí tie parametre, ktoré sme uviedli vyššie (rýchlosť, parita, počet bitov a stop bitov).</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div><del class="diffchange diffchange-inline">Tip</del>: <del class="diffchange diffchange-inline">Výpis položiek urobte </del>ako funkciu, <del class="diffchange diffchange-inline">zíde sa vám v ďalšej úlohe</del>.</div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline">'''Úloha</ins>:<ins class="diffchange diffchange-inline">''' Preštudujte si na stránkach MSDN </ins>ako <ins class="diffchange diffchange-inline">je vytvorená štruktúra "databázy" DCB (Structure Members) s parametrami sériového komunikačného rozhrania. Napíšte program (</ins>funkciu<ins class="diffchange diffchange-inline">)</ins>, <ins class="diffchange diffchange-inline">ktorá vypíše obsah jednotlivých členov štruktúry. Nemusíte vypisovať všetko, stačí tie parametre, ktoré sme uviedli vyššie (rýchlosť, parita, počet bitov a stop bitov)</ins>.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div><del class="diffchange diffchange-inline">Úloha</del>: <del class="diffchange diffchange-inline">Napíšte program</del>, <del class="diffchange diffchange-inline">ktory zmení komunikačné parametre vybraného portu (COM1,COM2) na 9600,n,8,1. Dokumentujte výpisom DCB (viď predošlá úloha)</del>.</div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline">''Tip</ins>:<ins class="diffchange diffchange-inline">'' Výpis položiek urobte ako funkciu</ins>, <ins class="diffchange diffchange-inline">zíde sa vám v ďalšej úlohe</ins>.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div>Tip: Aby ste mohli meniť parametre, musíte port najprv otvoriť.</div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline">'''Úloha:''' Napíšte program, ktory zmení komunikačné parametre vybraného portu (COM1,COM2) na 9600,n,8,1. Dokumentujte výpisom DCB (viď predošlá úloha).</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; 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;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline">''</ins>Tip:<ins class="diffchange diffchange-inline">'' </ins>Aby ste mohli meniť parametre, musíte port najprv otvoriť.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>===  </div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>===  </div></td></tr>
</table>
Balogh
https://senzor.robotika.sk/sensorwiki/index.php?title=AP_Blok_3&diff=12558&oldid=prev
Balogh: /* 3.2 Komunikačné parametre. */
2021-04-03T12:51:21Z
<p><span dir="auto"><span class="autocomment">3.2 Komunikačné parametre.</span></span></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='sk'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Staršia verzia</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Verzia zo dňa a času 12:51, 3. apríl 2021</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l99" >Riadok 99:</td>
<td colspan="2" class="diff-lineno">Riadok 99:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Dostanete výstup podobný tomu na obrázku, zobrazia sa najdôležitejšie komunikačné parametre:</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Dostanete výstup podobný tomu na obrázku, zobrazia sa najdôležitejšie komunikačné parametre:</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div><del class="diffchange diffchange-inline"> mode COM</del></div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline">[[Súbor:AP_modeCOM.png|center]]</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Význam parametrov je nasledovný:</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Význam parametrov je nasledovný:</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div>Baud:</div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div> </div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div><del class="diffchange diffchange-inline">    </del>prenosová rýchlosť - z nej vyplýva dĺžka trvania jedného bitu. Aj keď teoreticky môže byť rýchlosť ľubovoľná, podľa medzinárodných noriem sa používajú len niektoré typizované rýchlosti (600, 1200, 2400, 4800, 9600, 19 200 Bd). Udáva sa rýchlosť v Bd (Baud), čo je bit za sekundu.  </div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline">; </ins>Baud : prenosová rýchlosť - z nej vyplýva dĺžka trvania jedného bitu. Aj keď teoreticky môže byť rýchlosť ľubovoľná, podľa medzinárodných noriem sa používajú len niektoré typizované rýchlosti (600, 1200, 2400, 4800, 9600, 19 200 Bd). Udáva sa rýchlosť v Bd (Baud), čo je bit za sekundu.  </div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div>Parity:</div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline">; </ins>Parity:</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div><del class="diffchange diffchange-inline">    </del>pre zvýšenie spoľahlivosti prenosu môžu byť údaje zabezpečené paritným bitom, ktorý je doplnený za prenášané bity tak, aby celkový počet jednotiek bol párny (parity even), alebo nepárny (parity odd). Prijímateľ správy si ľahko môže overiť, či pri prenose nedošlo k chybe. Neošetrí sa tým veľa chýb, ale je to často lepšie ako nič. V príklade na obrázku sa zabezpečenie prenosu paritou nepoužíva.  </div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline">:    </ins>pre zvýšenie spoľahlivosti prenosu môžu byť údaje zabezpečené paritným bitom, ktorý je doplnený za prenášané bity tak, aby celkový počet jednotiek bol párny (parity even), alebo nepárny (parity odd). Prijímateľ správy si ľahko môže overiť, či pri prenose nedošlo k chybe. Neošetrí sa tým veľa chýb, ale je to často lepšie ako nič. V príklade na obrázku sa zabezpečenie prenosu paritou nepoužíva.  </div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div>Data Bits:</div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline">;</ins>Data Bits:</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div><del class="diffchange diffchange-inline">    </del>Počet prenášaných bitov. Napriek tomu, že sa zdá zrejmé, že to bude 8, nemusí to tak byť a bežne sa používa aj 7 (ak nám stačí prenášať len čistý ASCII text) a niekedy aj 9.  </div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline">:    </ins>Počet prenášaných bitov. Napriek tomu, že sa zdá zrejmé, že to bude 8, nemusí to tak byť a bežne sa používa aj 7 (ak nám stačí prenášať len čistý ASCII text) a niekedy aj 9.  </div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div>Stop Bits:</div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline">;</ins>Stop Bits:</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div><del class="diffchange diffchange-inline">    </del>Počet stop bitov. Stop bit býva najčastejšie len jeden, ale pri problémoch so synchronizáciou sa používajú aj dva, niekedy jeden a pol.  </div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline">:    </ins>Počet stop bitov. Stop bit býva najčastejšie len jeden, ale pri problémoch so synchronizáciou sa používajú aj dva, niekedy jeden a pol.  </div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div>Timeouts:</div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline">;</ins>Timeouts:</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div><del class="diffchange diffchange-inline">    </del>Uvádza, či je použité sledovanie timeoutov. V našom prípade áno.  </div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline">:    </ins>Uvádza, či je použité sledovanie timeoutov. V našom prípade áno.  </div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div>CTS, DTR, RTS, ...</div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline">;</ins>CTS, DTR, RTS, ...</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div><del class="diffchange diffchange-inline">    </del>Ostatné parametre uvádzajú stav a parametre pre handshaking - potvrdzovanie pre zvýšenie spoľahlivosti prenosu. Nebudeme používať.  </div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline">:    </ins>Ostatné parametre uvádzajú stav a parametre pre handshaking - potvrdzovanie pre zvýšenie spoľahlivosti prenosu. Nebudeme používať.  </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; 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;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; 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;"><div> </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Význam jednotlivých parametrov je aj na nasledujúcom obrázku. Pripomíname, že podľa RS-232 je log. 0 (space) +5 až +15 V, log. 1 (mark) -5 až -15 V. Ak sa na linke nič nedeje (idle) je v stave log. 1, štart bit je vždy log. 0 (space) a stop bit naopak log. 1 (mark). Na obrázku je ako príklad uvedené vysielanie znaku 'U' (85, 0x55, 0101 01012). Všimnite si, že pri prenose protokolom RS-232 sa prenáša najnižší bit (LSB) ako prvý. Pri bežnom vysielaní údajov cez RS-232 po doplnení štart- a stop-bitu vyzerá signál takto:</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Význam jednotlivých parametrov je aj na nasledujúcom obrázku. Pripomíname, že podľa RS-232 je log. 0 (space) +5 až +15 V, log. 1 (mark) -5 až -15 V. Ak sa na linke nič nedeje (idle) je v stave log. 1, štart bit je vždy log. 0 (space) a stop bit naopak log. 1 (mark). Na obrázku je ako príklad uvedené vysielanie znaku 'U' (85, 0x55, 0101 01012). Všimnite si, že pri prenose protokolom RS-232 sa prenáša najnižší bit (LSB) ako prvý. Pri bežnom vysielaní údajov cez RS-232 po doplnení štart- a stop-bitu vyzerá signál takto:</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div><del class="diffchange diffchange-inline">signals Click to enlarge</del></div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline"><div style='text-align: center;'></ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div><del class="diffchange diffchange-inline">Obr</del>. Teoretický a nameraný priebeh signálov pri prenose znaku 'U'.</div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline">[[Súbor:AP_SerialSignal1</ins>.<ins class="diffchange diffchange-inline">png|500px]]<BR></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline">[[Súbor:AP_SerialSignal2.jpg|500px]]<BR></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline">''</ins>Teoretický a nameraný priebeh signálov pri prenose znaku 'U'.<ins class="diffchange diffchange-inline">''</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline"></div></ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Horeuvedené parametre môžete zmeniť napríklad už spomenutým príkazom mode v konzolovom okne:</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Horeuvedené parametre môžete zmeniť napríklad už spomenutým príkazom mode v konzolovom okne:</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l128" >Riadok 128:</td>
<td colspan="2" class="diff-lineno">Riadok 133:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Samozrejme, že parametre je možné (a vhodné) meniť aj priamo z vášho programu v jazyku C. Parametre sú uložené v štruktúre typu DCB, ktorej jednotlivé položky zodpovedajú jednotlivým parametrom komunikácie. Pomocou funkcie GetCommState naplníme štruktúru aktuálnymi parametrami, funkciou SetCommState zasa nastavíme komunikačné parametre podľa zodpovedajúcich položiek štruktúry. Samotný zápis do štruktúry DCB nikde nič nezmení.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Samozrejme, že parametre je možné (a vhodné) meniť aj priamo z vášho programu v jazyku C. Parametre sú uložené v štruktúre typu DCB, ktorej jednotlivé položky zodpovedajú jednotlivým parametrom komunikácie. Pomocou funkcie GetCommState naplníme štruktúru aktuálnymi parametrami, funkciou SetCommState zasa nastavíme komunikačné parametre podľa zodpovedajúcich položiek štruktúry. Samotný zápis do štruktúry DCB nikde nič nezmení.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div><del style="font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>   </div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>   </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div><source lang="c++" style="background: LightYellow;"></div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div><source lang="c++" style="background: LightYellow;"></div></td></tr>
</table>
Balogh
https://senzor.robotika.sk/sensorwiki/index.php?title=AP_Blok_3&diff=12556&oldid=prev
Balogh: /* 3.1 Otvorenie portu */
2021-04-03T12:46:52Z
<p><span dir="auto"><span class="autocomment">3.1 Otvorenie portu</span></span></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='sk'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Staršia verzia</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Verzia zo dňa a času 12:46, 3. apríl 2021</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l68" >Riadok 68:</td>
<td colspan="2" class="diff-lineno">Riadok 68:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div>Otvorenie portu má na starosti funkcia CreateFile, pričom sa tvárime, že náš port COM1: je existujúci súbor, do ktorého ideme normálne zapisovať, prípadne z neho aj čítať.</div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div>Otvorenie portu má na starosti funkcia <ins class="diffchange diffchange-inline"><code></ins>CreateFile<ins class="diffchange diffchange-inline"></code></ins>, pričom sa tvárime, že náš port COM1: je existujúci súbor, do ktorého ideme normálne zapisovať, prípadne z neho aj čítať.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div><source lang="c++" style="background: LightYellow;"></div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div><source lang="c++" style="background: LightYellow;"></div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l89" >Riadok 89:</td>
<td colspan="2" class="diff-lineno">Riadok 89:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>     printf("\n OK, port je uspesne otvoreny.\n");</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>     printf("\n OK, port je uspesne otvoreny.\n");</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div></source></div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div></source></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div><del style="font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>=== '''3.2 Komunikačné parametre.''' ===</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>=== '''3.2 Komunikačné parametre.''' ===</div></td></tr>
</table>
Balogh
https://senzor.robotika.sk/sensorwiki/index.php?title=AP_Blok_3&diff=12555&oldid=prev
Balogh na 12:46, 3. apríl 2021
2021-04-03T12:46:06Z
<p></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='sk'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Staršia verzia</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Verzia zo dňa a času 12:46, 3. apríl 2021</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1" >Riadok 1:</td>
<td colspan="2" class="diff-lineno">Riadok 1:</td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins style="font-weight: bold; text-decoration: none;">__NOTOC__</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>== '''Tretí blok cvičení: Sériové komunikačné rozhranie''' ==</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>== '''Tretí blok cvičení: Sériové komunikačné rozhranie''' ==</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l13" >Riadok 13:</td>
<td colspan="2" class="diff-lineno">Riadok 14:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Pozn: Dnes, 24. apríla 2006 by už mali byť všetky počítače prepojené.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Pozn: Dnes, 24. apríla 2006 by už mali byť všetky počítače prepojené.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div><del style="font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l49" >Riadok 49:</td>
<td colspan="2" class="diff-lineno">Riadok 49:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Úplný popis toho, ako sa programuje sériová linka pod Win32 nájdete na stránkach MSDN Microsoftu:</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Úplný popis toho, ako sa programuje sériová linka pod Win32 nájdete na stránkach MSDN Microsoftu:</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div><del class="diffchange diffchange-inline">    </del>Allen Denver: Serial Communications in Win32, Microsoft Windows Developer Support, 1995.</div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline">* </ins>Allen Denver: <ins class="diffchange diffchange-inline">[http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnfiles/html/msdn_serial.asp </ins>Serial Communications in Win32<ins class="diffchange diffchange-inline">]</ins>, Microsoft Windows Developer Support, 1995.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div><del class="diffchange diffchange-inline">    </del>Norbert Környi: Sériová komunikácia. Výňatok z diplomovej práce FEI STU v Bratislave, 2006.  </div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline">* </ins>Norbert Környi: <ins class="diffchange diffchange-inline">[http://senzor.robotika.sk/ap/texty/serialcomm.html </ins>Sériová komunikácia<ins class="diffchange diffchange-inline">]</ins>. Výňatok z diplomovej práce FEI STU v Bratislave, 2006.  </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Pre záujemcov o hlbšie štúdium možno odporučiť aj knihu</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Pre záujemcov o hlbšie štúdium možno odporučiť aj knihu</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div><del class="diffchange diffchange-inline">    </del>Václav Vacek: Sériová komunikace ve Win32. Nakladatelství BEN, Praha, 2003.  </div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline">* </ins>Václav Vacek: Sériová komunikace ve Win32. Nakladatelství BEN, Praha, 2003.  </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Vo všeobecnosti možno povedať, že Win API poskytuje prístup k sériovému komunikačnému rozhraniu na podobnom princípe ako k súborom a ďalším sekvenčným zariadeniam. Základný postup je takýto:</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Vo všeobecnosti možno povedať, že Win API poskytuje prístup k sériovému komunikačnému rozhraniu na podobnom princípe ako k súborom a ďalším sekvenčným zariadeniam. Základný postup je takýto:</div></td></tr>
</table>
Balogh
https://senzor.robotika.sk/sensorwiki/index.php?title=AP_Blok_3&diff=12554&oldid=prev
Balogh na 12:44, 3. apríl 2021
2021-04-03T12:44:24Z
<p></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='sk'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Staršia verzia</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Verzia zo dňa a času 12:44, 3. apríl 2021</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l9" >Riadok 9:</td>
<td colspan="2" class="diff-lineno">Riadok 9:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div>Už onedlho budete mať vďaka pochopeniu pracovníkov VS prepojené vždy dva susedné počítače cez sériovú linku, vždy na porte COM1. Prepojenie je realizované káblom typu tzv. null-modem.</div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div>Už onedlho budete mať vďaka pochopeniu pracovníkov VS prepojené vždy dva susedné počítače cez sériovú linku, vždy na porte COM1. Prepojenie je realizované káblom typu tzv. <ins class="diffchange diffchange-inline">''</ins>null-modem<ins class="diffchange diffchange-inline">''</ins>.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l21" >Riadok 21:</td>
<td colspan="2" class="diff-lineno">Riadok 21:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Teóriu a popis sériového komunikačného rozhrania nájdete napr. tuto:</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Teóriu a popis sériového komunikačného rozhrania nájdete napr. tuto:</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div><del class="diffchange diffchange-inline">    </del>Veľmi stručný úvod</div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline">* [http://senzor.robotika.sk/ap/texty/rs232.php </ins>Veľmi stručný úvod<ins class="diffchange diffchange-inline">]</ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div><del class="diffchange diffchange-inline">    </del>Popis RS-232 na serveri HW.cz</div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline">* [http://rs232.hw.cz/ </ins>Popis RS-232 na serveri HW.cz<ins class="diffchange diffchange-inline">]</ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div><del class="diffchange diffchange-inline">    </del>Decription of the RS-232 <del class="diffchange diffchange-inline">[</del>www.lookrs232.com<del class="diffchange diffchange-inline">]</del></div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline">* [http://www.lookrs232.com/ </ins>Decription of the RS-232<ins class="diffchange diffchange-inline">] (</ins>www.lookrs232.com<ins class="diffchange diffchange-inline">)</ins></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div><del class="diffchange diffchange-inline">    </del>Václav Vacek: Sériová komunikace ve Win32. Nakladatelství BEN, Praha, 2003. <del class="diffchange diffchange-inline">[</del>kniha<del class="diffchange diffchange-inline">] </del></div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline">* </ins>Václav Vacek: Sériová komunikace ve Win32. Nakladatelství BEN, Praha, 2003. <ins class="diffchange diffchange-inline">(</ins>kniha<ins class="diffchange diffchange-inline">)</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div>Na testovanie a prvé pokusy sa vám určite zíde aj nejaký terminálový program, <del class="diffchange diffchange-inline">masochisti môžu použiť aj Hyperterminál z Windows.</del></div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div>Na testovanie a prvé pokusy sa vám určite zíde aj nejaký terminálový program, <ins class="diffchange diffchange-inline">napríklad tento</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div><del class="diffchange diffchange-inline">    </del>Terminal by Bray++, neinštaluje sa, len spustí.</div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline">* [http://braypp.googlepages.com/terminal </ins>Terminal by Bray++<ins class="diffchange diffchange-inline">]</ins>, neinštaluje sa, len spustí.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div><del class="diffchange diffchange-inline">    </del>Terminal -- lokálna kópia  </div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline">* [http://senzor.robotika.sk/ap/sources/Terminal.exe </ins>Terminal<ins class="diffchange diffchange-inline">] </ins>-- lokálna kópia  </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Tí, čo chcú pracovať doma, si môžu prepojiť dva porty káblom typu null-modem (prekrížený), alebo dokonca len na jednom porte prepojiť piny RxD a TxD. Ešte jednoduchšia alternatíva je nainštalovať tzv. virtuálny sériový port, resp. pár takýchto portov, ktoré sa prepoja tiež virtuálnym null-modem káblom. Tým v počítači vzniknú dva nové porty, s ktorými pracujete ako s klasickými.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Tí, čo chcú pracovať doma, si môžu prepojiť dva porty káblom typu null-modem (prekrížený), alebo dokonca len na jednom porte prepojiť piny RxD a TxD. Ešte jednoduchšia alternatíva je nainštalovať tzv. virtuálny sériový port, resp. pár takýchto portov, ktoré sa prepoja tiež virtuálnym null-modem káblom. Tým v počítači vzniknú dva nové porty, s ktorými pracujete ako s klasickými.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div><del class="diffchange diffchange-inline">    </del>VSP by Constellations - Funkč né demo, otravuje registráciou</div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline">* [http://www.virtualperipherals.com/Virtual-Serial-Port/Virtual-Serial-Port-Virtual-To-Virtual.asp </ins>VSP by Constellations<ins class="diffchange diffchange-inline">] </ins>- Funkč né demo, otravuje registráciou</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div><del class="diffchange diffchange-inline">    </del>Advanced Virtual COM Port - 15 days trial</div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline">* [http://www.advancedvirtualcomport.com/ </ins>Advanced Virtual COM Port<ins class="diffchange diffchange-inline">] </ins>- 15 days trial</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div><del class="diffchange diffchange-inline">    </del>Virtual Serial Port Kit - 15 days trial,</div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline">* [http://www.virtual-serial-port.com/ </ins>Virtual Serial Port Kit<ins class="diffchange diffchange-inline">] </ins>- 15 days trial,</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div><del class="diffchange diffchange-inline">    </del>HW Virtual Serial Port - český, Freeware, treba spustiť 2x</div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline">* [http://www.hw-group.com/products/hw_vsp/index_cz.html </ins>HW Virtual Serial Port<ins class="diffchange diffchange-inline">] </ins>- český, Freeware, treba spustiť 2x</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div><del class="diffchange diffchange-inline">    </del>Null-modem emulator (com0com) - Freeware, GPL</div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline">* [http://com0com.sourceforge.net/ </ins>Null-modem emulator (com0com)<ins class="diffchange diffchange-inline">] </ins>- Freeware, GPL</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div><del class="diffchange diffchange-inline">    </del>N8VB_vCOM Virtual Null Modem Cable - Open Source  </div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline">* [http://developer.berlios.de/projects/n8vbvcomdriver/ </ins>N8VB_vCOM Virtual Null Modem Cable<ins class="diffchange diffchange-inline">] </ins>- Open Source  </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Toto riešenie sa ale nedá použiť v CPU, pretože nemáte dostatočné oprávnenia na inštaláciu.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Toto riešenie sa ale nedá použiť v CPU, pretože nemáte dostatočné oprávnenia na inštaláciu.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div>A pre tých, ktorí by potrebovali podrobnejšie preskúmať, ako porty fungujú, alebo nefungujú, odporúčame použiť monitor všetkej komunikácie PortMon. Oceníte hlavne vtedy, keď niečo nefunguje, alebo pri ladení zložitejších protokolov.</div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div>A pre tých, ktorí by potrebovali podrobnejšie preskúmať, ako porty fungujú, alebo nefungujú, odporúčame použiť monitor všetkej komunikácie <ins class="diffchange diffchange-inline">[http://technet.microsoft.com/en-us/sysinternals/bb896644.aspx </ins>PortMon<ins class="diffchange diffchange-inline">]</ins>. Oceníte hlavne vtedy, keď niečo nefunguje, alebo pri ladení zložitejších protokolov.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div>Programovanie</div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; 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;"><div> </div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; 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;"><div><ins class="diffchange diffchange-inline">== '''</ins>Programovanie<ins class="diffchange diffchange-inline">''' ==</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; 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;"><div> </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Úplný popis toho, ako sa programuje sériová linka pod Win32 nájdete na stránkach MSDN Microsoftu:</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Úplný popis toho, ako sa programuje sériová linka pod Win32 nájdete na stránkach MSDN Microsoftu:</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
</table>
Balogh
https://senzor.robotika.sk/sensorwiki/index.php?title=AP_Blok_3&diff=12552&oldid=prev
Balogh na 12:39, 3. apríl 2021
2021-04-03T12:39:25Z
<p></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='sk'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Staršia verzia</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Verzia zo dňa a času 12:39, 3. apríl 2021</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1" >Riadok 1:</td>
<td colspan="2" class="diff-lineno">Riadok 1:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>== '''Tretí blok cvičení: Sériové komunikačné rozhranie''' ==</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>== '''Tretí blok cvičení: Sériové komunikačné rozhranie''' ==</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div>[[Súbor:<del class="diffchange diffchange-inline">AP_FunPicture</del>|right]]</div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div>[[Súbor:<ins class="diffchange diffchange-inline">AP_Komunikacia_FunPicture.gif</ins>|right]]</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Poslednú tretinu semestra budeme komunikovať. To preto, lebo komunikácia je neoddeliteľnou súčasťou súčasných počítačov. A aj preto, lebo doteraz sme riešili jednoduché, niekoľkoriadkové programy. Teraz je čas na rozsiahlejší projekt, v ktorom sa naučíte niečo nové ale aj využijete mnoho z predošlých zadaní.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Poslednú tretinu semestra budeme komunikovať. To preto, lebo komunikácia je neoddeliteľnou súčasťou súčasných počítačov. A aj preto, lebo doteraz sme riešili jednoduché, niekoľkoriadkové programy. Teraz je čas na rozsiahlejší projekt, v ktorom sa naučíte niečo nové ale aj využijete mnoho z predošlých zadaní.</div></td></tr>
</table>
Balogh
https://senzor.robotika.sk/sensorwiki/index.php?title=AP_Blok_3&diff=12551&oldid=prev
Balogh: Vytvorená stránka „== '''Tretí blok cvičení: Sériové komunikačné rozhranie''' == right Poslednú tretinu semestra budeme komunikovať. To preto, lebo komu…“
2021-04-03T12:30:51Z
<p>Vytvorená stránka „== '''Tretí blok cvičení: Sériové komunikačné rozhranie''' == <a href="/sensorwiki/index.php?title=S%C3%BAbor:AP_FunPicture&action=edit&redlink=1" class="new" title="Súbor:AP FunPicture (stránka neexistuje)">right</a> Poslednú tretinu semestra budeme komunikovať. To preto, lebo komu…“</p>
<p><b>Nová stránka</b></p><div>== '''Tretí blok cvičení: Sériové komunikačné rozhranie''' ==<br />
<br />
[[Súbor:AP_FunPicture|right]]<br />
<br />
Poslednú tretinu semestra budeme komunikovať. To preto, lebo komunikácia je neoddeliteľnou súčasťou súčasných počítačov. A aj preto, lebo doteraz sme riešili jednoduché, niekoľkoriadkové programy. Teraz je čas na rozsiahlejší projekt, v ktorom sa naučíte niečo nové ale aj využijete mnoho z predošlých zadaní.<br />
<br />
<br />
Tento blok úloh na seba nadväzuje, takže výsledok jednej budete potrebovať v nasledujúcej. Preto odpúčame riešiť ich postupne. Na konci vášho snaženia by mal byť jednoduchý program ("talker"), ktorým si budete môcť písať s kamarátom (frajerkou) pri susednom počítači.<br />
<br />
<br />
Už onedlho budete mať vďaka pochopeniu pracovníkov VS prepojené vždy dva susedné počítače cez sériovú linku, vždy na porte COM1. Prepojenie je realizované káblom typu tzv. null-modem.<br />
<br />
<br />
Pozn: Dnes, 24. apríla 2006 by už mali byť všetky počítače prepojené.<br />
<br />
<br />
<br />
=== Literatúra ===<br />
<br />
<br />
Teóriu a popis sériového komunikačného rozhrania nájdete napr. tuto:<br />
<br />
Veľmi stručný úvod<br />
Popis RS-232 na serveri HW.cz<br />
Decription of the RS-232 [www.lookrs232.com]<br />
Václav Vacek: Sériová komunikace ve Win32. Nakladatelství BEN, Praha, 2003. [kniha] <br />
<br />
Na testovanie a prvé pokusy sa vám určite zíde aj nejaký terminálový program, masochisti môžu použiť aj Hyperterminál z Windows.<br />
<br />
Terminal by Bray++, neinštaluje sa, len spustí.<br />
Terminal -- lokálna kópia <br />
<br />
Tí, čo chcú pracovať doma, si môžu prepojiť dva porty káblom typu null-modem (prekrížený), alebo dokonca len na jednom porte prepojiť piny RxD a TxD. Ešte jednoduchšia alternatíva je nainštalovať tzv. virtuálny sériový port, resp. pár takýchto portov, ktoré sa prepoja tiež virtuálnym null-modem káblom. Tým v počítači vzniknú dva nové porty, s ktorými pracujete ako s klasickými.<br />
<br />
VSP by Constellations - Funkč né demo, otravuje registráciou<br />
Advanced Virtual COM Port - 15 days trial<br />
Virtual Serial Port Kit - 15 days trial,<br />
HW Virtual Serial Port - český, Freeware, treba spustiť 2x<br />
Null-modem emulator (com0com) - Freeware, GPL<br />
N8VB_vCOM Virtual Null Modem Cable - Open Source <br />
<br />
Toto riešenie sa ale nedá použiť v CPU, pretože nemáte dostatočné oprávnenia na inštaláciu.<br />
<br />
A pre tých, ktorí by potrebovali podrobnejšie preskúmať, ako porty fungujú, alebo nefungujú, odporúčame použiť monitor všetkej komunikácie PortMon. Oceníte hlavne vtedy, keď niečo nefunguje, alebo pri ladení zložitejších protokolov.<br />
Programovanie<br />
Úplný popis toho, ako sa programuje sériová linka pod Win32 nájdete na stránkach MSDN Microsoftu:<br />
<br />
Allen Denver: Serial Communications in Win32, Microsoft Windows Developer Support, 1995.<br />
Norbert Környi: Sériová komunikácia. Výňatok z diplomovej práce FEI STU v Bratislave, 2006. <br />
<br />
Pre záujemcov o hlbšie štúdium možno odporučiť aj knihu<br />
<br />
Václav Vacek: Sériová komunikace ve Win32. Nakladatelství BEN, Praha, 2003. <br />
<br />
Vo všeobecnosti možno povedať, že Win API poskytuje prístup k sériovému komunikačnému rozhraniu na podobnom princípe ako k súborom a ďalším sekvenčným zariadeniam. Základný postup je takýto:<br />
<br />
# Port otvoriť<br />
# Nastaviť komunikačné parametre a timeouty<br />
# Zápis na port<br />
# Čítanie z portu<br />
# Zatvorenie portu <br />
<br />
<br />
=== '''3.1 Otvorenie portu''' ===<br />
<br />
<br />
Otvorenie portu má na starosti funkcia CreateFile, pričom sa tvárime, že náš port COM1: je existujúci súbor, do ktorého ideme normálne zapisovať, prípadne z neho aj čítať.<br />
<br />
<source lang="c++" style="background: LightYellow;"><br />
<br />
HANDLE hCom; // Handle na objekt typu súbor<br />
<br />
hCom = CreateFile( <br />
"COM1:", // Názov portu, ktorý otvárame<br />
GENERIC_READ | GENERIC_WRITE, // Otvárame na čítanie aj na zápis<br />
0, // Zdieľanie nebude žiadne<br />
NULL, // Bezpečnostné info žiadne<br />
OPEN_EXISTING, // Otvárame existujúci (port)<br />
0, // Žiadne atribúty súboru<br />
NULL); // Musí byť NULL<br />
<br />
if ( hCom == INVALID_HANDLE_VALUE )<br />
printf("\n Chyba: Port sa neda otvorit.\n");<br />
// potom nasleduje CloseHandle(hCom); a potom asi exit...<br />
else<br />
printf("\n OK, port je uspesne otvoreny.\n");<br />
</source><br />
<br />
<br />
=== '''3.2 Komunikačné parametre.''' ===<br />
<br />
<br />
Dve zariadenia (počítače) budú spolu komunikovať len vtedy, ak budú mať oba nastavené rovnaké komunikačné parametre. Aktuálne nastavenie si môžete pozrieť tak, že v konzolovom okne napíšete príkaz<br />
<br />
mode com1:<br />
<br />
Dostanete výstup podobný tomu na obrázku, zobrazia sa najdôležitejšie komunikačné parametre:<br />
<br />
mode COM<br />
<br />
Význam parametrov je nasledovný:<br />
<br />
Baud:<br />
prenosová rýchlosť - z nej vyplýva dĺžka trvania jedného bitu. Aj keď teoreticky môže byť rýchlosť ľubovoľná, podľa medzinárodných noriem sa používajú len niektoré typizované rýchlosti (600, 1200, 2400, 4800, 9600, 19 200 Bd). Udáva sa rýchlosť v Bd (Baud), čo je bit za sekundu. <br />
Parity:<br />
pre zvýšenie spoľahlivosti prenosu môžu byť údaje zabezpečené paritným bitom, ktorý je doplnený za prenášané bity tak, aby celkový počet jednotiek bol párny (parity even), alebo nepárny (parity odd). Prijímateľ správy si ľahko môže overiť, či pri prenose nedošlo k chybe. Neošetrí sa tým veľa chýb, ale je to často lepšie ako nič. V príklade na obrázku sa zabezpečenie prenosu paritou nepoužíva. <br />
Data Bits:<br />
Počet prenášaných bitov. Napriek tomu, že sa zdá zrejmé, že to bude 8, nemusí to tak byť a bežne sa používa aj 7 (ak nám stačí prenášať len čistý ASCII text) a niekedy aj 9. <br />
Stop Bits:<br />
Počet stop bitov. Stop bit býva najčastejšie len jeden, ale pri problémoch so synchronizáciou sa používajú aj dva, niekedy jeden a pol. <br />
Timeouts:<br />
Uvádza, či je použité sledovanie timeoutov. V našom prípade áno. <br />
CTS, DTR, RTS, ...<br />
Ostatné parametre uvádzajú stav a parametre pre handshaking - potvrdzovanie pre zvýšenie spoľahlivosti prenosu. Nebudeme používať. <br />
<br />
Význam jednotlivých parametrov je aj na nasledujúcom obrázku. Pripomíname, že podľa RS-232 je log. 0 (space) +5 až +15 V, log. 1 (mark) -5 až -15 V. Ak sa na linke nič nedeje (idle) je v stave log. 1, štart bit je vždy log. 0 (space) a stop bit naopak log. 1 (mark). Na obrázku je ako príklad uvedené vysielanie znaku 'U' (85, 0x55, 0101 01012). Všimnite si, že pri prenose protokolom RS-232 sa prenáša najnižší bit (LSB) ako prvý. Pri bežnom vysielaní údajov cez RS-232 po doplnení štart- a stop-bitu vyzerá signál takto:<br />
<br />
signals Click to enlarge<br />
Obr. Teoretický a nameraný priebeh signálov pri prenose znaku 'U'.<br />
<br />
Horeuvedené parametre môžete zmeniť napríklad už spomenutým príkazom mode v konzolovom okne:<br />
<br />
mode com1: 9600,n,8,1<br />
<br />
Uvedený príkaz nastaví port COM1 na rýchlosť 9600 Baudov, bude sa prenášať vždy 8 bitov ukončených 1 stopbitom a nezabezpečené paritou.<br />
<br />
Samozrejme, že parametre je možné (a vhodné) meniť aj priamo z vášho programu v jazyku C. Parametre sú uložené v štruktúre typu DCB, ktorej jednotlivé položky zodpovedajú jednotlivým parametrom komunikácie. Pomocou funkcie GetCommState naplníme štruktúru aktuálnymi parametrami, funkciou SetCommState zasa nastavíme komunikačné parametre podľa zodpovedajúcich položiek štruktúry. Samotný zápis do štruktúry DCB nikde nič nezmení.<br />
<br />
<br />
<source lang="c++" style="background: LightYellow;"><br />
/* *** V ďalšom predpokladáme, že port sme už úspešne otvorili... *** */<br />
<br />
DCB PortDCB; // Štruktúra, v ktorej sú uložené parametre <br />
<br />
PortDCB.DCBlength = sizeof(DCB); // Inicializuj položku DCBlength<br />
GetCommState(hCom,&PortDCB); // Načítaj aktuálne nastavenia<br />
printf("\nBaud rate: %d",PortDCB.BaudRate); <br />
... <br />
PortDCB.BaudRate = 9600; // Zmeníme nejaký parameter v DCB<br />
...<br />
int err;<br />
err = SetCommState(hCom,&PortDCB); // Nastav aktuálne nastavenia na port<br />
if(!err) <br />
printf("Chyba: Port sa neda nakonfigurovat.");<br />
// nasleduje CloseHandle(hCom); a asi exit...<br />
else<br />
printf("OK, port je uspesne nakonfigurovany.");<br />
</source><br />
<br />
Úloha: Preštudujte si na stránkach MSDN ako je vytvorená štruktúra "databázy" DCB (Structure Members) s parametrami sériového komunikačného rozhrania. Napíšte program (funkciu), ktorá vypíše obsah jednotlivých členov štruktúry. Nemusíte vypisovať všetko, stačí tie parametre, ktoré sme uviedli vyššie (rýchlosť, parita, počet bitov a stop bitov).<br />
<br />
Tip: Výpis položiek urobte ako funkciu, zíde sa vám v ďalšej úlohe.<br />
<br />
Úloha: Napíšte program, ktory zmení komunikačné parametre vybraného portu (COM1,COM2) na 9600,n,8,1. Dokumentujte výpisom DCB (viď predošlá úloha).<br />
<br />
Tip: Aby ste mohli meniť parametre, musíte port najprv otvoriť.<br />
<br />
=== <br />
'''3.3 Vysielanie''' ===<br />
<br />
<br />
Zápis na port má na starosti funkcia WriteFile, pričom sa použijú aktuálne prenosové parametre. Funkcia uloží do premennej Pocet počet skutočne odvysielaných znakov, ktorý treba kontrolovať. V prípade zlyhania buď prenos zopakujeme, alebo skončíme s chybou.<br />
<br />
Nasledujúca ukážka samozrejme predpokladá, že port je otvorený a správne nakonfigurovaný.<br />
<br />
<br />
<source lang="c++" style="background: LightYellow;"><br />
DWORD Pocet=0;<br />
unsigned char Data='A';<br />
<br />
WriteFile(<br />
hCom, // Handle portu, ktory ste otvorili CreateFile<br />
&Data, // Smernik (pointer) na data, ktore chcem vysielat<br />
1, // Pocet bytov, ktore chcem vyslat<br />
&Pocet, // Smernik (pointer) na pocet vyslanych dat<br />
NULL); // Musi byt NULL<br />
<br />
if( Pocet != 1 ) // Ak pocet prenesenych dat nesuhlasi <br />
printf("\n Chyba: Zapis na port sa nepodaril.\n");<br />
// a zasa nasleduje CloseHandle(hCom); a potom exit...<br />
else<br />
printf("\n OK.");<br />
</source><br />
<br />
Úloha: Napíšte program, ktorý bude na zvolený port stále dokola vysielať znak 'A'. Overte funkciu prijímaním v bežnom terminálovom programe, ako je napr. Hyperterminál.<br />
<br />
Tip: Lepšie ako hyperterminál je napr. toto: Terminal by Bray++, neinštaluje sa, len spustí.<br />
<br />
<br />
<br />
=== '''3. 4. Prijmi znak''' ===<br />
<br />
<br />
Prijímanie znakov zabezpečí funkcia ReadFile, ktorá načítaný znak uloží do buffera Data (v našom príklade 1 byte). Zároveň vráti aj počet prijatých bytov. Táto funkcia čaká, až kým nejaký znak nepríde. Takže ak nepríde nič, program "zamrzne". Tomu sa dá vyhnúť použitím timeoutov, ktoré uvedieme ďalej.<br />
<br />
V nasledujúcej ukážke sme navyše vyčistili prijímací a vysielací zásobník (buffer) funkciou PurgeComm.<br />
<br />
<br />
<source lang="c++" style="background: LightYellow;"><br />
DWORD Pocet=0; // Počet prijatých dát<br />
unsigned char Data; // Sem ulož prijatý znak<br />
<br />
PurgeComm(hCom,PURGE_TXCLEAR | PURGE_RXCLEAR);<br />
<br />
ReadFile(<br />
hCom, // Handle portu, z ktorého čítame<br />
&Data, // Pointer na buffer, kam ukladáme prijaté dáta<br />
1, // Počet bytov, na ktoré čakáme<br />
&d, // Pointer na skutočný počet prijatých dát<br />
&Pocet, // Pointer na skutočný počet prijatých dát<br />
NULL); // Musí byť NULL<br />
<br />
// Funkcia ReadFile tu teraz čaká, až kým niečo <br />
// nepríde, ale môže aj skončiť bez zachyteného znaku, <br />
// ak medzitým vypršia timeouty.<br />
<br />
if( Pocet != 1 ) // Ak počet prenesených dát nesúhlasí <br />
printf("\n Chyba: Citanie z portu nedalo nic.\n");<br />
else<br />
printf("\n OK, z portu sme uspesne prijali [%c].\n",Data);<br />
</source><br />
<br />
Úloha: Napíšte program, ktorý bude na čakať na zvolenom porte a stále dokola zobrazovať všetky prijaté znaky. Overte funkciu vysielaním v bežnom terminálovom programe, ako je napr. Hyperterminál, alebo Terminal.<br />
<br />
<br />
<br />
=== '''3. 5. Timeouty'''<br />
===<br />
<br />
Aby funkcia ReadFile nezostala čakajúca na znak, používajú sa tzv. timeouty, maximálne časy, ktoré má daná funkcia trvať. Konkrétne hodnoty sú uložené v štruktúre COMMTIMEOUTS, ktorá má tieto prvky:<br />
<br />
ReadIntervalTimeout = 20; Max. doba v [ms] medzi dvoma príchodzími znakmi<br />
pri čítaní. Ak je táto doba prekročená, operácia<br />
čítania sa predčasne ukončí.<br />
ReadTotalTimeoutMultiplier = 10; Max. doba v [ms] ktorá sa vynásobí počtom<br />
prijímaných bytov a takto dá celkovú max.<br />
dobu prijímania.<br />
ReadTotalTimeoutConstant = 100; K predošlej hodnote (ReadTotalTimeoutMultiplier) <br />
sa ešte pripočíta táto hodnota v [ms].<br />
WriteTotalTimeoutMultiplier = 10; Max. doba v [ms] ktorá sa vynásobí počtom<br />
vysielaných bytov a takto dá celkovú max.<br />
dobu vysielania.<br />
WriteTotalTimeoutConstant = 100; K predošlej hodnote (WriteTotalTimeoutMultiplier) <br />
sa ešte pripočíta táto hodnota v [ms].<br />
<br />
Ak je hodnota niektorého parametra 0, potom sa daný timeout nevyhodnotí. Ako vidno, máme vlastne dve hodnoty timeoutu. Prvá je IntervalTimeout, druhá je (TotalTimeoutConstant + TotalTimeoutMultiplier * Počet bytov) - aplikuje sa vždz tá hodnota, ktorá nastane skôr.<br />
<br />
Po naplnení štruktúry vhodnými hodnotami sa ešte musia stať platnými pre daný komunikačný port, čo urobíme funkciou SetCommTimeouts.<br />
<br />
<source lang="c++" style="background: LightYellow;"><br />
COMMTIMEOUTS timeouts;<br />
<br />
timeouts.ReadIntervalTimeout = 20;<br />
timeouts.ReadTotalTimeoutMultiplier = 10;<br />
timeouts.ReadTotalTimeoutConstant = 100;<br />
timeouts.WriteTotalTimeoutMultiplier = 10;<br />
timeouts.ReadTotalTimeoutConstant = 100;<br />
<br />
if (!SetCommTimeouts(hCom,&timeouts))<br />
printf("\n Chyba: Timeouty nenastavene.\n");<br />
// a asi exit...<br />
else<br />
printf("\n OK, nastavene Timeouty\n");<br />
</source><br />
<br />
<br />
<br />
=== '''3. 6. Zatvor port''' ===<br />
<br />
<br />
Po skončení práce so sériovou linkou je slušné uvoľniť ju pre ďalšie programy a zatvoriť port.<br />
<br />
<source lang="c++" style="background: LightYellow;"><br />
CloseHandle(hCom); // zatvorime port<br />
</source><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
=== '''Úloha -- projekt (12b.)''' ===<br />
<br />
<br />
Naprogramujte jednoduchý terminálový program, pomocou ktorého si budete môcť písať so susedným počítačom prepojeným sériovým káblom. Program bude mať dve okienka na prijatý a odosielaný text, možnosti voľby prenosovej rýchlosti a portu, archiváciu do súboru.<br />
<br />
Možné modifikácie: len jedno okno, ale s farebným odlíšením prijatého a odoslaného textu, konfigurácia zo súboru, posielanie a prenášanie súborov,<br />
<br />
V princípe je možné zadanie splniť akýmkoľvek vlastným komunikačným programom, napr. komunikácia s mobilom cez virtuálny sériový port a rozhranie Bluetooth, alebo infračervený port, je možné komunikovať s jednočipovým mikropočítačom (Atmel AVR, Microchip PIC, Intel 8051, BasicStamp,...), prípadne riadiť robota (protokol na požiadanie poskytne Ing. Balogh) a pod.<br />
<br />
<br />
<br />
<br />
'''Bodovanie''' (každá položka cca 1 bod, spolu max. 12 bodov)<br />
<br />
* Otvorenie portu<br />
* Výpis položiek DCB<br />
* Nastavenie parametrov, kontrola nastavenia, overenie<br />
* Odskúšanie komunikácie terminálom<br />
* Vysielanie znaku dokola, celého textu<br />
* Prijatie jedného znaku<br />
* Prijatie celého textu<br />
* Timeouty, ošetrenie chýb<br />
* Logovanie do súboru<br />
* Rozlíšenie farebné-priestorové<br />
* Možnosť konfigurácie<br />
* Písomná dokumetácia s popisom programu (rozsah 1 x A4). <br />
<br />
Tip 1: Všetky úlohy budeme programovať ako konzolové aplikácie, ale pokročilejší študenti sa môžu pokúsiť aj o okienka. Tu nájdete video, ako naprogramovať jednoduché okno, môžete ho pouziť ako základ, na ktorom budete stavať.<br />
<br />
Inštruktážne video<br />
Zdrojáky pre tento projekt (c) Norbert Kornyi <br />
<br />
Tip 2: Komu sa sériová linka celkom protiví, môže to isté urobiť so socketmi. Teda komunikovať by mali dva počítače so zadanou IP adresou.<br />
<br />
Inšpiračné zdrojáky I (c) Norbert Kornyi<br />
Inšpiračné zdrojáky II (c) Pavel Petrovič</div>
Balogh