functions.c
上传用户:tianjinjs
上传日期:2007-01-05
资源大小:309k
文件大小:1k
源码类别:

Modem编程

开发平台:

Unix_Linux

  1. /*
  2.  * functions.c This file contains the functions that talk to the modem
  3.  * and the serial port. It seperates the user interface
  4.  * from the low-level functions. The script language also
  5.  * uses these functions.
  6.  *
  7.  * This file is part of the minicom communications package,
  8.  * Copyright 1991-1995 Miquel van Smoorenburg.
  9.  *
  10.  * This program is free software; you can redistribute it and/or
  11.  * modify it under the terms of the GNU General Public License
  12.  * as published by the Free Software Foundation; either version
  13.  * 2 of the License, or (at your option) any later version.
  14.  *
  15.  *  // jl 23.06.97 adjustable DTR drop time
  16.  */
  17. #include "port.h"
  18. #include "minicom.h"
  19. /*
  20.  * Send a string to the modem.
  21.  */
  22. void m_puts(s)
  23. char *s;
  24. {
  25.   char c;
  26.   while(*s) {
  27.    if (*s == '^' && (*(s + 1))) {
  28.    s++;
  29.    if (*s == '^')
  30.    c = *s;
  31.    else
  32.    c = (*s) & 31;
  33.    } else
  34.    c = *s;
  35.    if (c == '~')
  36.    sleep(1);
  37.    else
  38.    write(portfd, &c, 1);
  39.    s++;
  40.   }
  41. }
  42. /* Hangup. */
  43. void m_hangup()
  44. {
  45.   int sec=1;
  46.   if (isdigit(P_MDROPDTR[0]))
  47.     sscanf(P_MDROPDTR,"%2d",&sec);
  48.   if (P_MDROPDTR[0] == 'Y' || (isdigit(P_MDROPDTR[0]) && sec > 0)) {
  49.    m_dtrtoggle(portfd, sec);  /* jl 22.06.97 */
  50.   } else {
  51.    m_puts(P_MHANGUP);
  52.    sleep(1);
  53.   }
  54.   /* If we don't have DCD support fake DCD dropped */
  55.   bogus_dcd = 0;
  56. }