home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / vol_200 / 260_01 / tty.doc < prev    next >
Text File  |  1988-02-25  |  4KB  |  224 lines

  1. TTY: General Serial Port Management Library rev 1.0
  2.      (c) Francois Bergeon 1987
  3.  
  4. This set of function allow MS-C programmers to manage serial ports
  5. thru a buffered input/IRQ method. The header tty.h has to be included
  6. in the program source code. Two 2048 bytes buffers are reserved for
  7. COM1 and COM2.
  8.         
  9. NOTE: The <fd> value (return value from a tty_open call) is an
  10.       internal index. It cannot be used as an argument to standard
  11.       library functions such as lseek(), fstat(), etc...
  12.  
  13.  
  14.                         GENERAL FUNCTIONS
  15.                         -----------------
  16.  
  17. int tty_open(comport, param)
  18. int tty_write(fd, buffer, lenght)
  19. int tty_read(fd, buffer, lenght)
  20. int tty_eof(fd)
  21. int tty_close(fd)
  22.  
  23.                         LOW LEVEL FUNCTIONS
  24.                         -------------------
  25. void _combrk(fd)
  26. void _comflush(fd)
  27.  
  28.  
  29.  
  30.  
  31.  
  32.         TTY_OPEN
  33.  
  34. SYNOPSYS:
  35.  
  36. #include <tty.h>
  37. int tty_open(comport, param)
  38. char *comport;
  39. int param;
  40.  
  41.  
  42. DESCRIPTION:
  43.  
  44. Open <comport> an initializes it with <param>. Return port descriptor,
  45. or -1 if <comport> is not valid (errno is set to EBADF).
  46.  
  47.  
  48. ARGUMENTS:
  49.  
  50. <comport> is either "COM1" or "COM2". <param> is the initialization
  51. parameter:
  52.  
  53.         B0              Hang-up the line by resetting DTR
  54.         B110              110 bauds
  55.         B150              150 bauds
  56.         B300              300 bauds
  57.         B600              600 bauds
  58.         B1200            1200 bauds
  59.         B2400            2400 bauds
  60.         B4800            4800 bauds
  61.         B9600            9600 bauds
  62.         B19200          19200 bauds
  63.               ORed with
  64.         CS7             7 bits
  65.         CS8             8 bits
  66.          eventually ORed with
  67.         CSTOPB          2 stop bits (default is 1)
  68.          eventually ORed with
  69.         PARENB          EVEN parity
  70.         PARODD          ODD  parity (default is NONE)
  71.  
  72.  
  73. EXAMPLE:
  74.  
  75.         if ((fd = tty_open("COM1", B1200 | CS7 | PARENB)) < 0)
  76.            fprintf(stderr, "Error on COM1");
  77.  
  78. NOTE:
  79.  
  80. to hang-up line and close COMx port you can use:
  81.  
  82.         tty_close(tty_open("COMx", B0));
  83.  
  84.  
  85.  
  86.  
  87.         TTY_WRITE
  88.  
  89. SYNOPSYS:
  90.  
  91. int tty_write(fd, buffer, lenght)
  92. int fd;
  93. char *buffer;
  94. int lenght;
  95.  
  96.  
  97. DESCRIPTION:
  98.  
  99. Write <lenght> bytes from <buffer> to <fd>. <fd> is the return value
  100. of a previously issued tty_open call. Return the number of bytes sent,
  101. or -1 if <fd> is not valid (errno is set to EBADF).
  102.  
  103. EXAMPLE:
  104.          tty_write(fd, &c, 1);
  105.  
  106.  
  107.  
  108.  
  109.         TTY_EOF
  110.  
  111. SYNOPSYS:
  112.  
  113. int tty_eof(fd)
  114. int fd;
  115.  
  116.  
  117. DESCRIPTION:
  118.  
  119. <fd> is the return value of a previously issued tty_open call. Return
  120. -1 if <fd> is not valid (errno is set to EBADF), 1 if no characters
  121. are available, otherwise 0.
  122.  
  123. EXAMPLE:
  124.         if (tty_eof(fd))
  125.            tty_read(fd, &c, 1);
  126.  
  127.  
  128.  
  129.  
  130.         TTY_READ
  131.  
  132. SYNOPSYS:
  133.  
  134. int tty_read(fd, buffer, lenght)
  135. int fd;
  136. char *buffer;
  137. int lenght;
  138.  
  139.  
  140. DESCRIPTION:
  141.  
  142. Read <lenght> bytes from <fd> to <buffer>. <fd> is the  return value
  143. of a previously issued tty_open call. Return the number of bytes received,
  144. or -1 if <fd> is not valid (errno is set to EBADF), 0 if no characters
  145. are available.
  146.  
  147.  
  148. EXAMPLE:
  149.         #include <time.h>
  150.                 .
  151.                 .
  152.                 .
  153.         time_t start;
  154.                 .
  155.                 .
  156.                 .
  157.         time(start);
  158.         while ((bytes_received = tty_write(fd, buffer, lenght)) == 0 &&
  159.                (int)difftime(time(NULL), start) < timeout)
  160.            {;}
  161.  
  162.  
  163.  
  164.  
  165.         TTY_CLOSE
  166.  
  167. SYNOPSYS:
  168.  
  169. int tty_close(fd)
  170. int fd;
  171.  
  172.  
  173. DESCRIPTION:
  174.  
  175. Close <fd>. <fd> is the return value of a previously issued tty_open
  176. call. When exiting the program, all COM ports must be closed. Return
  177. -1 if <fd> is not valid (errno is set to EBADF)
  178.  
  179. EXAMPLE:
  180.         tty_close(fd);
  181.  
  182.  
  183.  
  184.  
  185.         _COMBRK
  186.  
  187. SYNOPSYS:
  188.  
  189. _combrk(fd)
  190. int fd;
  191.  
  192.  
  193. DESCRIPTION:
  194.  
  195. Send a BREAK to <fd>. <fd> is the  return value of a previously
  196. issued tty_open call. No checks are made on the integrity of <fd>.
  197.  
  198.  
  199. EXAMPLE:
  200.         _combrk(fd);
  201.  
  202.  
  203.  
  204.         _COMFLUSH
  205.  
  206. SYNOPSYS:
  207.  
  208. _comflush(fd)
  209. int fd;
  210.  
  211.  
  212. DESCRIPTION:
  213.  
  214. Flush <fd> input buffer. <fd> is the  return value of a previously
  215. issued tty_open call. No checks are made on the integrity of <fd>.
  216.  
  217.  
  218. EXAMPLE:
  219.         _comflush(fd);
  220.  
  221.  
  222.  
  223.  
  224.