"; return $connection; } function sftp_login($connection,$logName,$logPass) { ssh2_auth_password($connection,$logName,$logPass); $sftp_key = ssh2_sftp($connection); return $sftp_key; } define(SFTP_ASCII,0); define(SFTP_BINARY,1); function sftp_put($key,$remote_file,$local_file,$mode) { $read_mode="r"; $write_mode="w"; if($mode == SFTP_BINARY) { $open_mode.="b"; $write_mode.="b"; } $handle=fopen($local_file,$read_mode); if(!$handle) { echo "sftp_put:Can not open $local_file"; return FALSE; } $stream=fopen("ssh2.sftp://{$key}{$remote_file}", $write_mode); if(!$stream) { echo "sftp_put:Can not open $remote_file"; return FALSE; } $content=stream_get_contents($handle); fwrite($stream,$content); fclose($handle); fclose($stream); return TRUE; } function sftp_get($key,$local_file,$remote_file,$mode) { $read_mode="r"; $write_mode="w"; if($mode == SFTP_BINARY) { $open_mode.="b"; $write_mode.="b"; } $handle=fopen($local_file,$write_mode); if(!$handle) { echo "sftp_put:Can not open $local_file"; return FALSE; } $stream=fopen("ssh2.sftp://{$key}{$remote_file}", $read_mode); if(!$stream) { echo "sftp_put:Can not open $remote_file"; return FALSE; } $content=stream_get_contents($stream); fwrite($handle,$content); fclose($handle); fclose($stream); return TRUE; } function debug_log($file,$info) { $handle=fopen($file,"a+"); if($handle == false) return; fwrite($handle,$info); fclose($handle); } //**************************************************************** //函数4 pageAccessChk($pageURL) //函数说明: // 检测用户是否可进入本页, // 如果用户的权限包含$page_url所对应的权限,则可进入该页面。 // //变量说明: // $page_url // //返回值: 1 = 可 -1 = 否 // //作者: // //修改注释: //NO.1 //姓名: //时间:2002-03-26 //修改说明:修改了权限定义方式,该函数改变了大部分 //NO.2 //姓名: //时间:2002-04-09 //修改说明:修改了权限定义方式,该函数改变了大部分 //---------------------------------------------------------- function pageAccessChk($pageURL) { global $userInfo,$privilegeDefArr,$dirAccessDefArr; $funcDebug = 0; $privilege = $userInfo[privilege]; if(strlen($privilege) > 0){ //判断已登录的用户 //检查该权限编号是否存在 $isPass=0; for($k=0; $k < sizeof($privilegeDefArr); $k++){ if($privilege == $privilegeDefArr[$k][permit]){ $isPass=1; break; } } if($isPass == 0){ if($funcDebug) echo"Invailed privilege"; return(-1); } //对比判断该编号对应的权限能否访问该目录 for($p=0; $p < sizeof($dirAccessDefArr[$privilege]);$p++){ $tmpDir = $dirAccessDefArr[$privilege][$p]; $tmpLen = strlen($tmpDir); if($funcDebug) echo"$tmpDir == substr($pageURL,0,$tmpLen)"; if( $tmpDir == substr($pageURL,0,$tmpLen) && $tmpLen > 0){ return(1); } } //找不到,清掉这个无效权限代码 $userInfo[privilege]=0; }else{//判断未登录的用户 for($p=0; $p < sizeof($dirAccessDefArr[0]);$p++){ $tmpDir = $dirAccessDefArr[0][$p]; $tmpLen = strlen($tmpDir); $thisDir=substr($pageURL,0,$tmpLen); if($funcDebug) echo"$tmpDir == $thisDir"; if( $tmpDir == $thisDir && $tmpLen > 0){ return(1); } } } if($funcDebug) echo"??"; return(-1); } //**************************************************************** //函数5 // function insertLog($operDesc,$operTypeNo='0',$OperNo='0') //函数说明: // 该函数用于记录日志 // //变量说明: // $operDesc ->操作说明 // $operTypeNo ->操作类型编号 // $OperNo ->操作代码 // //返回值: // 无 // //作者: // //修改注释: //NO.1 //姓名: //时间:2003-04-09 //修改说明:简化输入参数,缺省操作类型为unknown //---------------------------------------------------------- function insertLog($operDesc,$operTypeNo='0',$OperNo='0') { global $userInfo,$link,$omc_db; $userName = $userInfo[ID]; $operDesc = isset($operDesc) ? stripslashes($operDesc) : ''; //解码 $operDesc = addslashes($operDesc); //解码 $insertLogSql="INSERT INTO sysOperLog (operTypeNo,OperNo,remark,userName,datetime) VALUES ('$operTypeNo','$OperNo','$operDesc','$userName',CURRENT_TIMESTAMP) "; //echo "$insertLogSql"; $result=mysqli_query($pubConn,$insertLogSql); //echo mysqli_error($pubConn); if($result < 0){ echo "Error:Insert the log failed"; } } //**************************************************************** //函数6 // change_percent($num) //函数说明: // 该函数用于把两个数相除后得到的小数变为精确到百分位的百分数 // 如把0.91233456790变为91.23% // //变量说明: // $num <= 1 // //返回值: // 一个带百分号的字符 // //作者: // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function change_percent($num) { if($num >= 1){ $num=100; }else{ $num=$num*1000000; $num=round($num); $num=$num/10000; } $string=$num.'%'; return($string); } //**************************************************************** //函数7 // omc_keep_length($value,$add_value='0',$length='2',$position='1') //函数说明: // 该函数用于在字符串$value左边添$add_value,直到补足所需位数$length // 例如:omc_keep_length(2,0,2)变为02 // 常用于获取系统编号。 // //变量说明: // $value 需要补足位数的字符 // $add_value 需要用什么去补足位数,默认为'0' // $length 需要补足到多少位,默认为'2'系统编号的长度 // //返回值: // 被补足位数的字符串 // // // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function omc_keep_length($value,$add_value='0',$length='2',$position='1') { while(strlen($value) < $length){ if($position) $value = $add_value.$value; else $value = $value.$add_value; } //echo "value=$value"; return ($value); } //**************************************************************** //函数8 // omc_table_name($sys_type,$table_type) //函数说明: // 该函数通过$sys_type,$table_type生成该系统的各种相关表名 // 根据$sys_id确定系统编号 // 根据$table_type确定要返回的表名: // 1、csta-h -->(每小时)话务统计表 // 2、csta-q -->(每15分钟)话务统计表 // // // //变量说明: // $sys_type 需要获取表名的系统 // $table_type 该表名的类型字符串 // //返回值: // 所需的表名字符串 // //作者: // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function omc_table_name($sys_type,$table_type) { switch($table_type){ case 'csta-h': $sys_type=strtolower($sys_type); $table_name=$sys_type.'Sum'; break; case 'csta-q': $sys_type=strtolower($sys_type); $table_name=$sys_type.'Detail'; break; default: echo "database's table name can not be maked,please check table type"; break; } if($table_name){ return($table_name); }else{ exit(); } } //**************************************************************** //函数9 // omc_sys_type2code($sys_type) //函数说明: // 由系统简写获取系统编号,通过查询系统定义表$sysconf_table获取 // 例:omc_sys_type2code(TS) = '04' // //变量说明: // $sys_type // //返回值: // 成功: 系统编号 // 失败: -1 // // // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function omc_sys_type2code($sysTypeName) { global $omc_db,$sysconf_table; $sel_sql = "SELECT sysTypeNo FROM $sysconf_table WHERE sysTypeName = '$sysTypeName'"; //echo "$sel_sql"; $result = mysqli_query($pubConn,$sel_sql); if($result > 0){ $result_rows = mysqli_fetch_array($result); //echo "result_rows[sysTypeNo]=$result_rows[sysTypeNo]"; return($result_rows[sysTypeNo]); }else{ echo mysqli_error($pubConn); echo "Can not get this device's code by omc_sys_type2code($sysTypeName)"; return(-1); } } //**************************************************************** //函数10 // omc_sys_code2type($sys_code) //函数说明: // 由系统编号获取系统简写,通过查询系统定义表$sysconf_table获取 // // //变量说明: // $sys_code // //返回值: // 成功: 系统简写 // 失败: -1 // // // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function omc_sys_code2type($sysTypeNo) { global $omc_db,$sysconf_table; $sel_sql = "SELECT sysTypeName FROM $sysconf_table WHERE sysTypeNo = '$sysTypeNo'"; //echo "$sel_sql"; $result = mysqli_query($pubConn,$sel_sql); if($result > 0){ $result_rows = mysqli_fetch_array($result); return($result_rows[sysTypeName]); }else{ echo mysqli_error($pubConn); echo "Can not get this device's code by omc_sys_code2type($sysTypeNo)"; return(-1); } } //**************************************************************** //函数11 // get_subsys_total($sys_type) //函数说明: // 由系统类型获取系统每个系统的子系统总数,通过查询系统定义表$sysconf_table获取 // // //变量说明: // $sys_type:系统类型 // //返回值: // 成功: 系统子系统个数 // 失败: -1 // // // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function get_subsys_total($sys_type) { global $omc_db,$sysconf_table; $sel_sql = "SELECT maxSubsysNum FROM $sysconf_table WHERE sysTypeName = '$sys_type'"; $result = mysqli_query($pubConn,$sel_sql); if($result > 0){ $result_rows = mysqli_fetch_array($result); return($result_rows[maxSubsysNum]); }else{ echo mysqli_error($pubConn); echo "Can not get this system's subsystem quantity by get_subsys_total($sys_type)"; return(-1); } } //**************************************************************** //函数12 // get_e1_total($sys_type) //函数说明: // 由系统类型获取系统每个系统的e1总数,通过查询系统定义表$sysconf_table获取 // // //变量说明: // $sys_type:系统类型 // //返回值: // 成功: 系统子系统个数 // 失败: -1 // //作者: // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function get_e1_total($sys_type) { global $omc_db,$sysconf_table; $sel_sql = "SELECT maxE1Num FROM $sysconf_table WHERE sysTypeName = '$sys_type'"; //echo "sel_sql=$sel_sql"; $result = mysqli_query($pubConn,$sel_sql); if($result > 0){ $result_rows = mysqli_fetch_array($result); return($result_rows[maxE1Num]); }else{ echo mysqli_error($pubConn); echo "Can not get this system's e1 quantity by get_e1_total($sys_type)"; return(-1); } } //**************************************************************** //函数13 // get_sys_total($sys_type) //函数说明: // 由系统类型获取系统系统总数,通过查询系统定义表$sysconf_table获取 // // //变量说明: // $sys_type:系统类型 // //返回值: // 成功: 系统总数 // 失败: -1 // // // //修改注释: //NO.1 //姓名: //时间: 2002-5-14 //修改说明: 表名、字段有变 //---------------------------------------------------------- function get_sys_total($sys_type) { global $omc_db,$sysconf_table; $sel_sql = "SELECT maxSysNum FROM $sysconf_table WHERE sysTypeName = '$sys_type'"; //echo "sel_sql=$sel_sql"; $result = mysqli_query($pubConn,$sel_sql); if($result > 0){ $result_rows = mysqli_fetch_array($result); return($result_rows[maxSysNum]); }else{ echo mysqli_error($pubConn); echo "Can not get this system's system quantity by get_sys_total($sys_type)"; return(-1); } } //**************************************************************** //函数14 // get_sys_offset($sys_type) //函数说明: // 由系统类型获取该类系统的顺序编号offset,通过查询系统定义表$sysconf_table获取 // // //变量说明: // $sys_type :系统类型 // //返回值: // 成功: 系统顺序编号 // 失败: -1 // // // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function get_sys_offset($sys_type) { global $omc_db,$sysconf_table; $sel_sql = "SELECT ledOffset FROM $sysconf_table WHERE sysTypeName = '$sys_type'"; $result = mysqli_query($pubConn,$sel_sql); if($result > 0){ $result_rows = mysqli_fetch_array($result); return($result_rows[0]); }else{ echo mysqli_error($pubConn); echo "Can not get this system's offset by get_sys_offset($sys_type)"; return(-1); } } //**************************************************************** //函数15 // omc_sys_id_info($sys_id,$info_type) //函数说明: // 该函数通过$sys_id的分析,取得相应信息 // 例:由 "TS00_01" 可得系统编号为"00" // //变量说明: // 参数$info_type对应要取得的信息 // sys_type -->系统类型 // sys_num -->系统编号 // subsys_num -->子系统编号 // led_num -->led offset // //返回值: // 成功: 要取得的信息 // 失败: -1 // //作者: // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function omc_sys_id_info($sys_id,$info_type) { global $sysconf_table,$omc_db; $db=$omc_db; $pieces=explode('_',$sys_id); $sys_type=$pieces[0]; $sys_num=$pieces[1]; $subsys_num=$pieces[2]; //echo "sys_type=$sys_type"; switch($info_type){ case 'sys_type': $info=$sys_type; break; case 'sys_num': $info=$sys_num; break; case 'subsys_num': $info=$subsys_num; break; case 'led_num': $sysTypeNo=omc_sys_type2code($sys_type); $ledSql = " SELECT ledOffset FROM $sysconf_table WHERE sysTypeNo = '$sysTypeNo' "; $ledRes = @mysqli_query($pubConn,$ledSql); $ledRow = @mysqli_fetch_array($ledRes); $info = $ledRow[0]; break; default: echo "the $sys_id information can not be get,please check parameter: info_typ!"; break; } if($info){ return($info); }else{ return(0); } } //**************************************************************** //函数16 // omc_uninstall_device($sys_id) //函数说明: // 删除系统 // //变量说明: // 删除系统的系统编号$sys_id // //返回值: // 成功: 1 // 失败: -1 // // // //修改注释: //NO.1 //姓名: //时间:2002-5-17 //修改说明: //---------------------------------------------------------------------------------- function omc_uninstall_device($sys_id) { global $omc_db,$sysStat_table; //echo "sys_id=$sys_id"; $sysType=omc_sys_id_info($sys_id,sys_type); $sysTypeNo=omc_sys_type2code($sysType); $sysNo=omc_sys_id_info($sys_id,sys_num); $subSysNo=omc_sys_id_info($sys_id,subsys_num); $del_sql="DELETE FROM $sysStat_table WHERE sysTypeNo='$sysTypeNo' AND sysNo='$sysNo' AND subSysNo='$subSysNo'"; if($sys_id='all') { $del_sql=" DELETE FROM $sysStat_table "; } //echo "del_sql=$del_sql"; $result=mysqli_query($pubConn,$del_sql); //echo "result=$result"; if($result){ return(1); }else{ return(-1); } } //**************************************************************** //函数17 // omc_chk_load_in($file_info,$remark_style) //函数说明: // 导入文件检查函数 // 根据需导入文件的信息(包括文件名,需导入的服务器,数据库,表),导入文件的注释信息(指出该文的字段名列表所在行) // 方法:一一比较数据库中表的字段和注释中列出的字段,如果互相匹配,返回成功 // //变量说明: // $file_info 所需导入文件的信息数组,包括: // $file_info[db] 所需导入的数据库名 // $file_info[table] 所需导入的数据库中的表名 // $file_info[name] 所需导入数据库的文件名 // $remark_style 数据文件注释风格 // $remark_style[fields_seek] 文件开头,需要忽略的行数,一般为1 // $remark_style[sign] 注释符,一般为'#' // $remark_style[fields_by] 字段分割符,一般为';' // //返回值: // 成功: 1 // 失败: -1 // // // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function omc_chk_load_in($file_info,$remark_style) { //-------------1.get database's information--------------- global $link; $field_sql="SELECT * FROM {$file_info[table]} LIMIT 0,1"; //echo "field_sql=$field_sql"; $field_result=mysqli_query($pubConn,$field_sql); //-------------check the data file's fields------------- //echo "name={$file_info[name]}"; $fp=fopen($file_info[name],r); for($i=1;$i <= $remark_style[fields_seek]; $i++){ $field_line=fgets($fp,4096); //4096 is a constant } //echo "field_line=$field_line"; if(substr($field_line,0,1) != $remark_style[sign]){ echo "the remark sign not exist"; //注释符错误 return(-1); }else{ //echo "field_line=$field_line"; $file_fields_line=substr($field_line,1); //echo "file_fields_line=$file_fields_line"; $file_fields_rows=explode($remark_style[fields_by],$file_fields_line); $fields_num=mysql_num_fields($field_result); //echo "fields_num=$fields_num"; for($i=0; $i < $fields_num; $i++){ $this_field=mysql_field_name($field_result,$i); //echo "$file_fields_rows[$i] -- $this_field"; if($file_fields_rows[$i] != $this_field && $this_field !=''){ echo "error: fields is not matching.";//字段名不匹配 return(-1); } } fclose($fp); return(1); } } //******************************************************************* //函数18 // Get the content of $table as a CSV output. // $sep contains the separation string. // After every row, a custom callback function $handler gets called. // $handler must accept one parameter ($sql_insert); function get_table_csv($server_link,$db_name, $table, $where, $handler) { global $separator; $sep=$separator; if(strlen($where) > 1){ $sel_sql="SELECT * FROM $table $where"; $sel_sql=stripslashes($sel_sql); }else{ $sel_sql="SELECT * FROM $table "; } //echo "sel_sql=$sel_sql"; $result = mysqli_query($pubConn, $sel_sql, $server_link); if($result < 0){ echo "$sel_sql /n"; echo mysqli_error($pubConn); exit(); } /* //输出字段名 $schema_insert = "#"; for($j=0; $jschema_insert=$schema_insert"; } $handler(trim($schema_insert));//按某种方式处理后,输出一行 */ $i = 0; while($row = mysqli_fetch_row($result)) { set_time_limit(60); // HaRa $schema_insert = ""; for($j=0; $j$warning_words"; exit(); } //**************************************************************** //函数20 // change2point($number) //函数说明: // 将该数字按保留小数点后两位的规则转换,常用于货币的统一标示 // //变量说明: // $number ->所需转换的数字 // //返回值: // 成功: 返回转换后的字符 // 失败: -1 // // // //修改注释: //NO.1 //姓名: //时间:2003-07-10 //修改说明:干了蠢事,一句话的事,用了一个函数。 //---------------------------------------------------------- function change2point($number) { /* $num = explode(".",$number); $num_1 = $num[0]; $num_2 = substr($num[1],0,2); if(strlen($num_2) < 2){ if(strlen($num_2) == 0){ $num_2 = '00'; }else{ $num_2 = $num_2.'0'; } } if($num_1==0 && $num_2 == 0){ $number = 0; }else{ $number = $num_1.'.'.$num_2; } */ $number=sprintf ("%01.2f", $number); return($number); } //**************************************************************** //函数21 // Second2format($number) //函数说明: // 把秒数变成标准时间显示如:17秒->00:00:17 // //变量说明: // $number 秒数 // //返回值: // 成功: 返回标准时间 // 失败: 返回0 // //作者: // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- // function Second2format($number) { if($number>0){ $number_h=floor($number/3600); if(strlen($number_h)<2){ $number_h="0".$number_h; } $number_ms=$number%3600; $number_m=floor($number_ms/60); if(strlen($number_m)<2){ $number_m="0".$number_m; } $number_s=$number_ms%60; if(strlen($number_s)<2){ $number_s="0".$number_s; } $format=$number_h.":".$number_m.":".$number_s; return($format); }else{ return(0); } } //**************************************************************** //函数22 // getDetailedStatus($sysTypeNo,$sysNo,$subSysNo,$getType) // 得到详细状态信息或刷新时间 // //变量说明: // $sysTypeNo系统类型编号 // $sysNo系统编号 // $subSysNo子系统编号 // $getType详细状态(status)或刷新时间(time) // //返回值: // 成功: 返回状态或时间 // 失败: 返回-1 // //作者: // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- // function getDetailedStatus($sysTypeNo,$sysNo,$subSysNo,$getType='time') { global $omc_db,$sysStat_table; $db=$omc_db; $DEBUG=0; $sel_mes_sql="SELECT detailStat,updateTime FROM $sysStat_table WHERE sysTypeNo='$sysTypeNo' AND sysNo='$sysNo' "; if($DEBUG)echo "sel_mes_sql=$sel_mes_sql"; $sel_mes_res = mysqli_query($pubConn,$sel_mes_sql); $sel_mes_row = @mysqli_fetch_array($sel_mes_res); if($getType=='Time'){ $value=$sel_mes_row[detailStat]; }else{ $value=$sel_mes_row[updateTime]; } if($DEBUG)echo "value=$value"; if(!$sel_mes_row){ return(-1); }else{ return($value); } } //**************************************************************** //函数23 omc_get_sysAlias($sysTypeNo,$sysNo,$subSysNo) // //功能说明:根据指定系统编号获取系统别名 // //变量说明: // //返回值: // 成功: 系统别名字符串 // 失败:-1 // // // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function omc_get_sysAlias($sysTypeNo,$sysNo,$subSysNo) { $sysAliasSql = "SELECT sysAlias FROM sysInfo WHERE sysTypeNo='$sysTypeNo' AND sysNo='$sysNo'AND subSysNo='$subSysNo' ORDER BY sysTypeNo,sysNo,subSysNo "; $sysAliasResult = mysqli_query($pubConn,$sysAliasSql); echo mysqli_error($pubConn); $sysAliasRows = @mysqli_fetch_array($sysAliasResult); $sysAlias=$sysAliasRows[sysAlias]; if(strlen($sysAlias) > 0){ return($sysAlias); }else{ return(-1); } } //**************************************************************** //函 数 名: omcProgressBar($allNum,$doneNum) //功能说明: 显示进度条 //变量说明: $allNum总数,$doneNum已完成的数目 //返 回 值: 无 // // // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function omcProgressBar($allNum,$doneNum) { if($allNum > 0){ if($doneNum >= $allNum){ $quoNum = 100; }else{ $quoNum = $doneNum / $allNum * 100; $quoNum = round($quoNum); } }else{ echo "omcProgressBar() Error:allNum cannot < 0!"; exit(); } $big_width=320; $border=10; $lit_width=$big_width - 2 * $border; $height=10; echo ""; echo "\n"; echo ""; echo "$strProgressIsShowedAsFollowing"; echo ""; echo "\n"; echo "\n"; echo "\n$quoNum%"; echo "\n"; echo "\n"; $lineNum = $quoNum*3; echo "\n"; echo "\n "; echo "\n "; //echo "\n"; } //**************************************************************** //函 数 名: sysCommSend($sysId,$commType,$objIdStr,$selectedSysId=-1) //功能说明: 系统参数维护发送命令 //变量说明: 略 //返 回 值: // 成功: 命令编号字符串 // 失败: -1 // // // //修改注释: //NO.1 //姓名:cuiticun //时间:2005-7-13 //修改说明:check the exist command num in the buffer //---------------------------------------------------------- function sysCommSend($sysId,$commType,$objIdStr,$selectedSysId=-1,$selectedDPC=0) { //global $pubDb,$commTable; $DEBUG = 0; $pubDb = 'OMC_PUB'; $commTable = 'parameterComm'; $nGetComm = 0; $nSetComm = 3; $nSubSysParam = 0; $nGlobalSubSysParam = 1; $nGlobalSysParam = 2; $sysIdArr = explode('_',$sysId); $sysTypeNo = $sysIdArr[0]; $sysNo = $sysIdArr[1]; $subSysNo = $sysIdArr[2]; //insert the operation log into the database $logStr=""; if($commType==0) $logStr.="Get "; else if($commType==3) $logStr.="Set "; //=====get the LevelWhere $levelArr=explode('.',$objIdStr); for($j=0;$jlevelArr[$j]={$levelArr[$j]}"; if($j == 0){ $levelWhere ="level_$levelNo='${"level_$levelNo"}'"; }else{ $levelWhere .=" AND level_$levelNo='${"level_$levelNo"}'"; } } $temp=$levelWhere; $database="OBJ_".$sysTypeNo; $ssql="select name_2 from paramConf where $temp "; $resultt=@mysqli_query($pubConn,$ssql); $rowss=@mysqli_fetch_array($resultt); //==get the parameter name $p_name=$rowss[name_2]; $p_name=str_replace("Entry","",$p_name); $sysName=getSystemNameBySysTypeNo($sysTypeNo); $logStr.="$sysName $p_name's parameter"; $logStr.=$p_name; insertLog($logStr); //end insert operation log if($sysNo == '99'){ $paramType = $nGlobalSysParam; }else if($subSysNo == '99'){ $paramType = $nGlobalSubSysParam; }else{ $paramType = $nSubSysParam; } if($selectedSysId != -1){ $selectedSysIdArr = explode('_',$selectedSysId); $selectedSysTypeNo = $selectedSysIdArr[0]; $selectedSysNo = $selectedSysIdArr[1]; $selectedSubSysNo = $selectedSysIdArr[2]; } if($DEBUG) echo"selectedSysId=$selectedSysId"; if($DEBUG) echo"selectedSysNo=$selectedSysNo"; if($DEBUG) echo"selectedSubSysNo=$selectedSubSysNo"; //step 1: delete overtime and imcompetent command , check the exist command num $overTime = date("Y-m-d H:i:s", mktime(date("H"),date("i")-1,date("s"),date("m"),date("d"),date("Y"))); $delSql = "DELETE FROM $commTable WHERE commState ='0' OR commState ='3' OR sendTime < '$overTime' "; if($DEBUG) echo"delete command sql = $delSql"; mysqli_query($pubConn,$delSql); echo mysqli_error($pubConn); //check the exist command num $chkSql = "SELECT commId FROM $commTable"; if($DEBUG) echo"check exist commands sql = $chkSql"; $chkResult = mysqli_query($pubConn,$chkSql); echo mysqli_error($pubConn); $existNum = @mysqli_num_rows($chkResult); //step 2: check the command(不能同时操作同一个子系统,也不能同时读同一个系统的不同子系统的公共参数) if(($paramType != $nSubSysParam) && ($commType == $nGetComm)){ //0=Get,2=response,3=Set if($selectedSysId == -1){ $chkSql = "SELECT commId FROM $commTable WHERE sysTypeNo='$sysTypeNo' AND sysNo='$sysNo' AND commType ='$nGetComm' "; }else{ //选择指定子系统 $chkSql = "SELECT commId FROM $commTable WHERE sysTypeNo='$selectedSysTypeNo' AND sysNo='$selectedSysNo' AND subSysNo='$selectedSubSysNo' AND commType ='$nGetComm' "; } }else{ $chkSql = "SELECT commId FROM $commTable WHERE sysTypeNo='$sysTypeNo' AND sysNo='$sysNo' AND subSysNo='$subSysNo' "; } if($DEBUG) echo"check command sql = $chkSql"; $chkResult = mysqli_query($pubConn,$chkSql); echo mysqli_error($pubConn); $rowsNum = @mysqli_num_rows($chkResult); if($rowsNum > 0){ echo ""; return(-1); } //step 3:insert commands into command table if(($paramType != $nSubSysParam) && ($commType == $nSetComm)){ //写公共参数 //get maxSubSysNum //$selSql="SELECT maxSysNum, maxSubSysNum FROM sysConf WHERE sysTypeNo = '$sysTypeNo'"; //$selResult=mysqli_query($pubConn,$selSql); //$selRows=mysqli_fetch_array($selResult); //echo mysqli_error($pubConn); //$maxSysNum = $selRows[maxSysNum]; //$maxSubSysNum = $selRows[maxSubSysNum]; if($selectedSysId == -1){ if($paramType == $nGlobalSysParam){ if($sysTypeNo[0] == '2'){ if($sysTypeNo == '222' || $sysTypeNo == '223'){//MTP3,SCCP $selSql="SELECT sysNo,subSysNo FROM sysInfo WHERE sysTypeNo = '$sysTypeNo' AND sysNo!='8' AND sysNo!='11' AND DPC = '$selectedDPC' ORDER BY sysNo,subSysNo,baseStat DESC "; }else{ $selSql="SELECT sysNo,subSysNo FROM sysInfo WHERE sysTypeNo = '$sysTypeNo' AND sysNo='9' AND DPC = '$selectedDPC' ORDER BY sysNo,subSysNo,baseStat DESC "; } }else{ $selSql="SELECT sysNo,subSysNo FROM sysInfo WHERE sysTypeNo = '$sysTypeNo' ORDER BY sysNo,subSysNo,baseStat DESC "; } }else{ $selSql="SELECT sysNo,subSysNo FROM sysInfo WHERE sysTypeNo = '$sysTypeNo' AND sysNo='$sysNo' ORDER BY sysNo,subSysNo,baseStat DESC "; } }else{ //选择指定子系统 $selSql="SELECT sysNo,subSysNo FROM sysInfo WHERE sysTypeNo = '$selectedSysTypeNo' AND sysNo ='$selectedSysNo' AND subSysNo='$selectedSubSysNo' ORDER BY baseStat DESC "; } if($DEBUG) { echo"selSql=$selSql"; exit(); } $selResult = mysqli_query($pubConn,$selSql); $selRowsNum = mysqli_num_rows($selResult); if($selRowsNum+$existNum>64){ echo ""; return(-1); } if($selRowsNum > 0){ while($selRows = mysqli_fetch_array($selResult)){ $sysNo = $selRows[sysNo]; $subSysNo = $selRows[subSysNo]; $sendSql="INSERT INTO $commTable (commType,sysTypeNo,sysNo,subSysNo,paramType,objId,InstanceNo,commState,sendTime) VALUES ('$commType','$sysTypeNo','$sysNo','$subSysNo','$paramType','$objIdStr','','1',CURRENT_TIMESTAMP) "; if($DEBUG) echo"send command sql = $sendSql"; $sendResult=mysqli_query($pubConn,$sendSql); echo mysqli_error($pubConn); } }else{ echo "Error:This canot get this system's IP"; return(-1); } //写VPS 或PCR 参数 /* }elseif(($sysTypeNo == 120 || $sysTypeNo == 130 || $sysTypeNo == 140) && ($commType == $nSetComm)){ $tmpLevelOne = $sysNo + 1; $tmpLevelTwo = $subSysNo + 1; switch($sysTypeNo){ case 120: $sysParamOidPrefix=$tmpLevelOne.'.'.$tmpLevelTwo.'.7.2.1'; break; case 130: $sysParamOidPrefix=$tmpLevelOne.'.'.$tmpLevelTwo.'.6.2.1'; break; case 140: $sysParamOidPrefix=$tmpLevelOne.'.'.$tmpLevelTwo.'.8.2.1'; break; default: echo "error sysTypeNo"; exit(); } if($DEBUG) echo"strstr($objIdStr, $sysParamOidPrefix)"; if(strstr($objIdStr, $sysParamOidPrefix)){//写VPS 或PCR的公共参数 //get maxSubSysNum $selSql="SELECT maxSubSysNum FROM sysConf WHERE sysTypeNo = '$sysTypeNo'"; $selResult=mysqli_query($pubConn,$selSql); $selRows=mysqli_fetch_array($selResult); echo mysqli_error($pubConn); $maxSubSysNum = $selRows[maxSubSysNum]; //get alive system $selSql="SELECT DISTINCT subSysNo FROM sysInfo WHERE sysTypeNo = '$sysTypeNo' AND sysNo='$sysNo' ORDER BY sysNo,subSysNo,baseStat DESC "; $selResult = mysqli_query($pubConn,$selSql); $selRowsNum = mysqli_num_rows($selResult); if($selRowsNum > 0){ while($selRows = mysqli_fetch_array($selResult)){ $subSysNo = $selRows[subSysNo]; $tmpLevelOne = $sysNo + 1; $tmpLevelTwo = $subSysNo + 1; $tmpOidLen = strlen($objIdStr); $tmpSubfixOid = substr($objIdStr,3,$tmpOidLen); $objIdStr = $tmpLevelOne.'.'.$tmpLevelTwo.$tmpSubfixOid; if($DEBUG) echo"VPS OR PCR'S system parameter Oid:$objIdStr"; $sendSql="INSERT INTO $commTable (commType,sysTypeNo,sysNo,subSysNo,paramType,objId,InstanceNo,commState,sendTime) VALUES ('$commType','$sysTypeNo','$sysNo','$subSysNo','$paramType','$objIdStr','0','1',CURRENT_TIMESTAMP) "; if($DEBUG) echo"send command sql = $sendSql"; $sendResult=mysqli_query($pubConn,$sendSql); echo mysqli_error($pubConn); } }else{ echo "Error:This canot get this system's IP"; return(-1); } }else{//写VPS,PCR子系统参数 $sendSql="INSERT INTO $commTable (commType,sysTypeNo,sysNo,subSysNo,paramType,objId,InstanceNo,commState,sendTime) VALUES ('$commType','$sysTypeNo','$sysNo','$subSysNo','$paramType','$objIdStr','0','1',CURRENT_TIMESTAMP) "; if($DEBUG) echo"send command sql = $sendSql"; $sendResult=mysqli_query($pubConn,$sendSql); echo mysqli_error($pubConn); } */ }else{//读系统/子系统参数或写子系统参数 if($paramType != $nSubSysParam){//读公共参数 if($selectedSysId == -1){ //get baseStat 0=uninstalled, 1=nomal, 2=warning, 3=error //先按状态排序,再按系统编号,子系统编号排序,同种状态优先选择编号小的 if($paramType == $nGlobalSysParam){ /*if($sysTypeNo == '222' || $sysTypeNo == '223'){//MTP3,SCCP $selSql="SELECT sysNo,subSysNo FROM sysInfo WHERE sysTypeNo = '$sysTypeNo' AND sysNo='9' AND DPC = '$selectedDPC' ORDER BY baseStat DESC,updateTime DESC,sysNo DESC,subSysNo "; }else{ $selSql="SELECT sysNo,subSysNo FROM sysInfo WHERE sysTypeNo = '$sysTypeNo' AND sysNo='9' ORDER BY baseStat DESC,updateTime DESC,sysNo,subSysNo "; }*/ if($sysTypeNo[0]=='2'){//Platform $selSql="SELECT sysNo,subSysNo FROM sysInfo WHERE sysTypeNo = '$sysTypeNo' AND sysNo='9' ORDER BY baseStat DESC,sysNo DESC,subSysNo,updateTime DESC "; }else{ $selSql="SELECT sysNo,subSysNo FROM sysInfo WHERE sysTypeNo = '$sysTypeNo' ORDER BY baseStat DESC,updateTime DESC,sysNo,subSysNo "; } }else{ $selSql="SELECT sysNo,subSysNo FROM sysInfo WHERE sysTypeNo = '$sysTypeNo' AND sysNo='$sysNo' ORDER BY baseStat DESC,updateTime DESC,sysNo,subSysNo "; } }else{ //选择指定子系统 $selSql="SELECT sysNo,subSysNo FROM sysInfo WHERE sysTypeNo = '$sysTypeNo' AND sysNo='$selectedSysNo' AND subSysNo='$selectedSubSysNo' ORDER BY baseStat DESC,updateTime DESC "; } $selResult=mysqli_query($pubConn,$selSql); if($DEBUG) { echo"get system info sql = $selSql"; } echo mysqli_error($pubConn); if(@mysqli_num_rows($selResult) > 0){ $selRows = @mysqli_fetch_array($selResult); $sysNo = $selRows[sysNo]; $subSysNo = $selRows[subSysNo]; }else{ echo ""; return(-1); } } // special for sccp and mtp3 add by lilong 2004-6-11 if($selectedSysId == -1){ $DEBUG = 0; if($DEBUG) echo "sysTypeNo = $sysTypeNo, sysNo = $sysNo"; if ( ($sysTypeNo == '222' || $sysTypeNo == '223') && ('8' != $sysNo) && ('11'!=$sysNo) ){//MTP3,SCCP $selSql_1 = "SELECT sysNo,subsysNo FROM sysInfo WHERE baseStat=1 AND sysTypeNo=320"; if($DEBUG) echo "selSql_1 = $selSql_1"; $selRes_1 = mysqli_query($pubConn,$selSql_1); if (mysqli_num_rows($selRes_1) > 0){ $selRows_1 = @mysqli_fetch_array($selRes_1); $sysNo = 9; $subSysNo = $selRows_1[sysNo]; }else{ $selSql_2 = "SELECT sysNo,subsysNo FROM sysInfo WHERE baseStat=1 AND sysTypeNo=0"; if($DEBUG) echo "selSql_2 = $selSql_2"; $selRes_2 = mysqli_query($pubConn,$selSql_2); if (mysqli_num_rows($selRes_2) > 0){ $selRows_2 = @mysqli_fetch_array($selRes_2); $sysNo = 0; $subSysNo = $selRows_2[subsysNo]; } } } if($DEBUG) { echo "sysNo=$sysNo, subSysNo=$subSysNo"; exit(); } $DEBUG = 0; //add end by lilong 2004-6-11 } if(1+$existNum>64){ echo ""; return(-1); } $sendSql="INSERT INTO $commTable (commType,sysTypeNo,sysNo,subSysNo,paramType,objId,InstanceNo,commState,sendTime) VALUES ('$commType','$sysTypeNo','$sysNo','$subSysNo','$paramType','$objIdStr','','1',CURRENT_TIMESTAMP) "; if($DEBUG) echo"send command sql = $sendSql"; $sendResult=mysqli_query($pubConn,$sendSql); echo mysqli_error($pubConn); } //step 4:Return commIdStr if($DEBUG) echo"if(($paramType != $nSubSysParam) && ($commType == $nSetComm))"; if(($paramType != $nSubSysParam) && ($commType == $nSetComm)){ if($paramType == $nGlobalSysParam){ $selSql = "SELECT commId FROM $commTable WHERE paramType='$paramType' AND sysTypeNo='$sysTypeNo' ORDER BY sysTypeNo,sysNo,subSysNo"; }else{ $selSql = "SELECT commId FROM $commTable WHERE paramType='$paramType' AND sysTypeNo='$sysTypeNo' AND sysNo='$sysNo' ORDER BY sysTypeNo,sysNo,subSysNo"; } /* //写VPS 或PCR 参数 }elseif(($sysTypeNo == 120 || $sysTypeNo == 130 || $sysTypeNo == 140) && ($commType == $nSetComm)){ $selSql = "SELECT commId FROM $commTable WHERE sysTypeNo='$sysTypeNo' AND sysNo='$sysNo' ORDER BY sysTypeNo,sysNo,subSysNo"; */ }else{ $selSql = "SELECT commId FROM $commTable WHERE sysTypeNo='$sysTypeNo' AND sysNo='$sysNo' AND subSysNo='$subSysNo'" ; } if($DEBUG) echo"get command id sql = $selSql"; $selResult=mysqli_query($pubConn,$selSql); echo mysqli_error($pubConn); $commIdStr=''; while($selRows = mysqli_fetch_array($selResult)){ $commIdStr .= $selRows[commId].'-'; } if($DEBUG) echo "commIdStr = $commIdStr"; if($DEBUG) exit(); return($commIdStr); }//end of function sysSendComm() //**************************************************************** //函 数 名: setSysParamValue($sysId,$objIdStr,$instanceNo,$newValue) //功能说明: 修改设备参数的initValue,为发送命令做准备 //变量说明: 略 //返 回 值: // 成功: 命令编号字符串 // 失败: -1 // // // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function setSysParamValue($sysId,$objIdStr,$instanceNo,$newValue) { global $paramConf_table; $DEBUG=0; if($DEBUG) echo"sysId=$sysId"; $tmpSysIdArr = explode('_',$sysId); $sysTypeNo = $tmpSysIdArr[0]; $sysNo = $tmpSysIdArr[1]; $subSysNo = $tmpSysIdArr[2]; $paramDb = 'OBJ_'.$sysTypeNo; if($DEBUG) echo"paramDb=$paramDb"; //获取参数定义表的表名,根据oid取出参数定义 $tmpObjArr = explode('.',$objIdStr); $objWhereStr=''; for($i=0;$i$getParamDefSql"; $getParamDefResult=mysqli_query($pubConn,$getParamDefSql); echo mysqli_error($pubConn); if(mysqli_num_rows($getParamDefResult) <= 0){ echo "Cannot find this objId from paramConf"; return(-1); } $getParamDefRows=mysqli_fetch_array($getParamDefResult); $paramType = $getParamDefRows[paramType]; //根据参数类型,推出参数表的表名 if($paramType == 2){ $paramTable = 'param_99'; }else{ $paramTable = 'param_'.$sysNo; } if($paramType != 0){ $subSysNo = '99'; } //修改对应的参数值 $setParamValueSql="UPDATE $paramTable SET initValue='$newValue',readValue='' WHERE subSysNo = '$subSysNo' AND instanceNo = '$instanceNo' AND $objWhereStr "; if($DEBUG) echo" $setParamValueSql "; $setResult=mysqli_query($pubConn,$setParamValueSql); echo mysqli_error($pubConn); if($setResult){ return(1); }else{ return(-1); } }//end of function setSysParamValue //**************************************************************** //函 数 名: getSysParamValue($sysId,$objIdStr,$instanceNo,$valueName) //功能说明: 获取指定的设备参数 //变量说明: 略 //返 回 值: // 成功: 参数值 // 失败: exit()退出 // // // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function getSysParamValue($sysId,$objIdStr,$instanceNo,$valueName) { global $paramConf_table; $DEBUG=0; $tmpSysIdArr = explode('_',$sysId); $sysTypeNo = $tmpSysIdArr[0]; $sysNo = $tmpSysIdArr[1]; $subSysNo = $tmpSysIdArr[2]; $paramDb = 'OBJ_'.$sysTypeNo; //获取参数定义表的表名,根据oid取出参数定义 $tmpObjArr = explode('.',$objIdStr); $objWhereStr=''; for($i=0;$i$getParamDefSql"; $getParamDefResult=mysqli_query($pubConn,$getParamDefSql); echo mysqli_error($pubConn); if(@mysqli_num_rows($getParamDefResult) <= 0){ echo "Cannot find this objId from paramConf"; return(-1); } $getParamDefRows=mysqli_fetch_array($getParamDefResult); $paramType = $getParamDefRows[paramType]; //根据参数类型,推出参数表的表名 if($paramType == 2){ $paramTable = 'param_99'; }else{ $paramTable = 'param_'.$sysNo; } if($paramType != 0){ $subSysNo = '99'; } //修改对应的参数值 $getParamValueSql="SELECT $valueName FROM $paramTable WHERE subSysNo = '$subSysNo' AND instanceNo = '$instanceNo' AND $objWhereStr "; if($DEBUG) echo" $getParamValueSql "; $getResult=mysqli_query($pubConn,$getParamValueSql); echo mysqli_error($pubConn); if(mysqli_num_rows($getResult) > 0){ $paramRows = mysqli_fetch_array($getResult); $paramValue = $paramRows[0]; return($paramValue); }else{ return(-1); } }//end of function getSysParamValue //**************************************************************** //函数8 // getMoneyPara() //函数说明: // 该函数通过查询PPS系统配置得到显示的货币单位是最小货币单位的倍数 // // // // //变量说明: // 无 // // //返回值: // 显示的货币单位是最小货币单位的倍数 // //作者: // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function getMoneyPara() { global $omc_db; $getSql = " SELECT pubVarValue FROM omcPubVarConf WHERE pubVarName='pssCardMinCount'"; $getRes = @mysqli_query($pubConn,$getSql); $getRow = @mysqli_fetch_array($getRes); echo mysqli_error($pubConn); $multiple = $getRow[pubVarValue]; /* if($multiple < 0.1) { $multiple = 100; } elseif($multiple < 1) { $multiple = 10; } */ return($multiple); } function getMoneyPara_forPpsReport() { global $omc_db; $getSql = " SELECT pubVarValue FROM omcPubVarConf WHERE pubVarName='currency_decimal'"; $getRes = @mysqli_query($pubConn,$getSql); $getRow = @mysqli_fetch_array($getRes); echo mysqli_error($pubConn); $multiple = $getRow[pubVarValue]; /* if($multiple < 0.1) { $multiple = 100; } elseif($multiple < 1) { $multiple = 10; } */ return($multiple); } //**************************************************************** //函数: // getBitValue($hexStr,$offset) //功能说明: //从一个十六进制字符串$hexStr中取出指定位置$offset的二进制字符 //例: getBitValue('F1','0.1')=1 // getBitValue('F1','1.0')=1 // getBitValue('F1','1.1')=0 //参数说明: // //返回值: // 取出的二进制字符 // //作者: // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function getBitValue($hexStr,$offset) { $DEBUG=0; if($DEBUG) echo "hexStr=$hexStr"; if($DEBUG) echo "offset=$offset"; $tmpArr =explode('-',$offset); $tmpBgnArr =explode('.',$tmpArr[0]); $bgnByteOffset =$tmpBgnArr[0]; $bgnBitOffset =$tmpBgnArr[1]; if($DEBUG) echo "bgnByteOffset=$bgnByteOffset"; if($DEBUG) echo "bgnBitOffset=$bgnBitOffset"; if(sizeof($tmpArr) > 1 && $tmpArr[0] != $tmpArr[1]){ $tmpEndArr =explode('.',$tmpArr[1]); $endByteOffset =$tmpEndArr[0]; $endBitOffset =$tmpEndArr[1]; if($bgnBitOffset == 0 && $endBitOffset == 7){ $byteOffset = $endByteOffset - $bgnByteOffset + 1; $selByte=substr($hexStr,$bgnByteOffset*2,$byteOffset*2); return($selByte); }else{ $tmpByte_1=substr($hexStr,0,$bgnByteOffset*2); $tmpByte_2=substr($hexStr,($endByteOffset+1)*2); $selByte=substr($hexStr,$bgnByteOffset*2,($endByteOffset-$bgnByteOffset+1)*2); if(strlen($selByte) > 2){//不能跨byte return(-1); } if($DEBUG) echo "selByte=$selByte"; $tmpDec=HexDec($selByte); $binStr=DecBin($tmpDec); for($i=strlen($binStr);$ibinStr=$binStr"; if($bgnBitOffset == 0){ $selBit=substr($binStr,-($endBitOffset+1)); }else{ $selBit=substr($binStr,-($endBitOffset+1),($endBitOffset-$bgnBitOffset+1)); } return($selBit); } }else{ if($bgnByteOffset >= ceil(strlen($hexStr)/2)){ return(0); }else{ $selByte=substr($hexStr,$bgnByteOffset*2,2); if($DEBUG) echo "selByte=$selByte"; $tmpDec=HexDec($selByte); $binStr=DecBin($tmpDec); if($DEBUG) echo "binStr=$binStr"; $binStrLen=strlen($binStr); if($bgnBitOffset >= $binStrLen){ return(0); }else{ $tmpLen=0 - $bgnBitOffset -1; $selBit=substr($binStr,$tmpLen,1); if($DEBUG) echo "selBit=$selBit=substr($binStr,$tmpLen,1)"; return($selBit); } } } } //**************************************************************** //函数: // setBitValue($hexStr,$offset,$bitValue) //功能说明: //将一个十六进制字符串$hexStr中指定位置$offset的二进制字符,设成指定的值$bitValue //例: setBitValue('F1','1.1','1')=F3 // setBitValue('F1','0.1','0')=E1 //参数说明: // //返回值: // 被改过的十六进制字符串$hexStr // //作者: // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function setBitValue($hexStr,$offset,$bitValue) { $DEBUG=0; if($DEBUG) echo "===================="; if($DEBUG) echo "hexStr=$hexStr"; if($DEBUG) echo "offset=$offset"; $tmpArr = explode('-',$offset); $tmpBgnArr = explode('.',$tmpArr[0]); $bgnByteOffset = $tmpBgnArr[0]; $bgnBitOffset = $tmpBgnArr[1]; if($DEBUG) echo "bgnByteOffset=$bgnByteOffset"; if($DEBUG) echo "bgnBitOffset=$bgnBitOffset"; if(sizeof($tmpArr) > 1){ $tmpEndArr = explode('.',$tmpArr[1]); $endByteOffset = $tmpEndArr[0]; $endBitOffset =$tmpEndArr[1]; if($DEBUG) echo "endByteOffset=$endByteOffset"; if($DEBUG) echo "endBitOffset=$endBitOffset"; if($bgnBitOffset == 0 && $endBitOffset == 7){ //这时,$bitValue是16进值字符串,其他情况下,都是二进制字符串 $tmpByte_1=substr($hexStr,0,$bgnByteOffset*2); if($DEBUG) echo "tmpByte_1=$tmpByte_1"; $tmpByte_2=substr($hexStr,($endByteOffset+1)*2); if($DEBUG) echo "tmpByte_2=$tmpByte_2"; $tmpHexStr=$tmpByte_1.$bitValue.$tmpByte_2; if($DEBUG) echo "tmpHexStr=$tmpHexStr"; return($tmpHexStr); }else{ $tmpByte_1=substr($hexStr,0,$bgnByteOffset*2); $tmpByte_2=substr($hexStr,($endByteOffset+1)*2); $selByte=substr($hexStr,$bgnByteOffset*2,($endByteOffset-$bgnByteOffset+1)*2); if(strlen($selByte) > 2){//不能跨byte return(-1); } if($DEBUG) echo "selByte=$selByte"; $tmpDec=HexDec($selByte); $binStr=DecBin($tmpDec); for($i=strlen($binStr);$ibinStr=$binStr"; $tmpBit_1=substr($binStr,0,8-$endBitOffset-1); if($DEBUG) echo "tmpBit_1=$tmpBit_1"; if($bgnBitOffset == 0){ $tmpBit_2=''; }else{ $tmpBit_2=substr($binStr,-($bgnBitOffset)); } if($DEBUG) echo "tmpBit_2=$tmpBit_2"; $tmpBit=$tmpBit_1.$bitValue.$tmpBit_2; if($DEBUG) echo "tmpBit=$tmpBit"; $tmpByte=dechex(BinDec($tmpBit)); if($DEBUG) echo "tmpByte=$tmpByte"; for($i=strlen($tmpByte);$i= ceil(strlen($hexStr)/2)){ return(-1); }else{ $selByte=substr($hexStr,$bgnByteOffset*2,2); if($DEBUG) echo "selByte=$selByte"; $tmpDec=HexDec($selByte); $binStr=DecBin($tmpDec); $binStr=omc_keep_length($binStr,'0','8','1'); if($DEBUG) echo "binStr=$binStr"; $tmpLen=7-$bgnBitOffset; $tmpBit_1=substr($binStr,0,$tmpLen); if($DEBUG) echo "tmpBit_1=$tmpBit_1=substr($binStr,0,$tmpLen)"; $tmpLen=8-$bgnBitOffset; $tmpBit_2=substr($binStr,$tmpLen); if($DEBUG) echo "tmpBit_2=$tmpBit_2=substr($binStr,$tmpLen) "; $newBitStr=$tmpBit_1.$bitValue.$tmpBit_2; if($DEBUG) echo "newBitStr=$newBitStr"; $tmpDec=BinDec($newBitStr); $selByte=DecHex($tmpDec); $selByte=omc_keep_length($selByte,'0','2','1'); if($DEBUG) echo "selByte=$selByte"; $tmpHexStr_1=substr($hexStr,0,$bgnByteOffset*2); $tmpHexStr_2=substr($hexStr,$bgnByteOffset*2+2); if($DEBUG) echo "tmpHexStr_1=$tmpHexStr_1 / tmpHexStr_2=$tmpHexStr_2 "; $tmpHexStr=$tmpHexStr_1.$selByte.$tmpHexStr_2; if($DEBUG) echo "tmpHexStr=$tmpHexStr"; return($tmpHexStr); } } } //**************************************************************** //函数: // getPubVar($pubVarName) //功能说明: //从表OMC_PUB.omcPubVarConf中取出对应变量名的值 //例: getPubVar('pssCardMinCount')=100 //参数说明: // //返回值: // 成功:取出变量名的值,失败:-1 // //作者: // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function getPubVar($pubVarName) { $DEBUG=0; $db='OMC_PUB'; $tableName='omcPubVarConf'; $sql = " SELECT pubVarValue FROM $tableName WHERE pubVarName='$pubVarName' "; if($DEBUG) echo "sql=$sql"; $res = @mysqli_query($pubConn,$sql); if(mysqli_num_rows($res) > 0){ $row = @mysqli_fetch_array($res); return($row[pubVarValue]); }else{ return(-1); } } //**************************************************************** //函数: // showComma($value) //功能说明:如果值大于3位,加逗号显示 // //参数说明: // //返回值: // 成功:转换的值,失败:-1 // //作者: // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function showComma($value) { $sValue = explode("-",$value); if(isset($sValue[1])) $pValue = explode(".",$sValue[1]); else $pValue = explode(".",$sValue[0]); $intValue = $pValue[0]; $len=strlen($intValue); $temValue=''; while($len > 3){ $value_1=substr($intValue,-3); $intValue=substr($intValue,0,-3); $temValue=",".$value_1.$temValue; $len=strlen($intValue); } $temValue = $intValue.$temValue; if(isset($pValue[1])){ $temValue = $temValue.".".$pValue[1]; } if(isset($sValue[1])) $temValue = "-".$temValue; return $temValue; } //**************************************************************** //函数: // showHelp($helpId) //功能说明:显示帮组文件 // //参数说明: // //返回值: // 成功: // //作者: // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function showHelp($helpId) { echo " "; echo ""; //echo ""; } //**************************************************************** //函数: // getSerial() //功能说明:得到各模块的系列号,以及总的系列号. // //参数说明: // //返回值: // 成功: // //作者: // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function getSerial() { $DEBUG = 0; $dbName='OMC_PUB'; $tbName='sysStat'; global $ttlSerial; global $srlArr; global $noSrlStt,$ttlSrlClr; $selSql = " SELECT * FROM $tbName WHERE sysTypeNo = 0"; if($DEBUG) echo "selSql=$selSql"; $selRes = @mysqli_query($pubConn,$selSql); $selRow = @mysqli_fetch_array($selRes); $detailStat= $selRow[detailStat]; $ttlSerial = substr($detailStat,39*2,8); $ttlSrlClr = "#000000"; if($DEBUG) echo "ttlSerial=$ttlSerial"; $selSql = " SELECT * FROM $tbName WHERE sysTypeNo=320 OR sysTypeNo = 330 OR sysTypeNo = 340 OR sysTypeNo = 360 OR sysTypeNo = 380 OR sysTypeNo = 390 OR sysTypeNo = 350 "; if($DEBUG) echo "selSql=$selSql"; $selRes = @mysqli_query($pubConn,$selSql); $selRow = @mysqli_fetch_array($selRes); do{ if(!$selRow) break; $sysTypeNo = $selRow[sysTypeNo]; $sysNo = $selRow[sysNo]; if($DEBUG) echo "sysTypeNo=$sysTypeNo"; if($DEBUG) echo "sysNo=$sysNo"; $detailStat= $selRow[detailStat]; if($DEBUG) echo "detailStat=$detailStat"; switch($sysTypeNo) { case '320': //MSC $arrNum = 0; $subBgn = 39; break; case '330': //HLR $arrNum = 1; $subBgn = 39; break; case '340': //AUC $arrNum = 2; $subBgn = 39; break; case '360': //PPS $arrNum = 3; $subBgn = 39; break; case '380': //EIR $arrNum = 4; $subBgn = 39; break; case '390': //VSS $arrNum = 5; $subBgn = 39; break; case '350': //SMSC $arrNum = 6; $subBgn = 39; break; default: break; } $srlArr[$arrNum][$sysNo][number] = substr($detailStat,$subBgn*2,8); $srlArr[$arrNum][$sysNo][color] = "#000000"; if($DEBUG) echo "srlArr[$arrNum][$sysNo] = {$srlArr[$arrNum][$sysNo]} "; if($srlArr[$arrNum][$sysNo][number] != $ttlSerial){ $srlArr[$arrNum][$sysNo][color] = "#FF0000"; $noSrlStt = 1; } if($DEBUG) echo "noSrlStt=$noSrlStt"; }while($selRow = @mysqli_fetch_array($selRes)); if($DEBUG) echo "ttlSerial=$ttlSerial"; if($noSrlStt) $ttlSrlClr = "#FF0000"; else $ttlSrlClr = "#000000"; if($DEBUG) echo "ttlSrlClr=$ttlSrlClr"; return 1; } function byte2ip($byteStr) { for($i=0;$i<4;$i++){ $unitIp=substr($byteStr,$i*2,2); $unitIp=hexdec($unitIp); if($i == 0){ $ipStr =$unitIp; }else{ $ipStr .=".$unitIp"; } } return($ipStr); } function changeByteOrder($hex_byte) { while(strlen($hex_byte) % 2 == 1) $hex_byte="0".$hex_byte; $byte_len=strlen($hex_byte)/2; $res=""; for($i=0;$i<$byte_len;$i++) { $tmpstr=substr($hex_byte,$i*2,2); $res=$tmpstr.$res; } return $res; } function getSystemNameBySysTypeNo($sysTypeNo) { $sqlstr="select sysTypeName from OMC_PUB.sysConf where sysTypeNo = $sysTypeNo "; $res = @mysqli_query($pubConn,$sqlstr); $row = @mysqli_fetch_array($res); return $row[sysTypeName]; } function getSystemState($sysTypeNo,$byteStart,$length) { $db="OMC_PUB"; $sql="select detailStat from OMC_PUB.sysStat where sysTypeNo=$sysTypeNo order by updateTime DESC "; if($DEBUG)echo "$sql"; $result=@mysqli_query($pubConn,$sql); $record_num=0; $record_num=@mysqli_num_rows($result); if($record_num == 0) return ""; $rows=@mysqli_fetch_array($result); $allbin=$rows[detailStat]; if(strlen($allbin) < $length) return ""; $resbin=substr($allbin,$byteStart,$length); return $resbin; } //**************************************************************** //函数: // getParamOptionArray //功能说明:返回参数选项值的数组 // //参数说明: // sysTypeNo: sysTypeNo // value: parameter oid or name // mode: PARAM_OID PARAM_NAME //返回值: // 成功: // //作者:zhengjianhui // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- define(PARAM_OID,0); define(PARAM_NAME,1); function getParamOptionArray($sysTypeNo,$value,$mode) { $db="OBJ_".$sysTypeNo; if($mode == PARAM_NAME) { $sql = "select * from OBJ_$sysTypeNo.paramConf where name_2 like '%$value%' "; } else { $levelArr=explode('.',$value); for($j=0;$jlevelArr[$j]={$levelArr[$j]}"; if($j == 0){ $levelWhere ="level_$levelNo='${"level_$levelNo"}'"; }else{ $levelWhere .=" AND level_$levelNo='${"level_$levelNo"}'"; } } $sql = "select * from OBJ_$sysTypeNo.paramConf where $levelWhere "; } $res = @mysqli_query($pubConn,$sql); $row = @mysqli_fetch_array($res); $template=$row[setTemplate_2]; $options=explode(";",$template); for($i=0;$i"; $arr[$v]=$n; } return $arr; } function getMSSFtpAccount() { $default_user_name="subsManager"; $default_password="iammanager"; $sql="select * from OMC_PUB.omcPubVarConf where pubVarName='globalFTPUserName' "; $res=@mysqli_query($pubConn,$sql); $num=@mysqli_num_rows($res); if($num == 0) { $isql="insert into OMC_PUB.omcPubVarConf(instance,pubVarName,pubVarValue,remark)values(18,'globalFTPUserName','subsManager','For Import subscriber, download PPS Tarriff, backup MSS subs data and MSS Configuration Synchronization');"; @mysqli_query($pubConn,$isql); $isql="insert into OMC_PUB.omcPubVarConf(instance,pubVarName,pubVarValue,remark)values(18,'globalFTPPassword','iammanager','For Import subscriber, download PPS Tarriff, backup MSS subs data and MSS Configuration Synchronization');"; @mysqli_query($pubConn,$isql); } $row=@mysqli_fetch_array($res); if(strlen(trim($row[pubVarValue])) > 0) $ftpInfo[UserName]=$row[pubVarValue]; else $ftpInfo[UserName]=$default_user_name; $sql="select * from OMC_PUB.omcPubVarConf where pubVarName='globalFTPPassword' "; $res=@mysqli_query($pubConn,$sql); $row=@mysqli_fetch_array($res); if(strlen(trim($row[pubVarValue])) > 0) $ftpInfo[Password]=$row[pubVarValue]; else $ftpInfo[Password]=$default_password; return $ftpInfo; } //**************************************************************** //函数: // alertMsgAndGoLastl() //功能说明:使用JS提示一些信息. // //参数说明: // //返回值: // 成功: // //作者: // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function alertMsgAndGoLast($msg) { echo ""; exit(); } //注意:下面的"? >"后面不能有空行,否则cvs数据下载时,会出错。 ?>
"; echo "\n$quoNum%"; echo "\n