📄 modem_iodrv.h
字号:
#ifndef __MODEM_DRV_H__
#define __MODEM_DRV_H__
#include "MacroDef.h"
#ifdef __cplusplus
extern "C" {
#endif
/**********************************************************************
宏定义
**********************************************************************/
#define EM_modem_DTMFMODE (uchar)0x54 //音频
#define EM_modem_PLUSMODE (uchar)0x50 //脉冲
#define EM_modem_SdlcAd (uchar)0x30
#define EM_modem_Sst (uchar)0x05
#define EM_modem_NONEBPS (uchar)(0x00)
#define EM_modem_1200BPS (uchar)0x01
#define EM_modem_2400BPS (uchar)0x02
#define EM_modem_9600BPS (uchar)0x03
#define EM_modem_14400BPS (uchar)0x04
#define EM_modem_19200BPS (uchar)0x05
#define EM_modem_28800BPS (uchar)0x06
#define EM_modem_33600BPS (uchar)0x07
#define EM_modem_300BPS (uchar)(0x08)
#define EM_modem_24000BPS (uchar)(0x09)
#define EM_modem_26400BPS (uchar)(0x0A)
#define EM_modem_56000BPS (uchar)(0x0B)
#define EM_modem_NOPAR (uchar)'N'
#define EM_modem_EVENPAR (uchar)'E'
#define EM_modem_ODDPAR (uchar)'O'
#define EM_modem_7DBS (uchar)0x07
#define EM_modem_8DBS (uchar)0x08
#define EM_modem_V22FC (uchar)0x01
#define EM_modem_V22 (uchar)0x02
#define EM_modem_V22BIS (uchar)0x03
#define EM_modem_V29FC (uchar)0x04
#define EM_modem_Bell212 (uchar)0x05
// 输出
#define EM_modem_SUCCESS EM_SUCCESS
#define EM_modem_ERROR EM_ERROR
#define EM_modem_FAIL (uchar)'F'
#define EM_modem_NODIALTONE (uchar)'6'
#define EM_modem_PHONEINUSE (uchar)'P'
#define EM_modem_NOCARRIER (uchar)'3'
#define EM_modem_LINEBUSY (uchar)'7'
#define EM_modem_HANGUP (uchar)'O'
#define EM_modem_INDIAL (uchar)'D'
#define EM_modem_RECVNOACK (uchar)'G'
#define EM_modem_ATCOMRIGHT (uchar)'0'
#define EM_modem_ATCOMERROR (uchar)'E'
#define EM_modem_INPROCESS (uchar)'C'
#define EM_modem_TIMEOUT (uchar)'V'
#define EM_modem_NOPATCH (uchar)'Z'
#define EM_modem_CNT300V21 (uchar)(0xA0)
#define EM_modem_HDLC300V21 (uchar)(0xA1)
#define EM_modem_CNT1200V22 (uchar)(0xA2)
#define EM_modem_HDLC1200V22 (uchar)(0xA3)
#define EM_modem_CNT1200V22V42BIS (uchar)(0xA4)
#define EM_modem_CNT2400V22B (uchar)(0xA5)
#define EM_modem_HDLC2400V22B (uchar)(0xA6)
#define EM_modem_CNT2400V22BV42BIS (uchar)(0xA7)
#define EM_modem_CNT2400V34 (uchar)(0xA8)
#define EM_modem_CNT4800V34 (uchar)(0xA9)
#define EM_modem_CNT9600V32 (uchar)(0xAA)
#define EM_modem_CNT9600V32V42BIS (uchar)(0xAB)
#define EM_modem_CNT9600V34 (uchar)(0xAC)
#define EM_modem_CNT14400V32B (uchar)(0xAD)
#define EM_modem_CNT14400V32BV42BIS (uchar)(0xAE)
#define EM_modem_CNT14400V34 (uchar)(0xAF)
#define EM_modem_CNT19200V34 (uchar)(0xB1)
#define EM_modem_CNT19200V34V42BIS (uchar)(0xB2)
#define EM_modem_CNT24000V34 (uchar)(0xB3)
#define EM_modem_CNT24000V34V42BIS (uchar)(0xB4)
#define EM_modem_CNT26400V34 (uchar)(0xB5)
#define EM_modem_CNT26400V34V42BIS (uchar)(0xB6)
#define EM_modem_CNT28800V34 (uchar)(0xB7)
#define EM_modem_CNT28800V34V42BIS (uchar)(0xB8)
#define EM_modem_CNT33600V34 (uchar)(0xB9)
#define EM_modem_CNT28800V8 (uchar)(0xBA)
#define EM_modem_CNT33600V34V42BIS (uchar)(0xBB)
#define EM_modem_CMD_RESET_MODEM (uchar)(0x01)
#define EM_modem_CMD_DEBUG_ON (uchar)(0x02)
#define EM_modem_CMD_DEBUG_OFF (uchar)(0x03)
#define EM_modem_CMD_TEST_LINE (uchar)(0x04)
#define EM_modem_CMD_CONNECT_TIME (uchar)(0x05)
#define EM_modem_CMD_SNRM_TIME (uchar)(0x06)
typedef struct
{
//基本函数
uchar (*EA_ucInitDial)(DevHandle hDevHandle , uchar ucBPS , uchar ucPAR , uchar ucDBS);
uchar (*EA_ucInitSdlc)(DevHandle hDevHandle , uchar ucBPS , uchar ucSdlcAD , uchar ucSST);
uchar (*EA_ucIfExistDialTone)(DevHandle hDevHandle);
uchar (*EA_ucDial)(DevHandle hDevHandle , const char *pcBuf);
uchar (*EA_ucGetLineStatus)(DevHandle hDevHandle,uchar *pucRet);
uchar (*EA_ucInitRingDetect)(DevHandle hDevHandle);
uchar (*EA_ucRingDetect)(DevHandle hDevHandle);
uchar (*EA_ucAnswerModem)(DevHandle hDevHandle , uchar ucBPS , uchar *pucRet);
uchar (*EA_ucDialOff)(DevHandle hDevHandle);
uchar (*EA_ucClrModemRecBuf)(DevHandle hDevHandle);
uchar (*EA_ucIfModemRecBufEmpty)(DevHandle hDevHandle,uchar *pucBufStatus);
// 供IO模块使用
uchar (*EA_ucSendAsys)(DevHandle hDevHandle , uint uiLen , const char *pcBuf);
uchar (*EA_ucReadAsys)(DevHandle hDevHandle , uint uiSecond , uint uiReadLen , void *pvBuf , uint *puiRealLen );
uchar (*EA_ucSendSdlc)(DevHandle hDevHandle , uint uiLen , const char *pcBuf);
uchar (*EA_ucReadSdlc)(DevHandle hDevHandle , uint uiSecond , void *pvBuf , uint *puiRealLen );
uchar (*EA_MODEM_ucDrvOpen)(void);
uchar (*EA_MODEM_ucDrvClose)(DevHandle hDevHandle) ;
uchar (*EA_MODEM_ucInitPpp)( DevHandle hDev );
uchar (*EA_MODEM_ucCallPpp)(DevHandle hDevHandle , void *ptPppPara);
uchar (*EA_MODEM_ucDialOffPpp)(DevHandle hDevHandle);
uchar (*EA_MODEM_ucGetState)( DevHandle hDev,void *ptEventState );
uchar (*EA_ucIfPhoneUsed)(DevHandle hDevHandle);
void (*EA_ucModemInit)(void);
uchar (*EA_ucModemIoctl)(DevHandle hDev,ulong cmd,void *argu);
void *Reserved;
}ET_MODEM_BASE_EXPORT;
typedef struct
{
//供生产测试使用
void (*EI_vInitMnwk)(void);
void (*EI_vUnMnwk)(void);
uchar (*EI_ucMnwkSendSdlc)(uint uiLen , char *pcBuf);
void (*EI_vOffHook)(void);
void (*EI_vOnHook)(void);
void (*EI_vLineToModem)(void);
void (*EI_vLineToPhone)(void);
uchar (*EA_MODEM_ucDrvOpen)(void);
uchar (*EA_MODEM_ucDrvClose)(DevHandle hDevHandle);
void *Reserved;
}ET_MODEM_FACTORY_EXPORT;
// 本模块提供的函数出口表结构定义
typedef struct
{
ET_MODEM_BASE_EXPORT *ptBase;
ET_MODEM_FACTORY_EXPORT *ptFactory;
//扩展保留接口
void *Reserved;
}ET_MODEM_EXPORT_TABLE;
#ifdef PLATFORM_IN_PC
extern ET_MODEM_EXPORT_TABLE **EG_PC_ptModemExportTable;
#define EG_ptModemExportTable (*EG_PC_ptModemExportTable)
#else
extern ET_MODEM_EXPORT_TABLE *EG_ptModemExportTable;
#endif
/**********************************************************************
常量定义
**********************************************************************/
/**********************************************************************
全局变量
**********************************************************************/
/**********************************************************************
全局函数声明
**********************************************************************/
#ifndef IN_DRV
#define EA_ucInitDial EG_ptModemExportTable->ptBase->EA_ucInitDial
#define EA_ucInitSdlc EG_ptModemExportTable->ptBase->EA_ucInitSdlc
#define EA_ucIfExistDialTone EG_ptModemExportTable->ptBase->EA_ucIfExistDialTone
#define EA_ucDial EG_ptModemExportTable->ptBase->EA_ucDial
#define EA_ucGetLineStatus EG_ptModemExportTable->ptBase->EA_ucGetLineStatus
#define EA_ucInitRingDetect EG_ptModemExportTable->ptBase->EA_ucInitRingDetect
#define EA_ucRingDetect EG_ptModemExportTable->ptBase->EA_ucRingDetect
#define EA_ucAnswerModem EG_ptModemExportTable->ptBase->EA_ucAnswerModem
#define EA_ucDialOff EG_ptModemExportTable->ptBase->EA_ucDialOff
#define EA_ucClrModemRecBuf EG_ptModemExportTable->ptBase->EA_ucClrModemRecBuf
#define EA_ucSendAsys EG_ptModemExportTable->ptBase->EA_ucSendAsys
#define EA_ucReadAsys EG_ptModemExportTable->ptBase->EA_ucReadAsys
#define EA_ucSendSdlc EG_ptModemExportTable->ptBase->EA_ucSendSdlc
#define EA_ucReadSdlc EG_ptModemExportTable->ptBase->EA_ucReadSdlc
#define EA_ucIfModemRecBufEmpty EG_ptModemExportTable->ptBase->EA_ucIfModemRecBufEmpty
#define EA_ucModemInit EG_ptModemExportTable->ptBase->EA_ucModemInit
#define EA_ucModemIoctl EG_ptModemExportTable->ptBase->EA_ucModemIoctl
//供IO模块使用
#define EA_MODEM_ucDrvOpen EG_ptModemExportTable->ptBase->EA_MODEM_ucDrvOpen
#define EA_MODEM_ucDrvClose EG_ptModemExportTable->ptBase->EA_MODEM_ucDrvClose
#define EA_MODEM_ucInitPpp EG_ptModemExportTable->ptBase->EA_MODEM_ucInitPpp
#define EA_MODEM_ucCallPpp EG_ptModemExportTable->ptBase->EA_MODEM_ucCallPpp
#define EA_MODEM_ucDialOffPpp EG_ptModemExportTable->ptBase->EA_MODEM_ucDialOffPpp
#define EA_MODEM_ucGetState EG_ptModemExportTable->ptBase->EA_MODEM_ucGetState
//供生产测试使用
#define EI_vInitMnwk EG_ptModemExportTable->ptFactory->EI_vInitMnwk
#define EI_vUnMnwk EG_ptModemExportTable->ptFactory->EI_vUnMnwk
#define EI_ucMnwkSendSdlc EG_ptModemExportTable->ptFactory->EI_ucMnwkSendSdlc
#define EI_vOffHook EG_ptModemExportTable->ptFactory->EI_vOffHook
#define EI_vOnHook EG_ptModemExportTable->ptFactory->EI_vOnHook
#define EI_vLineToModem EG_ptModemExportTable->ptFactory->EI_vLineToModem
#define EI_vLineToPhone EG_ptModemExportTable->ptFactory->EI_vLineToPhone
#define EA_ucIfPhoneUsed EG_ptModemExportTable->ptBase->EA_ucIfPhoneUsed
#endif
#ifdef __cplusplus
}
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -