[fpc-pascal] Linux serial interface

Martin Schreiber fpmse at bluewin.ch
Wed Dec 27 09:00:06 CET 2006


On Tuesday 26 December 2006 21.53, Rainer Stratmann wrote:
>
> How to do that?
> The code for initialisation of the serial interface:
>
> const
>  iflagoff = BRKINT or INPCK or ISTRIP or IGNCR or INLCR or ICRNL or IUCLC
> or IXON or IXANY or IXOFF or IMAXBEL;
>  iflagon  = IGNBRK or IGNPAR;
>  oflagoff = OPOST or OLCUC or ONLCR or OCRNL or ONOCR or ONLRET or OFILL or
>             OFDEL or NLDLY or TABDLY or BSDLY or VTDLY or FFDLY;
>  oflagon  = 0;
>  cflagoff = CBAUD or CSIZE or CSTOPB or PARENB or PARODD or HUPCL or
> CBAUDEX or
>             CIBAUD or CRTSCTS ;
>  cflagon  = CREAD or CLOCAL;
>  lflagoff = ISIG or ICANON or XCASE or ECHO or ECHOE or ECHOK or ECHONL or
>             NOFLSH or TOSTOP or ECHOCTL or ECHOPRT or ECHOKE or IEXTEN;
>  lflagon  = 0;
>
>  linuxfile:array[serportmin..serportmax] of string =
>  ('ttyS0','ttyS1','ttyUSB0','ttyUSB1','ttyUSB2');
> begin
>
>   s:='/dev/'+linuxfile[ger_port];
>
>   ger_fd:=fdOpen(s,Open_RdWr or Open_NonBlock);
>
>   tcgetattr(ger_fd,newtio_ger);
>
>   memclr(@newtio_ger,sizeof(newtio_ger));
      <<<<<----- now you have lost all values from tcgetattr.

Martin



More information about the fpc-pascal mailing list