<br><br><div><span class="gmail_quote">On 6/27/05, <b class="gmail_sendername">Anze</b> &lt;<a href="mailto:anze@volja.net">anze@volja.net</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Zivjo!<br><br>Na sleep pozabi - razen ce tvoja enota to izrecno zahteva, si bos samo<br>zakompliciral zivljenje, ce bos to uporabljal.</blockquote><div><br>
Hehe, sem ze ugotovil... <br>
</div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Sicer pa:<br>- kaksen nacin komuniciranja uporabljas (blocking / non-blocking; canonical /
<br>non-canonical; ...)</blockquote><div><br>
blocking, canonical <br>
</div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">- kaj pomeni &quot;vsake toliko casa zacne sprejemati neumnosti&quot; - po celem dnevu
<br>delovanja ali po nekaj minutah?</blockquote><div><br>
Po parih ukazih. Povsem nedeterministicno. Sedaj imam celo obcutek, da
je prislo do neke napake na kontrolerju, ker se enota neprestano
kalibrira... <br>
</div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">- ali posiljas za ukazi tudi &quot;\r\n&quot;? Bi moral?</blockquote><div><br>
Poslati moram samo presledek (takoj, ko enota dobi presledek zacne izvajati ukaz). <br>
</div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Se najbolje bi bilo, ce bi poslal inicializacijsko kodo.</blockquote><div><br>
Tule je del, ki poskrbi za inicializacijo:<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp; // Open modem device for reading and writing and not as controlling tty<br>
&nbsp;&nbsp;&nbsp; // because we don't want to get killed if linenoise sends CTRL-C.<br>
&nbsp;&nbsp;&nbsp; this-&gt;fd = open(_deviceName, O_RDWR | O_NOCTTY);<br>
<br>
&nbsp;&nbsp;&nbsp; // Were there problems?<br>
&nbsp;&nbsp;&nbsp; if (this-&gt;fd &lt; 0) <br>
&nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; fprintf(stderr, &quot;Opening the specified device ... ERROR\n&quot;);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit(-1);<br>
&nbsp;&nbsp;&nbsp; } // if<br>
<br>
&nbsp;&nbsp;&nbsp; // Save the current serial port settings.<br>
&nbsp;&nbsp;&nbsp; tcgetattr(this-&gt;fd, &amp;(this-&gt;oldIoSettings));<br>
&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; // Reset the new settings.<br>
&nbsp;&nbsp;&nbsp; bzero(&amp;(this-&gt;dpPtuSettings), sizeof(this-&gt;dpPtuSettings));<br>
<br>
&nbsp;&nbsp;&nbsp; // Setup the serial port.<br>
&nbsp;&nbsp;&nbsp; // Set the baud rate to 9600, 8 data bits, no parity and 1 stop bit.<br>
&nbsp;&nbsp;&nbsp; // Use local connection (no modem control).<br>
&nbsp;&nbsp;&nbsp; // Enable receiving charaters.<br>
&nbsp;&nbsp;&nbsp; this-&gt;dpPtuSettings.c_cflag = CS8 | CLOCAL | CREAD | ECHO;<br>
<br>
&nbsp;&nbsp;&nbsp; // Ignore bytes with parity errors and map CR to NL.<br>
&nbsp;&nbsp;&nbsp; this-&gt;dpPtuSettings.c_iflag = IGNPAR | ICRNL;<br>
<br>
&nbsp;&nbsp;&nbsp; // Set the raw output.<br>
&nbsp;&nbsp;&nbsp; this-&gt;dpPtuSettings.c_oflag = 0;<br>
<br>
&nbsp;&nbsp;&nbsp; // Enable cacnonical input.<br>
&nbsp;&nbsp;&nbsp; this-&gt;dpPtuSettings.c_lflag = ICANON;<br>
<br>
&nbsp;&nbsp;&nbsp; // Set output and input speed.<br>
&nbsp;&nbsp;&nbsp; cfsetospeed(&amp;(this-&gt;dpPtuSettings), B9600);<br>
&nbsp;&nbsp;&nbsp; cfsetispeed(&amp;(this-&gt;dpPtuSettings), B9600);<br>
<br>
&nbsp;&nbsp;&nbsp; // Clean the serial line and activate the settings for the port.<br>
&nbsp;&nbsp;&nbsp; tcflush(this-&gt;fd, TCIFLUSH);<br>
&nbsp;&nbsp;&nbsp; tcsetattr(this-&gt;fd, TCSANOW, &amp;(this-&gt;dpPtuSettings));<br>
<br>
<br>
</div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">&gt; Se vecji problem je v tem, da, ko se to zgodi, pan-tilt sprejema ukaze v<br>
&gt; nedogled. Pomaga sele reboot masine.<br><br>Poleg Serial Programming HOWTO je vsaj meni precej pomagalo brskanje po<br>newsgroupih (Google Groups) - HOWTO ni dovolj natancen v nekaterih<br>(pomembnih!) podrobnostih.</blockquote>
<div><br>
Hvala za tvojo pomoc, bom tudi to pogledal. Ko mi uspe enoto prepricat, da se neha kalibrirat... :)<br>
</div><br></div>lp,<br>
Gregor<br>