"; } } if($DEBUG) echo "sysCommSend($sys_id,$nSetComm,$oid,$selectsysid)
"; $commIdStr = oidSysCommSend($sys_id,$nSetComm,$oid,$selectsysid); CheckState($commIdStr); for($i=0; $i < $count; $i++) { mysqli_query($pubConn,$setsql_back[$i]); echo mysqli_error($pubConn); if($DEBUG) echo "$setsql_back[$i]
"; } } //**************************************************************** // update_sg //函数说明: // 该函数用于设置SG参数前先Disable SG,然后再Enable SG // //参数: // 需要sys_id,selectsysid // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function update_sg($sys_id,$selectsysid=-1){ global $pubDb,$nSetComm; $DEBUG = 0; $sysIdArr = explode('_',$sys_id); $sysTypeNo = $sysIdArr[0]; $sysNo = $sysIdArr[1]; $subSysNo = $sysIdArr[2]; $objDb = 'OBJ_'.$sysTypeNo; $paramTable = 'param_'.$sysNo; $oid = '2.9'; $objWhereStr = getLevelWhere($oid); $getsql = "SELECT initValue,instanceNo FROM $paramTable where $objWhereStr and initValue LIKE '01%' and initValue !=readValue "; $result = @mysqli_query($pubConn,$getsql); $count=0; while($sg_attr = mysqli_fetch_array($result)) { $setsql_back[$count] = "update $paramTable set initValue = '$sg_attr[initValue]' where $objWhereStr and instanceNo = '$sg_attr[instanceNo]'"; $count++; $sg_attr[initValue] = setBitValue($sg_attr[initValue],'00.0-00.7','00'); $setsql = "update $paramTable set initValue = '$sg_attr[initValue]' where $objWhereStr and instanceNo = '$sg_attr[instanceNo]'"; mysqli_query($pubConn,$setsql); echo mysqli_error($pubConn); if($DEBUG) echo "$setsql
"; } if($DEBUG) echo "sysCommSend($sys_id,$nSetComm,$oid,$selectsysid)
"; $commIdStr = oidSysCommSend($sys_id,$nSetComm,$oid,$selectsysid); CheckState($commIdStr); for($i=0; $i < $count; $i++) { mysqli_query($pubConn,$setsql_back[$i]); echo mysqli_error($pubConn); if($DEBUG) echo "$setsql_back[$i]
"; } } //**************************************************************** // CheckState //函数说明: // 该函数用于监测发送get/set命令后,response的状态 // //参数: // // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function CheckState($cmmIdStr,$errRetFlag=0,$outFlag=1){ global $omc_db; global $maxNum,$remark,$nProcFail,$nWaitProc,$nInProc,$nOutProc; $cmmIdStrArr=explode("-",$cmmIdStr); $tmpWhere = '(1'; for($i=0;$i 180){ $tmpRemark='Timeout'; $delComm = " DELETE FROM $commTable WHERE $tmpWhere "; mysqli_query($pubConn,$delComm); outPutChkMsg($tmpsysTypeNo,$tmpsysNo,'0033',$errRetFlag); break; } if($outFlag) { echo ""; flush(); } $selComm = "SELECT commState,remark,objId,sysTypeNo,sysNo,subSysNo FROM $commTable WHERE $tmpWhere AND commState='$nProcFail'"; if($DEBUG) echo "
selComm=$selComm"; $selRes = mysqli_query($pubConn,$selComm); if(mysqli_num_rows($selRes)>0){ $selRow = mysqli_fetch_array($selRes); $tmpRemark=$selRow[remark]; $tmpoidId=$selRow[objId]; $tmpsysTypeNo=$selRow[sysTypeNo]; $tmpsysNo=$selRow[sysNo]; $delComm = " DELETE FROM $commTable WHERE $tmpWhere "; mysqli_query($pubConn,$delComm); $tmpRemarkArr=explode(":",$tmpRemark); outPutChkMsg($tmpsysTypeNo,$tmpsysNo,$tmpRemarkArr[0],$errRetFlag); } $selComm = "SELECT commState,remark FROM $commTable WHERE $tmpWhere AND (commState='$nWaitProc' OR commState='$nInProc')"; if($DEBUG)echo "
selComm=$selComm"; $selRes = mysqli_query($pubConn,$selComm); if($DEBUG) $tmpNum=mysqli_num_rows($selRes); if($DEBUG) echo "
tmpNum=$tmpNum"; if(mysqli_num_rows($selRes)>0){ sleep(1); $i++; continue; } $delComm = " DELETE FROM $commTable WHERE $tmpWhere "; mysqli_query($pubConn,$delComm); break; } } //**************************************************************** // ChDbMov //函数说明: // 该函数用于把readValue copy到 initValue // //参数: // $sysId,$oidstr // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function ChDbMov($sysId,$oidstr){ $sysIdArr = explode('_',$sysId); $sysTypeNo = $sysIdArr[0]; $sysNo = $sysIdArr[1]; $subSysNo = $sysIdArr[2]; $levelArr=explode('.',$oidstr); $objWhereStr= ''; $objWhereStr =getLevelWhere($oidstr); $objDb = 'OBJ_'.$sysTypeNo; $paramTable = 'param_'.$sysNo; $selSql ="SELECT distinct readValue FROM $paramTable WHERE $objWhereStr ORDER BY readValue"; $selRes = @mysqli_query($pubConn,$selSql); $selRow = mysqli_fetch_array($selRes); echo mysqli_error($pubConn); // if ('' != $selRow[0]){ if (1){ $moveSql = "UPDATE $paramTable SET initValue = readValue WHERE $objWhereStr "; if($DEBUG) echo "
moveSql=$moveSql"; mysqli_query($pubConn,$moveSql); echo mysqli_error($pubConn); } } /**************************************************************** SaveParam 函数说明: 该函数用于发送save命令 参数: $SaveArr include $sysId,$oidstr,$Value,$selectedSysId 修改注释: NO.1 姓名: 时间: 修改说明: ****************************************************************/ function SaveParam($SaveArr) { global $nSetComm; for($j =0;$j< sizeof($SaveArr);$j++) { $sysId = $SaveArr[$j]['sysid']; $oidstr = $SaveArr[$j]['oidstr']; $Value = $SaveArr[$j]['setvalue']; if(isset($SaveArr[$j]['selectsysid']))//added by oven 2006-9-19 17:39 $selectedSysId =$SaveArr[$j]['selectsysid']; else $selectedSysId = '-1'; $sysIdArr = explode('_',$sysId); $sysTypeNo = $sysIdArr[0]; $sysNo = $sysIdArr[1]; $subSysNo = $sysIdArr[2]; $objWhereStr= ''; $objWhereStr =getLevelWhere($oidstr); $objDb = 'OBJ_'.$sysTypeNo; $paramTable = 'param_'.$sysNo; $defSql = " SELECT initValue FROM $paramTable WHERE $objWhereStr"; $defRes = @mysqli_query($pubConn,$defSql); $row = @mysqli_fetch_array($defRes); $saveSql = "UPDATE $paramTable SET initValue = '$Value', readValue = 'FF' WHERE $objWhereStr"; mysqli_query($pubConn,$saveSql); $commIdStr = oidSysCommSend($sysId,$nSetComm,$oidstr,$selectedSysId); if($DEBUG) echo "sysCommSend($sysId,$nSetComm,$oidstr,$selectedSysId)"; $cmmIdStr = $cmmIdStr.$commIdStr; } CheckState($cmmIdStr,2); } //**************************************************************** // GetParam //函数说明: // 该函数用于发送get命令 // //参数: // $oidsysarr,$errRetFlag=0,$checkflag=0 // $oidsysarr包含需要发送的oid ,sysid,selectsysid // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function GetParam($oidsysarr,$errRetFlag=0,$checkflag=0,$showflg=1){ global $nGetComm; for($j =0;$j< sizeof($oidsysarr);$j++){ $sysIdArr = explode('_',$oidsysarr[$j][sysid]); $sysTypeNo = $sysIdArr[0]; if($checkflag ==0 || (getHeartbeat($sysTypeNo)>0)){ if($DEBUG) echo "
sysCommSend({$oidsysarr[$j][sysid]},$nGetComm,{$oidsysarr[$j][oid]},{$oidsysarr[$j][selectsysid]})
"; $commIdStr = oidSysCommSend($oidsysarr[$j][sysid],$nGetComm,$oidsysarr[$j][oid],$oidsysarr[$j][selectsysid]); }else{ continue; } $cmmIdStr = $cmmIdStr.$commIdStr; } if($DEBUG) echo "$cmmIdStr
"; CheckState($cmmIdStr,$errRetFlag,$showflg); for($j =0;$j< sizeof($oidsysarr);$j++){ ChDbMov($oidsysarr[$j][sysid],$oidsysarr[$j][oid]); } } //**************************************************************** // DelComm //函数说明: // 该函数用于删除掉parameterComm里面的纪录 // //参数: // $cmmIdStr为要删除的commId字串 // // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function DelComm($cmmIdStr){ if($cmmIdStr==""){ return; } $cmmIdStrArr=explode("-",$cmmIdStr); for($i=0;$i0)) { if($DEBUG) echo "
sysCommSend({$oidsysarr[$j][sysid]},$nSetComm,{$oidsysarr[$j][oid]},{$oidsysarr[$j][selectsysid]})
"; $commIdStr = oidSysCommSend($oidsysarr[$j][sysid],$nSetComm,$oidsysarr[$j][oid],$oidsysarr[$j][selectsysid]); } else { continue; } $cmmIdStr =$cmmIdStr.$commIdStr; } if($DEBUG)echo "$cmmIdStr
"; CheckState($cmmIdStr); } //**************************************************************** // Clear_readValud //函数说明: // 该函数用于清空readValue // //参数: // $oidsysarr // // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function Clear_readValud($oidsysarr){ for($j =0;$j< sizeof($oidsysarr);$j++){ $sysIdArr = explode('_',$oidsysarr[$j][sysid]); $sysTypeNo = $sysIdArr[0]; $sysNo = $sysIdArr[1]; $subSysNo = $sysIdArr[2]; $objDb = 'OBJ_'.$sysTypeNo; $paramTable = 'param_'.$sysNo; $updSql = "UPDATE $paramTable SET readValue = ''"; mysqli_query($pubConn,$updSql); } } //**************************************************************** // get_e1channel //函数说明: // 该函数用于get相应trunkgroup所属E1的channel参数 // //参数: // $trunkgp // // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function get_e1channel($trunkgp){ global $nSetComm,$nGetComm,$DEBUG; $sysId = '322_99_99'; $sysIdArr = explode('_',$sysId); $sysTypeNo = $sysIdArr[0]; $sysNo = $sysIdArr[1]; $subSysNo = $sysIdArr[2]; $oidstr = '2.4.2'; $objWhereStr= ''; $objWhereStr =getLevelWhere($oidstr); $objDb = 'OBJ_'.$sysTypeNo; $paramTable = 'param_'.$sysNo; $HEXtrunkgp = omc_keep_length(dechex($trunkgp),"0","2"); $HEXtrunkgp = strtoupper($HEXtrunkgp); $paramSql = " SELECT instanceNo FROM $paramTable WHERE $objWhereStr AND initValue = '$HEXtrunkgp' ORDER BY instanceNo "; $Result = mysqli_query($pubConn,$paramSql); if(0)echo "
paramSql:$paramSql"; //------------读E1参数表--------------------- $n = 0; while($Row = mysqli_fetch_array($Result)){ $tempnum = $Row[instanceNo]/8; $cardno = Floor($tempnum); $cardname = "cardno"."_$cardno"; $tempno = $cardno+1; $E1Cardno[$tempno]=1; $n++; } $sendflag=0; $E1cmmIdStr=''; for($i=1;$i<33;$i++){ if($E1Cardno[$i]){ $oidCard = "2.5."."$i"; if($DEBUG) echo "
oidSysCommSend('322_99_99',$nGetComm,$oidCard)
"; $commIdStr = oidSysCommSend('322_99_99',$nGetComm,$oidCard); $E1cmmIdStr =$E1cmmIdStr.$commIdStr; { $obj = ($i<17) ? '322_0_0' : '322_1_0'; if($i < 17) $oidCard = "3.5."."$i"; else { $ii = $i-16; $oidCard = "3.5."."$ii"; } $commIdStr = oidSysCommSend($obj,$nGetComm,$oidCard); if($DEBUG) echo "
oidSysCommSend($obj,$nGetComm,$oidCard)
"; $E1cmmIdStr =$E1cmmIdStr.$commIdStr; } $sendflag=1; } } if($sendflag){ CheckState($E1cmmIdStr); } for($i=1;$i<33;$i++){ if($E1Cardno[$i]){ $oidCard = "2.5."."$i"; ChDbMov('322_99_99',$oidCard); } } return; } //**************************************************************** // set_e1channel //函数说明: // 该函数用于set相应trunkgroup所属E1的channel参数 // //参数: // $trunkgp // // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function set_e1channel($trunkgp){ global $nSetComm,$nGetComm,$DEBUG; $sysId = '322_99_99'; $sysIdArr = explode('_',$sysId); $sysTypeNo = $sysIdArr[0]; $sysNo = $sysIdArr[1]; $subSysNo = $sysIdArr[2]; $oidstr = '2.4.2'; $objWhereStr= ''; $objWhereStr =getLevelWhere($oidstr); $objDb = 'OBJ_'.$sysTypeNo; $paramTable = 'param_'.$sysNo; $HEXtrunkgp = omc_keep_length(dechex($trunkgp),"0","2"); $HEXtrunkgp = strtoupper($HEXtrunkgp); $paramSql = " SELECT instanceNo FROM $paramTable WHERE $objWhereStr AND initValue = '$HEXtrunkgp' ORDER BY instanceNo "; $Result = mysqli_query($pubConn,$paramSql); if(0)echo "
paramSql:$paramSql"; //------------读E1参数表--------------------- $n = 0; while($Row = mysqli_fetch_array($Result)){ $tempnum = $Row[instanceNo]/8; $cardno = Floor($tempnum); $cardname = "cardno"."_$cardno"; $tempno = $cardno+1; $E1Cardno[$tempno]=1; $n++; } $E1cmmIdStr=''; for($i=1;$i<33;$i++){ if($E1Cardno[$i]){ $oidCard = "2.5."."$i"; if($DEBUG) echo "
oidSysCommSend('322_99_99',$nSetComm,$oidCard)
"; $commIdStr = oidSysCommSend('322_99_99',$nSetComm,$oidCard); $E1cmmIdStr =$E1cmmIdStr.$commIdStr; } } CheckState($E1cmmIdStr); return; } //**************************************************************** // changeGTT //函数说明: // 该函数用于修改dpc参数是修改相应的GTT纪录 // //参数: // $DPC,$NetID,$oldDPC,$oldNetID // // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function changeGTT($DPC,$NetID,$oldDPC,$oldNetID){ $tmpDb = 'OBJ_223'; $tmpTable = 'param_99'; $tmpoid = '2.2'; $objWhereStr = getLevelWhere($tmpoid); $paramSql = " SELECT initValue,readValue,instanceNo FROM $tmpTable WHERE $objWhereStr "; $Result = mysqli_query($pubConn,$paramSql); $num = 0; while($Row = mysqli_fetch_array($Result)){ $GTT_DPC = hexdec(getBitValue($Row[initValue],'24.0-26.7')); $GTT_SSN = hexdec(getBitValue($Row[initValue],'27.0-27.7')); $GTT_NetID = hexdec(getBitValue($Row[initValue],'23.0-23.7')); $flag = hexdec(getBitValue($Row[initValue],'00.0-00.7')); if($GTT_DPC == $oldDPC && $flag == 1 && $GTT_NetID == $oldNetID){ $DPC_GTT = dechex($DPC); $DPC_GTT = omc_keep_length($DPC_GTT,0,6); $Row[initValue] = setBitValue($Row[initValue],'24.0-26.7',$DPC_GTT); //$SSN_GTT = dechex($SSN); $SSN_GTT = dechex($GTT_SSN); $SSN_GTT = omc_keep_length($SSN_GTT,0,2); $Row[initValue] = setBitValue($Row[initValue],'27.0-27.7',$SSN_GTT); $NetID_GTT = dechex($NetID); $NetID_GTT = omc_keep_length($NetID_GTT,0,2); $Row[initValue] = setBitValue($Row[initValue],'23.0-23.7',$NetID_GTT); $Row[initValue] = strtoupper($Row[initValue]); $updSql = "UPDATE $tmpTable SET initValue = '$Row[initValue]' WHERE $objWhereStr AND instanceNo = '$Row[instanceNo]' "; mysqli_query($pubConn,$updSql); $num++; } } } //**************************************************************** // toAscii //函数说明: // 该函数用于把byte转换成字符串 // //参数: // $DPC,$NetID,$oldDPC,$oldNetID // // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function toAscii($byteValue){ $charValue = ""; $tmpLen=strlen($byteValue); for($charCount=0; $charCount < $tmpLen; $charCount++){ $unitByte = substr($byteValue,$charCount,2); $charCount++; if($unitByte == 0) break; $unitChar = chr(HexDec($unitByte)); // hex -> ascii $charValue .= $unitChar; } return $charValue; } //**************************************************************** // toHex //函数说明: // 该函数用于把字符串转换成byte // //参数: // $DPC,$NetID,$oldDPC,$oldNetID // // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function toHex($byteValue){ $charValue = ""; $tmpLen=strlen($byteValue); for($charCount=0; $charCount < $tmpLen; $charCount++){ $unitByte = substr($byteValue,$charCount,1); $unitChar = dechex(ord($unitByte)); $charValue .= $unitChar; } return $charValue; } //**************************************************************** // getHeartbeat //函数说明: // 该函数用于从heartbeat取状态判断设备是否存在 // //参数: // $sysTypeNo // // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function getHeartbeat($sysTypeNo){ global $pubDb; $getSql="SELECT sysTypeNo,sysNo,subSysNo FROM OMC_PUB.sysInfo WHERE sysTypeNo=$sysTypeNo"; $result =mysqli_query($pubConn,$getSql); //echo "$getSql
"; echo mysqli_error($pubConn); $count=0; while($rows=mysqli_fetch_array($result)){ $count++; } return $count; } //**************************************************************** // InitialAAS //函数说明: // 该函数用于初始化aas参数 // //参数: // $systemNo // // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function InitialAAS($systemNo) { global $nSetComm; $objDB = "OBJ_311"; $paramTable = 'param_'.$systemNo; $sccp_sysId = "223_11_".$systemNo; $AasSysId = "311_".$systemNo."_0"; $oidsysarr=array('2.1.3','2.1.4','2.1.5','2.1.8','2.1.9','2.1.10','2.3.1','2.3.2'); for($i=0;$i"; mysqli_query($pubConn,$updflag); echo mysqli_error($pubConn); //**************************************************************** $commIdStr =oidSysCommSend($AasSysId,$nSetComm,$oidstr); $commArr = $commArr.$commIdStr; //**************************************************************** } /* $sccp_objDB = 'OBJ_223'; $tmpTable = 'param_11'; $oidstr = '2.1.8'; $objWhereStr = getLevelWhere($oidstr); $paramSql = " SELECT initValue FROM OBJ_223.paramConf WHERE $objWhereStr"; $Result_def = mysql_db_query('OBJ_223',$paramSql); $Row_def = mysqli_fetch_array($Result_def); $tmpDefValue= $Row_def[initValue]; $updflag = "UPDATE $tmpTable SET initValue = '$tmpDefValue' WHERE $objWhereStr "; if($debug) echo "$updflag
"; mysqli_query($pubConn,$updflag); echo mysqli_error($pubConn); //**************************************************************** $commIdStr =oidSysCommSend('223_11_99',$nSetComm,$oidstr,$sccp_sysId); if($commIdStr=='-1'){ DelComm($commArr); echo "

Error while getting/setting parameters. Please check the device state!
"; echo "oidSysCommSend('223_11_99',$nSetComm,$oidstr,$sccp_sysId)
"; echo "

Back"; exit(); } $commArr = $commArr.$commIdStr; //**************************************************************** */ CheckState($commArr); } //**************************************************************** // InitialAAS //函数说明: // 该函数用于检查dpc有没有重复 // //参数: // $DPC,$NI // // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function chkDPC($DPC,$NI){ //dpc ni不能设重 $tmpDb = 'OBJ_222'; $tmpTable = 'param_99'; $tmpoid = '2.4.1'; $objWhereStr = getLevelWhere($tmpoid); $setDPC = omc_keep_length(dechex($DPC),0,6); $setDPC = strtoupper($setDPC); $setNetID = $NI; $paramSql = " SELECT initValue,readValue,instanceNo FROM $tmpTable WHERE $objWhereStr AND initValue LIKE '$setDPC%' "; $Result = mysqli_query($pubConn,$paramSql); while($Row = mysqli_fetch_array($Result)){ $flag=getBitValue($Row[initValue],'3.2-3.2'); if($flag&&($setNetID==bindec(getBitValue($Row[initValue],'3.0-3.1')))){ echo ""; exit(); } } //不能与 spc 重复 { $oidstr = '2.2'; $link_Db = 'OBJ_222'; $link_Table = 'param_99'; $subSysNo = 99; $objWhereStr= ''; $objWhereStr =getLevelWhere($oidstr); $paramSql = " SELECT initValue,readValue,instanceNo FROM $link_Table WHERE $objWhereStr "; if($DEBUG) echo "$paramSql
"; $Result = mysqli_query($pubConn,$paramSql); $Row = mysqli_fetch_array($Result); $NIbit = getBitValue($Row[initValue],"0.$setNetID"); $tmp = $setNetID+1+$NIbit*4; $oidstr = '2.3.'.$tmp; $objWhereStr= ''; $objWhereStr =getLevelWhere($oidstr); $paramSql = "SELECT initValue FROM $link_Table WHERE $objWhereStr AND instanceNo = '0' "; if($DEBUG) echo "paramSql=$paramSql
"; $Result = mysqli_query($pubConn,$paramSql); $Row = mysqli_fetch_array($Result); $WXC2DPC = strtoupper($Row[initValue]); if(hexdec($setDPC) == hexdec($WXC2DPC)){ echo ""; exit(); } } } function chkEleName($setName) { global $pubDb; $DEBUG = 0; $ElementInfoObjId='2.11'; $levelWhere = getLevelWhere($ElementInfoObjId); if($DEBUG) echo "
levelWhere=$levelWhere"; $ElementInfoParamTable='OBJ_225.param_99'; $getSql="SELECT initValue,instanceNo FROM $ElementInfoParamTable WHERE $levelWhere and initValue LIKE '01%' "; if($DEBUG) echo "
getSql=$getSql"; $result =mysqli_query($pubConn,$getSql); echo mysqli_error($pubConn); $nameOffset = '14.0-23.7'; while($rows=mysqli_fetch_array($result)) { $name = trim(toAscii(getBitValue($rows[initValue],$nameOffset))); if(strcmp($name,$setName)==0){ echo ""; exit(); } } } //**************************************************************** // getE1State //函数说明: // 该函数用于检查所属TG,Linkset下E1 ,E1 link的状态 // //参数: // $TG,$linkset // // //修改注释: //NO.1 //姓名: //时间: //修改说明: //---------------------------------------------------------- function getE1State($TG,$linkset) { global $pubDb; if(strlen($TG)<=0) $TG =255; if(strlen($linkset)<=0) $linkset = 255; $tmpObjIdStr='2.4.2'; $levelWhere = getLevelWhere($tmpObjIdStr); $tmpTgValue=dechex($TG); $tmpTgValue=strtoupper(omc_keep_length($tmpTgValue,0,2)); $getSql="SELECT initValue,instanceNo FROM OBJ_322.param_99 WHERE $levelWhere AND initValue='$tmpTgValue' "; $result =mysqli_query($pubConn,$getSql); $flag=0; $E1state1=1;//OK $E1state2=0;//DOWN $ins_bgn = 22; //e1 installed $phy_bgn = 24; //e1 layer1(physical layer) $el2_bgn = 25; //e1 layer2 while($rows = mysqli_fetch_array($result)) { {//e1 enable,L1,L2 status $tempnum = $rows[instanceNo]/8; $cardno = Floor($tempnum); $sysNo = $cardno > 15 ? 1 : 0; $slot = $cardno % 16; $port = $rows[instanceNo] - $cardno*8; $e1selSql = "SELECT sysTypeNo,sysNo,subSysNo,detailStat,updateTime FROM sysStat WHERE sysTypeNo='111' AND sysNo='$sysNo' and subSysNo='$slot' "; $e1Result = @mysqli_query($pubConn,$e1selSql); if($e1Row = @mysqli_fetch_array($e1Result)) { $hex_mes = $e1Row[detailStat]; $bin_mes=''; for($i=0;$i1) ? 0 : $tmp2; //e1 layer2 install $bin_inl=substr($bin_mes,$el2_bgn*8+7-$port,1);//0:'N'; 1:'Y'; $tmp3 = bindec($bin_inl); $E1state1 = $E1state1 & $tmp2 & $tmp3; $E1state2 = $E1state2 | $tmp2 | $tmp3; $flag = 1; } }//end e1 L1,L2 status } $out_time=date("Y-m-d H:i:s",mktime(date("H"),date("i"),date("s")-30,date("m"),date("d"),date("Y"))); //E1 link status $HbparamSql = " SELECT detailStat FROM OMC_PUB.sysStat WHERE sysTypeNo='200' AND sysNo='9' AND subSysNo='0' AND updateTime>'$out_time' "; $Hbresult = mysqli_query($pubConn,$HbparamSql); $Hbvalue_mpt3 = mysqli_fetch_array($Hbresult);//取mtp3 的heartbeat //E1 link $tmpObjIdStr='2.5.1'; $levelWhere = getLevelWhere($tmpObjIdStr); $tmpValue=dechex($linkset); $tmpValue=strtoupper(omc_keep_length($tmpValue,0,2)); $getSql="SELECT initValue,instanceNo FROM OBJ_222.param_99 WHERE $levelWhere AND initValue LIKE '$tmpValue%' "; $result =mysqli_query($pubConn,$getSql); //echo "
$getSql"; $flaglink=0; while($rows=mysqli_fetch_array($result)) { $linkflag = getBitValue($rows[initValue],'06.5-06.5'); if($linkflag) { $Hboffset=34+Floor($rows[instanceNo]/4); $tmpValue=substr($Hbvalue_mpt3[detailStat],$Hboffset*2,2); $bitoff =$rows[instanceNo]%4; $bitoff1=$bitoff*2; $bitoff2=$bitoff1+1; $bitoff='0.'.$bitoff1.'-0.'.$bitoff2; //echo "
$bitoff"; $tmp=bindec(getBitValue($tmpValue,$bitoff)); if($tmp>1) $tmp=0; $E1state1 = $E1state1 & $tmp; $E1state2 = $E1state2 | $tmp; $flaglink=1; } } if(0) { $return = "$tmp; $tmp2 ;$tmp3"; $return1 = "$sysNo; $slot; $port"; //return $return1; return $return; } if($flag&&$flaglink&&$E1state1==1&&$E1state2==1) $E1state='Available'; elseif($flag&&$flaglink&&$E1state1==0&&$E1state2==1) $E1state='Alarm'; else $E1state='Unavailable'; return $E1state; } function delete_e1($ins_no) { global $e1_oid,$link_oid,$msc_paramTable,$mtp3_sqltable,$DEBUG,$pubdb; $objWhereStr = getLevelWhere($e1_oid[1]); $setsql = "update $msc_paramTable set initValue = '00' where $objWhereStr and instanceNo = '$ins_no'"; mysqli_query($pubConn,$setsql); echo mysqli_error($pubConn); if($DEBUG) echo "$setsql
"; $objWhereStr = getLevelWhere($e1_oid[2]); $setsql = "update $msc_paramTable set initValue = 'EE' where $objWhereStr and instanceNo = '$ins_no'"; mysqli_query($pubConn,$setsql); echo mysqli_error($pubConn); if($DEBUG) echo "$setsql
"; $objWhereStr = getLevelWhere($e1_oid[3]); $setsql = "update $msc_paramTable set initValue = '00' where $objWhereStr and instanceNo = '$ins_no'"; mysqli_query($pubConn,$setsql); echo mysqli_error($pubConn); if($DEBUG) echo "$setsql
"; $objWhereStr = getLevelWhere($e1_oid[4]); $setsql = "update $msc_paramTable set initValue = '00' where $objWhereStr and instanceNo = '$ins_no'"; mysqli_query($pubConn,$setsql); echo mysqli_error($pubConn); if($DEBUG) echo "$setsql
"; $objWhereStr = getLevelWhere($link_oid); $setsql = "update $mtp3_sqltable set initValue = '8010FFFFFFFF000000000000000000FFFFFFFF' where $objWhereStr and instanceNo = '$ins_no'"; mysqli_query($pubConn,$setsql); echo mysqli_error($pubConn); if($DEBUG) echo "$setsql
"; } function is8ke1Enable($instanceNo) { $nSetComm = 3; $tempnum = $instanceNo/8; $cardno = Floor($tempnum); $tmp = $cardno/16; $k8e1SysNo = floor($tmp); $k8e1Table = "param_$k8e1SysNo"; $k8e1Db = "OBJ_111"; $setInstNo = $cardno%16; $cardE1no = $instanceNo - $cardno*8; $selSql = "select initValue from $k8e1Table where level_1='2' and level_2='1' and instanceNo='$setInstNo' "; $result = mysqli_query($pubConn,$selSql); $row = mysqli_fetch_array($result); $setbit = "0.$cardE1no-0.$cardE1no"; $enable = getBitValue($row[initValue],$setbit); return $enable; } function set8ke1($objIdStr,$instanceNo,$value) { $nSetComm = 3; $tempnum = $instanceNo/8; $cardno = Floor($tempnum); $tmp = $cardno/16; $k8e1SysNo = floor($tmp); $k8e1Table = "param_$k8e1SysNo"; $k8e1Db = "OBJ_111"; $setInstNo = $cardno%16; $cardE1no = $instanceNo - $cardno*8; if(strcmp($objIdStr,'2.9')==0 && $cardE1no % 2 != 0)//set8ke1Canceller, 偶数端口才设置 return; $levelWhere = getLevelWhere($objIdStr); $selSql = "select initValue from $k8e1Table where $levelWhere and instanceNo='$setInstNo' "; $result = mysqli_query($pubConn,$selSql); $row = mysqli_fetch_array($result); $setbit = "0.$cardE1no-0.$cardE1no"; if(strcmp($objIdStr,'2.12')==0)//set8kIdleCode $setbit = "$cardE1no.0-$cardE1no.7"; $setValue = strtoupper(setBitValue($row[initValue],$setbit,$value)); if(strcmp($objIdStr,'2.10.2')==0 //set8ke1SigSlot || strcmp($objIdStr,'2.11')==0)// $setValue = omc_keep_length(dechex($value),0,2); $updSql = "update $k8e1Table set initValue='$setValue' where $levelWhere and instanceNo='$setInstNo' "; mysqli_query($pubConn,$updSql); $sysId ="111_".$k8e1SysNo."_99"; //$slcSysId = "111_".$k8e1SysNo."_"."$setInstNo"; $slcSysId = '-1'; $commIdStr =oidSysCommSend($sysId,$nSetComm,$objIdStr,$slcSysId); if($commIdStr=='-1') { //DelComm($commIdStr); outPutErrMsg($sysId,$slcSysId); } CheckState($commIdStr); } function open8ke1Enable($instanceNo, $value) { $objIdStr = '2.1'; set8ke1($objIdStr,$instanceNo,$value); } function open8ke1mtpAlarm($instanceNo, $value) { $objIdStr = '2.2'; set8ke1($objIdStr,$instanceNo,$value); } function set8ke1LinkType($instanceNo, $value) { $objIdStr = '2.3'; set8ke1($objIdStr,$instanceNo,$value); } function set8ke1NTLT($instanceNo, $value) { $objIdStr = '2.4'; set8ke1($objIdStr,$instanceNo,$value); } function open8ke1CRC4Flag($instanceNo, $value) { $objIdStr = '2.6'; set8ke1($objIdStr,$instanceNo,$value); } function set8ke1Mtp2ErrCrct($instanceNo, $value) { $objIdStr = '2.8'; set8ke1($objIdStr,$instanceNo,$value); } function set8ke1Canceller($instanceNo, $value) { $objIdStr = '2.9'; set8ke1($objIdStr,$instanceNo,$value); } function set8ke1SigSlot($instanceNo, $value) { $objIdStr = '2.10.2'; set8ke1($objIdStr,$instanceNo,$value); } function set8kT156K64K($instanceNo, $value) { $objIdStr = '2.10.6'; set8ke1($objIdStr,$instanceNo,$value); } function set8kCardType($instanceNo, $value) { $objIdStr = '2.11'; set8ke1($objIdStr,$instanceNo,$value); } function set8kIdleCode($instanceNo, $value) { $objIdStr = '2.12'; set8ke1($objIdStr,$instanceNo,$value); } function getNiType() { global $pubDb; $mtp3_sqlTable = 'OBJ_222.param_99'; $querysql = "select initValue from $mtp3_sqlTable where level_1 = '2' and level_2 = '2' and level_3 = '0'"; $indiResult = mysqli_query($pubConn,$querysql); $indiRow = mysqli_fetch_array($indiResult); echo mysqli_error($pubConn); for($i=0; $i<4; $i++) { $j = $i+4; $off_set = "0.$j-0.$j"; $niTypeArr[$i] = getBitValue($indiRow[initValue],$off_set);//0:ITU; 1:ANSI //$niTypeArr[2] = 1; } return $niTypeArr; } function outPutErrMsg($sysId,$slcSysId=-1) { global $PlatTypeDefArr; $pubdb = "OMC_PUB"; $sysIdArr = explode('_',$sysId); $sysTypeNo = $sysIdArr[0]; $sysNo = $sysIdArr[1]; $subSysNo = $sysIdArr[2]; if($slcSysId!=-1) { $slcSysIdArr = explode('_',$slcSysId); $slcSysTypeNo = $slcSysIdArr[0]; $slcSysNo = $slcSysIdArr[1]; $slcSubSysNo = $slcSysIdArr[2]; } $selSql = "select sysTypeName from sysConf where sysTypeNo='$sysTypeNo'"; $Result = mysqli_query($pubConn, $selSql); $Row = mysqli_fetch_array($Result); $sysName = $Row[sysTypeName]; if($sysTypeNo == 111) { $sysName = "CSU$slcSysNo Card-$slcSubSysNo"; } if(isset($slcSysNo)) $sysName .= "-$slcSysNo"; if($sysTypeNo=='222' || $sysTypeNo=='223') { if($slcSysId != -1) { $sysName = $PlatTypeDefArr[$slcSysNo][remark]; $sysName .= "-$slcSubSysNo"; } } echo "

$sysName Error, Please check the device state!
"; echo "

Back"; exit(); } function outPutChkMsg($sysTypeNo,$sysNo,$Reason='',$errRetFlag) { global $STR_CONF_COMMAND_ERR_0000; global $STR_CONF_PROMPT_001,$STR_CONF_COMMAND_ERR_0011,$STR_CONF_COMMAND_ERR_0012; global $STR_CONF_PROMPT_002,$STR_CONF_COMMAND_ERR_0021,$STR_CONF_COMMAND_ERR_0022; global $STR_CONF_PROMPT_003,$STR_CONF_COMMAND_ERR_0031,$STR_CONF_COMMAND_ERR_0032,$STR_CONF_COMMAND_ERR_0033; global $STR_CONF_PROMPT_004,$STR_CONF_COMMAND_ERR_0041,$STR_CONF_COMMAND_ERR_0042,$STR_CONF_COMMAND_ERR_0043; global $STR_CONF_COMMAND_ERR_9999; //echo "Reason=$Reason"; global $PlatTypeDefArr; $pubdb = "OMC_PUB"; $selSql = "select sysTypeName from sysConf where sysTypeNo='$sysTypeNo'"; $Result = mysqli_query($pubConn, $selSql); $Row = mysqli_fetch_array($Result); if($sysTypeNo == '222' || $sysTypeNo=='223') { $sysName = $PlatTypeDefArr[$sysNo][remark] . "-" . $Row[sysTypeName]; } else { $sysName = $Row[sysTypeName]."-".$sysNo; } $tmpErrCode="STR_CONF_COMMAND_ERR_".$Reason; $tmpPromptCode="STR_CONF_PROMPT_".$Reason[0].$Reason[1].$Reason[2]; echo "

$sysName Error:${$tmpErrCode}
"; echo "Prompt:${$tmpPromptCode}
"; if($errRetFlag == 1){ $tmpResult= "$sysName Error:${$tmpErrCode}.
Prompt:${$tmpPromptCode}"; echo ""; }else{ echo "

Back"; } exit(); } function getElementInfo($infoNo,&$elementInfoArr) { global $sysTypeInLinkSetDef,$strGttObjects; $tmpobj = 'OBJ_225'; $tmpparam = 'param_99'; $typeOffset = '1.0-1.7'; $sysNoOffset = '2.0-2.3'; $subSysNoOffset = '2.4-2.7'; $tgOffset = '3.0-3.7'; $lsOffset = '4.0-4.7'; $appTypeOffset = '5.0-5.7'; $appGrpOffset = '6.0-6.7'; $nameOffset = '14.0-23.7'; $objWhereStr =" level_1 = '2' and level_2 = '11'"; $paramSql = " SELECT initValue,readValue,instanceNo FROM $tmpparam WHERE $objWhereStr AND instanceNo ='$infoNo'"; $Result = mysqli_query($pubConn,$paramSql); $rows = mysqli_fetch_array($Result); $typeValue=hexdec(getBitValue($rows[initValue],$typeOffset)); $sysNo = bindec(getBitValue($rows[initValue],$sysNoOffset)); $subsysNo = bindec(getBitValue($rows[initValue],$subSysNoOffset)); $tmpSystemNo= $sysNo; $assignedTg = hexdec(getBitValue($rows[initValue],$tgOffset)); $assignedls = hexdec(getBitValue($rows[initValue],$lsOffset)); $appType = hexdec(getBitValue($rows[initValue],$appTypeOffset)); $appGrp = hexdec(getBitValue($rows[initValue],$appGrpOffset)); $name = trim(toAscii(getBitValue($rows[initValue],$nameOffset))); $TypeNo = getBitValue($Row[initValue],'2.0-2.7'); $TypeNo = hexdec($TypeNo); if($typeValue==0) { $Spname = "Undefined"; } elseif($typeValue < 16) { $tmpno = $typeValue - 1; $Spname = $sysTypeInLinkSetDef[$tmpno][name]; } elseif($typeValue==16) { $Spname = 'Switch'; } elseif($typeValue==17) $Spname = 'IUA'; elseif( $typeValue==18) { switch($appType) { case '0': $Spname = 'MSC'; break; case '1': $Spname = 'HLR'; break; case '2': $Spname = 'VLR'; break; case '3': $Spname = 'SMSC'; break; case '4': $Spname = 'SGSN'; break; case '5': { $Spname = $name; } } } else { $Spname = "Undefined"; } $webname = $Spname; switch($webname) { case 'BSC': $devicename = 'BSC'; break; case 'AAS': case 'VSS': case 'PCR': case 'CNF': $devicename = 'Peripheral'; break; case 'Switch': case 'IUA': $devicename = 'Switch'; break; case 'MSC': case 'VLR': case 'HLR': case 'SMSC': case 'SGSN': $devicename = $strGttObjects; break; default: $devicename = 'Unknow'; break; } if($appType == 5) $devicename = $strGttObjects; $elementInfoArr[typeName] = $devicename; $elementInfoArr[eleName] = $name; $elementInfoArr[webName] = $webname; $elementInfoArr[typeValue] = $typeValue; $elementInfoArr[sysNo] = $sysNo; $elementInfoArr[subSysNo] = $subsysNo; $elementInfoArr[tg] = $assignedTg; } function checkDevices($sysTypeNo) { global $pubDb; $sysIdSql="SELECT DPC,ip,sysTypeName,sysInfo.sysTypeNo,sysNo,subSysNo,sysAlias FROM sysInfo,sysConf WHERE sysInfo.sysTypeNo=sysConf.sysTypeNo AND sysInfo.sysTypeNo = $sysTypeNo "; $result = mysqli_query($pubConn,$sysIdSql); echo mysqli_error($pubConn); $rowsNum=mysqli_num_rows($result); $rows=mysqli_fetch_array($result); $sysTypeName=$rows[sysTypeName]; if($rowsNum < 1) { echo "Can't find this device!"; echo "

