Files
web.ems/wxc2_omc/account/sub_inc/operwebfunc.inc
agtuser 16a3fd1e1b init
2024-11-11 17:56:00 +08:00

467 lines
13 KiB
PHP
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?
$settedColor="blue";
$notSettedColor="#008000";
$inputBkgrdColor = "#E7FEFD";
$saveBkgrdColor="#F3F77D";
$waitingBkgrdColor = "red";
function getParamValue(&$titleStr,&$IniEquRead,$sysId,$oidStr,$order,$instanceNo=0,$otherWhereStr='')
{
global $language;
//$DEBUG=1;
$sysIdArr = explode('_',$sysId);
$sysTypeNo = $sysIdArr[0];
$sysNo = $sysIdArr[1];
$subSysNo = $sysIdArr[2];
$objDb = 'OBJ_'.$sysTypeNo;
$paramTable = 'param_'.$sysNo;
$sysConfTable = 'OMC_PUB.sysConf';
$pubDb ='OMC_PUB';
$paramConfTable = $objDb.".paramConf";
$maxLevelNum = 10;
$nInteger = 2;
$nOctStr = 4;
if($language == 'eng'){
$objNameField=name_2;
$objSetField=setTemplate_2 ; //ÓïÖÖ2
}else{
$objNameField=name_1;
$objSetField=setTemplate_1 ; //ÓïÖÖ1(ĬÈÏÓïÖÖ)
}
$objWhereStr = getLevelWhere($oidStr);
$objSql = "SELECT $objNameField,$objSetField,valueType,length,minValue,maxValue FROM $paramConfTable WHERE $objWhereStr";
$objResult = mysqli_query($pubConn ,$objSql);
$objRows = @mysqli_fetch_array($objResult);
$totalLen = $objRows[length]*2;
$objName = $objRows[$objNameField];
$setTemplate = $objRows[$objSetField];
$valueType = $objRows[valueType];
$minValue = $objRows[minValue];
$maxValue = $objRows[maxValue];
//explode by '[remark]'
$remarkArr = explode('[remark]',$setTemplate);
$remark = $remarkArr[1];
//explode by '[unit]'
$unitArr = explode('[unit]',$remarkArr[0]);
//explode by '[u]'
$tlvArr = explode('[u]',$unitArr[$order]);
//Unit Name
if($DEBUG) echo "$tlvArr[0] : $tlvArr[1]";
//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;
$paramSql = " SELECT initValue,readValue FROM $paramTable WHERE $objWhereStr $otherWhereStr AND instanceNo = '$instanceNo' ";
$v_Result = mysqli_query($pubConn,$paramSql);
$v_Row = mysqli_fetch_array($v_Result);
$initGetValue = $v_Row[0];
$readGetValue = $v_Row[1];
$initByteValue = substr($initGetValue,$bgnByte*2,$byteLen*2);
$readByteValue = substr($readGetValue,$bgnByte*2,$byteLen*2);
if($DEBUG) echo "<br>init:$initByteValue<br>read:$readByteValue";
$readBitValue = '';
if($bgnBit > 0 ||$endBit < 7)
{
$bitLen = $byteLen*8;//1 byte = 8 bit
$readBitValue = DecBin(HexDec($readByteValue));
$readBitValue = omcStrFill($readBitValue,$bitLen,'high','0');
$newBitValue='';
for($byteNum=$bgnByte;$byteNum<=$endByte;$byteNum++){
$tmpBitValue=substr($readBitValue,($byteNum-$bgnByte)*8,8);
if($DEBUG) echo "<br>$tmpBitValue=substr($readBitValue,($byteNum-$bgnByte)*8,8)";
$tmpBitValue = strrev($tmpBitValue);
if($DEBUG) echo "<br>$tmpBitValue = strrev($tmpBitValue)";
if($DEBUG) echo "<br>bitValue = $bitValue";
$newBitValue=$newBitValue.$tmpBitValue;
}
$catBitLen = $endByte*8+$endBit - ($bgnByte*8+$bgnBit) + 1; //1 byte = 8 bit
if($DEBUG) echo "<br>readBitValue = substr($newBitValue,$bgnBit,$catBitLen)";
$readBitValue = substr($newBitValue,$bgnBit,$catBitLen);
$readBitValue = strrev($readBitValue);
if($DEBUG) echo "<br>readBitValue = $readBitValue";
}
$initBitValue = '';
if($bgnBit > 0 ||$endBit < 7)
{
$bitLen = $byteLen*8;//1 byte = 8 bit
$initBitValue = DecBin(HexDec($initByteValue));
$initBitValue = omcStrFill($initBitValue,$bitLen,'high','0');
$newBitValue='';
for($byteNum=$bgnByte;$byteNum<=$endByte;$byteNum++){
$tmpBitValue=substr($initBitValue,($byteNum-$bgnByte)*8,8);
if($DEBUG) echo "<br>$tmpBitValue=substr($initBitValue,($byteNum-$bgnByte)*8,8)";
$tmpBitValue = strrev($tmpBitValue);
if($DEBUG) echo "<br>$tmpBitValue = strrev($tmpBitValue)";
if($DEBUG) echo "<br>bitValue = $bitValue";
$newBitValue=$newBitValue.$tmpBitValue;
}
$catBitLen = $endByte*8+$endBit - ($bgnByte*8+$bgnBit) + 1; //1 byte = 8 bit
if($DEBUG) echo "<br>initBitValue = substr($newBitValue,$bgnBit,$catBitLen)";
$initBitValue = substr($newBitValue,$bgnBit,$catBitLen);
$initBitValue = strrev($initBitValue);
if($DEBUG) echo "<br>initBitValue = $initBitValue";
}
$IniEquRead = false;
if(strlen($initBitValue)>0)
{
if($initBitValue==$readBitValue)
$IniEquRead = true;
}
else
{
if($initByteValue == $readByteValue)
$IniEquRead = true;
}
//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($DEBUG) echo "<br>operType = $operType";
switch($operType)
{
case 'input':
{
//explode by '-'
$defArr = explode('-',$valueArr[1]);
if($DEBUG) echo "<br>defArr = $defArr[0],$defArr[1],$defArr[2]";
switch($defArr[0])
{
case 'toDec':
if(strlen($initBitValue) > 0){
$initParsedValue = BinDec($initBitValue);
}else{
$initParsedValue = HexDec($initByteValue);
}
break;
case 'keepDec':
$initParsedValue = $initByteValue;
break;
case 'toHex':
echo "<br>Error:toHex";
break;
case 'keepHex':
$initParsedValue = $initByteValue;
break;
case 'toAscii':
$charValue = "";
if($bgnBit > 0 ||$endBit < 7)
{
echo "<br>Error:toAscii";
exit(1);
}
else
{
$tmpLen=strlen($initByteValue);
for($charCount=0;$charCount<$tmpLen;$charCount++)
{
$unitByte = substr($initByteValue,$charCount,2);
$unitChar = chr(HexDec($unitByte)); // hex -> ascii
if($DEBUG) echo "<br>unitChar=$unitChar";
$charValue .= $unitChar;
$charCount++;
}
$charValue = trim($charValue);
$initParsedValue = $charValue;
}
break;
default:
echo "<br>Error:valueType=$defArr[0]";
break;
}
if($DEBUG) echo "<br>initParsedValue = $initParsedValue";
switch($defArr[1])
{
case 'high':
switch($defArr[2])
{
case '0':
if($defArr[0] == 'toHex' || $defArr[0] == 'keepHex'){
//$initParsedValue = str_replace('0','',$initParsedValue);
}else{
$initParsedValue = $initParsedValue - 0;
}
break;
case 'E':
echo "Error:high fill E";
break;
default: break;
}
break;
case 'low':
if ("toAscii" != $defArr[0])
{
switch($defArr[2]){
case '0':
$initParsedValue = str_replace('00','',$initParsedValue);
break;
case 'E':
$initParsedValue = str_replace('E','',$initParsedValue);
break;
case 'F': //modify zane 20051004
$initParsedValue = str_replace('F','',$initParsedValue);
break;
default: break;
}
}
break;
default: break;
}
$returnValue = $initParsedValue;
break;
}
case 'select':
{
if($valueType == $nOctStr){
if($initBitValue != ''){
$selectValue = BinDec($initBitValue);
}else{
$selectValue = HexDec($initByteValue);
}
}else{
$selectValue=$initByteValue;
}
$isSelected = 0;
for($j=1;$j<sizeof($valueArr);$j++){
//explode by '[opt]'
$defArr = explode('[opt]',$valueArr[$j]);
if(sizeof($defArr) < 2){
$selectShow = "Reserved Value";
break;
}elseif($defArr[0] == $selectValue){
$selectShow =$defArr[1];
$isSelected = 1;
}else{
//echo "<option value=\"$defArr[0]\">$defArr[1]</option>";
}
}
if($isSelected ==0 && $j == sizeof($valueArr)){
$selectShow = "Undefined Value";
}
$returnValue = $selectShow;
break;
}
default: echo "<br>Error:operType =|$operType|";
break;
}//end of switch(..)
if(strlen($returnValue)==0) $returnValue='--';
return $returnValue;
}//end getParamValue
function showParameter($sysId,$oidStr,$order,$inputValueType,$instanceNo=0,$doingOtherUlr='',$otherWhereStr='',$showStr='')
{
global $language,$notSettedColor,$settedColor;
$tmp1 = str_replace('.','_',$oidStr);
$id = 'ID_' . $sysId . '_' . $tmp1 . '_' . $order . '_ist' . $instanceNo;
$newId = "New".$id;
$showValue = getParamValue($titleStr,$IniEquRead,$sysId,$oidStr,$order,$instanceNo,$otherWhereStr);
if($IniEquRead)$color = $settedColor;
else $color = $notSettedColor;
$doingOtherUlr=urlencode($doingOtherUlr);
if(strlen($showStr))
{
$color = $settedColor;
$showValue = $showStr;
}
//$otherWhereStr=urlencode($otherWhereStr);
echo "<span id=\"$id\" title=\"$titleStr\" style=\"cursor:pointer\" onclick=\"javascript:getPar('getVar','$language','$sysId','$oidStr','$order','$instanceNo','0','$doingOtherUlr','$otherWhereStr','$showStr','$inputValueType');\"><font color=\"$color\">$showValue</font></span>";
echo "<span id=\"$newId\" style=\"display:none\" ></span>";
}
?>
<script LANGUAGE="JavaScript">
var globalID;
function getPar(flag,lan,sysId,oidStr,order,instanceNo,inputID,doingOtherUlr,otherWhereStr,showStr,inputValueType)
{
var ulr="../sub_inc/getParameter.php?flag="+flag+"&lan="+lan+"&sysId="+sysId+"&oidStr="+oidStr+"&order="+order+"&instanceNo="+instanceNo;
if(flag=='saveVar')
{
var setValue = document.getElementById(inputID).value;
ulr = ulr + "&setValue=" + setValue;
}
ulr = ulr+"&doingOtherUlr="+doingOtherUlr+"&otherWhereStr="+otherWhereStr+"&showStr="+showStr+"&inputValueType="+inputValueType;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer")
{
request_o = new ActiveXObject("Microsoft.XMLHTTP");
}
else
{
request_o = new XMLHttpRequest();
}
//alert(ulr);
request_o.open("GET",ulr,"false");
request_o.onreadystatechange = updateID;
request_o.send(null);
}
function updateID()
{
if(request_o.readyState == 4)
{
var strResult = request_o.responseText;
var arrResult = strResult.split("###");
var flag = arrResult[0];
var idName = arrResult[1];
var innerStr = arrResult[2];
//alert(strResult+"00");
if(flag=='getVar')
{
var getVarId = idName.substr(3);//ID...
var InputId = "Input"+getVarId;
var saveId = "Save" + getVarId;
document.getElementById(getVarId).style.display="none";
document.getElementById(idName).style.display="";
}
if(flag=='saveVar')
{
globalID = idName;
var saveVarId = "New"+idName;//NewID...
document.getElementById(saveVarId).style.display="none";
document.getElementById(idName).style.display="";
document.getElementById(idName).style.cursor="pointer";
var isEqual = arrResult[3];
if(isEqual == '1') color="<?php echo $settedColor;?>";
else color = "<?php echo $notSettedColor;?>";
document.getElementById(idName).style.color = color;
//alert(innerStr);
var doingOtherUlr = arrResult[4];
if(doingOtherUlr.length>0)
{
//alert(doingOtherUlr);
doingOther(doingOtherUlr);
}
}
document.getElementById(idName).innerHTML = innerStr;
if(flag == 'getVar')
{
document.getElementById(InputId).style.background="<?php echo $inputBkgrdColor;?>";
document.getElementById(saveId).style.background="<?php echo $saveBkgrdColor;?>";
//alert(document.getElementById(InputId).value);
}
}
}
function doingOther(ulr)
{
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer")
{
request_o = new ActiveXObject("Microsoft.XMLHTTP");
}
else
{
request_o = new XMLHttpRequest();
}
request_o.open("GET",ulr,"false");
request_o.onreadystatechange = otherReturn;
request_o.send(null);
}
//µ±¶îÍâ²Ù×÷ûÓÐÍê³Éʱ£¬²ÎÊý±³¾°ÑÕɫΪwaitingBkgrdColor
function otherReturn()
{
if(request_o.readyState == 3)//ûÓÐÍê³É
{
//var strResult = request_o.responseText;
document.getElementById(globalID).style.background="<?php echo $waitingBkgrdColor;?>";
}
if(request_o.readyState == 4)//Íê³É
{
document.getElementById(globalID).style.background="";
}
}
function checkInput(term,flag,maxValue,minValue)
{
term.value = term.value.toUpperCase();
if (flag == 16)
{
var checkOK = "0123456789ABCDEF";
var showmsg ="Parameter must be a hexadecimal value";
}
else
{
var checkOK = "0123456789";
var showmsg ="Parameter must be a decimal value";
}
var checkStr = term.value;
var allValid = true;
for (i = 0; i < checkStr.length; i++){
ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++){
if (ch == checkOK.charAt(j))
break;
}
if (j == checkOK.length){
allValid = false;
break;
}
}
if(checkStr == '')
{
showmsg = "Parameter can't be blank";
alert(showmsg+"£¡");
}
if (!allValid){
alert(showmsg+"£¡");
term.focus();
term.value = 0;
return (false);
}
if (maxValue != 0)
{
/*
if (checkStr >= maxValue)
{
showmsg = "Parameter must less then "+ maxValue;
alert(showmsg+"£¡");
term.value = maxValue;
term.focus();
return (false);
}
*/
}
if (minValue != '')
{
/*
if (checkStr < minValue)
{
maxValue = maxValue;
showmsg = "Parameter must between "+ minValue + " and " + maxValue;
alert(showmsg+"£¡");
term.value = minValue;
term.focus();
return (false);
}
*/
}
}
</script>