<br><br><div><span class="gmail_quote">On 6/27/05, <b class="gmail_sendername">Anze</b> <<a href="mailto:anze@volja.net">anze@volja.net</a>> 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 "vsake toliko casa zacne sprejemati neumnosti" - 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 "\r\n"? 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>
// Open modem device for reading and writing and not as controlling tty<br>
// because we don't want to get killed if linenoise sends CTRL-C.<br>
this->fd = open(_deviceName, O_RDWR | O_NOCTTY);<br>
<br>
// Were there problems?<br>
if (this->fd < 0) <br>
{<br>
fprintf(stderr, "Opening the specified device ... ERROR\n");<br>
exit(-1);<br>
} // if<br>
<br>
// Save the current serial port settings.<br>
tcgetattr(this->fd, &(this->oldIoSettings));<br>
<br>
// Reset the new settings.<br>
bzero(&(this->dpPtuSettings), sizeof(this->dpPtuSettings));<br>
<br>
// Setup the serial port.<br>
// Set the baud rate to 9600, 8 data bits, no parity and 1 stop bit.<br>
// Use local connection (no modem control).<br>
// Enable receiving charaters.<br>
this->dpPtuSettings.c_cflag = CS8 | CLOCAL | CREAD | ECHO;<br>
<br>
// Ignore bytes with parity errors and map CR to NL.<br>
this->dpPtuSettings.c_iflag = IGNPAR | ICRNL;<br>
<br>
// Set the raw output.<br>
this->dpPtuSettings.c_oflag = 0;<br>
<br>
// Enable cacnonical input.<br>
this->dpPtuSettings.c_lflag = ICANON;<br>
<br>
// Set output and input speed.<br>
cfsetospeed(&(this->dpPtuSettings), B9600);<br>
cfsetispeed(&(this->dpPtuSettings), B9600);<br>
<br>
// Clean the serial line and activate the settings for the port.<br>
tcflush(this->fd, TCIFLUSH);<br>
tcsetattr(this->fd, TCSANOW, &(this->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;">> Se vecji problem je v tem, da, ko se to zgodi, pan-tilt sprejema ukaze v<br>
> 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>