⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 modem.h

📁 在ARM7和UC/OSII的平台上实现了GPS自动报站的功能,涉及GPS模块LEA_4S的驱动,位置速寻算法,语音芯片ISD4004的录放音驱动,LED页面管理等等.从启动代码到操作系统的移植以及到业
💻 H
字号:
/* modem.h

   Copyright 1997 - 2001 by InterNiche Technologies, Inc. All rights reserved.
   Copyright 1995, 1996 by NetPort Software.

   Hayes AT Modem support.

   7/3/96 - Modified for NAT router. John Bartas @ NetPort
*/

#ifndef MODEM_H
#define MODEM_H 1

#include "comline.h"

/* States the modem can be in. These map directly to line states. */

   /* 2 onhook states */
#define   D_IDLE        LN_DISCONNECTED
#define   D_AUTOANS     LN_AUTOANS
   /* 3 off hook states */
#define   D_DIALING     LN_CONNECTING
#define   D_CONNECTED   LN_CONNECTED
#define   D_HANGINGUP   LN_DISCONNECTING
   /* ...and, since these are modems... */
#define   D_BROKEN      LN_BROKEN
#define   D_RESETTING   LN_RESETTING


#ifndef NUM_MODEMS
#define NUM_MODEMS   1
#endif   /* NUM_MODEMS */

#ifndef MDM_DCDLINE
#define MDM_CHECK_NO_CARRIER  1   /* Use sw to check for NO CARRIER */
#endif


struct atmodem
{
   u_short     IdleDialTmo;         /* timeout (in seconds) for idle connections */
   u_long      mdm_baud;            /* baud rate of connection */
   u_long      lastdial;            /* ctick of last dial activity */
   u_long      lastchar;            /* ctick of last IO, for hangup timeouts */
   u_char      modem_out[MODEM_BUF_SIZE];   /* last AT command sent to modem */
   u_char      modem_in [MODEM_BUF_SIZE];   /* last reply from modem */
   struct com_line * upperline;     /* pointer to PPP/SLIP line structure */
   int         unit;                /* UART unit number */
#ifdef MDM_CHECK_NO_CARRIER
   int         carrier_match;       /* number of chars matched in "NO CARRIER" */
#endif /* MDM_CHECK_NO_CARRIER */
};

extern struct atmodem modems[NUM_MODEMS];

typedef struct atmodem * MODEMP;


extern int in_dialcheck;   /* flag to prevent re-entry to dial_check() */

#ifdef MDM_CHECK_NO_CARRIER
int   modem_no_carrier(MODEMP, int);
#endif


/* modem configuation strings */
extern char mdm_init_string[MODEM_STRING_SIZE]; /* init AT commands */
extern char mdm_dial_string[TELNUM_SIZE]; /* phone number to dial */

/* modem lib internal routines */
extern int   modem_init(LINEP);   /* initialize modem at system start */
extern void  dial(MODEMP, char * number);    /* initiate modem dialout */
extern void  dial_check(void);       /* cycles for dial state machine */
extern char * modem_state(MODEMP);    /* text for current modem d_state */
extern int   modem_getc(MODEMP, unsigned timeout); /* get char from modem */
extern void  dial_delay(unsigned long ticks);  /* delay n ticks during dialing */
extern int   modem_DCD(MODEMP);       /* check modem's DCD line */
extern void  modem_reset(MODEMP);     /* try to reset modem hardware */
extern void  modem_portstat(void *, MODEMP);  /* dump modem line info */

/* optional UART routines which exist in the UART code if supported */
extern int  uart_getDCD(int unit);
extern void uart_clr_dtr(int unit);
extern void uart_set_dtr(int unit);


/* (yaxon modify) */
/* InterNiche's comline API entry points */
/*extern int   modem_connect(struct com_line *);*/
/*extern int   modem_hangup(struct com_line *);       initiate modem hangup sequence */
/*extern int   modem_putc(struct com_line *, int chr);     send a char out modem connection */
extern int   modem_connect(LINEP);
extern int   modem_hangup(LINEP);       /* initiate modem hangup sequence */
extern int   modem_putc(LINEP, int chr);    /* send a char out modem connection */

#ifdef USE_LOGINSCRIPT
extern void  login(MODEMP);      /* Do login stuff if required, set loggedin */
extern void  logserver(MODEMP);  /* act as terminal server */
extern int loggedin;             /* TRUE if logged in or login not required */
#endif   /* USE_LOGINSCRIPT */


#endif /* MODEM_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -