";
echo "| $seqNo | ";
$seqNo++;
//explode by '[remark]'
$remarkArr = explode('[remark]',$paraArr[$m]);
$remark = $remarkArr[1];
$sqlArr = explode('[sqlName]',$remarkArr[0]);
$nameArr = explode('[Name]',$sqlArr[0]);
$paraName = $nameArr[1];
$paraName=chop($paraName);
//explode by '[t]'
$tArr = explode('[t]',$sqlArr[1]);
$sqlName=$tArr[0];
echo "$paraName | ";
$number=$tmpRow[$sqlName];
$tmp_value='tmp_value_'.$m;
echo "";
$DateSqlGetType="SELECT * FROM $paramConfTable WHERE fieldName='$sqlName'";
$resultGet=@mysqli_query($pubConn,$DateSqlGetType);
echo mysqli_error($pubConn);
$rowsGet=@mysqli_fetch_array($resultGet);
$valueType = $rowsGet[valueType];
echo "";
echo "";
for($i=1;$i < sizeof($tArr);$i++){
//unit input name
$unitName = "unit_".$m.'_'.$i;
$unitArr=explode('[unit]',$tArr[$i]);
$operType = chop($unitArr[0]);
$tempDef = '';
$inputValue = '';
$readValue = '';
$checkboxValue = '';
$radioValue = '';
$size = 0;
for($n=1;$n < sizeof($unitArr);$n++){
//explode by '[u]'
$tlvArr = explode('[u]',$unitArr[$n]);
if(sizeof($tlvArr) <= 1 ){
echo "{$unitArr[$i]}";
continue;
}
$firstValue= '';
//echo "$tlvArr[1]";
$setValue=$number;
//echo " $setValue";
if($DEBUG) echo "$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($setValue,$bgnByte*2,$byteLen*2);
$specialDo=explode('[v]',$tlvArr[2]);
$specialDo[0]=chop($specialDo[0]);
//echo "byteValue=$byteValue";
if($DEBUG) echo " byteValue = $byteValue";
$bitValue = '';
$charValue = '';
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]);
$valueArr[1] = chop($valueArr[1]);
//echo " valueArr[1]=$valueArr[1]";
if($DEBUG) echo " operType = $operType";
switch($operType){
case 'input'://
echo "";
//show Unit Name
if(sizeof($tArr)>2)
echo "| $tlvArr[0]: | ";
//explode by '-'
$firstValue=$inputValue;
$firstmp = $tempDef;
$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 'toAsc':
if($bgnBit > 0 ||$endBit < 7){
echo " toAsc Error:bgnBit > 0 ||endBit < 7";
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 " unitChar=$unitChar";
$charValue .= $unitChar;
$charCount++;
}
$inputValue = $charValue;
}
break;
case 'keepAsc':
$inputValue = $byteValue;
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':
switch($defArr[2]){
case '0':
$inputValue = str_replace('00','',$inputValue);
break;
case 'E':
$inputValue = str_replace('E','',$inputValue);
break;
default: break;
}
break;
default: break;
}
$inputValue=$firstValue.$inputValue;
$tempDef =$sqlName.'-'.$tlvArr[1].'-'.$operType.'-'.$valueArr[1].'-'.$firstmp;
echo "";
if($valueType == $nOctStr && $n==sizeof($unitArr)-1){
if($DEBUG) echo " $valueType =$nOctStr= OctStr";
if($defArr[0] == 'toHex' || $defArr[0] == 'keepHex'){
$inputLen = $byteLen *2;
}else{
$inputLen = $byteLen *3;
}
if($inputLen > 40)
{
$size = $size + $byteLen;
echo "";
}
else
{
$size = $size + $inputLen;
echo "";
}
//echo "specialDo[0]=$specialDo[0]";
if($specialDo[0] == 'code')
$inputValue=decodeTelNumber($inputValue);
if($specialDo[0]=='size')
echo "";
else
echo "";
}elseif($valueType == $nAscStr && $n==sizeof($unitArr)-1){
if($specialDo[0] == 'code')
$inputValue=decodeTelNumber($inputValue);
if($DEBUG) echo " $valueType == AscStr";
$inputLen = $byteLen;
if($sqlName=='imsi')
{
$inputLen=16;
echo "";
}
if($sqlName=='msisdn')
{
$inputLen=16;
echo "";
}
if($specialDo[0]=='size')
echo "";
else
echo "";
}elseif($n==sizeof($unitArr)-1){
if($specialDo[0] == 'code')
$inputValue=decodeTelNumber($inputValue);
if($DEBUG) echo " $valueType == Integer";
if($specialDo[0]=='size')
echo "";
else
echo "";
echo "";
echo "";
}
echo "";
echo " | ";
echo " ";
$tmpInputValue=$inputValue;
//echo "inputLen=$inputLen,byteLen=$byteLen";
break;
case 'select':
//show Unit Name
echo "";
if(sizeof($tArr)>2)
{
echo "| $tlvArr[0]: | ";
echo "";
}
else
echo "";
if($bitValue != ''){
$selectValue = BinDec($bitValue);
}else{
$selectValue = HexDec($byteValue);
}
if($DEBUG) echo " bitValue = $bitValue";
//echo " selectValue = $selectValue";
$defArr = explode('[opt]',$valueArr[1]);
//echo " defArr = $defArr[1]";
echo "";
echo "";
echo "";
echo " | ";
echo " ";
$tmpInputValue=$selectValue;
//echo " selectValue=$selectValue";
break;
case 'checkbox':
if($bitValue != ''){
$checkboxValue = BinDec($bitValue);
}else{
$checkboxValue = HexDec($byteValue);
}
if($DEBUG) echo " bitValue = $bitValue";
if($DEBUG) echo " checkboxValue = $checkboxValue";
//echo " checkboxValue=$checkboxValue";
if($checkboxValue == '1'){
echo "$tlvArr[0] ";
}else{
echo "$tlvArr[0] ";
}
echo "";
echo "";
echo "";
$tmpInputValue=$checkboxValue;
break;
case 'radio':
//show Unit Name
echo "";
if(sizeof($tArr) > 2)
{
echo "| $tlvArr[0]: | ";
echo "";
}
else
echo "";
if($bitValue != ''){
$radioValue = BinDec($bitValue);
}else{
$radioValue = HexDec($byteValue);
}
if($DEBUG) echo " bitValue = $bitValue";
if($DEBUG) echo " radioValue = $radioValue";
//var_dump($valueArr);
$defArr_0 = explode('[opt]',$valueArr[1]);
$defArr_1 = explode('[opt]',$valueArr[2]);
//var_dump($defArr_0);echo ' ';
//var_dump($defArr_1);echo ' ';
//echo 'xxxxx='.$defArr[0];
//echo 'xxxxx='.$radioValue;
if($defArr_0[0] == $radioValue){
echo "";
echo "$defArr_0[1]";
//echo "";
echo " ";
echo "$defArr_1[1]";
echo " | ";
}else{
echo "";
echo "$defArr_0[1]";
echo " ";
echo "$defArr_1[1]";
echo "";
}
echo " | ";
echo "";
$tmpInputValue=$radioValue;
//echo "$radioValue";
break;
case 'show': //显示
//show Unit Name
if(sizeof($tArr) > 2)
echo " $tlvArr[0]:";
if($bitValue != ''){
$showValue = BinDec($bitValue);
}else{
$showValue = HexDec($byteValue);
}
if($DEBUG) echo " bitValue = $bitValue";
if($DEBUG) echo " radioValue = $radioValue";
for($j=1;$j < sizeof($valueArr);$j++){
$defArr = explode('[opt]',$valueArr[$j]);
if($defArr[0] == $showValue)
{
echo "$defArr[1]";
echo "";
}
}
break;
case 'readOnly':
//show Unit Name
if(sizeof($tArr)>2)
echo " $tlvArr[0]:";
//explode by '-'
$firstValue = $readValue;
$firstmp = $tempDef;
$defArr = explode('-',$valueArr[1]);
if($DEBUG) echo " defArr = $defArr[0],$defArr[1],$defArr[2]";
switch($defArr[0]){
case 'toDec':
if(strlen($bitValue) > 0){
$readValue = BinDec($bitValue);
}else{
$readValue = HexDec($byteValue);
}
break;
case 'keepDec':
$readValue = $byteValue;
break;
case 'toHex':
echo " Error:toHex";
break;
case 'keepHex':
$readValue = $byteValue;
break;
case 'toAsc':
if($bgnBit > 0 ||$endBit < 7){
echo " toAsc Error:bgnBit > 0 ||endBit < 7";
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 " unitChar=$unitChar";
$charValue .= $unitChar;
$charCount++;
}
$readValue = $charValue;
}
break;
case 'keepAsc':
$readValue = $byteValue;
break;
default:
echo " Error:valueType=$defArr[0]";
break;
}
if($DEBUG) echo " readValue = $readValue";
debug_log("/tmp/debug.txt",readValue1);
debug_log("/tmp/debug.txt",$readValue);
switch($defArr[1]){
case 'high':
switch($defArr[2]){
case '0':
if($defArr[0] == 'toHex' || $defArr[0] == 'keepHex'){
//$inputValue = str_replace('0','',$inputValue);
}else{
//$readValue = $readValue - 0;
}
break;
case 'E':
echo "Error:high fill E";
break;
default: break;
}
break;
case 'low':
switch($defArr[2]){
case '0':
$readValue = str_replace('00','',$readValue);
break;
case 'E':
$readValue = str_replace('E','',$readValue);
break;
case 'F':
$readValue = str_replace('F','',$readValue);
break;
default: break;
}
break;
default: break;
}
$tempDef =$sqlName.'-'.$tlvArr[1].'-'.$operType.'-'.$valueArr[1].'-'.$firstmp;
if($specialDo[0] == 'code')
$readValue=decodeTelNumber($readValue);
$readValue=$firstValue.$readValue;
if( $n == sizeof($unitArr)-1 )
{
$readNumber='';
if($specialDo[0] == 'showComma')
{
$readValue=showComma($readValue);
}
elseif($specialDo[0] != "")
{
$readNumber=explode(' ',$specialDo[0]);
debug_log("/tmp/debug.txt",readValue4);
debug_log("/tmp/debug.txt",$readValue);
if($readNumber[1] != "")
$readValue=substr($readValue,0,$readNumber[1]);
debug_log("/tmp/debug.txt",readValue5);
debug_log("/tmp/debug.txt",$readValue);
}
debug_log("/tmp/debug.txt",readValue);
debug_log("/tmp/debug.txt",$readValue);
if(trim($readValue)=="" && $specialDo[0] == '--')
echo "--";
elseif(trim($readValue)=="" && ($specialDo[0]=='-' || $readNumber[2]=='-'))
echo "-";
else
echo "$readValue";
}
break;
case 'specialInputHlr':
//echo "byteValue=$byteValue,bitValue=$bitValue,tmpInputValue=$tmpInputValue";
echo "";
if(sizeof($tArr) > 2)
echo "| $tlvArr[0]: | ";
if(strlen($bitValue) > 0){
$inputValue = BinDec($bitValue);
}else{
$inputValue = $byteValue;
}
$tmpoffset='03.0-03.7';
$addressLen=hexdec(getBitValue($setValue,$tmpoffset));
echo "";
if('289' == $tmpInputValue){
$tmpValue=HEXDEC(substr($inputValue,0,2)).'.'.HEXDEC(substr($inputValue,2,2)).'.'.HEXDEC(substr($inputValue,4,2)).'.'.HEXDEC(substr($inputValue,6,2));
if($addressLen == 0)
$tmpValue="";
echo "";
}else if('343' == $tmpInputValue){
$tmpValue=substr($inputValue,0,4).':'.substr($inputValue,4,4).':'.substr($inputValue,8,4).':'.substr($inputValue,12,4).':'.substr($inputValue,16,4).':'.substr($inputValue,20,4).':'.substr($inputValue,24,4).':'.substr($inputValue,28,4);
echo "";
}else{
$tmpArr=explode("E",$inputValue);
$tmpValue=$tmpArr[0];
echo "";
}
echo " | ";
echo " ";
echo "";
//echo "inputValue=$inputValue,tmpValue=$tmpValue";
$tempDef = $sqlName.'-'.$tlvArr[1].'-'.$operType.'-'.$valueArr[1];
break;
case 'vlrSpecialRead':
$MCC=substr($setValue,0,2);
$MCC=strrev($MCC);
$MCC=$MCC.strrev(substr($setValue,2,2));
$MCC=str_replace("F","",$MCC);
$MNC=substr($setValue,4,2);
$MNC=strrev($MNC);
$MNC=str_replace("F","",$MNC);
$LAC=substr($setValue,-4);
echo "$MCC-$MNC-$LAC";
break;
case 'password':
echo "******";
break;
default: echo " Error:operType =|$operType|";
break;
}//end of switch(..)
//like:unitDef_1 = 1.0-2.0-select-keepHex-high-0 -->$tlvArr[1]-$operType-
}//end for(n..)
if($operType == 'select' || $operType == 'show' || $operType == 'radio' || $operType == 'checkbox')
{ //select
//echo "valueType=$valueType,nOctStr=$nOctStr";
if($valueType == $nOctStr){
$tempDef = $sqlName.'-'.$tlvArr[1].'-'.$operType.'-'.'toDec-high-0';
}else{
$tempDef = $sqlName.'-'.$tlvArr[1].'-'.$operType.'-'.'keepDec-high-0';
}
if($specialDo[0] != '')
{
$tempDef = $sqlName.'-'.$tlvArr[1].'-'.$operType.'-'.$specialDo[0].'-high-0';
}
}
$tempDef = str_replace(" ", "", $tempDef);
$tempDef = chop($tempDef);
if($specialDo[0] == 'code')
$tempDef=$tempDef.'-code';
$unitDefName='unitDef_'.$m.'_'.$i;
//echo "$unitDefName";
echo "";
//echo " tempDef=$tempDef";
}//end of for(i..)
$unitNum=$i-1;
$unitNumName='unitNum_'.$m;
echo "";
echo " ";
echo " | ";
if($sysTypeNo != 325)
{
$remark=nl2br($remark);
echo "$remark | ";
}
}//end of for(m..)
$paraNumber=sizeof($paraArr)-1;
echo "";
echo "