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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dms100_drv.c

?? 仿真測試接口程序。根據電總《用戶接入網管理功能與管理接口技術規范》之《與112集中受理系統接口規范》
?? C
?? 第 1 頁 / 共 2 頁
字號:
#include <poll.h>#include <stdio.h>#include <stdlib.h>#include "simdrv.h"#include "simu112.h"#include "simufunc.h"#define MAX_FAIL_TIMES		4#define WAIT_TIME		5000#define RESULT_OTHER		-4#define RESULT_NULL		-5#define RESULT_BUSY		-6#define RESULT_TIMEOUT		-7FILE *lp;static void send_break(int sock);int f_dms100_result_receive(int sock, char *szBuffer, char *end_str1, char *end_str2, int wait_time);int f_dms100_send_wakeup(int port_fd, char *username, char *password);int f_dms100_test_process(int port_fd, char *phone_number, TESTMSG * testmsg);int f_dms100_analysis(char *receive_str, TESTMSG * testmsg);void f_dms100_get_res(char *result, char *val_str);void f_dms100_get_cap(char *result, char *val_str);void f_dms100_get_vol(char *result, char *val_str);static int f_dms100_is_lock(char *buffer);static char receive_str[2048];/*********************************************************Function:int dms100_proc(int port_fd, char *phone_number, char *username, char *password, TESTMSG * testmsg)Narrative:	Called in simdrv.c. It is the main flow of dms100_drv driver.Param:  int port_fd     - socket id	char *phone_number - char pointer to accessed telephone number string	char *username - char pointer to login name of switch port	char *password - char pointer to switch port password	TESTMSG * testmsg - struct of test messageReturn: 0   OK or Null TelephoneNumber or Line Busy.	AM_UNREADY_ERROR	  	AM_NO_RESPONSE	AM_PORT_DOWN	AM_UNREADY_ERROR	AM_TIME_OUT*********************************************************/int dms100_proc(int port_fd, char *phone_number, char *username, char *password, TESTMSG * testmsg){	int ret;	int test_stat = 1;	int fail_count;	struct tm *ctime;	time_t lt;#ifdef DEBUG	lt = time(NULL);	ctime = localtime(&lt);	lp = backup_log("./dms100_drv.log");	/* lp=fopen("./dms100_drv.log","a+"); */	fprintf(lp, "\n>>> Start DMS100 Test at %4d.%02d.%02d %02d:%02d:%02d <<<\n", ctime->tm_year > 90 ? ctime->tm_year + 1900 : ctime->tm_year + 2000, ctime->tm_mon + 1, ctime->tm_mday, ctime->tm_hour, ctime->tm_min, ctime->tm_sec);	fflush(lp);#endif	fail_count = 0;	ret = 1;	while (fail_count < MAX_FAIL_TIMES && ret)	{		ret = f_dms100_send_wakeup(port_fd, username, password);		++fail_count;	}#ifdef DEBUG	fprintf(lp, "ret=%d, fail_count=%d\n", ret, fail_count);	fflush(lp);#endif	if (!ret)	{		ret = f_dms100_test_process(port_fd, phone_number, testmsg);	}#ifdef DEBUG	lt = time(NULL);	ctime = localtime(&lt);	fprintf(lp, "\n>>> Stop DMS100 Test at %4d.%02d.%02d %02d:%02d:%02d <<<\n", ctime->tm_year > 90 ? ctime->tm_year + 1900 : ctime->tm_year + 2000, ctime->tm_mon + 1, ctime->tm_mday, ctime->tm_hour, ctime->tm_min, ctime->tm_sec);	fflush(lp);	fclose(lp);#endif	switch (ret)	{	case -1:		ret = AM_UNREADY_ERROR;		break;	case -2:		ret = AM_NO_RESPONSE;		break;	case -3:		ret = AM_PORT_DOWN;		break;	case -4:		ret = AM_UNREADY_ERROR;		break;	case -5:		ret = 0;		strcpy(testmsg->TestResult.TestConclusion, "V08");		break;	case -6:		ret = 0;		strcpy(testmsg->TestResult.TestConclusion, "V6");		break;	case -7:		ret = AM_TIME_OUT;		break;	}	return (ret);}/* end of dms100_drv *//* Function dms100_conn_switch()   Call by TST-QUERY Test   Return:  0   OK   -1   Can not connect Switch, or Switch no response   -2   Connect Switch OK, but wake up fail *//*********************************************************Function:int dms100_conn_switch(int port_fd)Narrative:	Detect if interface to switch runs well by sending a wakeup signal or a command.Param:	int port_fd	- socket idReturn:	0	OK.	-1	No fd ready when timeout.	-2	an error occur.*********************************************************/int dms100_conn_switch(int port_fd){	int ret, ret_val;	struct tm *ctime;	time_t lt;#ifdef DEBUG	lt = time(NULL);	ctime = localtime(&lt);	lp = backup_log("./dms100_drv.log");	fprintf(lp, "\n>>> Start DMS100 Test at %4d.%02d.%02d %02d:%02d:%02d <<<\n", ctime->tm_year > 90 ? ctime->tm_year + 1900 : ctime->tm_year + 2000, ctime->tm_mon + 1, ctime->tm_mday, ctime->tm_hour, ctime->tm_min, ctime->tm_sec);	fflush(lp);#endif	ret_val = 0;	receive_str[0] = 0;	send_break(port_fd);	ret = f_dms100_result_receive(port_fd, receive_str, "\r?", NULL, 5000);	if (ret == 0)		ret_val = 0;	else if (strlen(receive_str) == 0)		ret_val = -1;	else		ret_val = -2;#ifdef DEBUG	lt = time(NULL);	ctime = localtime(&lt);	fprintf(lp, "\n>>> Stop DMS100 Test at %4d.%02d.%02d %02d:%02d:%02d <<<\n", ctime->tm_year > 90 ? ctime->tm_year + 1900 : ctime->tm_year + 2000, ctime->tm_mon + 1, ctime->tm_mday, ctime->tm_hour, ctime->tm_min, ctime->tm_sec);	fflush(lp);	fclose(lp);#endif	return (ret_val);}/*********************************************************Function:int f_dms100_send_wakeup(int port_fd, char *username, char *password)Narrative:	Active switch port by sending wakeup signal and then enter test path.Param:	int port_fd	- socket id	char *username - login name	char *password - login passwordReturn:	0   OK.	-1	No expected string.	-2	No fd ready when timeout.	-3	An error occur when performing poll or read.	AM_UNREADY_ERROR	Switch is not ready.	AM_INVALID_PASSWORD	Invalid password.*********************************************************/int f_dms100_send_wakeup(int port_fd, char *username, char *password){	int ret;	char send_str[50];	/* char username[]="FSE"; */	f_trim_space(password);	/* send Break string to switch port */	send_break(port_fd);	ret = f_dms100_result_receive(port_fd, receive_str, "\r?", NULL, 5000);	/* send LOGIN */	writeport(port_fd, "LOGIN\r");	ret = f_dms100_result_receive(port_fd, receive_str, "Enter User Name\n\r>", "User already logged in on", 5000);	if (strstr(receive_str, "Enter User Name"))	{		/* send User Name */		sprintf(send_str, "%s\r", username);		writeport(port_fd, send_str);		ret = f_dms100_result_receive(port_fd, receive_str, "\r>", NULL, 5000);		if (!strstr(receive_str, "Enter Password"))			return (AM_UNREADY_ERROR);	/* fail! */		/* send Password */		sprintf(send_str, "%s\r", password);		writeport(port_fd, send_str);		ret = f_dms100_result_receive(port_fd, receive_str, "\r>", NULL, 5000);		sprintf(send_str, "%s Logged in on", username);		if (!strstr(receive_str, send_str))			return (AM_INVALID_PASSWORD);		/* fail! */	}	else if (strstr(receive_str, "User already logged in") || strstr(receive_str, "User already logging in"))	{	}	else	{		return (AM_UNREADY_ERROR);	}	writeport(port_fd, "MAPCI NODISP;MTC;LNS;LTP;LTPLTA;\r");	ret = f_dms100_result_receive(port_fd, receive_str, "\r>", NULL, 5000);	/* if (!strstr(receive_str,"LTPLTA:"))	   return (AM_UNREADY_ERROR); */	/* send entrance system string */	return (0);}/* end of f_dms100_send_wakeup *//*********************************************************Function:int f_dms100_test_process(int port_fd, char *phone_number, TESTMSG * testmsg)Narrative:	Test 12 specialities of line.Param:	int port_fd	- socket id	char *phone_number - accessed telephone number	TESTMSG * testmsg	- struct of test messageReturn:	0   OK.	-1	Error occur when writing port.	-2	No fd ready when timeout.	-3	An error occur.	-5	Invalid telephone number.	-6	Line busy.********************************************************/int f_dms100_test_process(int port_fd, char *phone_number, TESTMSG * testmsg){	char test_str[50];	int ret;	int i;	int lock_flag = 0;	f_trim_space(phone_number);	/* send access line string to switch port */	sprintf(test_str, "POST D %s PRINT\r", phone_number);	writeport(port_fd, test_str);	ret = f_dms100_result_receive(port_fd, receive_str, "\r>", NULL, 10000);	if (ret != 0)									/* if fail then return */	{		goto _exit_dms100;	}	else	{		if (f_dms100_is_lock(receive_str))		{			lock_flag = 1;			/* send FRLS release Lock */			sprintf(test_str, "FRLS\r");			writeport(port_fd, test_str);			ret = f_dms100_result_receive(port_fd, receive_str, "\r>", NULL, 2000);		}		else if (strstr(receive_str, "Invalid Directory Number"))		{			ret = -5;									/* Null Telphone Number */			goto _exit_dms100;		}		else if (strstr(receive_str, "Invalid Symble"))		{			ret = -6;									/* Line Busy */			goto _exit_dms100;		}	}	/* send VDC */	sprintf(test_str, "VDC\r");	writeport(port_fd, test_str);	ret = f_dms100_result_receive(port_fd, receive_str, "\r>", NULL, 5000);	if (ret != 0)									/* if fail then return */	{		goto _exit_dms100;	}	else	{		if (strstr(receive_str, "Line state invalid") || strstr(receive_str, "Could not Seize Line"))		{			ret = -6;									/* Line Busy */			goto _exit_dms100;		}	}	/* start test */	sprintf(test_str, "LNTST\r");	writeport(port_fd, test_str);	ret = f_dms100_result_receive(port_fd, receive_str, "\r>", NULL, 10000);	if (ret != 0)									/* if fail then return */		goto _exit_dms100;	else	{		ret = f_dms100_analysis(receive_str, testmsg);	}_exit_dms100:	if (lock_flag)	{		/* send RTS, Lock Line */		sprintf(test_str, "RTS\r");		writeport(port_fd, test_str);		ret = f_dms100_result_receive(port_fd, receive_str, "\r>", NULL, 5000);	}	/* send release line string */	sprintf(test_str, "LTA RLS\r");	writeport(port_fd, test_str);	f_dms100_result_receive(port_fd, receive_str, "\r>", NULL, 5000);#ifdef DEBUG	fprintf(lp, "\nret=%d!\n", ret);	fflush(lp);#endif	return (ret);}																/* end f_dms100_test_process *//*********************************************************Function:int f_dms100_result_receive(int sock, char *szBuffer, char *end_str1, char *end_str2, int wait_time)Narrative:	Recieve responded string from switch after sending command.Param:	int sock - socket id	char *szBuffer - a pointer to receive_str	char *end_str1 - end lable1 of recieved stirng	char *end_str2 - end lable2 of recieved stirng	int wait_time - poll system call waiting timeReturn:	0   OK.	-1	an error of hangup occur when reading.	-2	No fd ready when timeout.	-3	an error occur when performing poll or read.*********************************************************/int f_dms100_result_receive(int sock, char *szBuffer, char *end_str1, char *end_str2, int wait_time){	int p;	int retval, ret, rc;	char ch;	char abnormal_str[] = "OPTION>]\n\r>";	struct pollfd pollfdsp[1];	pollfdsp[0].fd = sock;	pollfdsp[0].events = POLLIN;	pollfdsp[0].revents = 0;	retval = 0;	p = 0;	szBuffer[p] = '\0';	while (1)	{		ret = poll(pollfdsp, 1, wait_time);		if (ret < 0)		{			retval = -3;			break;		}		else if (ret == 0)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品视频在线免费| 丁香婷婷综合色啪| 97久久精品人人做人人爽| 91精品欧美综合在线观看最新| 国产精品久久久久精k8| 免费观看日韩电影| 欧美亚日韩国产aⅴ精品中极品| 国产欧美日韩另类一区| 精一区二区三区| 欧美日韩国产大片| 一区二区三区在线播放| 成熟亚洲日本毛茸茸凸凹| 欧美大片在线观看一区二区| 午夜在线成人av| 在线视频欧美精品| 国产精品国产精品国产专区不蜜 | 亚洲人成精品久久久久久| 韩日欧美一区二区三区| 欧美日韩aaa| 亚洲国产欧美一区二区三区丁香婷| 国产ts人妖一区二区| 精品日韩99亚洲| 全国精品久久少妇| 88在线观看91蜜桃国自产| 一区二区三区免费观看| 91亚洲精品久久久蜜桃网站| 久久久久青草大香线综合精品| 青青草97国产精品免费观看| 欧美日韩黄视频| 亚洲成人午夜电影| 欧美综合久久久| 一卡二卡欧美日韩| 在线影视一区二区三区| 亚洲日本免费电影| 99久久久无码国产精品| 国产精品久久久久久久久久久免费看 | 欧美成人精品3d动漫h| 日韩国产欧美三级| 7777精品伊人久久久大香线蕉超级流畅 | 在线观看视频一区二区 | 日韩免费高清视频| 人人狠狠综合久久亚洲| 欧美一级免费观看| 免费看欧美女人艹b| 日韩女优av电影| 久久精品99国产精品日本| 欧美mv日韩mv| 国产精品中文字幕日韩精品| 国产午夜三级一区二区三| 国产成a人无v码亚洲福利| 伦理电影国产精品| 欧美一二区视频| 久久91精品国产91久久小草| 亚洲精品一区二区三区蜜桃下载| 久久超碰97中文字幕| 久久久久亚洲综合| youjizz久久| 一区二区三区免费在线观看| 欧美日韩黄色影视| 久久国产精品99精品国产| 久久美女艺术照精彩视频福利播放| 国产成人无遮挡在线视频| 亚洲欧洲日韩综合一区二区| 91国在线观看| 天天影视网天天综合色在线播放 | a亚洲天堂av| 亚洲免费看黄网站| 9191成人精品久久| 国产在线精品一区二区| 中国色在线观看另类| 色综合激情五月| 日韩国产欧美在线播放| 久久久久久久久久看片| av不卡一区二区三区| 亚洲超碰97人人做人人爱| 日韩精品专区在线影院重磅| 成人午夜视频在线观看| 亚洲精品免费播放| 日韩一级黄色片| 风流少妇一区二区| 亚洲一区二区精品视频| 精品国产免费人成在线观看| 成人av影视在线观看| 亚洲成人中文在线| 久久久不卡影院| 在线影院国内精品| 国产在线播放一区三区四| 亚洲日本va午夜在线影院| 制服丝袜日韩国产| 成人美女视频在线观看18| 亚洲va欧美va人人爽| 国产亚洲一区二区三区四区| 在线观看欧美黄色| 国产剧情在线观看一区二区| 亚洲精品国产品国语在线app| 一区二区高清在线| 欧美一级片在线看| 91在线视频播放| 久久精品免费观看| 亚洲精品成人在线| 久久综合成人精品亚洲另类欧美| 91视频免费观看| 国产真实乱子伦精品视频| 亚洲精品国产精品乱码不99| 精品乱码亚洲一区二区不卡| 91行情网站电视在线观看高清版| 国产综合色精品一区二区三区| 亚洲精品国产精华液| 久久亚洲捆绑美女| 欧美日韩第一区日日骚| www.欧美色图| 韩国三级中文字幕hd久久精品| 一个色在线综合| 中文字幕欧美国产| 日韩精品中文字幕一区| 欧洲av一区二区嗯嗯嗯啊| 国产乱码精品1区2区3区| 日韩av一二三| 亚洲精品欧美专区| 国产精品―色哟哟| 精品欧美一区二区在线观看| 欧美日韩精品一区视频| 色综合天天天天做夜夜夜夜做| 国产一区二区剧情av在线| 婷婷久久综合九色综合绿巨人| 亚洲女同ⅹxx女同tv| 国产区在线观看成人精品| 日韩欧美电影一区| 欧美日韩精品免费观看视频| 91女厕偷拍女厕偷拍高清| 国产91精品露脸国语对白| 久久成人综合网| 日本视频一区二区三区| 亚洲国产你懂的| 亚洲男人的天堂一区二区| 中文字幕欧美三区| 国产亚洲自拍一区| 欧美精品一区二区在线播放| 制服视频三区第一页精品| 欧美色区777第一页| 日本乱人伦aⅴ精品| 97久久精品人人澡人人爽| 不卡的av电影在线观看| 国产99久久久国产精品潘金 | 亚洲黄色尤物视频| 亚洲色图欧美在线| 中文字幕一区二区三区视频| 国产免费观看久久| 国产人久久人人人人爽| 久久综合av免费| 久久婷婷国产综合国色天香| 欧美va亚洲va在线观看蝴蝶网| 日韩一区二区三区在线视频| 91麻豆精品国产91久久久久久| 欧美日韩三级在线| 欧美群妇大交群中文字幕| 欧美体内she精视频| 欧美性欧美巨大黑白大战| 欧美色欧美亚洲另类二区| 亚洲色图在线视频| 日韩毛片精品高清免费| 亚洲人成7777| 一区二区三区免费在线观看| 一区二区在线观看视频| 亚洲一区二区三区四区在线观看| 一区二区三区四区高清精品免费观看| 亚洲免费av观看| 一区二区三区四区中文字幕| 亚洲国产精品一区二区www| 亚洲午夜精品网| 日韩黄色免费电影| 美国精品在线观看| 激情小说亚洲一区| 大桥未久av一区二区三区中文| 成人高清视频免费观看| 色婷婷激情一区二区三区| 欧美三级日本三级少妇99| 欧美丰满嫩嫩电影| 欧美成人a在线| 国产女人18水真多18精品一级做 | 91精品黄色片免费大全| 欧美本精品男人aⅴ天堂| 久久久久亚洲综合| ㊣最新国产の精品bt伙计久久| 亚洲综合丁香婷婷六月香| 丝袜亚洲精品中文字幕一区| 久久99久久久久| 成人深夜视频在线观看| 91福利视频网站| 日韩精品一区二区三区蜜臀| 国产欧美精品一区二区三区四区| 自拍视频在线观看一区二区| 午夜亚洲国产au精品一区二区| 久久精品国产久精国产爱| 风间由美一区二区av101| 在线中文字幕一区二区| 日韩欧美卡一卡二| 国产精品欧美极品| 丝袜亚洲另类丝袜在线| 国产成人免费视频一区|