亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? zjmdmfuc.c

?? 這個(gè)程序是我們公司自己開發(fā)的modem卡的驅(qū)動(dòng)程序
?? C
字號(hào):
/*************************************************************************
*	File name		: zjmdmdrv.c
*	Subsystem	: modem卡驅(qū)動(dòng)程序
*	Target env	: Linux
*	Author		: 謝紅偉
*	Last modified	: 2002/04/30
*	Description	: This file contains public function and macro for access zj-modem driver
*	Copyright	: zjkj
*	Note			: 
**************************************************************************/
#include <unistd.h>
#include <fcntl.h>
#include "pthread.h"
#include "../tdkio/pubdef.h"
#include "../tdkio/pubfunc.h"
#include "zjmdmfuc.h"

/************* Private macro define ********************/
#define	only_DisconnCH(fd,chl_id)															\
	ioctl((fd),IOCTL_CMD_DISCONN | ((chl_id)<<4))

/******************************************************
* type:public
* 啟動(dòng)系統(tǒng)
*******************************************************/
void zj_SystemStart()
{
	pthread_mutex_init (&mutex_comd, NULL);
}

/*******************************************************
* type:public
* 系統(tǒng)終止
*******************************************************/
void zj_SystemExit()
{
	pthread_mutex_destroy (&mutex_comd);
}

/***********************************************
* 給modem卡發(fā)送數(shù)據(jù)
**********************************************/
inline ssize_t zj_write(int fd,char *Write_buf,unsigned long size,unsigned char chl_id,time_t timeout)
{
	unsigned long len,sent_bytes = 0,ret;
	time_t start_time = time(NULL);
	if(fd<1) return -1;
	if(fd<1 || chl_id>=CHL_NUM) return -1;
	if(timeout<=0) timeout = DEF_SEND_TIMEOUT;
	while(sent_bytes<size)
	{	
		len = size-sent_bytes;
		len = (len <<3) | (chl_id & 0x07);
		ret = write(fd,Write_buf+sent_bytes,len);
		if(ret>0)
			sent_bytes += ret;
		else if(ret==0)
			sleep(1);
		else
			return sent_bytes;
		if(time(NULL) - start_time > timeout)
			return sent_bytes;
	}
	return sent_bytes;
}

/***********************************************
* 從卡上收數(shù)據(jù)
**********************************************/
inline ssize_t zj_read(int fd,char *Read_buf,unsigned long size,unsigned char chl_id)
{
	unsigned long len;
	if(fd<1 || chl_id>=CHL_NUM) return -1;
	len = size;
	len = (len <<3) | (chl_id & 0x07);
	return read(fd,Read_buf,len);
}


/************************************************************
* 清空讀緩沖
*************************************************************/
int zj_clean_read_buffer(int fd,unsigned char chl_id)
{
	int try_count;
	time_t start_time;
	char tmp_buf[1024];
#ifdef _DEBUG
	t_TdkMdmChl tdk;
	Log(&tdk,"Cleaning read buffer...\n");
#endif
	if(fd<0 || chl_id>=CHL_NUM) return;
	if(fcntl (fd, F_SETFL,fcntl (fd, F_GETFL, 0) | O_NONBLOCK)<0)
		return -1;
	time(&start_time);
	while(1)
	{
		if(zj_read(fd,tmp_buf,sizeof(tmp_buf),chl_id)<=0)
		{
			try_count++;
			if(try_count>MAX_CLEAN_TIMES)
				return 0;
			usleep(10*1000);
		}
		else
		{
			try_count = 0;
		}
		usleep(1000);
		if(time(NULL)-start_time>MAX_CLEAN_BUF_TIME)
		{
#ifdef _DEBUG
			Log(&tdk,"Fail:cleaning read buffer!\n");
#endif
			return -1;
		}
	}
	return 0;
}

/******************************************************
*得到通道的掛機(jī)狀態(tài)
******************************************************/
int zj_GetHangupState(int fd,unsigned char chl_id)
{
	int i,state_date;
	zj_QueryState(fd,chl_id);
	for(i=0; i<MAX_QUERY_TIME; i++)
	{
		usleep(1000);
		state_date = zj_GetQueryResult(fd,chl_id);
		if((unsigned char)state_date == CMD_HANGUP_BACK ||
			(unsigned char)state_date == CMD_BRINGUP_BACK)
		{
			return state_date;
		}
	}
	return -1;
}

