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

📄 simutil.ec

📁 仿真测试接口程序。根据电总《用户接入网管理功能与管理接口技术规范》之《与112集中受理系统接口规范》
💻 EC
📖 第 1 页 / 共 2 页
字号:
				return 0;								/*have been found */			}		}		break;	case 2:		for (i = 0; i < device_head->count; i++)		{			/* printf("..RtuId=%s\n",(device_head->test_device+i)->RtuId); */			if (strcmp(temp_rtuid, (device_head->test_device + i)->RtuId) == 0)			{				/*success */				strcpy(sim_drv_addr, (device_head->test_device + i)->ServerAddress);				*sim_drv_port = (device_head->test_device + i)->ServerPort;				strcpy(term_srv->TSAddress, (device_head->test_device + i)->TSAddress);				strcpy(term_srv->TSPortNo, (device_head->test_device + i)->TSPortNo);				strcpy(term_srv->PortPassword, (device_head->test_device + i)->PortPassword);				strcpy(term_srv->SwitchUserName, (device_head->test_device + i)->SwitchUserName);				strcpy(term_srv->DialNumber, (device_head->test_device + i)->DialNumber);				term_srv->TestPortType = (device_head->test_device + i)->TestPortType;				term_srv->SwitchType = (device_head->test_device + i)->SwitchType;				term_srv->UseGrade = (device_head->test_device + i)->UseGrade;				return 0;								/*have been found */			}		}		break;	}	return 1;											/*can't be found */}int f_is_ts_busy(char *ts_address, int ts_port)		/* 1 - busy   0 - idle */{	DRIVER_STATUS *drv_ptr;	int i;	for (i = 0; i < MAX_FD; i++)	{		if (so[i].whichType == IS_SIMDRV)		{			for (drv_ptr = so[i].driverStatus; drv_ptr != NULL; drv_ptr = drv_ptr->next)			{				if ((drv_ptr->ts_port == ts_port) && (strcmp(drv_ptr->ts_address, ts_address) == 0))				{					if (drv_ptr->status == DRV_BUSY)						return (1);					else						return (0);				}			}		}	}	return (0);}/****************************************** *initailize the comparable standard value* *return 0:success                        * *       -1:failure                       * ******************************************//*int setCompareTable(DBPROCESS *dbproc)  */int setCompareTable(void){	EXEC SQL BEGIN DECLARE SECTION;	char s1[7];										/*CompareTable.ITEM */	char s2[2];										/*CompareTable.RANGE */	float s3;											/*CompareTable.UPPER */	float s4;											/*CompareTable.LOWER */	char s5[5];										/*CompareTable.SUMCODE */	char i_switchname[11];	EXEC SQL END DECLARE SECTION;	int c_rows, i_rows, first, last, len;	int t_rows;	static char olditem[7], item[7], temp[30];	char range[5];	static char sumcode[5];	static char switch_name[11];	COMPRULEDATA *p;	int i, j;	int ret_val;/**************compare_table***************/	ret_val = -1;	p = comp_rule_data;	while (p->SwitchName[0] != '\0')	{		if ((t_rows = getCompareDBrows(p->SwitchName)) == -1)			return -1;		if (t_rows == 0)		{			++p;			continue;		}		/* printf("t_rows=%d\n",t_rows); */		if ((p->compare_table = malloc(sizeof(COMPTABLE) * t_rows)) == NULL)		{			fLogInfo("\nERROR in setCompareTable !!");			fLogInfo("\nERROR when Malloc for p->compare_table.\n");			return -1;		}		/*read data from settable4 and set the comp_table and comp_index */		strcpy(i_switchname, p->SwitchName);		i_rows = c_rows = 0;		fLogInfo("\nsetCompareTable()::i_switchname=%s\n",i_switchname);		EXEC SQL WHENEVER SQLERROR GOTO sqlerror;		EXEC SQL WHENEVER NOT FOUND CONTINUE;		EXEC SQL DECLARE my_cur2 CURSOR FOR		  SELECT ITEM, NVL(RANGE,' '), UPPER, LOWER, NVL(SUMCODE,' ')		  FROM CompareTable		  WHERE Switch =:i_switchname order by ITEM;		EXEC SQL OPEN my_cur2;		strcpy(olditem, "0xyg");		EXEC SQL WHENEVER SQLERROR GOTO sqlerror;		EXEC SQL WHENEVER NOT FOUND GOTO notfound2;		while (c_rows < t_rows)		{			EXEC SQL FETCH my_cur2 INTO:s1,:s2,:s3,:s4,:s5;			strncpy((p->compare_table + c_rows)->item, (char *) s1, (len = strlen(s1)));			(p->compare_table + c_rows)->item[len] = 0;			RemoveWhitespace((p->compare_table + c_rows)->item);			if (strcmp(item, (p->compare_table + c_rows)->item) != 0)			{				strcpy(item, (p->compare_table + c_rows)->item);				i_rows++;			}			strncpy(temp, (char *) s2, (len = strlen(s2)));			temp[len] = 0;			(p->compare_table + c_rows)->range = temp[0];			(p->compare_table + c_rows)->upper = s3;			(p->compare_table + c_rows)->lower = s4;			/*printf("upper = %f,lower=%f,c_rows=%d\n",(p->compare_table+c_rows)->upper,(p->compare_table+c_rows)->lower,c_rows); */			strncpy((p->compare_table + c_rows)->sumcode, (char *) s5, (len = strlen(s5)));			(p->compare_table + c_rows)->sumcode[len] = 0;			RemoveWhitespace((p->compare_table + c_rows)->sumcode);			c_rows++;		}notfound2:		EXEC SQL CLOSE my_cur2;		if (c_rows == 0)			free(p->compare_table);		else			ret_val = 0;/*************index_head******************/		if ((p->index_head = malloc(sizeof(INDEXHEAD))) == NULL)		{			fLogInfo("\nERROR in setCompareTable !!");			fLogInfo("\nERROR when Malloc for p->index_head.\n");			freeCompareTable();			return (-1);		}		p->index_head->count = i_rows;		if ((p->index_head->comp_index = malloc(sizeof(COMPINDEX) * p->index_head->count)) == NULL)		{			fLogInfo("\nERROR in setCompareTable !!");			fLogInfo("\nERROR when Malloc for p->index_head->comp_index.\n");			freeCompareTable();			return -1;		}		i = j = 0;		while (i < c_rows)		{			strcpy(item, (p->compare_table + i)->item);			first = i;			i++;			while ((strcmp(item, (p->compare_table + i)->item) == 0) && (i < c_rows))				i++;			last = i - 1;			strcpy((p->index_head->comp_index + j)->item_str, item);			(p->index_head->comp_index + j)->first = first;			(p->index_head->comp_index + j)->last = last;			j++;		}		p->index_head->count = j;/*   printf("j=%d,index:\n",j);   for (i=0;i<p->index_head->count;++i)   {   printf("%d,%s,%d,%d\n",(p->index_head->comp_index+i)->item,   (p->index_head->comp_index+i)->item_str,   (p->index_head->comp_index+i)->first,   (p->index_head->comp_index+i)->last );   }   printf("compare_table:\n");   for (i=0;i<p->index_head->count;++i)   {   printf("%s,%d,%f,%f,%s\n",(p->compare_table+i)->item   ,(p->compare_table+i)->range   ,(p->compare_table+i)->upper   ,(p->compare_table+i)->lower   ,(p->compare_table+i)->sumcode );   } */		++p;	}	return (ret_val);sqlerror:	fLogInfo("\nSQL ERROR in setCompareTable !!");	fLogInfo("\nSQLCODE: %d", sqlca.sqlcode);	fLogInfo("\nERRMSG: %.70s \n", sqlca.sqlerrm);	return -1;}int freeCompareTable(){	COMPRULEDATA *p;	p = comp_rule_data;	while (p->SwitchName[0] != '\0')	{		free(p->index_head->comp_index);		free(p->index_head);		free(p->compare_table);		++p;	}	return 0;}/**************************************************** *return <0:fail to load                            * *        0:sucess                                  * ****************************************************/int loadSetTable(){	EXEC SQL BEGIN DECLARE SECTION;	char username[60];	char password[60];	char db_string[60];	EXEC SQL END DECLARE SECTION;	int ret;	ReadIniFile("simu112.ini", "USERNAME", username, "");	ReadIniFile("simu112.ini", "PASSWORD", password, "");	ReadIniFile("simu112.ini", "DBSTRING", db_string, "");  /*	fLogInfo("\nUSERNAME:%s,PASSWORD:%s,DBSTRING:%s.",username,password,db_string);  */	unprocessdata(username, username);	unprocessdata(password, password);  /*	fLogInfo("\nUSERNAME:%s,PASSWORD:%s,DBSTRING:%s.",username,password,db_string);  */	EXEC SQL WHENEVER SQLERROR GOTO label1;	EXEC SQL WHENEVER NOT FOUND GOTO label1;	EXEC SQL CONNECT TO :db_string USER :username USING :password;	if ((ret = setRouteTable()) == 0)	{		if (setCompareTable() < 0)		{			ret = -2;			goto label2;		}	}	return (ret);label1:sqlerror:	fLogInfo("\nSQL ERROR in loadSetTable !!");	fLogInfo("\nSQLCODE: %d", sqlca.sqlcode);	fLogInfo("\nERRMSG: %.70s", sqlca.sqlerrm);	fLogInfo("\nLOG DB ERROR\n");	ret = -1;label2:	EXEC SQL WHENEVER SQLERROR CONTINUE;	EXEC SQL WHENEVER NOT FOUND CONTINUE;	EXEC SQL ROLLBACK WORK;	return (ret);}int freeSetTable(){	freeRouteTable();	freeCompareTable();	return 0;}void f_split_addr_port(char *str_addr_port, char *addr, char *port){	char *p, *q;	addr[0] = '\0';	port[0] = '\0';	p = str_addr_port;	q = addr;	while (*p)										/* get address */	{		if (*p == ',')			break;		*q = *p;		++q;		++p;	}	*q = '\0';	if (*p != '\0')		++p;	q = port;	while (*p)										/* get port */	{		*q = *p;		++q;		++p;	}	*q = '\0';}static char *StringToupper(char *p){	char *p1;	for (p1 = p; *p1 != '\000'; p1++)	{		*p1 = (char) toupper(*p1);	}	return p;}/**** add *****/void ReadIniFile(char *szFileName, char *szStringName, char *szStringValue,								 char *szDefaultValue){	FILE *IniFile;	char szBuff[256], *chrptr;	char szStringName1[256];	char szTempBuff[256];	int i;	strcpy(szStringName1, szStringName);	strcat(szStringName1, "=");	strcpy(szStringValue, szDefaultValue);	IniFile = fopen(szFileName, "r");	if (IniFile != NULL)	{		while (fgets(szBuff, 256, IniFile))		{			if (feof(IniFile))				break;			szBuff[strlen(szBuff) - 1] = '\0';			chrptr = szBuff;			if (*chrptr == '#' || !*chrptr)				continue;			RemoveWhitespace(chrptr);			if (!strncmp(szBuff, szStringName1, strlen(szStringName1)))			{				strcpy(szTempBuff, szBuff + strlen(szStringName1));				chrptr = szTempBuff;				while (*chrptr && (*chrptr != '#'))					chrptr++;				*chrptr = '\0';				i = strlen(szTempBuff);				if (i > 0)				{					--i;					while (i > 0 && szTempBuff[i] == ' ')					{						szTempBuff[i] = '\0';						--i;					}				}				strcpy(szStringValue, szTempBuff);				break;			}		}		fclose(IniFile);	}}

⌨️ 快捷键说明

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