[LUGOS-PROG] Dostop do serijskega porta

Gregor Berginc gregor.berginc at gmail.com
Wed Jun 29 07:37:32 CEST 2005


On 6/28/05, Anze <anze at volja.net> wrote:
> 
> > Kakorkoli ze danes sem tudi branje resil s pomocjo threada, ki 
> neprestano
> > preverja, ce je kaj na vratih.
> 
> Kako pa preverja? Ce bere znak po znak, bos imel tezave z izgubljanjem 
> znakov
> (baje - to sem zasledil na newsgroupih, nisem sam testiral).


Kakor receno, izvede ioctl klic, ki mu vrne, koliko znakov je na vratih na 
voljo. Zaenkrat se mi se ni zalomilo, da bi napacne podatke prebral ali pa 
karkoli celo zgresil. Ce sistemski klic vrne niclo, potem ne berem nicesar, 
sicer pa preberem celoten vhod. 

Mogoce si si malo zakompliciral zivljenje. Vse bi lahko delal v eni niti 
> (no,
> razen ce imas loceno nit se za UI). Ko poklices read_next_line(), ti lahko 
> ta
> funkcija sprozi canonical read s timeoutom, in ce ne dobis nic pametnega
> nazaj v nekaj sekundah, lahko predvidevas, da je z masino nekaj narobe, in
> vrnes primerno vrednost (error).


Bom pogledal, kako tale timeout noter vkljuciti. Samo ne smem govoriti o 
sekundah, ker read ne sme toliko casa blokirati! Konec koncev, ideja je v 
tem, da lahko z enoto sledis premikajocim se predmotom (nanjo je montirana 
kamerca), tako da branje niti ni tako potrebno. Vsekakor pa moras imeti 
moznost, da ugotovis, da je enota prisla v maksimalno pozicijo. To bos sicer 
ze ugotovil, ko bo kamera ugotovila, da predmetu ne more vec sledit; takrat 
pa lahko enoto povprasas, kako je kaj z njo :)

No, vazno, da si usposobil. :)


Se strinjam; gotovo ni moja resitev optimalna, ampak deluje ravno tako, kot 
sem si zelel.

lp,
Gregor
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://liste2.lugos.si/pipermail/lugos-prog/attachments/20050629/53dcce3a/attachment.html


More information about the lugos-prog mailing list