929 lines
26 KiB
PHP
Executable File
929 lines
26 KiB
PHP
Executable File
<?php
|
|
require("../../inc/lib.inc");
|
|
$Debug = 0;
|
|
$language = $lan;
|
|
$tmp1 = str_replace('.','_',$oidStr);
|
|
$id = 'ID_' . $sysId . '_' . $tmp1 . '_' . $order . '_ist' . $instanceNo;
|
|
$newId = "New".$id;
|
|
$inputID = 'Input'.$id;
|
|
$saveId = 'Save'.$id;
|
|
|
|
|
|
function getLevelWhere($objIdStr)
|
|
{
|
|
$levelArr=explode('.',$objIdStr);
|
|
for($j=0;$j<sizeof($levelArr);$j++){
|
|
$levelNo=$j+1;
|
|
${"level_$levelNo"}=$levelArr[$j];
|
|
if($Debug) echo "<BR>levelArr[$j]={$levelArr[$j]}";
|
|
if($j == 0){
|
|
$levelWhere ="level_$levelNo='${"level_$levelNo"}'";
|
|
}else{
|
|
$levelWhere .=" AND level_$levelNo='${"level_$levelNo"}'";
|
|
}
|
|
}
|
|
return($levelWhere);
|
|
}
|
|
|
|
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 "<script language='javascript'>";
|
|
|
|
echo "window.alert(\"$errorInfo\");";
|
|
echo "history.go(-1)";
|
|
echo "</script>";
|
|
exit();
|
|
|
|
echo "<br>Error in omcStrFill : the defLen < lengh of string!!";
|
|
echo "<br>defLen=$defLen and string=$string!!";
|
|
exit();
|
|
}
|
|
}
|
|
|
|
function getInnerValue($sysId,$oidStr,$order,$instanceNo=0,$otherWhereStr='',$showStr,$inputValueType)
|
|
{
|
|
global $language,$Debug,$inputID;
|
|
$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(strlen($showStr)>0){
|
|
echo "<input id=\"$inputID\" type=\"text\" class=\"text\" value=\"\" onchange=\"$chechFnc\">";
|
|
return "";
|
|
}
|
|
|
|
if($Debug) echo "<br>$paramConfTable<br>";
|
|
//----------------------
|
|
//Ñ¡ÔñÓïÑÔ°æ±¾
|
|
if($language == 'eng'){
|
|
$objNameField=name_2;
|
|
$objSetField=setTemplate_2 ; //ÓïÖÖ2
|
|
}else{
|
|
$objNameField=name_1;
|
|
$objSetField=setTemplate_1 ; //ÓïÖÖ1(ĬÈÏÓïÖÖ)
|
|
}
|
|
|
|
if($Debug) echo "<br>getValue = $getValue";
|
|
|
|
$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];
|
|
|
|
|
|
$paramSql = " SELECT initValue FROM $paramTable WHERE $objWhereStr $otherWhereStr AND instanceNo = '$instanceNo' ";
|
|
$v_Result = mysqli_query($pubConn,$paramSql);
|
|
$v_Row = mysqli_fetch_array($v_Result);
|
|
$getValue = $v_Row[0];
|
|
|
|
|
|
//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;
|
|
$byteValue = substr($getValue,$bgnByte*2,$byteLen*2);
|
|
//--><-//$byteValue = strrev($byteValue);
|
|
|
|
|
|
if($Debug) echo "<br>byteValue = $byteValue";
|
|
$bitValue = '';
|
|
if($bgnBit > 0 ||$endBit < 7)
|
|
{
|
|
if($Debug) echo "<br>$bgnBit > 0 ||$endBit < 7";
|
|
$bitValue = HexDec($byteValue);
|
|
$bitValue = DecBin($bitValue);
|
|
if($Debug) echo "<br>bitValue = $bitValue";
|
|
$bitLen = $byteLen*8;//1 byte = 8 bit
|
|
$bitValue = omcStrFill($bitValue,$bitLen,'high','0');
|
|
if($Debug) echo "<br>omcStrFill($bitValue,$bitLen,'high','0')";
|
|
|
|
$newBitValue='';
|
|
for($byteNum=$bgnByte;$byteNum<=$endByte;$byteNum++){
|
|
$tmpBitValue=substr($bitValue,($byteNum-$bgnByte)*8,8);
|
|
if($DEBUG) echo "<br>$tmpBitValue=substr($bitValue,($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>bitValue = substr($newBitValue,$bgnBit,$catBitLen)";
|
|
$bitValue = substr($newBitValue,$bgnBit,$catBitLen);
|
|
$bitValue = strrev($bitValue);
|
|
if($Debug) echo "<br>bitValue = $bitValue";
|
|
}
|
|
|
|
//explode by '[v]'
|
|
$valueArr = explode('[v]',$tlvArr[2]);
|
|
//$operType = chop($valueArr[0]);
|
|
$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]);
|
|
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 "<br>Error:toHex";
|
|
break;
|
|
case 'keepHex':
|
|
$inputValue = $byteValue;
|
|
break;
|
|
case 'toAscii':
|
|
$charValue = "";
|
|
if($bgnBit > 0 ||$endBit < 7){
|
|
echo "<br>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
|
|
if($Debug) echo "<br>unitChar=$unitChar";
|
|
$charValue .= $unitChar;
|
|
$charCount++;
|
|
}
|
|
$charValue = trim($charValue);
|
|
$inputValue = $charValue;
|
|
}
|
|
break;
|
|
default:
|
|
echo "<br>Error:valueType=$defArr[0]";
|
|
break;
|
|
}
|
|
if($Debug) echo "<br>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 "<br>$valueType == $nOctStr";
|
|
if($def_flag){
|
|
$inputValue = $defaultVaule;
|
|
}
|
|
//echo "valueType:$valueType<br>";
|
|
//if($valueType == $nOctStr)
|
|
//echo "getInner----inputValueType:$inputValueType<br>";
|
|
//$inputValueType=$inputValueType+0;
|
|
if($valueType==2)
|
|
{
|
|
$chechFnc = "checkInput(this,16)";
|
|
|
|
if($defArr[0] == 'toAscii')
|
|
{
|
|
$inputLen = $byteLen;
|
|
$chechFnc = "";
|
|
}
|
|
elseif($defArr[0] == 'toHex' || $defArr[0] == 'keepHex')
|
|
{
|
|
$inputLen = $byteLen *2;
|
|
}
|
|
else
|
|
{
|
|
$inputLen = $byteLen *3;
|
|
}
|
|
$inputSize = $inputLen + 2;
|
|
}
|
|
else
|
|
{
|
|
$chechFnc = "checkInput(this,10)";
|
|
}
|
|
|
|
//=============input type=====================
|
|
$inputValueType=$inputValueType+0;
|
|
//echo "getInner----inputValueType:$inputValueType<br>";
|
|
//===only can input the dec num====
|
|
if($inputValueType==1)
|
|
{
|
|
if($valueType == 4)
|
|
{
|
|
$maxValue=hexdec($maxValue);
|
|
$minValue=hexdec($minValue);
|
|
}
|
|
else
|
|
{
|
|
$maxValue=$maxValue+0;
|
|
$minValue=$minValue+0;
|
|
}
|
|
if($order>1)
|
|
$chechFnc = "checkInput(this,10)";
|
|
else
|
|
$chechFnc = "checkInput(this,10,$maxValue,$minValue)";
|
|
}
|
|
//===only can input the hex num====
|
|
else if($inputValueType==2)
|
|
{
|
|
$chechFnc = "checkInput(this,16)";
|
|
}
|
|
//====can input all character
|
|
else if($inputValueType==3)
|
|
{
|
|
$chechFnc = "";
|
|
}
|
|
//=====can put only dec num but include blank
|
|
else if($inputValueType==4)
|
|
{
|
|
$chechFnc = "checkInput_patch(this)";
|
|
}
|
|
|
|
|
|
|
|
echo "<input id=\"$inputID\" type=\"text\" class=\"text\" value=\"$inputValue\" size=\"$inputSize\" maxLength =\"$inputLen\" onchange=\"$chechFnc\">";
|
|
return $inputValue;
|
|
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 "<br>bitValue = $bitValue";
|
|
if($Debug) echo "<br>selectValue = $selectValue";
|
|
if($Debug) echo "<br>$valueType =?= $nOctStr(nOctStr)";
|
|
echo "<select id=\"$inputID\" size=\"1\">";
|
|
$isSelected = 0;
|
|
for($j=1;$j<sizeof($valueArr);$j++){
|
|
//explode by '[opt]'
|
|
$defArr = explode('[opt]',$valueArr[$j]);
|
|
if(sizeof($defArr) < 2){
|
|
echo "<option value=\"$selectValue\" selected>Reserved Value</option>";
|
|
$selectshwo = "Reserved Value";
|
|
break;
|
|
}elseif($defArr[0] == $selectValue){
|
|
echo "<option value=\"$defArr[0]\" selected>$defArr[1]</option>";
|
|
$selectshwo ="$selectValue";
|
|
$isSelected = 1;
|
|
}else{
|
|
echo "<option value=\"$defArr[0]\">$defArr[1]</option>";
|
|
}
|
|
}
|
|
|
|
if($isSelected ==0 && $j == sizeof($valueArr)){
|
|
echo "<option value=\"$selectValue\" selected>Undefined Value</option>";
|
|
$selectshwo = "Undefined Value";
|
|
}
|
|
echo "</select>";
|
|
if($readonly){
|
|
echo "$selectshwo";
|
|
}
|
|
return $selectshwo;
|
|
break;
|
|
}
|
|
default: echo "<br>Error:operType =|$operType|";
|
|
break;
|
|
}//end of switch(..)
|
|
}//end getInnerValue
|
|
|
|
function getParamValue(&$titleStr,&$IniEquRead,$sysId,$oidStr,$order,$instanceNo=0,$otherWhereStr='',$inputValueType)
|
|
{
|
|
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($initBitValue,$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 setParamValue($unitValue,$sysId,$oidStr,$order,$instanceNo=0,$otherWhereStr='',$inputValueType)
|
|
{
|
|
global $language;
|
|
$Debug=0;
|
|
$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($Debug) echo "===================<br>unitValue:$unitValue<br>";
|
|
//----------------------
|
|
//Ñ¡ÔñÓïÑÔ°æ±¾
|
|
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];
|
|
|
|
|
|
$paramSql = " SELECT initValue FROM $paramTable WHERE $objWhereStr $otherWhereStr AND instanceNo = '$instanceNo' ";
|
|
$v_Result = mysqli_query($pubConn,$paramSql);
|
|
$v_Row = mysqli_fetch_array($v_Result);
|
|
$getValue = $v_Row[0];
|
|
if($Debug) echo "<br>getValue = $getValue";
|
|
|
|
|
|
//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 "<br>$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;
|
|
|
|
//explode by '[v]'
|
|
$valueArr = explode('[v]',$tlvArr[2]);
|
|
//$operType = chop($valueArr[0]);
|
|
$typeAddTitleArr = explode('[t]',$valueArr[0]);
|
|
$operType = chop($typeAddTitleArr[0]);
|
|
$titleStr = chop($typeAddTitleArr[1]);
|
|
$valueArr[1] = chop($valueArr[1]);
|
|
|
|
if($Debug) echo "<br>operType = $operType";
|
|
if($operType == 'select')
|
|
{ //select
|
|
if($valueType == $nOctStr)
|
|
$changeTypeStr = 'toDec-high-0';
|
|
else
|
|
$changeTypeStr = 'keepDec-high-0';
|
|
}
|
|
else
|
|
{
|
|
$changeTypeStr = $valueArr[1];
|
|
}
|
|
$changeTypeArr = explode('-',$changeTypeStr);
|
|
$changeType = $changeTypeArr[0];
|
|
$fillWay = $changeTypeArr[1];
|
|
$fillChar = $changeTypeArr[2];
|
|
|
|
$setUnitValue = '';
|
|
if($Debug)echo "<br>changeType:$changeType";
|
|
switch($changeType)
|
|
{
|
|
case 'toDec':
|
|
if($bgnBit > 0 ||$endBit < 7)
|
|
{
|
|
$bitLen = $byteLen*8 - $bgnBit - (7 - $endBit) ; //1 BYTE = 8 bit
|
|
$bitValue = DecBin($unitValue);
|
|
if($Debug)echo "<br>bitValue = $bitValue ";
|
|
if($Debug)echo "<br>omcStrFill($bitValue,$bitLen,$fillWay,$fillChar)";
|
|
$bitValue = omcStrFill($bitValue,$bitLen,$fillWay,$fillChar);
|
|
|
|
if($bgnByte!=$endByte){
|
|
if($DEBUG) echo "<br>substr($bitValue,0,1+$endBit)";
|
|
$tmpBitValue=substr($bitValue,0,1+$endBit);
|
|
$tmpOffset=$endByte.'.0-'.$endByte.'.'.$endBit;
|
|
|
|
if($endBit==7){
|
|
$tmpByteValue=omcStrFill(dechex(bindec($tmpBitValue)),2,$fillWay,$fillChar);
|
|
$getValue = setBitValue($getValue,$tmpOffset,$tmpByteValue);
|
|
}else
|
|
$getValue = setBitValue($getValue,$tmpOffset,$tmpBitValue);
|
|
|
|
if($DEBUG)echo "<br>$getValue = setBitValue($getValue,$tmpOffset,$tmpBitValue);";
|
|
$newBitValue=$tmpBitValue;
|
|
if($DEBUG) echo "<br>newBitValue=$newBitValue";
|
|
|
|
for($byteNum=$endByte-1;$byteNum >= $bgnByte;$byteNum--){
|
|
if($DEBUG) echo "<br>substr($bitValue,($byteNum-($endByte-1))*8+1+$endBit,8)";
|
|
$tmpBitValue=substr($bitValue,($byteNum-($endByte-1))*8+1+$endBit,8);
|
|
|
|
|
|
if($byteNum == $bgnByte){
|
|
$tmpOffset=$bgnByte.'.'.$bgnBit.'-'.$bgnByte.'.7';
|
|
if($DEBUG)
|
|
echo "<br>$getValue = setBitValue($getValue,$tmpOffset,$tmpBitValue);";
|
|
if($bgnBit==0){
|
|
$tmpByteValue=omcStrFill(dechex(bindec($tmpBitValue)),2,$fillWay,$fillChar);
|
|
$getValue = setBitValue($getValue,$tmpOffset,$tmpByteValue);
|
|
}else
|
|
$getValue = setBitValue($getValue,$tmpOffset,$tmpBitValue);
|
|
}else{
|
|
$tmpOffset=$byteNum.'.0-'.$bgnByte.'.7';
|
|
$getValue = setBitValue($getValue,$tmpOffset,dechex(bindec($tmpBitValue)));
|
|
}
|
|
|
|
if($DEBUG) echo "<br>$newBitValue.$tmpBitValue";
|
|
$newBitValue=$newBitValue.$tmpBitValue;
|
|
if($DEBUG) echo "<br>newBitValue=$newBitValue";
|
|
}
|
|
$bitValue=$newBitValue;
|
|
}
|
|
|
|
$setUnitValue = $bitValue;
|
|
}
|
|
else
|
|
{
|
|
$setUnitValue = DecHex($unitValue);
|
|
$strLen = $byteLen*2;
|
|
$setUnitValue = omcStrFill($setUnitValue,$strLen,$fillWay,$fillChar);
|
|
if($Debug) echo "<br>omcStrFill($setUnitValue,$strLen,$fillWay,$fillChar)";
|
|
}
|
|
if($Debug) echo "<br>setUnitValue = $setUnitValue";
|
|
break;
|
|
case 'keepHex':
|
|
if($bgnBit > 0 ||$endBit < 7)
|
|
{
|
|
$bitLen = $endBit - $bgnBit +1;
|
|
$bitValue = ($unitValue);
|
|
if($Debug) echo "<br>bitValue = $bitValue ";
|
|
$bitValue = omcStrFill($bitValue,$bitLen,$fillWay,$fillChar);
|
|
if($Debug) echo "<br>omcStrFill($bitValue,$bitLen,$fillWay,$fillChar)";
|
|
$setUnitValue = $bitValue;
|
|
}
|
|
else
|
|
{
|
|
$setUnitValue = ($unitValue);
|
|
$strLen = $byteLen*2;
|
|
$setUnitValue = omcStrFill($setUnitValue,$strLen,$fillWay,$fillChar);
|
|
if($Debug) echo "<br>omcStrFill($setUnitValue,$strLen,$fillWay,$fillChar)";
|
|
}
|
|
if($Debug) echo "<br>setUnitValue = $setUnitValue";
|
|
break;
|
|
case 'keepDec':
|
|
//echo "<br>Error:keepDec";
|
|
$setUnitValue = $unitValue - 0;
|
|
break;
|
|
case 'toHex':
|
|
echo "<br>Error:toHex";
|
|
break;
|
|
case 'toAscii':
|
|
if($bgnBit > 0 ||$endBit < 7){
|
|
echo "<br>Error:toAscii";
|
|
exit(1);
|
|
}else{
|
|
$tmpLen=strlen($unitValue);
|
|
for($i=0;$i<$tmpLen;$i++){
|
|
$unitChar = substr($unitValue,$i,1);
|
|
$decValue = ord($unitChar); //ascii -> dec
|
|
$setUnitValue .= DecHex($decValue);
|
|
if(strlen($setUnitValue) < 2){
|
|
$setUnitValue = '0'.$setUnitValue;
|
|
}
|
|
}
|
|
$strLen = $byteLen*2;
|
|
$setUnitValue = omcStrFill($setUnitValue,$strLen,$fillWay,$fillChar);
|
|
}
|
|
break;
|
|
default:
|
|
echo "Error:Unknown valueType";
|
|
break;
|
|
}
|
|
if($Debug) echo "<br>setUnitValue = $setUnitValue ";
|
|
//--><-//$lastValue = $setUnitValue.$lastValue;
|
|
|
|
if($changeType=='toDec'&&($bgnBit > 0 ||$endBit < 7)&&$bgnByte!=$endByte)
|
|
$setValue=$getValue;
|
|
else
|
|
$setValue = setBitValue($getValue,$tlvArr[1],$setUnitValue);
|
|
|
|
$setValue = strtoupper($setValue);
|
|
$updSql = "UPDATE $paramTable SET initValue = '$setValue'
|
|
WHERE $objWhereStr $otherWhereStr AND instanceNo = '$instanceNo'";
|
|
if($DEBUG)
|
|
echo "<br>updSql=$updSql";
|
|
mysqli_query($pubConn,$updSql);
|
|
echo mysqli_error($pubConn);
|
|
}//end setParamValue
|
|
|
|
//0: flag
|
|
echo $flag;
|
|
echo "###";
|
|
|
|
if($flag=='getVar')//Óû§µã»÷µÄÊDzÎÊý
|
|
{
|
|
//1: idName
|
|
echo $newId;
|
|
echo "###";
|
|
|
|
//2: innerStr
|
|
$oldValue=getInnerValue($sysId,$oidStr,$order,$instanceNo,$otherWhereStr,$showStr,$inputValueType);
|
|
if(strlen($doingOtherUlr)>0)
|
|
{
|
|
$doingOtherUlr .= "&oldValue=$oldValue";
|
|
$doingOtherUlr=urlencode($doingOtherUlr);
|
|
}
|
|
echo " <span id=\"$saveId\" style=\"cursor:pointer\" onclick=\"javascript:getPar('saveVar','$language','$sysId','$oidStr','$order','$instanceNo','$inputID','$doingOtherUlr','$otherWhereStr','$showStr','$inputValueType');\"><font color=\"blue\"><b> SAVE <b></font></span>";
|
|
}
|
|
|
|
if($flag=='saveVar')//Óû§µã»÷µÄÊÇÓұߵġ®Save¡¯
|
|
{
|
|
|
|
//1: idName
|
|
echo $id;
|
|
echo "###";
|
|
|
|
//2: innerStr
|
|
setParamValue($setValue,$sysId,$oidStr,$order,$instanceNo,$otherWhereStr,$inputValueType);
|
|
$newValue = getParamValue($titleStr,$IniEquRead,$sysId,$oidStr,$order,$instanceNo,$otherWhereStr,$inputValueType);
|
|
if(strlen($showStr))
|
|
echo $showStr;
|
|
else
|
|
echo $newValue;
|
|
echo "###";
|
|
|
|
//3: isEqual
|
|
if($IniEquRead||strlen($showStr)) //initValue == readValue
|
|
echo "1";
|
|
else
|
|
echo "0";
|
|
echo "###";
|
|
|
|
//4: doingOtherUlr
|
|
if(strlen($doingOtherUlr)>0)
|
|
{
|
|
$doingOtherUlr .= "&newValue=$newValue";
|
|
}
|
|
echo $doingOtherUlr;
|
|
}
|
|
?>
|
|
|
|
|