/******************************************************
*確保通道工作正常
******************************************************/
int ValidateChannel(int fd,unsigned char chl_id)
{
	int state_date;
	pthread_mutex_lock(&mutex_comd);
	state_date = zj_GetHangupState(fd,chl_id);
	if((unsigned char)state_date == CMD_HANGUP_BACK ||
		(unsigned char)state_date == CMD_BRINGUP_BACK)
	{
		pthread_mutex_unlock(&mutex_comd);
		return 0;
	}
	//查狀態(tài)失敗,開通道
	zj_OpenCH(fd,chl_id);
	usleep(10*1000);
	state_date = zj_GetHangupState(fd,chl_id);
	if((unsigned char)state_date == CMD_HANGUP_BACK ||
		(unsigned char)state_date == CMD_BRINGUP_BACK)
	{
		pthread_mutex_unlock(&mutex_comd);
		return 1;
	}
	//開通道后查狀態(tài)仍然失敗,恢復(fù)錯(cuò)誤的序列
	zj_RecoverHead(fd,chl_id);
	state_date = zj_GetHangupState(fd,chl_id);
	if((unsigned char)state_date == CMD_HANGUP_BACK ||
		(unsigned char)state_date == CMD_BRINGUP_BACK)
	{
		pthread_mutex_unlock(&mutex_comd);
		return 2;
	}
	//仍然失敗,再開通道
	zj_OpenCH(fd,chl_id);
	usleep(10*1000);
	state_date = zj_GetHangupState(fd,chl_id);
	if((unsigned char)state_date == CMD_HANGUP_BACK ||
		(unsigned char)state_date == CMD_BRINGUP_BACK)
	{
		pthread_mutex_unlock(&mutex_comd);
		return 3;
	}
	pthread_mutex_unlock(&mutex_comd);
	return -1;
}

/******************************************************
*掛斷modem指定的通道的連接
******************************************************/
int zj_DisconnCH(int fd,unsigned char chl_id)
{
	int i;
	for(i=0;i<MAX_QUERY_TIME;i++)	//wait for command send over
	{
		if(zj_CmdSendOver(fd,chl_id))
			break;
		usleep(1000);
	}
	if(i>=MAX_QUERY_TIME)
	{
		return -1;
	}
	only_DisconnCH(fd,chl_id);
	switch(ValidateChannel(fd,chl_id))
	{
	case 0:	//正常
		return 0;
		break;
	case 1:	//開通道后正常
	case 2:	//恢復(fù)錯(cuò)誤序列后正常
	case 3:	//再開通道后正常
		return only_DisconnCH(fd,chl_id);
		break;
	default:	//錯(cuò)誤
			return -1;
	}
	return 0;
}


