?? simutil.pc
字號(hào):
term_srv->UseGrade = (device_head->test_device + i)->UseGrade; 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){ char s1[7]; /*CompareTable.ITEM */ char s2[2]; /*CompareTable.RANGE */ float s3; /*CompareTable.UPPER */ float s4; /*CompareTable.LOWER */ char s5[5]; /*CompareTable.SUMCODE */ 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 */ i_rows = c_rows = 0; EXEC SQL DECLARE my_cur2 CURSOR FOR SELECT NVL(ITEM,' '), NVL(RANGE,' '), UPPER, LOWER, NVL(SUMCODE,' ') FROM CompareTable WHERE Switch =:p->SwitchName order by ITEM; EXEC SQL OPEN my_cur2; strcpy(olditem, "0xyg"); EXEC SQL WHENEVER SQLERROR GOTO sqlerror; EXEC SQL WHENEVER NOT FOUND DO break; 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++; } 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.sqlerrmc); 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(){ char username[60]; char password[60]; char db_string[60]; int ret; ReadIniFile("simu112.ini", "USERNAME", username, ""); ReadIniFile("simu112.ini", "PASSWORD", password, ""); ReadIniFile("simu112.ini", "DBSTRING", db_string, ""); unprocessdata(username, username); unprocessdata(password, password); EXEC SQL WHENEVER SQLERROR GOTO label1; if (strlen(db_string)>0) { /* This is used by compile from remote host */ EXEC SQL CONNECT:username IDENTIFIED BY:password using:db_string; } else { /* This is used by compile from local host */ EXEC SQL CONNECT :username IDENTIFIED BY :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.sqlerrmc); fLogInfo("\nLOG DB ERROR\n"); ret = -1;label2: EXEC SQL WHENEVER SQLERROR CONTINUE; EXEC SQL WHENEVER NOTFOUND CONTINUE; EXEC SQL ROLLBACK WORK RELEASE; EXEC SQL ROLLBACK WORK RELEASE; 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); }}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -