On Wed, Aug 11, 1999 at 09:18:19PM +0200, Gasper Fele - Zorz wrote:
> Imam sledeci problem:
> Prek navadnega RS232 porta berem/pisem podatke na neko cudno serijsko
> napravico.
> Podatki naj bi se cez serijca furali brez preverjanj, pri cemer naj bi
> bila hitrost komunikacije 38400 BPS.
> Problem:
>   Ko s cudne kiste sprejemam podatke, vnaprej ne morem vedeti, koliko
>   jih bo. Med podatki samimi pride namrec tudi podatek o velikosti
>   sporocila. To pomeni, da moram izvesti najmanj 2 klica write();.
>   Tu nastopi problem, saj kaze, da je write() prepocasen in mi zato
>   vcasih (beri: pogosto) izgine nekaj podatkov.
> 
>   Torej: kako naj naredim program ZELO hiter oziroma kako naj
>   pogledam, ali zaostajam jaz ali mogoce druga stran in za koliko.
>   Zanima me tudi, kako bi  preveril, ce port lepo uporablja buffer.
> 
>   XON/XOFF na zalost ne prideta v postev, ker ju druga stran ne
>   podpira.
> 
> Hvala vnaprej za vso mozno pomoc!
> 
> P.S. tisti LPG, ki govori o serijskih portih sem pregledal in v njem 
>   je omenjen en primercek. Ali kdo mogoce ve, kje naj bi ga nasel ?
>   Ce se ne motim, je ime file-a miniterm.c .

Takole na hitro bi reku, da ne preveris ce je output spoh
na voljo? to je podobno kot pri socketih, pipih in podobnih stvareh.

fd_set wset;

FD_ZERO(&wset);
FD_SET(descriptor, &wset);

select(descriptor+1, NULL, &wset, NULL, NULL);

ko se tole izvede je output zihr na voljo.. ce bo pac cakal
bo pac cakal, tle ni kej.. ampak ponavad se tkole da zelo hitro pisat
(beri. flood :))


sicer pa pomoje to ze itak mas, upam da ne no .. :)


drugace pa .. VMIN, VAX nastavi za terminal ko ga odpres pri
serijskem portu.


                                mare

-- 

                ==---------------------------------------==
                      Marko Mlakar - [EMAIL PROTECTED]
                ===-------------------------------------===
                PGP Public key: finger [EMAIL PROTECTED]

PGP signature

Reply via email to