📄 zjmdmfuc.h
字号:
//************************************************
// FileName : zjmdmfuc.h
// description:public function for access zj-modem driver
// author:XieHongwei
// date:2002-04-26
//***********************************************/
#ifndef ZJMDMFUC_H
#define ZJMDMFUC_H
/************ define the ioctl cmd **********/
#define IOCTL_CMD_SHUTCH 0x6b00
#define IOCTL_CMD_OPENCH 0x6b01
#define IOCTL_CMD_DISCONN 0x6b02
#define IOCTL_CMD_MAKECALL 0x6b03
#define IOCTL_CMD_GETSTAT 0x6b04
#define IOCTL_CMD_IsWriteOver 0x6b05
#define IOCTL_CMD_CmdSendOver 0x6b06
#define IOCTL_CMD_GetRdableCH 0x6b07
#define IOCTL_CMD_CORRECTTIME 0x6b08 //纠正系统时间
#define IOCTL_CMD_RESETCH 0x6b09
#define IOCTL_CMD_CARD_USABLE 0x6b0a
#define IOCTL_CMD_QUERY_STATE 0x6b0b
#define IOCTL_CMD_GetQueryResult 0x6b0c //得到查询结果
#define IOCTL_CMD_RecoverHead 0x6b0d
#define CMD_CONN_SUCCESS 0xc4 //连接成功
#define CMD_CONN_BUSY 0xc5 //占线
#define CMD_CONN_FAIL 0xc6 //连接失败
#define CMD_HANGUP_BACK 0xd0 //返回查询的状态:挂机
#define CMD_BRINGUP_BACK 0xd1 //返回查询的状态:摘机
#define MAX_CLEAN_BUF_TIME 10
#define MAX_CLEAN_TIMES 20
#define DEF_SEND_TIMEOUT 60 //秒
#define MAX_QUERY_TIME 100 //毫秒
#define ZJMDM_NAME "/dev/zjmdmdrv"
#define INVALID_MDMNO 0x22 /*无效的modem号*/
#define INVALID_CHLNO INVALID_MDMNO
#define INVALID_STATE 0x33 /*无效的连接状态*/
#define MDM_NUM 8
#define CHL_NUM 4
//=========================================
//============= ioctl macro difine ================
//=========================================
/******************************************************
*打开modem指定的通道
******************************************************/
#define zj_OpenCH(fd,chl_id) \
ioctl((fd),IOCTL_CMD_OPENCH | ((chl_id)<<4))
/******************************************************
*通过modem指定的通道呼出
******************************************************/
#define zj_CallOut(fd,chl_id,phone) \
ioctl((fd),IOCTL_CMD_MAKECALL | ((chl_id)<<4),phone)
/******************************************************
*关闭modem指定的通道
******************************************************/
#define zj_ShutCH(fd,chl_id) \
ioctl((fd),IOCTL_CMD_SHUTCH | ((chl_id)<<4))
/******************************************************
*取得modem指定的通道的当前连接状态
*返回CMD_CONN_SUCCESS表示连接成功
******************************************************/
#define zj_GetCHState(fd,chl_id) \
ioctl((fd),IOCTL_CMD_GETSTAT | ((chl_id)<<4))
/******************************************************
*查看modem指定的通道的数据是否已发完
******************************************************/
#define zj_WriteIsOver(fd,chl_id) \
ioctl((fd),IOCTL_CMD_IsWriteOver | ((chl_id)<<4))
/******************************************************
*查看modem指定的通道的命令数据是否已发完
******************************************************/
#define zj_CmdSendOver(fd,chl_id) \
ioctl((fd),IOCTL_CMD_CmdSendOver | ((chl_id)<<4))
/******************************************************
*查看modem指定的通道是否有数据可读
******************************************************/
#define zj_GetReadableOfCH(fd,chl_id) \
ioctl((fd),IOCTL_CMD_GetRdableCH | ((chl_id)<<4))
/******************************************************
*校对linux的系统时间
******************************************************/
#define zj_CorrectSysTime(fd) \
ioctl((fd),IOCTL_CMD_CORRECTTIME | 0x0)
/******************************************************
*modem卡指定的通道的资源被重置
******************************************************/
#define zj_ResetCH(fd,chl_id) \
ioctl((fd),IOCTL_CMD_RESETCH | ((chl_id)<<4))
/******************************************************
*modem卡是否能用
******************************************************/
#define zj_CardUsable(fd) \
ioctl((fd),IOCTL_CMD_CARD_USABLE | 0x0)
/******************************************************
*发送查看modem指定的通道的挂机状态的命令
******************************************************/
#define zj_QueryState(fd,chl_id) \
ioctl((fd),IOCTL_CMD_QUERY_STATE | ((chl_id)<<4))
/******************************************************
*获得modem指定的通道的挂机状态值
******************************************************/
#define zj_GetQueryResult(fd,chl_id) \
ioctl((fd),IOCTL_CMD_GetQueryResult | ((chl_id)<<4))
/******************************************************
*恢复错误的数据头
******************************************************/
#define zj_RecoverHead(fd,chl_id) \
ioctl((fd),IOCTL_CMD_RecoverHead | ((chl_id)<<4))
/******************************************************
* 启动系统
*******************************************************/
void zj_SystemStart();
/*******************************************************
* 系统终止
*******************************************************/
void zj_SystemExit();
/******************************************************
*将数据写到modem指定的通道(阻塞/非阻塞)
******************************************************/
inline ssize_t zj_write(int fd,char *Write_buf,unsigned long size,
unsigned char chl_id,time_t timeout);
/******************************************************
*从modem指定的通道读取数据(阻塞/非阻塞)
******************************************************/
inline ssize_t zj_read(int fd,char *Read_buf,unsigned long size,
unsigned char chl_id);
/******************************************************
*将modem卡指定的通道的"读缓冲"清空
******************************************************/
int zj_clean_read_buffer(int fd,unsigned char chl_id);
/******************************************************
*挂断modem指定的通道的连接
******************************************************/
int zj_DisconnCH(int fd,unsigned char chl_id);
/******************************************************
*得到通道的挂机状态
******************************************************/
int zj_GetHangupState(int fd,unsigned char chl_id);
/******************************************************
全局变量
*******************************************************/
pthread_mutex_t mutex_comd;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -