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