?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲mv大片欧洲mv大片精品| 国产一区二区在线免费观看| 欧美变态凌虐bdsm| 在线观看国产一区二区| 国产成人av电影在线观看| 天堂在线亚洲视频| 亚洲精品成a人| 国产精品久久精品日日| 欧美一级xxx| 欧美日韩亚州综合| 91视视频在线观看入口直接观看www| 久久99精品国产.久久久久久| 亚洲一区二区三区四区五区中文 | 精品成人一区二区| 舔着乳尖日韩一区| 亚洲国产精品久久人人爱蜜臀| 国产亚洲精品aa午夜观看| 91精品在线免费观看| 欧美综合亚洲图片综合区| 99re热视频精品| 国产黄人亚洲片| 国产一二精品视频| 久久99精品视频| 久久疯狂做爰流白浆xx| 石原莉奈在线亚洲二区| 五月婷婷欧美视频| 午夜成人在线视频| 日韩—二三区免费观看av| 亚洲网友自拍偷拍| 午夜精品一区在线观看| 亚洲在线中文字幕| 亚洲国产一区视频| 亚洲国产美女搞黄色| 亚洲成人精品在线观看| 亚洲成人中文在线| 婷婷六月综合网| 日本在线不卡视频| 麻豆国产一区二区| 狠狠色伊人亚洲综合成人| 国产一区二区三区黄视频 | 国产三级一区二区| 日本一区二区三区国色天香 | 日韩你懂的在线观看| 日韩一区二区电影在线| 日韩一级黄色片| 精品88久久久久88久久久| 欧美精品一区二| 久久久青草青青国产亚洲免观| 国产亚洲精品aa| 综合欧美一区二区三区| 亚洲影视在线观看| 人人爽香蕉精品| 国产精品一区免费视频| 成人av网在线| 欧美日韩一区高清| 欧美一级理论片| 国产农村妇女毛片精品久久麻豆| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 夜夜嗨av一区二区三区四季av| 一区二区三区蜜桃| 美国欧美日韩国产在线播放| 国产精品18久久久久久vr| 波多野洁衣一区| 精品视频一区三区九区| 精品日韩欧美一区二区| 国产色产综合色产在线视频 | 免费高清在线视频一区·| 国产一区二区日韩精品| jlzzjlzz亚洲女人18| 欧美日韩精品一区二区三区四区| 欧美一区二区日韩一区二区| 日本一区二区三区dvd视频在线| 亚洲精品久久久蜜桃| 久久精品久久久精品美女| 粉嫩13p一区二区三区| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 欧美一区二区在线不卡| 国产精品不卡一区二区三区| 亚洲成人在线观看视频| 国产成人av电影在线| 欧美色涩在线第一页| 久久久久久免费网| 亚洲亚洲精品在线观看| 国产精品一级在线| 精品视频123区在线观看| 久久色视频免费观看| 亚洲一区二区欧美日韩 | 337p亚洲精品色噜噜噜| ...av二区三区久久精品| 日韩av二区在线播放| 91女神在线视频| xnxx国产精品| 水野朝阳av一区二区三区| 成人激情文学综合网| 欧美成人综合网站| 亚洲国产日日夜夜| 99久久精品免费精品国产| 欧美大片在线观看一区二区| 一区二区三区精品久久久| 国产成人在线视频网址| 日韩欧美国产午夜精品| 亚洲成人精品影院| 日本道色综合久久| 国产精品国产三级国产有无不卡| 精品一区二区三区蜜桃| 欧美老女人在线| 亚洲一区二区三区四区五区中文 | 欧美日韩国产免费| 亚洲天堂网中文字| 成人一级片网址| 欧美精品一区二区高清在线观看| 亚洲成在线观看| 欧美在线不卡一区| 亚洲精品乱码久久久久| 91丨九色丨蝌蚪丨老版| 国产午夜精品美女毛片视频| 韩国成人精品a∨在线观看| 欧美一区二区精品在线| 日韩高清不卡一区| 欧美日韩另类国产亚洲欧美一级| 一区二区三区不卡视频| 99久久综合精品| 国产精品国产精品国产专区不片| 国产精品一区二区在线播放| wwwwww.欧美系列| 久久国产精品区| 欧美v亚洲v综合ⅴ国产v| 久久精品二区亚洲w码| 91精品国产综合久久久久久漫画 | 欧美另类久久久品| 天堂成人国产精品一区| 91精品国产色综合久久不卡电影| 天天操天天色综合| 4438成人网| 麻豆成人久久精品二区三区小说| 91精品久久久久久久久99蜜臂| 日本中文一区二区三区| 日韩一区二区不卡| 国产一区二区免费视频| 国产丝袜欧美中文另类| 成人18视频在线播放| 亚洲九九爱视频| 欧美亚洲禁片免费| 日本亚洲三级在线| 久久综合久久久久88| 国产电影精品久久禁18| 中文字幕一区二区在线观看| 色婷婷综合久久久中文一区二区 | 日韩欧美国产一区二区在线播放| 欧美a一区二区| 久久一日本道色综合| 国产a久久麻豆| 亚洲九九爱视频| 51精品国自产在线| 国产sm精品调教视频网站| 亚洲日本va在线观看| 欧美日韩视频专区在线播放| 美国毛片一区二区三区| 国产精品欧美一区喷水| 欧美色综合天天久久综合精品| 日韩av一区二区三区四区| 国产亚洲综合色| 91蝌蚪porny九色| 免费成人在线网站| 亚洲国产精品二十页| 欧美午夜精品一区二区蜜桃| 久久精品国产精品青草| 国产精品久久久久久久久久久免费看| 91久久国产综合久久| 久久不见久久见免费视频1| 国产精品久久国产精麻豆99网站| 欧美日韩国产综合一区二区三区 | 99re热这里只有精品视频| 性做久久久久久久久| 久久久99精品免费观看| 一本久久综合亚洲鲁鲁五月天 | 欧美日韩一区二区不卡| 国产在线视视频有精品| 亚洲日本在线a| 精品国产乱码久久久久久牛牛| 99精品欧美一区二区蜜桃免费| 亚洲成在人线免费| 国产视频亚洲色图| 欧美日韩高清一区二区| 国产91在线观看丝袜| 日韩精品一级中文字幕精品视频免费观看 | 91国模大尺度私拍在线视频| 激情文学综合网| 亚洲高清一区二区三区| 国产精品久久久久久亚洲毛片| 欧美日韩国产综合视频在线观看 | 日韩欧美三级在线| 日本高清不卡视频| 成人免费看片app下载| 青青草伊人久久| 亚洲综合偷拍欧美一区色| 欧美极品少妇xxxxⅹ高跟鞋| 欧美美女网站色| 91免费精品国自产拍在线不卡| 久久精品国产77777蜜臀|