🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #10183

Re: Cuestiones sobre programacion puerto serie

#10183
From: Adrian Rossiter
Date: Wed, 20 Mar 2002 11:28
52 lines
2822 bytes
On 19 Mar 2002 19:46:22 GMT, Jes�s �ngel wrote:
>In article <slrna9f4ag.7fp.adrianr@localhost.localdomain>,
>Adrian Rossiter wrote:
>> Con estas condiciones (MIN>0, TIME>0) el temp�rizador no empieza hasta
>> que el read reciba el primer byte.
>
>S�, pero el tema es que se reciben varios bytes, pero cuando se deja de
>recibir bytes en el puerto serie el temporizador no saltay read(2) sigue
>esperando nuevos bytes.

Lo que ocurre es que despu�s de que el read haya leido el �ltimo byte el
programa pasa otra vez por el bucle. Esta vez no hay m�s bytes y por eso
el temp�rizador no empieza y el programa cuelga en el read.

Si quer�as esperar el primer character y luego terminar cuando un
caracter no llegue dentro de .6 segundos quiz�s podr�as cambiar tu
programa algo como -

  newtio.c_cc[VTIME] = 10; /* inter-character timer */
  newtio.c_cc[VMIN] = 1;   /* blocking read until 1 character arrives */

  /* Configuramos el puerto */
  tcflush (fd, TCIFLUSH);
  tcsetattr (fd, TCSANOW, &newtio);

  /* Esperar el primer caracter */
  leidos = read (fd, buffer, sizeof (buffer));
  
  newtio.c_cc[VMIN] = 0;
  tcsetattr (fd, TCSANOW, &newtio);
  
  do {
     buffer[leidos] = 0;
     if (isprint (buffer[0]))
        printf ("%s\n", buffer);
     else
        printf ("*\n");
     leidos = read (fd, buffer, sizeof (buffer));
  } while (leidos != 0);


Parece funcionar aqu� (leo del rat�n y no s� que envia) pero no se si
es una buena o mala soluci�n. Debe ser otras soluciones con select,
se�ales etc.

Saludos

Adrian.
-- 
Adrian Rossiter
Email:     adrian_r@teleline.es
Web Site:  http://www.terra.es/personal/adrian_r
Technical Details
Message-ID: <slrna9gsj0.in.adrianr@localhost.localdomain>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!62.24.128.9.MISMATCH!news-1.opaltelecom.net!newsfeed.icl.net!opentransit.net!fu-berlin.de!uni-berlin.de!193-152-248-119.uc.nombres.ttd.ES!not-for-mail
References: <slrna9efmg.1b5.jpozdom@sol.linux.bogus> <slrna9f4ag.7fp.adrianr@localhost.localdomain> <slrna9f6b1.17t.jpozdom@sol.linux.bogus>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: f86c8,ab207f181b45ad15
X-Google-Attributes: gidf86c8,public
X-Google-ArrivalTime: 2002-03-20 03:49:37 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!62.24.128.9.MISMATCH!news-1.opaltelecom.net!newsfeed.icl.net!opentransit.net!fu-berlin.de!uni-berlin.de!193-152-248-119.uc.nombres.ttd.ES!not-for-mail
From: adrianr@jazzfree.com (Adrian Rossiter)
Newsgroups: es.comp.os.linux.programacion
Subject: Re: Cuestiones sobre programacion puerto serie
Date: Wed, 20 Mar 2002 11:28:32 +0000
Lines: 52
Message-ID: <slrna9gsj0.in.adrianr@localhost.localdomain>
References: <slrna9efmg.1b5.jpozdom@sol.linux.bogus> <slrna9f4ag.7fp.adrianr@localhost.localdomain> <slrna9f6b1.17t.jpozdom@sol.linux.bogus>
Reply-To: adrian_r@teleline.es
NNTP-Posting-Host: 193-152-248-119.uc.nombres.ttd.es (193.152.248.119)
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
X-Trace: fu-berlin.de 1016624974 20661879 193.152.248.119 (16 [70272])
X-Orig-Path: adrianr
User-Agent: slrn/0.9.6.2 (Linux)