Back"; exit(); } } function alertMsg($msg) { echo ""; exit(); } function sendBssCommand($bssid,$ip,$sysAlias,$add=1) { $DEBUG = 0; $db = "BssOmcDb"; $remark = $sysAlias; if($add==1) $nmicmd="newbss $bssid $ip"; else $nmicmd = "dropbss $bssid $ip"; /* Old MySql */ $sqlstring = "SELECT row_no FROM OMCR_COMMAND WHERE status=0 " . "ORDER BY seqNum ASC LIMIT 10"; //echo "$sqlstring
"; $res = mysqli_query($pubConn,$sqlstring) or die("Invalid query:$sqlstring\n" . mysqli_error($pubConn)); while (list($row_no[]) = mysqli_fetch_row($res)); $no_of_rows = mysqli_num_rows($res); mysql_free_result($res); if ( $no_of_rows <= 0 || ($no_of_rows > 10) ) { // // No available row in OMCR_COMMAND // Send error to MySQL() // $errorInfo = "Command table is full: Wait and send the command again"; if($DEBUG) echo "
errorInfo=$errorInfo"; alertMsg($errorInfo); } if($add==1) { // // Save "Name and remark" in OMCR_BSSTABLE // A non-null IP field in OMCR_BSSTABLE means the entry is valid // $sqlstring = "UPDATE OMCR_BSSTABLE SET name='$remark', ip='$ip'," . "remark='$remark' WHERE bssid=$bssid"; if($DEBUG) echo "$sqlstring
"; $res = mysqli_query($pubConn,$sqlstring) or die("Invalid query:$sqlstring\n" . mysqli_error($pubConn)); } // // Insert 1 commands in OMCR_COMMAND out of 10 possible available rows // $i=0; do { if ($row_no[$i] != '') { $sqlstring = "REPLACE INTO OMCR_COMMAND VALUES(" . $row_no[$i] . ",-1,'$nmicmd',null,255,-1,null,null,null)"; if($DEBUG) echo "$sqlstring
"; $res = mysqli_query($pubConn,$sqlstring) or die("Invalid query:$sqlstring\n" . mysqli_error($pubConn)); } $i++; } while ($i<10 && mysql_affected_rows() != 2); //replace=delete+insert (2 task) $cmd1_row_no = $row_no[$i-1]; // // Wait for response: timeout after 500ms x 20 = 10 secs // $i=0; while ($i<20) { usleep(500000); $sqlstring = "SELECT resultcode,result,responsecode,response from OMCR_COMMAND WHERE status=0 AND " . "row_no=$cmd1_row_no ORDER BY seqNum ASC"; if($DEBUG) echo "$sqlstring
"; $res = mysqli_query($pubConn,$sqlstring) or die("Invalid query:$sqlstring\n" . mysqli_error($pubConn)); while ( $mydata = mysqli_fetch_row($res) ) list($resultcode,$result,$responsecode,$response) = $mydata; //list($a[],$b[],$c[],$d[],$e[],$f[],$result[],$response[]) = $mydata; $no_of_rows = mysqli_num_rows($res); mysql_free_result($res); if ($no_of_rows == 1) { if($add==1)//add { if ($result != 'ok') { // Create/Delete failed !!! $errorInfo = "$result: $response"; if($DEBUG) echo "
errorInfo=$errorInfo"; //$errorInfo=rawurlencode($errorInfo); alertMsg($errorInfo); } } else//delete { if ($resultcode != 0) { $errorInfo = "dropbss command failed: ".$response; if($DEBUG) echo "
errorInfo=$errorInfo"; //$errorInfo=rawurlencode($errorInfo); alertMsg($errorInfo); } } } echo ""; flush(); $i++; } }//end sendBssCommand function getExistElements(&$existElementArr) { global $pubDb; $elementConfTb = 'elementExistConf'; $selSql = " select elementTypeNo from $elementConfTb where existFlag='1' and elementTypeNo!='0' order by elementNo"; if($DEBUG) echo "
selSql=$selSql"; $res = @mysqli_query($pubConn,$selSql); $i=0; while($rows = mysqli_fetch_array($res)) { $existElementArr[$i++] = $rows[elementTypeNo]; } return $existElementArr; }//end getExistElements function omcStrFill($string,$defLen,$fillWay='high',$fillChar='0'){ if(strlen($string) <= $defLen){ $fillLen=$defLen - strlen($string); for($i=0;$i<$fillLen;$i++){ if($fillWay == 'low'){ $string = $string.$fillChar; }else{ $string = $fillChar.$string; } } return($string); }else{ $errorInfo = "Error in omcStrFill:the defLen < lengh of string!!\\ndefLen=$defLen and string=$string!!"; echo ""; exit(); echo "
Error in omcStrFill : the defLen < lengh of string!!"; echo "
defLen=$defLen and string=$string!!"; exit(); } } function omcShowParam($oIdstrarr,$sysTypeNo,$instanceNo,$webname,$no){ global $language,$paramTable; $nShowsize = '40%'; $nInteger = 2; $nOctStr = 4; $sysConfTable = 'OMC_PUB.sysConf'; $sysTypeNo = (isset($sysTypeNo)?$sysTypeNo:0); $pubDb ='OMC_PUB'; $objDb = omcGetObjDb($sysTypeNo); $paramConfTable = omcGetObjTbl($sysTypeNo,paramConf); $maxLevelNum = 10; if($DEBUG) echo "
$paramConfTable
"; if($DEBUG) echo "
aliasName=$aliasName
"; //---------------------- //选择语言版本 if($language == 'eng'){ $objNameField=name_2; $objSetField=setTemplate_2 ; //语种2 }else{ $objNameField=name_1; $objSetField=setTemplate_1 ; //语种1(默认语种) } if($DEBUG) echo "
setValue = $setValue ,inputName = $inputName"; //if($keyId > 0){ if($oIdstrarr !=NULL){ $levelArr=explode('.',$oIdstrarr); $objWhereStr= ''; for($j=0;$jERROR!!:oid == NULL"; exit(); } //explode by '[remark]' $remarkArr = explode('[remark]',$setTemplate); $remark = $remarkArr[1]; $orderSql = "SELECT paramOBJ ,paramName ,webPageName ,fileOption FROM elementParamConf WHERE paramOBJ ='$oIdstrarr' AND webPageName = '$webname'"; $orderResult = mysqli_query($pubConn ,$orderSql); $orderRows = @mysqli_fetch_array($orderResult); $reorder = $orderRows[fileOption]; //$reorder = 'order.2.1-h-100.16.9.5-h-5'; if($DEBUG) echo "$reorder
"; //explode by '[unit]' $unitArr = explode('[unit]',$remarkArr[0]); $unitOrderArr = explode('.',$reorder); for($i=1;$i{$unitArr[$i]}"; continue; } if($instanceNo =='flag'){ if($tlvArr[0] == 'flag'){ // echo "$tlvArr[1]"; return $tlvArr[1]; } else{ continue; } } //explode by '-' $offsetArr = explode('-',$tlvArr[1]); $bgnOffsetArr = explode('.',$offsetArr[0]); $bgnByte = $bgnOffsetArr[0]; $bgnBit = $bgnOffsetArr[1]; $endOffsetArr = explode('.',$offsetArr[1]); $endByte = $endOffsetArr[0]; $endBit = $endOffsetArr[1]; $byteLen = $endByte - $bgnByte + 1; $byteValue = substr($setValue,$bgnByte*2,$byteLen*2); //--><-//$byteValue = strrev($byteValue); if($DEBUG) echo "
byteValue = $byteValue"; $bitValue = ''; if($bgnBit > 0 ||$endBit < 7){ if($DEBUG) echo "
$bgnBit > 0 ||$endBit < 7"; $bitValue = HexDec($byteValue); $bitValue = DecBin($bitValue); if($DEBUG) echo "
bitValue = $bitValue"; $bitLen = $byteLen*8;//1 byte = 8 bit $bitValue = omcStrFill($bitValue,$bitLen,'high','0'); if($DEBUG) echo "
omcStrFill($bitValue,$bitLen,'high','0')"; $bitValue = strrev($bitValue); $catBitLen = $endByte*8+$endBit - ($bgnByte*8+$bgnBit) + 1; //1 byte = 8 bit if($DEBUG) echo "
bitValue = substr($bitValue,$bgnBit,$catBitLen)"; $bitValue = substr($bitValue,$bgnBit,$catBitLen); $bitValue = strrev($bitValue); if($DEBUG) echo "
bitValue = $bitValue"; } //explode by '[v]' $valueArr = explode('[v]',$tlvArr[2]); $typeAddTitleArr = explode('[t]',$valueArr[0]); $operType = chop($typeAddTitleArr[0]); $titleStr = chop($typeAddTitleArr[1]); $valueArr[1] = chop($valueArr[1]); if($showflag){ if($webname=="BSC") echo "\n "; else echo "\n "; }else{ echo "\n "; } //show Unit Name echo "$tlvArr[0]"; echo " "; if($DEBUG) echo "$tlvArr[1]"; if($DEBUG) echo "
operType = $operType"; switch($operType){ case 'input':// //explode by '-' $defArr = explode('-',$valueArr[1]); if($DEBUG) echo "
defArr = $defArr[0],$defArr[1],$defArr[2]"; switch($defArr[0]){ case 'toDec': if(strlen($bitValue) > 0){ $inputValue = BinDec($bitValue); }else{ $inputValue = HexDec($byteValue); } break; case 'keepDec': $inputValue = $byteValue; break; case 'toHex': echo "
Error:toHex"; break; case 'keepHex': $inputValue = $byteValue; break; case 'toAscii': $charValue = ""; if($bgnBit > 0 ||$endBit < 7){ echo "
Error:toAscii"; exit(1); }else{ $tmpLen=strlen($byteValue); for($charCount=0;$charCount<$tmpLen;$charCount++){ $unitByte = substr($byteValue,$charCount,2); //$unitChar = chr(HexDec($unitByte)); // hex -> ascii $unitChar = chr(HexDec($unitByte)); // hex -> ascii if($DEBUG) echo "
unitChar=$unitChar"; $charValue .= $unitChar; $charCount++; } $charValue = trim($charValue); $inputValue = $charValue; } break; default: echo "
Error:valueType=$defArr[0]"; break; } if($DEBUG) echo "
inputValue = $inputValue"; switch($defArr[1]){ case 'high': switch($defArr[2]){ case '0': if($defArr[0] == 'toHex' || $defArr[0] == 'keepHex'){ //$inputValue = str_replace('0','',$inputValue); }else{ $inputValue = $inputValue - 0; } break; case 'E': echo "Error:high fill E"; break; default: break; } break; case 'low': if ("toAscii" != $defArr[0]) { switch($defArr[2]){ case '0': $inputValue = str_replace('00','',$inputValue); break; case 'E': $inputValue = str_replace('E','',$inputValue); break; case 'F': //modify zane 20051004 $inputValue = str_replace('F','',$inputValue); break; default: break; } } break; default: break; } if($DEBUG) echo "
$valueType == $nOctStr"; if($def_flag){ $inputValue = $defaultVaule; } if($valueType == $nOctStr){ if($defArr[0] == 'toAscii'){ $inputLen = $byteLen; }elseif($defArr[0] == 'toHex' || $defArr[0] == 'keepHex'){ $inputLen = $byteLen *2; }else{ $inputLen = $byteLen *3; } //echo ""; if($readonly){ echo ""; echo "$inputValue"; }else{ echo ""; } }else{ //echo ""; if($readonly){ echo ""; echo "$inputValue"; }else{ echo ""; } echo ""; echo ""; echo ""; } break; case 'select': if($valueType == $nOctStr){ if($bitValue != ''){ $selectValue = BinDec($bitValue); }else{ $selectValue = HexDec($byteValue); } }else{ $selectValue=$byteValue; } if($def_flag){ $selectValue = $defaultVaule; } if($DEBUG) echo "
bitValue = $bitValue"; if($DEBUG) echo "
selectValue = $selectValue"; if($DEBUG) echo "
$valueType =?= $nOctStr(nOctStr)"; if($readonly){ echo ""; } $isSelected = 0; for($j=1;$jReserved Value"; $selectshwo = "Reserved Value"; break; }elseif($defArr[0] == $selectValue){ echo ""; $selectshwo ="$selectValue"; $isSelected = 1; }else{ echo ""; } } if($isSelected ==0 && $j == sizeof($valueArr)){ echo ""; $selectshwo = "Undefined Value"; } echo ""; if($readonly){ echo "$selectshwo"; } break; default: echo "
Error:operType =|$operType|"; break; }//end of switch(..) //like:unitDef_1 = 1.0-2.0-select-keepHex-high-0 -->$tlvArr[1]-$operType- if($operType == 'select'){ //select if($valueType == $nOctStr){ $tempDef = $tlvArr[1].'-'.$operType.'-'.'toDec-high-0'; }else{ $tempDef = $tlvArr[1].'-'.$operType.'-'.'keepDec-high-0'; } }else{ $tempDef = $tlvArr[1].'-'.$operType.'-'.$valueArr[1]; } $tempDef = str_replace(" ", "", $tempDef); $tempDef = chop($tempDef); $unitDefName = "unitDef_".$no.'_'.$i; echo "\n "; echo ""; }//end of for(..) $unitNum = $order-1; echo "\n"; } ?>