init:$initByteValue
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'); $readBitValue = strrev($readBitValue); $catBitLen = $endByte*8+$endBit - ($bgnByte*8+$bgnBit) + 1; //1 byte = 8 bit if($DEBUG) echo "
readBitValue = substr($readBitValue,$bgnBit,$catBitLen)"; $readBitValue = substr($readBitValue,$bgnBit,$catBitLen); $readBitValue = strrev($readBitValue); if($DEBUG) echo "
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'); $initBitValue = strrev($initBitValue); $catBitLen = $endByte*8+$endBit - ($bgnByte*8+$bgnBit) + 1; //1 byte = 8 bit if($DEBUG) echo "
initBitValue = substr($initBitValue,$bgnBit,$catBitLen)"; $initBitValue = substr($initBitValue,$bgnBit,$catBitLen); $initBitValue = strrev($initBitValue); if($DEBUG) echo "
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 "
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($initBitValue) > 0){ $initParsedValue = BinDec($initBitValue); }else{ $initParsedValue = HexDec($initByteValue); } break; case 'keepDec': $initParsedValue = $initByteValue; break; case 'toHex': echo "
Error:toHex"; break; case 'keepHex': $initParsedValue = $initByteValue; break; case 'toAscii': $charValue = ""; if($bgnBit > 0 ||$endBit < 7) { echo "
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 "
unitChar=$unitChar"; $charValue .= $unitChar; $charCount++; } $charValue = trim($charValue); $initParsedValue = $charValue; } break; default: echo "
Error:valueType=$defArr[0]"; break; } if($DEBUG) echo "
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$defArr[1]"; } } if($isSelected ==0 && $j == sizeof($valueArr)){ $selectShow = "Undefined Value"; } $returnValue = $selectShow; break; } default: echo "
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='') { 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 "===================
unitValue:$unitValue
"; //---------------------- //选择语言版本 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 "
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 "
$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 "
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 "
changeType:$changeType"; switch($changeType) { case 'toDec': if($bgnBit > 0 ||$endBit < 7) { $bitLen = $endBit - $bgnBit +1; $bitValue = DecBin($unitValue); if($DEBUG) echo "
bitValue = $bitValue "; $bitValue = omcStrFill($bitValue,$bitLen,$fillWay,$fillChar); if($DEBUG) echo "
omcStrFill($bitValue,$bitLen,$fillWay,$fillChar)"; $setUnitValue = $bitValue; } else { $setUnitValue = DecHex($unitValue); $strLen = $byteLen*2; $setUnitValue = omcStrFill($setUnitValue,$strLen,$fillWay,$fillChar); if($DEBUG) echo "
omcStrFill($setUnitValue,$strLen,$fillWay,$fillChar)"; } if($DEBUG) echo "
setUnitValue = $setUnitValue"; break; case 'keepHex': if($bgnBit > 0 ||$endBit < 7) { $bitLen = $endBit - $bgnBit +1; $bitValue = ($unitValue); if($DEBUG) echo "
bitValue = $bitValue "; $bitValue = omcStrFill($bitValue,$bitLen,$fillWay,$fillChar); if($DEBUG) echo "
omcStrFill($bitValue,$bitLen,$fillWay,$fillChar)"; $setUnitValue = $bitValue; } else { $setUnitValue = ($unitValue); $strLen = $byteLen*2; $setUnitValue = omcStrFill($setUnitValue,$strLen,$fillWay,$fillChar); if($DEBUG) echo "
omcStrFill($setUnitValue,$strLen,$fillWay,$fillChar)"; } if($DEBUG) echo "
setUnitValue = $setUnitValue"; break; case 'keepDec': //echo "
Error:keepDec"; $setUnitValue = $unitValue - 0; break; case 'toHex': echo "
Error:toHex"; break; case 'toAscii': if($bgnBit > 0 ||$endBit < 7){ echo "
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 "
setUnitValue = $setUnitValue "; //--><-//$lastValue = $setUnitValue.$lastValue; $setValue = setBitValue($getValue,$tlvArr[1],$setUnitValue); $setValue = strtoupper($setValue); $updSql = "UPDATE $paramTable SET initValue = '$setValue' WHERE $objWhereStr $otherWhereStr AND instanceNo = '$instanceNo'"; mysqli_query($pubConn,$updSql); echo mysqli_error($pubConn); }//end setParamValue 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 "$showValue"; echo ""; } ?>