init web ems all

This commit is contained in:
agtuser committed 2024-09-27 17:13:36 +08:00
1 parent 81c97acbe9
commit 5cc56f8078
4263 files changed
+798779

No files matched your search

+19
View File
@@ -0,0 +1,19 @@
<?php
/********************************************************************
********************************************************************/
require("../../inc/header.inc");
$DEBUG = 0;
$pageTitle = "$strLog&nbsp;>&nbsp;$strLogAlarm>&nbsp;Generator";
omcProgressBar(100,100);
omcProgressBar(100,80);
omcProgressBar(100,60);
omcProgressBar(100,40);
omcProgressBar(100,20);
omcProgressBar(100,0);
?>
+228
View File
@@ -0,0 +1,228 @@
<?php
/********************************************************************
程序说明:
功能说明:发送完参数命令后,通过定时扫描数据库,显示命令的操作的状态过程,每隔两秒自动刷新
输入变量:(由发送命令页面传来)$commIdStr,$okURL,$failURL
输出并输入变量:$usedTime,$waitTime,$isFinish,$okURL,$failURL,$commIdStr
作者:
********************************************************************/
require("../../inc/header.inc");
$DEBUG = 0;
$failURL = rawurldecode($failURL);
$okURL = rawurldecode($okURL);
$pubDb = 'OMC_PUB';
$commTable = 'parameterComm';
$sysConfTable ='sysConf';
if($commNum <= 0){
$commArr = explode('-',$commIdStr);
$commNum = sizeof($commArr);
}
$maxOverTime = $commNum * 60 + 10; //根据子系统个数和对每个子系统操作的最大延时(60秒)来决定
$maxWaitTime = $commNum * 60;
$maxStopTime = $commNum * 60 + 10;
$maxOfCommId = 50000; //设定命令表的最大值
if($DEBUG) echo "<br>if(isFinish != 0 || (waitTime >= maxWaitTime) ||(stopTime > maxStopTime))<br>";
if($DEBUG) echo "<br>if($isFinish != 0 || ($waitTime >= $maxWaitTime) ||($stopTime > $maxStopTime))<br>";
//命令处理完毕
//----------------
if(($isFinish != 0) || ($waitTime >= $maxWaitTime) || ($stopTime > $maxStopTime)){
if($commId >= $maxOfCommId){ //初始化命令表
//先删除表
$dropSql = "DROP TABLE $commTable ";
mysqli_query($pubConn,$dropSql);
//再建一个结构相同的新表
$createSql="CREATE TABLE parameterComm (
commId int(6) NOT NULL auto_increment,
commType tinyint(1) NOT NULL default '0',
sysTypeNo smallint(3) NOT NULL default '0',
sysNo smallint(3) NOT NULL default '0',
subSysNo smallint(3) NOT NULL default '0',
instanceNo int(6) unsigned NOT NULL default '0',
paramType tinyint(1) NOT NULL default '0',
objId varchar(30) NOT NULL default '',
commState tinyint(1) NOT NULL default '0',
totalNum int(6) NOT NULL default '0',
finishNum int(6) NOT NULL default '0',
sendTime datetime NOT NULL default '0000-00-00 00:00:00',
bgnTime datetime default '0000-00-00 00:00:00',
endTime datetime default '0000-00-00 00:00:00',
remark varchar(200) binary default NULL,
PRIMARY KEY ( commId ),
KEY commType ( commType ),
KEY sysTypeNo ( sysTypeNo ),
KEY sysNo ( sysNo ),
KEY subSysNo ( subSysNo ),
KEY paramType ( paramType ),
KEY objId ( objId ),
KEY commState ( commState )
) ";
mysqli_query($pubConn,$createSql);
}else{
//删除命令表的相关命令
$commArr = explode('-',$commIdStr);
for($i=0;$i<sizeof($commArr);$i++){
if(strlen($commArr[$i]) <=0){
continue;
}
$deleteSql = "DELETE FROM $commTable WHERE commId='$commArr[$i]'";
if($DEBUG) echo "<br>deleteSql = $deleteSql";
mysqli_query($pubConn,$deleteSql);
echo mysqli_error($pubConn);
}
}
// 重定向返回指定页
if($isFinish != 0){
if($isFinish > 0){
echo "<b><font size=3 color=blue>Finished!!</font></b>";
if($DEBUG) exit();
echo " <meta http-equiv=\"refresh\" content=\"2; url=$okURL\"> ";
}elseif($isFinish == -1){
echo "<b><font size=3 color=black>Failed in some system!!</font></b>";
if($DEBUG) exit();
echo " <meta http-equiv=\"refresh\" content=\"2; url=$okURL\"> ";
}else{
echo "<b><font size=3 color=red>Failed!!</font></b>";
if($DEBUG) exit();
echo " <meta http-equiv=\"refresh\" content=\"2; url=$failURL\"> ";
}
}elseif($usedTime >= $maxOverTime && $stopTime == 1){
echo "<b><font size=3 color=red>Stoped!!</font></b>";
if($DEBUG) exit();
echo " <meta http-equiv=\"refresh\" content=\"2; url=$failURL\"> ";
}else{ //$usedTime >= $maxOverTime
echo "<b><font size=3 color=red>Timeout!!</font></b>";
if($DEBUG) exit();
echo " <meta http-equiv=\"refresh\" content=\"2; url=$failURL\"> ";
}
exit();
}//end of if($isFinish....)
//显示命令执行状态
//-----------------------------
$showTime = $usedTime*2;
echo "<font size=2>Time:$showTime s</font>";
//$stopTime = 0;
$okNum = 0;
$failNum = 0;
$commNum = 0;
$commArr = explode('-',$commIdStr);
$thisTImeFinishNumstr='';
$lastTimeFinishNumArr = explode('-',$lastTimeFinishNumStr);
for($i=0;$i<sizeof($commArr);$i++){
if(strlen($commArr[$i]) <=0){ continue;}
$commNum++;
$commSql = "SELECT * FROM $commTable WHERE commId= $commArr[$i]";
if($DEBUG) echo "<br>get command = $commSql";
$commResult = mysqli_query($pubConn,$commSql);
if(mysqli_num_rows($commResult) <= 0){
echo "<font size=2 color=red><b>Cannot find this command's info</b></font>";
exit();
}
$commRows = @mysqli_fetch_array($commResult);
$sysTypeNo = $commRows[sysTypeNo];
$sysNo = $commRows[sysNo];
$subSysNo = $commRows[subSysNo];
$commType = $commRows[commType];
$paramType = $commRows[paramType];
$objId = $commRows[objId];
$commState = $commRows[commState];
switch($commType){
case 0: echo "<font size=2> GET </font>";
break;
case 3: echo "<font size=2> SET </font>";
break;
default:
echo "<font size=3>Unknown Command Type</font>";
exit();
}
//获取该系统类型的snmp头和类型名称
if(!isset($sysTypeName)){
$sysConfSql = "SELECT snmpHead,sysTypeName FROM $sysConfTable WHERE sysTypeNo='$sysTypeNo'";
if($DEBUG) echo "<br>get conf = $sysConfSql";
$sysConfResult = mysqli_query($pubConn,$sysConfSql);
echo mysqli_error($pubConn);
$sysConfRows = @mysqli_fetch_array($sysConfResult);
$sysTypeName = $sysConfRows[sysTypeName];
$snmpHead = $sysConfRows[snmpHead];
}
$sysName = $sysTypeName.'_'.$sysNo.'_'.$subSysNo;
echo "<br><font size=2> $sysName 's</font>";
$objIdStr=$snmpHead.'.'.$objId;
echo "<font size=2 color=blue>$objIdStr</font>";
switch($paramType){
case 0: echo "<font size=2> [sub-system parameter] </font>";
break;
case 1: echo "<font size=2> [public sub-system parameter]</font>";
break;
case 2: echo "<font size=2> [public system parameter]</font>";
break;
default:
echo "<font size=3>Unknown Parameter Type</font>";
exit();
}
switch($commState){
case 0: //process failed
$failNum++;
echo "<br><b><font size=2 color=red> $commRows[remark]</font></b>";
break;
case 1: //wait process
$waitTime++;
break;
case 2: //in process
$waitTime = 0;
//只要有一个命令的完成数在增长,就认为该组命令在运行,否则认为命令处理超时
if($DEBUG) echo "====> {$commRows[finishNum]} > {$lastTimeFinishNumArr[$i]}";
if($commRows[finishNum] > $lastTimeFinishNumArr[$i]){
$stopTime = 0;
}else{
$stopTime++;
}
omcProgressBar($commRows[totalNum],$commRows[finishNum]);
break;
case 3: //process finished
$okNum++;
omcProgressBar(100,100);
break;
default:
echo "<font size=3>Unknown Command State</font>";
exit();
}
$thisTimeFinishNumStr .=$commRows[finishNum].'-';
echo "<br><br>";
}//end of for($i=0;$i<sizeof($commArr);$i++)
if($DEBUG) echo"<br>$commNum =?= $finishNum";
if($commNum == $okNum){
$isFinish = 1;
}elseif($failNum > 0 && $okNum > 0){
$isFinish = -1;
}elseif($commNum == $failNum){
$isFinish = -2;
}else{
$isFinish = 0;
}
if($DEBUG) echo"<br>lastTimeFinishNumStr=$lastTimeFinishNumStr";
if($DEBUG) echo"<br>thisTimeFinishNumStr=$thisTimeFinishNumStr";
$lastTimeFinishNumStr = $thisTimeFinishNumStr;
//刷新返回
//--------------
$usedTime++; //总时间
$failURL= rawurlencode($failURL);
$okURL = rawurlencode($okURL);
//保留变量值,传到下次刷新
$keepStr= "usedTime=$usedTime&waitTime=$waitTime&isFinish=$isFinish&stopTime=$stopTime&failURL=$failURL&okURL=$okURL&commIdStr=$commIdStr&commNum=$commNum&lastTimeFinishNumStr=$lastTimeFinishNumStr&selectedDPC=$selectedDPC";
if($DEBUG) echo "<br>keepStr=$keepStr";
?>
<meta http-equiv="refresh" content="2 url=<?php echo "$PHP_SELF?$keepStr"; ?>">
<meta http-equiv="pragma" content="no-cache">
+54
View File
@@ -0,0 +1,54 @@
<?php
/*********************************************************
程序说明:
功能说明:参数维护的index页面,对所选的$sysId判断是否安装
调用关系:调用: header.inc
被调用:
变量说明:
返回值:无
作者:
修改注释:
NO.1
姓名 :
时间:
修改说明:
*********************************************************/
require("../../inc/header.inc");
if($sysId == ''){ //默认显示OMC,需要和paramConf_up.php保持一致
$sysId='322_99_99';
}
$sysIdArr=explode('_',$sysId);
$sysTypeNo=$sysIdArr[0];
if($sysTypeNo == '500'){//BSS
if($language == 'chn'){
$language = 'gb';
}else{
$language = 'eng';
}
$sysNo = $sysIdArr[1];
$bss_num=$sysNo - 0;
echo " <meta http-equiv=\"refresh\" content=\"0; url=../../bssomc/modifyBssParam.php?bssid=$bss_num&language=$language\"> ";
exit();
}
$selectedSysId=isset($selectedSysId)? $selectedSysId:-1;
?>
<frameset framespacing="0" border="0" cols="280,*" frameborder="0">
<frame name="contents" target="r_r_main" src="<?php echo"paramConf_down_left.php?sysId=$sysId&selectedSysId=$selectedSysId&selectedDPC=$selectedDPC";?>" scrolling="auto">
<frame name="r_r_main" src="<?php echo"paramConf_down_main.php?sysId=$sysId&selectedSysId=$selectedSysId&selectedDPC=$selectedDPC";?>" scrolling="auto" target="_self">
<noframes>
<body>
<p>you browser can not support frame</p>
</body>
</noframes>
</frameset>
</html>
+306
View File
@@ -0,0 +1,306 @@
<?php
/*********************************************************
程序说明:
功能说明:本程序将数据表中的分级目录,按树状菜单的形式显示出来,
类似于windows资源管理器的效果。
调用关系:调用: header.inc
被调用:
变量说明:$language_type是公共变量在config.inc文件定义
返回值:无
作者:
修改注释:
NO.1
姓名:
时间:
修改说明:
*********************************************************/
require("../../inc/header.inc");
$DEBUG=0;
$pubDb='OMC_PUB';
$sysConfTable = 'sysConf';
$sysInfoTable = 'sysInfo';
$sysIdArr = explode('_',$sysId);
$sysTypeNo = $sysIdArr[0];
$sysNo = $sysIdArr[1];
$subSysNo = $sysIdArr[2];
if($DEBUG) echo "<br>sysTypeNo = $sysTypeNo";
if($DEBUG) echo "<br>sysNo = $sysNo";
if($DEBUG) echo "<br>subSysNo = $subSysNo";
if($DEBUG) echo "<br>selectedDPC = $selectedDPC";
if($DEBUG) echo "<br>selectedSysId = $selectedSysId";
//产生菜单时,所依据的表名
$objDb = 'OBJ_'.$sysTypeNo;
$confTable = 'paramConf';
//所链接的页面
$targetPage = 'paramConf_down_main.php';
//----------------------
//选择语言版本
if($language == 'eng'){
$showName = name_2; //语种2
}else{
$showName = name_1; //语种1
}
//-----------------------
echo"<base target=\"r_r_main\">";
//------------------------------------------------------------------------
//下面列出该菜单依赖的字段名,用逗号隔开
//**如果需要添加可显示的层数,以按相同格式更改$levelList和$levelNum
//**例如:$levelList = "level_0,level_1,level_2,level_3,level_4.menu_6,menu_7,menu_8,menu_9,level_10.......level_n";
//** 并将$levelNum = n+1;
$levelList = "level_1,level_2,level_3,level_4,level_5,level_6,level_7,level_8,level_9,level_10";
$levelNum = 10;
//------------------------------------------------------------------------
if($subSysNo == '99'){
$isSysParam=1;
}else{
$isSysParam=0;
}
?>
<script LANGUAGE="JavaScript">
function selectSubSys(){
var base_url,url_add,url;
base_url='<?php echo"paramConf_down.php?sysId=$sysId&selectedDPC=$selectedDPC&selectedSysId=";?>';
url_add=document.selectForm.selectedSysId.options[document.selectForm.selectedSysId.selectedIndex].value;
url=base_url+url_add;
window.parent.location=url;
}
</script>
<body leftmargin="15" rightmargin="10" onload="javascript:adjust_frame('down');" onresize="javascript:adjust_frame('down');" style="overflow:hidden;overflow-x:hidden;overflow-y:hidden;">
<?php
adjust_head_small_frame("down");
adjust_title_head_frame("down");
adjust_title_tail_frame("down");
adjust_content_head_frame("down");
echo "<br>";
?>
<FORM METHOD=POST name=selectForm>
<table border="1" width="100% cellpadding="2" cellspacing="0" bordercolor="#666666" bordercolordark="#FFFFFF" bgcolor="#FFFFFF" >
<tr>
<td bgcolor="#E6E6E6"><nobr>
<?php
//echo "$sysNo,$subSysNo<br>";
if(($sysNo == '99') || ($subSysNo == '99')){
if($sysNo == '99'){
$paramType = 2;
if($sysTypeNo[0] == '2'){
if($sysTypeNo == '222' || $sysTypeNo == '223'|| $sysTypeNo == '260'){
$sysIdSql ="SELECT sysTypeName,$sysInfoTable.sysTypeNo,sysNo,subSysNo,sysAlias
FROM $sysInfoTable,$sysConfTable
WHERE $sysInfoTable.sysTypeNo=$sysConfTable.sysTypeNo
AND $sysInfoTable.sysTypeNo = '$sysTypeNo' AND sysNo!='8' AND sysNo!='11' AND DPC='$selectedDPC'
";
}else{
$sysIdSql ="SELECT sysTypeName,$sysInfoTable.sysTypeNo,sysNo,subSysNo,sysAlias
FROM $sysInfoTable,$sysConfTable
WHERE $sysInfoTable.sysTypeNo=$sysConfTable.sysTypeNo
AND $sysInfoTable.sysTypeNo = '$sysTypeNo' AND sysNo='9' AND DPC='$selectedDPC'
";
}
}else{
$sysIdSql ="SELECT sysTypeName,$sysInfoTable.sysTypeNo,sysNo,subSysNo,sysAlias
FROM $sysInfoTable,$sysConfTable
WHERE $sysInfoTable.sysTypeNo=$sysConfTable.sysTypeNo
AND $sysInfoTable.sysTypeNo = '$sysTypeNo'
";
}
}else{
$paramType = 1;
$sysIdSql ="SELECT sysTypeName,$sysInfoTable.sysTypeNo,sysNo,subSysNo,sysAlias
FROM $sysInfoTable,$sysConfTable
WHERE $sysInfoTable.sysTypeNo=$sysConfTable.sysTypeNo
AND $sysInfoTable.sysTypeNo = '$sysTypeNo'
AND sysNo = '$sysNo'
";
}
if($DEBUG) echo "sysIdSql(1) = $sysIdSql<br>";
$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 "&nbsp;</td></tr></table>Can not find Any system be installed.<br>";
exit();
}
if($sysNo == '99'){
echo "<b>$sysTypeName"."_pub</b>";
}else{
echo "<b>$sysTypeName"."_$sysNo"."_pub</b>";
}
echo "&nbsp;&nbsp;&nbsp;Select:&nbsp;";
echo "<select name=\"selectedSysId\" size=\"1\" onChange=\"javascript:selectSubSys()\">";
if($selectedSysId == -1){
echo "<option value=\"-1\" selected>----</option>";
}else{
echo "<option value=\"-1\" >----</option>";
}
do{
$tmpSysId =$rows[sysTypeNo].'_'.$rows[sysNo].'_'.$rows[subSysNo];
$tmpSysName =$rows[sysTypeName].'_'.$rows[sysNo].'_'.$rows[subSysNo];
$tmpAlias =$rows[sysAlias];
if($tmpSysId == $selectedSysId){
$selectedStr='selected';
}else{
$selectedStr='';
}
if(strlen($tmpAlias) > 0){
echo "<option value=\"$tmpSysId\" $selectedStr>$tmpSysName [$tmpAlias]</option>";
}else{
echo "<option value=\"$tmpSysId\" $selectedStr>$tmpSysName</option>";
}
}while($rows=mysqli_fetch_array($result));
echo "</select>";
}else{
if ( ('222' == $sysTypeNo) || ('223' == $sysTypeNo) ) //MTP3 OR SCCP)
$paramType = 2;
else
$paramType = 0;
$sysIdSql ="SELECT sysTypeName,$sysInfoTable.sysTypeNo,sysNo,subSysNo,sysAlias
FROM $sysInfoTable,$sysConfTable
WHERE $sysInfoTable.sysTypeNo=$sysConfTable.sysTypeNo
AND $sysInfoTable.sysTypeNo = '$sysTypeNo'
AND sysNo = '$sysNo'
AND subSysNo = '$subSysNo'
";
if($DEBUG) echo "sysIdSql(2) = $sysIdSql<br>";
$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 "&nbsp;</td></tr></table>Can not find this system.<br>";
exit();
}
echo "<b>$sysTypeName"._."$sysNo"._."$subSysNo</b>";
$sysAlias=$rows[sysAlias];
if(strlen($sysAlias)){
echo "&nbsp;&nbsp;&nbsp;[$sysAlias]";
}
}
?>
</nobr></td>
</tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr><td ><img src="../../images/line.gif"></td></tr>
<?php
/************************从数据库取出菜单结构的数据,并按顺序导入到数组中**************************/
/*
if($sysTypeNo == 120 || $sysTypeNo == 130 || $sysTypeNo == 140){
$bgnLevelNo=5;//1.1.7.2.* or 1.1.6.2.*
}else{
*/
$bgnLevelNo=1;
/*
}
*/
$treeMenuSql = "SELECT * FROM $confTable
WHERE paramType ='$paramType' AND operType >'0' AND operType !='4'
ORDER BY ".$levelList
;
if($DEBUG) echo "<br>$treeMenuSql";
$treeMenuResult = mysqli_query($pubConn,$treeMenuSql);
echo mysqli_error($pubConn);
$n=0;
while($treeMenuRows = @mysqli_fetch_array($treeMenuResult)){
//从第i层开始划分层次,第i层之前不参与显示算法
for($i=$bgnLevelNo; $i<=$levelNum; $i++){
$levelId = 'level_'.$i;
$treeMenuArr[$n][$i-1]=$treeMenuRows[$levelId];
}
$treeMenuArr[$n][$levelNum]=$treeMenuRows[$showName];
$treeMenuArr[$n][$levelNum+1]=$treeMenuRows[keyId];
$treeMenuArr[$n][$levelNum+2]=$treeMenuRows[paramType];
$n++;
}
/*************************************下面是顺序显示菜单程序***************************************/
for($i=0 ; $i < sizeof($treeMenuArr); $i++){ //从上到下 ---> 级
$objName = $treeMenuArr[$i][$levelNum];
$objKeyId= $treeMenuArr[$i][$levelNum+1];
$num=$bgnLevelNo;
while($treeMenuArr[$i][$num] > 0){
$num++;
}
$lastLevelNum = $treeMenuArr[$i][$num - 1].'.';
$isSysParam = $treeMenuArr[$i][$levelNum+2];
$leaf_show = "<a href=\"$targetPage?isKnot=0&objKeyId=$objKeyId&sysId=$sysId&selectedSysId=$selectedSysId&selectedDPC=$selectedDPC\">".$lastLevelNum.'&nbsp;'.$objName."</a></nobr>";
$knot_show = "<a href=\"$targetPage?isKnot=1&objKeyId=$objKeyId&sysId=$sysId&selectedSysId=$selectedSysId&selectedDPC=$selectedDPC\">".$lastLevelNum.'&nbsp;'.$objName."</a></nobr>";
$show_1 = "\n<img align=absBottom border=0 src=../../images/midminus.gif><img align=absBottom border=0 src=../../images/open.gif>$knot_show";
if($isSysParam > 0){
$show_2 = "\n<img align=absBottom border=0 src=../../images/midblk.gif><img align=absBottom border=0 src=../../images/page.gif> $leaf_show";
$show_4 = "\n<img align=absBottom border=0 src=../../images/lastblk.gif><img align=absBottom border=0 src=../../images/page.gif> $leaf_show";
}else{
$show_2 = "\n<img align=absBottom border=0 src=../../images/midblk.gif><img align=absBottom border=0 src=../../images/page.gif> $leaf_show";
$show_4 = "\n<img align=absBottom border=0 src=../../images/lastblk.gif><img align=absBottom border=0 src=../../images/page.gif> $leaf_show";
}
$show_3 = "\n<img align=absBottom border=0 src=../../images/line.gif>";
$show_5 = "\n<img align=absBottom border=0 src=../../images/blank.gif>";
echo"<tr ><td valign=middle>";
echo "<nobr>";
for($j=0; $j < $levelNum;$j++){ //从左到右 ---> 层
if($treeMenuArr[$i][$j] > 0){ //如果该节点大于零
if($treeMenuArr[$i+1][$j] > $treeMenuArr[$i][$j] ){ //如果下面有树枝或页子与本节点(树枝或叶子)相连,即下面有兄弟节点
if($treeMenuArr[$i][$j+1] > 0){ //如果是树枝
echo "$show_3"; //show_3
}else{//叶子
echo "$show_2"; //show_2
}
}else{//如果下面的节点号不大于本节点号
if($treeMenuArr[$i][$j+1] > 0){ //如果本节点不是叶子
$is_line =0; //标志位,用于标志同一树枝下面是否还有分支,或是直接连在本枝上的叶子。
//顺着上一层目录,向下查找
for($p=$i+1;$p < sizeof($treeMenuArr) && $treeMenuArr[$p][$j-1] == $treeMenuArr[$i][$j-1];$p++){
if($treeMenuArr[$p][$j] > $treeMenuArr[$i][$j]){ //找到了!!!
$is_line = 1;
break;
}
}
if($is_line == 1){ //下面还有分支,或是直接连在本枝上的叶子
echo "$show_3"; //show_3
}else{//同一树枝下没有分支,或是连在本枝上的叶子
echo "$show_5"; //show_5
}
}else{ //本节点是叶子
if($treeMenuArr[$i+1][$j+1] > 0){ //本节点有分叉,即有起点在本节点的子树
echo "$show_1"; //show_1
}else{//本节点是该树枝上最末一片页子
echo "$show_4"; //show_4
}
}
} //end else of if($treeMenuArr[$i+1][$j] > $treeMenuArr[$i][$j] )
} //end if($treeMenuArr[$i][$j] > 0)
} //end for($j=0;$j < $levelNum;$j++)
echo"</nobr></td></tr>";
}//end for($i=0 ; $i < sizeof($treeMenuArr); $i++)
?>
</table>
</FORM>
<?php
adjust_content_tail("down");
?>
</body>
</html>
+666
View File
@@ -0,0 +1,666 @@
<?php
/*********************************************************
程序说明:
功能说明:本程序实现对数据表中的参数的编辑,根据树状菜单的选择,
每页显示该类参数的前$number_records_to_display个参数,。
调用关系:调用: header.inc
被调用:paramConf_down_left.php
变量说明:
输入变量:
$objKeyId :由左边树状菜单传来的值,用于确定参数类型
$sysId :由上面页面或左边树状菜单传来的值
$languageType:语言种类
返回值:无
作者:
修改注释:
NO.1
姓名:
时间:
修改说明:
*********************************************************/
require("../../inc/header.inc");
?>
<body leftmargin="15" rightmargin="10" onload="javascript:adjust_frame('down');" onresize="javascript:adjust_frame('down');" style="overflow:hidden;overflow-x:hidden;overflow-y:hidden;">
<?php
adjust_head_noleft_frame("down");
adjust_title_head_frame("down");
adjust_title_tail_frame("down");
adjust_content_head_frame("down");
echo "<br>";
$DEBUG = 0;
//echo "aliasValue_0=$aliasValue_0<br>";
//echo "strAlias=$strAlias, inputName=$inputName, setValue=$setValue<br>";
$nPubFlag = 99;
$nSubSysParam = 0;
$nGlobalSubSysParam = 1;
$nGlobalSysParam = 2;
if($DEBUG) echo"<br><font size=3 color=red>调试中...对各位带来不便,请原谅</font>";
$sysIdArr = explode('_',$sysId);
$sysTypeNo = $sysIdArr[0];
$sysNo = $sysIdArr[1];
$subSysNo = $sysIdArr[2];
$nGetComm = 0;
$nSetComm = 3;
$commTable ='OMC_PUB.parameterComm';
$maxLevelNum = 10;
$maxRecodeOfOnePage=16;
$nInteger = 2;
$nOctStr = 4;
//参数定义表,参数表名
$pubDb = 'OMC_PUB';
$objDb = 'OBJ_'.$sysTypeNo;
$confTable = 'paramConf';
$paramTable = 'param_'.$sysNo;
//------------选择语言版本----------
if($language == 'eng'){
$objNameField = 'name_2';
$objDescField = 'desc_2';
$objNoteField = 'note_2';
}else{
$objNameField = 'name_1';
$objDescField = 'desc_1';
$objNoteField = 'note_1';
}
//在参数定义表寻找该类型参数的对应信息
if($objKeyId > 0){
$paramConfSql = "SELECT * FROM $confTable
WHERE keyId ='$objKeyId'
";
if($DEBUG) echo "paramConfSql=$paramConfSql<br>";
$paramConfResult = mysqli_query($pubConn,$paramConfSql);
$paramConfRows= mysqli_fetch_array($paramConfResult);
echo mysqli_error($pubConn);
$paramType = $paramConfRows[paramType];
$paramNum = $paramConfRows[number];
$length = $paramConfRows[length];
$initValue = $paramConfRows[initValue];
$minValue = $paramConfRows[minValue];
$maxValue = $paramConfRows[maxValue];
$objName = $paramConfRows[$objNameField];
$objDesc = $paramConfRows[$objDescField];
$isNeedNote = $paramConfRows[needNote];
$noteMsg = $paramConfRows[$objNoteField];
$operType = $paramConfRows[operType];
$valueType = $paramConfRows[valueType];
$objIdStr = '';
$objWhereStr= '';
$lastLevelNo = 0;
for($i=1;$i<=$maxLevelNum;$i++){
$levelId = 'level_'.$i;
if($paramConfRows[$levelId] == 0){
if($lastLevelNo <= 0){
$lastLevelNo = $i-1;//最后一层编号
}
}else{
${$levelId}=$paramConfRows[$levelId];
$objIdStr .= $paramConfRows[$levelId].'.';//该类参数的对象编号
$objWhereStr .= $levelId.'='.${$levelId}.' AND ';
}
}
$objIdStr = substr($objIdStr,0,-1); //最后多了一个'.',将其去掉
$objWhereStr = substr($objWhereStr,0,-5); //最后多了一个' AND ',将其去掉
$maxlength = $length*2;
if($DEBUG) echo "<br>objIdStr = $objIdStr ,lastLevelNo = $lastLevelNo";
if($DEBUG) echo "<br>objWhereStr = $objWhereStr <br>";
}//end if
$needSaveInitValue = 0;
$needSendComm = 0;
//*********从设备读参数***************************
if($DEBUG) echo "<br>getFromSys =$getFromSys <br>";
if(isset($getFromSys)){
$commType = $nGetComm;
$needSendComm = 1;
}
//*********下载参数到设备*************************
if($DEBUG) echo "<br>setToSys =$setToSys <br>";
if(isset($setToSys)){
if($DEBUG) echo "<br>setToSys =$setToSys <br>";
if($isKnot > 0){
$needSaveInitValue = 0;
}else{
$needSaveInitValue = 1;
}
$commType = $nSetComm;
$needSendComm = 1;
}
//**********数据库各列间相互导入*******************
if(isset($read2init)){
if($DEBUG) echo "<br>read2init=$read2init";
$needSaveInitValue = 0;
$needSendComm = 0;
$moveType='read2init';
}
if(isset($saveInitValue)){
if($DEBUG) echo "<br>saveInitValue =$saveInitValue";
$needSaveInitValue = 1;
$needSendComm = 0;
}
//---------保存参数------------------------------
if($DEBUG) echo "<br>needSaveInitValue=$needSaveInitValue";
if($needSaveInitValue == 1){
if($DEBUG) echo "<br>bgnNo=$bgnNo / endNo=$endNo";
if($isKnot==1) {
$saveSql = "UPDATE $paramTable SET initValue = editValue
WHERE subSysNo='$subSysNo' AND $objWhereStr";
$saveResult = mysqli_query($pubConn,$saveSql);
} else {
for($i=$bgnNo;$i<=$endNo;$i++){
$initValue=${'initValue_'.$i};
$saveSql = "UPDATE $paramTable SET initValue = '$initValue'
WHERE subSysNo='$subSysNo' AND $objWhereStr AND instanceNo='$i'
";
if($DEBUG) echo "<br>saveSql=$saveSql";
$saveResult = mysqli_query($pubConn,$saveSql);
echo mysqli_error($pubConn);
}
}
}
//---------导入各列的参数------------------------------
if(isset($moveType)){
switch($moveType){
case 'read2init':
$moveSql = "UPDATE $paramTable SET initValue = readValue
WHERE subSysNo='$subSysNo' AND $objWhereStr
AND (LENGTH(readValue) > 0)
AND readValue != 'Null'
AND readValue NOT LIKE 'Error%'
";
break;
default:
echo "Unknown moveType=$moveType!!";
exit();
}
$moveResult=mysqli_query($pubConn,$moveSql);
if($DEBUG) echo "<br>moveSql=$moveSql";
echo mysqli_error($pubConn);
}
if($needSendComm == 1 &&$commType==$nSetComm){
$clearSql = "UPDATE $paramTable SET readValue = ''
WHERE subSysNo='$subSysNo' AND $objWhereStr";
$clearResult=mysqli_query($pubConn,$clearSql);
if($DEBUG) echo "<br>clearSql=$clearSql";
echo mysqli_error($pubConn);
}
//---------发送命令,跳转页面----------------------------
if($needSendComm == 1 && isset($commType)){
$okURL = "$PHP_SELF?isKnot=$isKnot&sysId=$sysId&bgnNo=$bgnNo&objKeyId=$objKeyId&selectedSysId=$selectedSysId&selectedDPC=$selectedDPC";
$failURL = "$PHP_SELF?isKnot=$isKnot&sysId=$sysId&bgnNo=$bgnNo&objKeyId=$objKeyId&selectedSysId=$selectedSysId&selectedDPC=$selectedDPC";
if($DEBUG) echo "<br>okURL =$okURL<br> ";
if($DEBUG) echo "<br>sysCommSend($sysId,$commType,$objIdStr,$selectedSysId,$selectedDPC)";
if($DEBUG) echo "<br>selectedSysId=$selectedSysId";
$commIdStr = sysCommSend($sysId,$commType,$objIdStr,$selectedSysId,$selectedDPC);
if($DEBUG) echo "<br>commIdStr=$commIdStr";
if(isset($commIdStr) && $commIdStr != -1){
$failURL = urlencode($failURL);
$okURL = urlencode($okURL);
$scanURL ="commIdStr=$commIdStr&okURL=$okURL&failURL=$failURL";
if($DEBUG) echo "<br>scanURL = $scanURL<BR>";
if($DEBUG) exit();
echo " <meta http-equiv=\"refresh\" content=\"0; url=./commScan.php?$scanURL\"> ";
exit();
}else{
echo "<br><font size=3 color=red>SEND GET COMMAND ERROR!<br></font>";
}
}
?>
<?php
//***************************显示指定对象的参数**********************
if(!isset($objKeyId) ||$objKeyId == ''){ //没有选定参数对象
echo "<font size=\"3\"><b>$strParametersOperations:</b></font>";
echo "<br><br>$strParametersOperationsRemarks_1";
echo "<br><br>$strParametersOperationsRemarks_2";
echo "<br><br>$strParametersOperationsRemarks_3";
//显示操作流程图
echo "<br><br>";
echo "<p align=\"center\">";
if($language == 'eng'){
echo "<img border=\"0\" src=\"../../images/flow_e.gif\">";
}else{
echo "<img border=\"0\" src=\"../../images/flow_c.gif\">";
}
echo "</p>";
}else{
//*********************大类的参数*********************
if($isKnot > 0){
echo "<form method=\"POST\" name=\"update\" action=\"$PHP_SELF\">";
echo "<br>Object Id: $objIdStr";
echo "<br><font size=3>You are going to operate All parameters included in <br> <b>$objName</b> </font>";
echo "<br><br>";
echo "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">";
echo "<tr>";
echo "<td width=\"70%\" >&nbsp;</td> ";
echo "<td width=\"15%\" >";
echo "<input type=\"submit\" value=\"SET\" name=\"setToSys\" title=\"SET init buffer's parameters to system\" style=\"left: 3; top: 2; width: 50; height: 25; position: relative\">";
echo "</td> ";
echo "<td width=\"15%\" >";
echo "<input type=\"submit\" value=\"GET\" name=\"getFromSys\" title=\"GET parameters to read buffer\" style=\"left: 3; top: 2; width: 50; height: 25; position: relative\">";
echo "</td> ";
echo "</tr> ";
echo "</table> ";
echo "<br>";
echo "<table border=\"1\" width=\"100%\" cellpadding=\"2\" cellspacing=\"0\" bordercolor=\"#666666\" bordercolordark=\"#FFFFFF\" bgcolor=\"#FFFFFF\"> ";
echo "<tr>";
echo "<td width=\"5%\" align=\"center\">No</td> ";
echo "<td width=\"45%\" align=\"center\">$strParameterdDescription</td> ";
echo "<td width=\"25%\" align=\"center\"><input type=\"submit\" value=\"Save\" name=\"saveInitValue\"></td> ";
echo "<td width=\"25%\" align=\"center\"><input type=\"submit\" value=\"Copy\" name=\"read2init\"></td> ";
echo "</tr> ";
echo "<tr>";
echo "<td width=\"5%\" align=\"center\">xx</td> ";
echo "<td width=\"45%\" align=\"center\">$objName</td> ";
echo "<td width=\"25%\" align=\"center\">ALL</td> ";
echo "<td width=\"25%\" align=\"center\">ALL</td> ";
echo "</tr> ";
echo "<tr>";
echo "<td width=\"5%\" align=\"center\">...</td> ";
echo "<td width=\"45%\" align=\"center\">.......</td> ";
echo "<td width=\"25%\" align=\"center\">...</td> ";
echo "<td width=\"25%\" align=\"center\">...</td> ";
echo "</tr> ";
echo "</table> ";
//显示操作流程图
echo "<br><br>";
echo "<p align=\"center\">";
if($language == 'eng'){
echo "<img border=\"0\" src=\"../../images/flow_e.gif\">";
}else{
echo "<img border=\"0\" src=\"../../images/flow_c.gif\">";
}
echo "</p>";
echo "\n<input type=\"hidden\" name=\"isKnot\" value=\"$isKnot\">";
echo "\n<input type=\"hidden\" name=\"sysId\" value=\"$sysId\">";
echo "\n<input type=\"hidden\" name=\"objKeyId\" value=\"$objKeyId\">";
echo "\n<input type=\"hidden\" name=\"objIdStr\" value=\"$objIdStr\">";
echo "\n<input type=\"hidden\" name=\"selectedSysId\" value=\"$selectedSysId\">";
echo "\n<input type=\"hidden\" name=\"selectedDPC\" value=\"$selectedDPC\">";
exit();
echo "</form>";
}
//*********************显示该对象参数说明*********************
echo "<nobr>";
echo "$strParameterDescription: <font color=008000>$objName</font>&nbsp;&nbsp;";
echo "$strUnitLength:<font color=008000>$length</font>&nbspbyte&nbsp&nbsp";
//echo "$strObjectID:<font color=008000> $objIdStr </font>&nbsp&nbsp$strRemark:";
echo "</nobr><br><nobr>";
$valueLen=strlen($initValue);
//echo "<br>valueLen=$valueLen";
if($valueLen<20)
{
echo "$strValueRange:<font color=008000>$minValue - $maxValue</font>&nbsp&nbsp";
echo "$strDefaultValue:<font color=008000>$initValue</font>&nbsp&nbsp";
}
echo "$strTotalRecords:<font color=008000>$paramNum</font>";
//$page_num=round($parameter_num / $number_records_to_display);
//echo "$strTotalPages :<font color=008000>$page_num</font>";
echo "</nobr>";
//*********************显示参数****************************
if(!isset($bgnNo)){
$bgnNoSql = " SELECT snmpInstanceBgn FROM sysConf
WHERE sysTypeNo = '$sysTypeNo'
";
if($DEBUG) echo"<br>bgnNoSql=$bgnNoSql";
$result = mysqli_query($pubConn,$bgnNoSql);
$rows = mysqli_fetch_array($result);
$bgnNo=$rows[0];
}
//------------查询参数表---------------------
$paramSql = " SELECT initValue,readValue,instanceNo FROM $paramTable
WHERE subSysNo = '$subSysNo' AND $objWhereStr AND instanceNo >='$bgnNo'
ORDER BY instanceNo LIMIT 0,$maxRecodeOfOnePage
";
if($DEBUG) echo"<br>ParamSql = $paramSql";
$paramResult = mysqli_query($pubConn,$paramSql);
//已显示的参数个数
$endNo=$bgnNo + $maxRecodeOfOnePage - 1;
//*************************************************编辑参数时所用javascript*********************************
?>
<script LANGUAGE="JavaScript">
function changevalue(term){
var change_num;
term.style.color = "BLUE";
term.value = term.value.toUpperCase();
if(term.value.length != document.update.maxlength.value){
var LengthErrorWarning = "<?php echo $strLengthOfTheInputValueIsError; ?>";
var CorrectItWarning = "<?php echo $strPleaseCorrectIt; ?>";
alert(LengthErrorWarning + CorrectItWarning + "[= " + document.update.maxlength.value + "]");
term.focus();
return (false);
}
change_num++;
var checkOK = "-0123456789ABCDEF";
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 (!allValid){
var ParaHex="<?php echo $strParaMustBeAHexNumber; ?>";
var Capital="<?php echo $strCapitalCharacter; ?>";
alert(ParaHex+","+"("+Capital+")!");
term.focus();
return (false);
}
}
function openSet(sysTypeNo,objKeyId,inputName,aliasName){
var inputValue;
var aliasValue;
inputValue = eval("document.update."+inputName+".value");
aliasValue = eval("document.update."+aliasName+".value");
URL="./paramEdit.php?sysTypeNo="+sysTypeNo+"&keyId="+objKeyId+"&setValue="+inputValue+"&inputName="+inputName
+"&alaisValue="+aliasValue+"&aliasName="+aliasName;
//window.alert(URL);
var msgWindow = open(URL, 'newWin', 'toolbar=no,directories=no,menubar=no,scrollbars=yes,resizable=yes,status=yes,width=400,height=350');
msgWindow.focus();
}
function checkAllInput(theform){
var bgnNo=document.update.bgnNo.value;
var endNo=document.update.endNo.value;
var i,j,p;
var checkOK = "-0123456789ABCDEF";
var initValue,readValue;
var allValid = true;
var LengthErrorWarning="<?php echo "$strLengthOfTheInputValueIsError"; ?>";
var CorrectItWarning="<?php echo "$strPleaseCorrectIt"; ?>";
var ValueCannotEmpty="read buffer's value cannot be empty!";
var ValueLengthError="read buffer's value length error!";
var commdType = document.update.commdType.value;
//alert(commdType);
//window.alert("bgnNo="+bgnNo+",endNo="+endNo);
for(p=bgnNo; p <= endNo; p++){
initValue = eval("document.update.initValue_"+p+".value.toUpperCase()");
readValue = eval("document.update.readValue_"+p+".value.toUpperCase()");
//window.alert(initValue);
//window.alert(readValue);
//当get buffer的值长度不足
if(commdType=='copy'){
<?php
if($valueType == $nInteger){//整形
?>
if(readValue.length < 1 && document.update.readMoveToInit.value > 0){
document.update.readMoveToInit.value=0;
alert(ValueCannotEmpty);
return (false);
}
<?php
}else{
?>
//window.alert("test test.");
if(readValue.length < document.update.maxlength.value && document.update.readMoveToInit.value > 0){
document.update.readMoveToInit.value=0;
alert(ValueLengthError);
return (false);
}
<?php
}
?>
}//end if commdType==copy
if(commdType=='save' || commdType=='set'){
<?php //当输入值的长度不足
if($valueType == $nInteger){
?>
if(initValue.length == 0){
alert(LengthErrorWarning + CorrectItWarning );
return (false);
}
<?php
}else{
?>
if(initValue.length != document.update.maxlength.value){
alert(LengthErrorWarning + CorrectItWarning + "[= " + document.update.maxlength.value + "]");
return (false);
}
<?php
}
?>
//检测输入值是否为0-f的16进制字符
for (i = 0; i < initValue.length; i++){
ch = initValue.charAt(i);
for (j = 0; j < checkOK.length; j++){
if (ch == checkOK.charAt(j))
break;
}
if (j == checkOK.length){
allValid = false;
break;
}
}
//当输入值的字符有非法字符
if (!allValid){
var ParaHex="<?php echo $strParaMustBeAHexNumber; ?>";
var Capital="<?php echo $strCapitalCharacter; ?>";
alert(ParaHex+","+"("+Capital+")!");
return (false);
}
}//end if.
}
return (true);
}
function gotoPage(){
var pageUrl,gotoNo,numberPerPage;
var keepValue;
pageNo=document.update.pageNo.value;
maxRecodeOfOnePage='<?php echo "$maxRecodeOfOnePage";?>';
gotoNo=maxRecodeOfOnePage*pageNo;
keepValue =
'<?php echo "$PHP_SELF?objKeyId=$objKeyId&sysId=$sysId&selectedSysId=$selectedSysId&selectedDPC=$selectedDPC";?>';
pageUrl=keepValue+"&bgnNo="+gotoNo;
window.location.href=pageUrl;
}
</script>
<form method="POST" name="update" action="<?php echo"$PHP_SELF";?>" onsubmit="return checkAllInput(this)">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<?php
//*********************显示翻页图标**********************
echo "<td width=5%>";
if($bgnNo >= $maxRecodeOfOnePage){//设定上一页开始序号
$preNo = $bgnNo - $maxRecodeOfOnePage;
$keepValue = "objKeyId=$objKeyId&sysId=$sysId&bgnNo=$preNo&selectedSysId=$selectedSysId&selectedDPC=$selectedDPC";
echo"<a href=\"$PHP_SELF?$keepValue\"><img border=0 src=\"../../images/prePage.gif\" alt=\"previous page\"></a>";
}
echo"</td>";
//select the page.
echo "<td width=2% aligh=center>";
if ( $paramNum > $maxRecodeOfOnePage ) {
echo "<SELECT size=\"1\" name=\"pageNo\" onChange=\"javasript:gotoPage()\">";
$totalPageNum = ceil ( $paramNum / $maxRecodeOfOnePage );
$pageNo = ceil($bgnNo/$maxRecodeOfOnePage);
for($i=0;$i<$totalPageNum;$i++){
if($i== $pageNo){
echo "<option selected value=\"$i\" >$i</option>";
}else{
echo "<option value=\"$i\">$i</option>";
}
}
echo "</SELECT>";
}
echo "</td>";
echo "<td width=5%>";
if($paramNum > ($endNo+1)){//设定下一页开始序号
$nextNo = $bgnNo + $maxRecodeOfOnePage;
$keepValue = "objKeyId=$objKeyId&sysId=$sysId&bgnNo=$nextNo&selectedSysId=$selectedSysId&selectedDPC=$selectedDPC";
echo"<a href=\"$PHP_SELF?$keepValue\"><img border=0 src=\"../../images/nextPage.gif\" alt=\"next page\"></a>";
}
echo"</td>";
?>
<td width="40%">No.
<?php
echo "<font color=\"#008000\">$bgnNo</font>-";
$endNo=($paramNum < $endNo)?($paramNum-1):$endNo;
//当instanceNo从1开始时,需要将endNo加1
if($bgnNo == 1){
$endNo++;
}
echo "<font color=\"#008000\">$endNo</font>";
?>
</td>
<td width="15%" title="Set init buffer's parameters to system and write response into read buffer">
<?php
if($operType == 1){ //read only
echo "<input type=\"submit\" value=\"SET\" name=\"setToSys\" DISABLED title=\"Read Only\" style=\"left: 3; top: 2; width: 50; height: 25; position: relative\">";
}else{
echo "<input type=\"submit\" value=\"SET\" name=\"setToSys\" style=\"left: 3; top: 2; width: 50; height: 25; position: relative\"
onclick=\"javascript:document.update.commdType.value='set';\">";
}
?>
</td>
<td width="15%" title="Get parameters from system and write response into read buffer">
<?php
if($operType == 2){//write only
echo "<input type=\"submit\" value=\"GET\" name=\"getFromSys\" DISABLED title=\"Write Only\" style=\"left: 3; top: 2; width: 50; height: 25; position: relative\">";
}else{
echo "<input type=\"submit\" value=\"GET\" name=\"getFromSys\" style=\"left: 3; top: 2; width: 50; height: 25; position: relative\"
onclick=\"javascript:document.update.commdType.value='get';\">";
}
?>
</td>
</tr>
</table>
<br>
<table border="1" width="100%" cellpadding="2" cellspacing="0" bordercolor="#666666" bordercolordark="#FFFFFF" bgcolor="#FFFFFF">
<tr>
<td width="4%" align="center" >No.</td>
<td width="50%" align="center" ><?php echo"$strParameterdDescription";?></td>
<td width="23%" align="center" title="save this init buffer's parameters to database">
<input type="submit" value="Save" name="saveInitValue" onclick="javascript:document.update.commdType.value='save';">
</td>
<td width="23%" align="center" title="copy this read buffer's parameters to init buffer">
<input type="submit" value="Copy" name="read2init" onclick="javascript:document.update.readMoveToInit.value='1';javascript:document.update.commdType.value='copy';" >&nbsp;
<?php
//echo"System";
?>
<input type="hidden" name="readMoveToInit" >
<input type="hidden" name="commdType">
</td>
</tr>
<?php
//************************顺序显示该页每条参数************************
if($maxlength > 8){
$inputSize = $maxlength;
}else{
$inputSize = 8;
}
$objDescArr = explode('+',$objDesc);
$objDescArrSize= sizeof($objDescArr);
while($paramRows = @mysqli_fetch_array($paramResult)){
$initName='initValue_'.$paramRows[instanceNo];
$aliasName = "aliasValue_".$paramRows[instanceNo];
$readName='readValue_'.$paramRows[instanceNo];
echo "\n <tr>";
echo "<td width=\"4%\" > $paramRows[instanceNo] </td> ";
if($objDescArrSize == 4){
$objDescNo =0;
$objDescNo = $objDescArr[1]+$objDescArr[2]*$paramRows[instanceNo];
$objDescTmp ='';
$objDescTmp = $objDescArr[0].$objDescNo.$objDescArr[3];
}else{
$objDescTmp = $objDesc;
}
//echo "aliasName=$aliasName<br>";
echo "<input type=\"hidden\" name=\"$aliasName\" maxlength=\"$maxlength\" size=\"$inputSize\" value=\"$strAlias\">";
if(TRUE == isset($strAlias)){
echo "<td width=\"50%\" >$objDescTmp($strAlias)</td>";
}else{
echo "<td width=\"50%\" >$objDescTmp</td>";
}
echo "<td width=\"23%\" >";
$rows=ceil($inputSize/20);
//echo "<br>rows=$rows";
if($inputSize > 20){
$cols=20;
echo "<textarea rows=\"$rows\" name=\"$initName\" cols=\"$cols\" size=\"$inputSize\" onchange = changevalue(this)>$paramRows[initValue]</textarea>";
echo "<a href=javascript:openSet('$sysTypeNo','$objKeyId','$initName','$aliasName')>set..</a>";
echo "</td>";
echo "<td width=\"23%\"><textarea rows=\"$rows\" name=\"$readName\" cols=\"$cols\" size=\"$inputSize\">$paramRows[readValue]</textarea></td>";
}else{
echo "<input type=\"text\" name=\"$initName\" maxlength=\"$maxlength\" size=\"$inputSize\" value=\"$paramRows[initValue]\" onchange = changevalue(this)>";
echo "<a href=javascript:openSet('$sysTypeNo','$objKeyId','$initName','$aliasName')>set..</a>";
echo "</td>";
echo "<td width=\"23%\">&nbsp;$paramRows[readValue] <input type=\"hidden\" name=\"$readName\" value=\"$paramRows[readValue]\"></td>";
}
echo "</tr>";
}
?>
</table>
<?php
}//end of if
//*****************************************隐藏输入框,用于传递值****************************************
echo "\n<input type=\"hidden\" name=\"maxlength\" value=\"$maxlength\">";
echo "\n<input type=\"hidden\" name=\"isKnot\" value=\"$isKnot\">";
echo "\n<input type=\"hidden\" name=\"sysId\" value=\"$sysId\">";
echo "\n<input type=\"hidden\" name=\"objKeyId\" value=\"$objKeyId\">";
echo "\n<input type=\"hidden\" name=\"bgnNo\" value=\"$bgnNo\">";
echo "\n<input type=\"hidden\" name=\"endNo\" value=\"$endNo\">";
echo "\n<input type=\"hidden\" name=\"objIdStr\" value=\"$objIdStr\">";
echo "\n<input type=\"hidden\" name=\"selectedSysId\" value=\"$selectedSysId\">";
echo "\n<input type=\"hidden\" name=\"selectedDPC\" value=\"$selectedDPC\">";
adjust_content_tail("down");
?>
</form>
</body>
</html>
+17
View File
@@ -0,0 +1,17 @@
<?php
require("../../inc/header.inc");
?>
<frameset framespacing="0" border="0" rows="75,*" frameborder="0">
<frame name="header" scrolling="no" noresize target="d_main" src="paramConf_up.php">
<frame name="d_main" src="paramConf_down.php" scrolling="auto" target="_self">
<noframes>
<body>
<p>your browser can not support frame</p>
</body>
</noframes>
</frameset>
</html>
+208
View File
@@ -0,0 +1,208 @@
<?php
/*********************************************************
程序说明:
功能说明:参数维护的上部页面,
调用关系:调用: header.inc
被调用:
变量说明:
返回值:无
作者:
修改注释:
NO.1
姓名 :
时间:
修改说明:
*********************************************************/
require("../../inc/header.inc");
$helpId = "2_1";
$DEBUG = 0;
$db='OMC_PUB';
$sysConfTable = 'OMC_PUB.sysConf';
?>
<base target="d_main">
<body leftmargin="15" rightmargin="10" onload="javascript:selectSysName();javascript:adjust_frame('up');" onresize="javascript:adjust_frame('up');" style="overflow:hidden;overflow-x:hidden;overflow-y:hidden;">
<script LANGUAGE="JavaScript">
function selectSysType(){
var base_url,url_add,url;
base_url='<?php echo"$PHP_SELF";?>?sysTypeNo=';
url_add=document.selectform.sysTypeList.options[document.selectform.sysTypeList.selectedIndex].value;
url=base_url+url_add;
window.location=url;
}
function selectSysName(){
var baseURL,addURL,URL;
baseURL = 'paramConf_down.php?DPC=0&sysId=';
addURL = document.selectform.sysName.options[document.selectform.sysName.selectedIndex].value;
URL = baseURL+addURL;
window.parent.d_main.location = URL;
}
</script>
<form method="post" name="selectform" id="selectform" action="paramConf_down.php">
<?php
adjust_head_frame("up");
adjust_title_head_frame("up");
echo "<table id=\"table_up\" border=\"0\" width=\"100%\">";
echo "<tr>";
echo "<td width=\"50%\" align=\"left\">";
echo "Advance > Network > Parameter setting";
echo "</td>";
echo "<td width=\"50%\" align=\"right\" title=\"Help\">";
//showHelp($helpId);
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td align=\"left\">";
?>
<TABLE style="position: relative; top:8; left: 0;" border="1" width="600" cellpadding="2" cellspacing="0" bordercolor="#666666" bordercolordark="#FFFFFF" bgcolor="#FFFFFF">
<tr bgcolor="#E6E6E6">
<td align="left"><?php echo "Entity"; ?>:
<select size="1" name="sysTypeList" onChange="javascript:selectSysType()">
<?php
//显示选择设备下拉菜单
$sysTypeSql ="SELECT sysTypeNo,sysTypeName,maxSysNum,maxSubSysNum,needGlobalSysParam,needGlobalSubSysParam,needSubSysParam
FROM $sysConfTable
WHERE needParamConf = '1'
AND sysTypeNo != '320'
AND sysTypeNo != '311'
AND sysTypeNo != '340'
AND sysTypeNo != '380'
AND sysTypeNo != '330'
AND sysTypeNo != '375'
AND sysTypeNo != '355'
AND sysTypeNo != '260'
AND sysTypeNo != '350'
AND sysTypeNo != '325'
AND sysTypeNo != '225'
AND sysTypeNo != '385'
AND sysTypeNo != '390'
AND sysTypeNo != '378'
AND sysTypeNo != '379'
AND sysTypeNo != '386'
AND sysTypeNo != '389'
ORDER BY sysTypeName
";
//AND sysTypeNo != '360'
if($DEBUG) echo "sysTypeSql=$sysTypeSql<br>";
$sysTypeResult = @mysqli_query($pubConn,$sysTypeSql);
$sysTypeRows = @mysqli_fetch_array($sysTypeResult);
if(!isset($sysTypeNo))
//$sysTypeNo=$sysTypeRows[sysTypeNo];
$sysTypeNo=222;
do{
echo "<option value=\"$sysTypeRows[sysTypeNo]\" ";
if($sysTypeRows[sysTypeNo] == $sysTypeNo && isset($sysTypeRows[sysTypeNo])){
echo "selected";
$sysTypeName = $sysTypeRows[sysTypeName];
$maxSysNum = $sysTypeRows[maxSysNum];
$maxSubSysNum= $sysTypeRows[maxSubSysNum];
$needGlobalSysParam = $sysTypeRows[needGlobalSysParam];
$needGlobalSubSysParam = $sysTypeRows[needGlobalSubSysParam];
$needSubSysParam = $sysTypeRows[needSubSysParam];
}
echo ">";
echo "$sysTypeRows[sysTypeName]";
echo "</option>";
}while($sysTypeRows = @mysqli_fetch_array($sysTypeResult));
?>
</select>
</td>
<td align="left"><?php echo "ID"; ?>:
<select name="sysName" size="1" onChange="javascript:selectSysName()">
<?php
if($needGlobalSysParam > 0){
$sysName=$sysTypeName.'_pub';
$sysId =$sysTypeNo.'_99_99';
echo "<option value=\"$sysId\">$sysName</option>";
if ( ('222' == $sysTypeNo) || ('223' == $sysTypeNo) ) { //MTP3 OR SCCP
for($i=0;$i<$maxSysNum;$i++){
if ( (8 == $i) || (11 == $i) ) {//目前只有VMS AAS用到了MTP3 or SCCP参数
for($j=0;$j<$PlatTypeDefArr[$i][maxSysNum];$j++){
$sysName=$sysTypeName.'_'.$i.'_'.$j;
$sysId =$sysTypeNo.'_'.$i.'_'.$j;
if(($sysTypeNo == '222' && $i == 11) || ($sysTypeNo == '223' && ($i == 8 || $i == 11)))
;
else
echo "<option value=\"$sysId\">$sysName({$PlatTypeDefArr[$i][remark]})</option>";
}
}
}
}
}
for($i=0;$i<$maxSysNum;$i++){
if($needGlobalSubSysParam > 0){
$sysName=$sysTypeName.'_'.$i.'_pub';
$sysId =$sysTypeNo.'_'.$i.'_99';
echo "<option value=\"$sysId\">$sysName</option>";
}
if($maxSubSysNum > 0 && $needSubSysParam > 0){
for($j=0;$j<$maxSubSysNum;$j++){
//$j=omc_keep_length($j,0,$len_of_subsys_num);
$sysName=$sysTypeName.'_'.$i.'_'.$j;
$sysId =$sysTypeNo.'_'.$i.'_'.$j;
$sysAlias=omc_get_sysAlias($sysTypeNo,$i,$j);
if($sysAlias != -1){
echo "<option value=\"$sysId\">$sysName [$sysAlias]</option>";
}else{
echo "<option value=\"$sysId\">$sysName</option>";
}
}
}
}
?>
</select>
</td>
<script LANGUAGE="JavaScript">
<!--
function OpenD2H2B(term) {
if(term.checked){
URL="./D2H2B.php";
var D2H2BWindow = open(URL, 'D2H2BWin', 'toolbar=no,directories=no,menubar=no,scrollbars=no,resizable=no,status=no,width=625,height=1,outerWidth=22,outerHeight=33,left=300,top=300');
D2H2BWindow.focus();
}else{
URL="./D2H2B.php";
var D2H2BWindow = open(URL, 'D2H2BWin', 'toolbar=no,directories=no,menubar=no,scrollbars=no,resizable=no,status=no,width=625,height=1,outerWidth=22,outerHeight=33,left=300,top=300');
D2H2BWindow.close();
}
}
-->
</script>
<?php
/* 先屏蔽起来
echo "<td title=\"$strNumericFormatCalculator\">";
echo"&nbsp;&nbsp;<input type=checkbox name=D2H2B onclick=OpenD2H2B(this)>$strOpenCodeCommutator";
echo "<img src=\"../../images/cal.gif\">";
*/
?>
</td>
</tr>
</table>
<?php
echo "</td>";
echo "<td align=\"right\">&nbsp;";
echo "</td>";
echo "</tr>";
echo "</table>";
?>
</form>
</body>
</html>
+624
View File
@@ -0,0 +1,624 @@
<?php
/*********************************************************
程序说明:(和paramEditPreview.php保持一致)
功能说明:本程序实现参数编辑模板代码的产生,保存,预览
调用关系:调用: header.inc
被调用:
变量说明:
返回值:
作者:
修改注释:
NO.1
姓名:
时间:
修改说明:
*********************************************************/
require("../../inc/header.inc");
$DEBUG = 0;
$TEST = ($TEST > 0)?$TEST:0;
//*****
//$url_temp=$_SERVER["REQUEST_URI"];
//echo "This page URL:$url_temp<br>";
//value Type
$nInteger = 2;
$nOctStr = 4;
function omcGetObjDb($sysTypeNo){
$dbName = 'OBJ_'.$sysTypeNo;
return($dbName);
}
function omcGetObjTbl($sysTypeNo,$tableType){
$dbName = 'OBJ_'.$sysTypeNo;
$tableName = $dbName.'.paramConf';
return($tableName);
}
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{
echo "<br>Error in omcStrFill:the defLen < lengh of string!!";
echo "<br>defLen=$defLen and string=$string!!";
exit();
}
}
$sysConfTable = 'OMC_PUB.sysConf';
$sysTypeNo = (isset($sysTypeNo)?$sysTypeNo:0);
$pubDb ='OMC_PUB';
$objDb = omcGetObjDb($sysTypeNo);
$paramConfTable = omcGetObjTbl($sysTypeNo,paramConf);
$maxLevelNum = 10;
if($DEBUG) echo "<br>$paramConfTable<br>";
if($DEBUG) echo "<br>aliasName=$aliasName<br>";
//----------------------
//选择语言版本
if($language == 'eng'){
$objNameField=name_2;
$objSetField=setTemplate_2 ; //语种2
}else{
$objNameField=name_1;
$objSetField=setTemplate_1 ; //语种1(默认语种)
}
//-----------------------
//=======================Get value From submit===================
if($set == 'Set'){
//sort by offset
for($i=1;$i<=$unitNum;$i++){
$tmpDef = ${'unitDef_'.$i};
$tmpValue = ${'unit_'.$i};
if($DEBUG) echo "<br>tmpDef = $tmpDef";
$defArr[$i] = $tmpDef;
$tmpDefArr=explode('-',$tmpDef);
$sortArr[$i] = $tmpDefArr[0];
$valueArr[$i] = $tmpValue;
}
$lastValue = '';
$k = 0;
asort($sortArr);
for(reset($sortArr); $key = key($sortArr); next($sortArr)){
if($DEBUG) echo "<br>sortArr[$key] = {$sortArr[$key]}";
if($DEBUG) echo "<br>unitValue = {$valueArr[$key]}";
$unitValue = $valueArr[$key];
if($DEBUG) echo "<br>defArr[$key] = {$defArr[$key]}";
$unitDefArr = explode('-',$defArr[$key]); //例:0.0-0.7-input -toDec-high-0
if(sizeof($unitDefArr) <= 1){
if($DEBUG) echo "<br>nothing,just a name";
continue;
}
$bgnOffset = $unitDefArr[0];
$endOffset = $unitDefArr[1];
$operType = $unitDefArr[2];
$valueType = $unitDefArr[3];
$fillWay = $unitDefArr[4];
$fillChar = $unitDefArr[5];
$bgnOffsetArr = explode('.',$bgnOffset);
$bgnByte = $bgnOffsetArr[0];
$bgnBit = $bgnOffsetArr[1];
$endOffsetArr = explode('.',$endOffset);
$endByte = $endOffsetArr[0];
$endBit = $endOffsetArr[1];
$byteLen = $endByte - $bgnByte + 1;
$byteValue = '';
if($DEBUG) echo "<br>valueType = $valueType";
switch($valueType){
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 ";
$bitValue = omcStrFill($bitValue,$bitLen,$fillWay,$fillChar);
if($DEBUG) echo "<br>omcStrFill($bitValue,$bitLen,$fillWay,$fillChar)";
if($bgnByte!=$endByte){
if($DEBUG) echo "<br>substr($bitValue,0,1+$endBit)";
$tmpBitValue=substr($bitValue,0,1+$endBit);
$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($DEBUG) echo "<br>$newBitValue.$tmpBitValue";
$newBitValue=$newBitValue.$tmpBitValue;
if($DEBUG) echo "<br>newBitValue=$newBitValue";
}
$bitValue=$newBitValue;
}
$bitValueArr[$k] = $bitValue;
if($DEBUG) echo "<br>bitValueArr[$k] = {$bitValueArr[$k]}";
if($endBit == 7){//发现这个单元结束,并没有跨byte,这时需要组成一个byte值
$bitValue = '';
for($bitNo=0; $bitNo<=$k; $bitNo++){
if($DEBUG) echo "<br>bitValueArr[$bitNo] = {$bitValueArr[$bitNo]}";
$bitValue = $bitValueArr[$bitNo].$bitValue;
}
$k=0;
if($DEBUG) echo "<br>bitValue = $bitValue";
$byteLen = strlen($bitValue) / 8;
if($DEBUG) echo "<br>byteLen = $byteLen";
$byteValue = BinDec($bitValue);
$byteValue = DecHex($byteValue);
$strLen = $byteLen*2;
if($DEBUG) echo "<br>omcStrFill($byteValue,$strLen,$fillWay,$fillChar)";
$byteValue = omcStrFill($byteValue,$strLen,$fillWay,$fillChar);
$newByteValue="";
for($tmp=0;$tmp<strlen($byteValue);$tmp=$tmp+2){
$tmpByteValue=substr($byteValue,$tmp,2);
$newByteValue=$tmpByteValue.$newByteValue;
}
$byteValue=$newByteValue;
}else{//否则,继续组合下一个bit组
$byteValue = '';
$k++;
}
}else{
$byteValue = DecHex($unitValue);
$strLen = $byteLen*2;
$byteValue = omcStrFill($byteValue,$strLen,$fillWay,$fillChar);
if($DEBUG) echo "<br>omcStrFill($byteValue,$strLen,$fillWay,$fillChar)";
}
if($DEBUG) echo "<br>byteValue = $byteValue";
break;
case 'keepDec':
//echo "<br>Error:keepDec";
$byteValue = $unitValue - 0;
break;
case 'toHex':
echo "<br>Error:toHex";
break;
case 'keepHex':
if($bgnBit > 0 || $endBit < 7){//这里的处理不够全面,没有对=7的进行收尾
$byteValue = $unitValue;
$strLen = $byteLen;
$byteValue = omcStrFill($byteValue,$strLen,$fillWay,$fillChar);
$bitValue = DecBin(HexDec($byteValue));
$byteValue='';
$bitLen = $byteLen*8 - $bgnBit - (7 - $endBit) ; //1 BYTE = 8 bit
$bitValue = omcStrFill($bitValue,$bitLen,'high','0');
if($DEBUG) echo "<br>bitValue = $bitValue";
$bitValueArr[$k] = $bitValue;
$k++;
}else{
$k=0;
$byteValue = $unitValue;
$strLen = $byteLen*2;
$byteValue = omcStrFill($byteValue,$strLen,$fillWay,$fillChar);
if($DEBUG) echo "<br>omcStrFill($byteValue,$strLen,$fillWay,$fillChar)";
}
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
$byteValue .= DecHex($decValue);
if(strlen($byteValue) < 2){
$byteValue = '0'.$byteValue;
}
}
$strLen = $byteLen*2;
$byteValue = omcStrFill($byteValue,$strLen,$fillWay,$fillChar);
}
break;
default:
echo "Error:Unknown valueType";
break;
}
if($DEBUG) echo "<br>byteValue = $byteValue ";
//--><-//$lastValue = $byteValue.$lastValue;
$lastValue = $lastValue.$byteValue;
}
if($DEBUG) echo "<br>lastValue = $lastValue ";
$setValue = $lastValue;
if($TEST != 1){
//set back to input field
echo "setValue=$setValue<br>";
echo "<script LANGUAGE=\"JavaScript\">";
echo "\n var setValue='$setValue'; ";
echo "\n var aliasValue='$strAlias'; ";
echo "\n window.opener.document.update.$inputName.value=setValue.toUpperCase();";
// echo "\n window.opener.document.update.$aliasName.value=aliasValue;";
echo "\n window.opener.document.update.$inputName.style.color=\"BLUE\";";
if($DEBUG) exit();
echo "\n window.opener.document.update.$inputName.focus();";
echo "\n window.close();";
echo "\n </script>";
}else{
$setValue = strtoupper($setValue);
}
}//end of if($set == 1)
//=======================Show GUI ========================
?>
<body>
<script LANGUAGE="JavaScript">
function checkInt(term){
var checkOK = "0123456789";
var checkStr = term.value;
var allValid = true;
var termName = term.name;
var minValue = eval("document.confForm."+termName+"_min.value");
var maxValue = eval("document.confForm."+termName+"_max.value");
var oldValue = eval("document.confForm."+termName+"_old.value");
//alert(minValue+'<'+term.value+'<'+maxValue);
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 (!allValid){
var errAlert="parameter Must be a dec number!";
alert(errAlert);
term.value=oldValue;
term.focus();
return (false);
}
if((minValue - term.value) > 0){
var errAlert="Too little!";
alert(errAlert);
term.value=oldValue;
term.focus();
return (false);
}
if((term.value - maxValue) > 0){
var errAlert="Too Big!";
alert(errAlert);
term.value=oldValue;
term.focus();
return (false);
}
}
</script>
<form method="POST" name="confForm" action="<?php echo"$PHP_SELF";?>" >
<?php
if($DEBUG) echo "<br>setValue = $setValue ,inputName = $inputName";
if($keyId > 0){
$objSql = "SELECT $objNameField,$objSetField,valueType,length,minValue,maxValue FROM $paramConfTable WHERE keyId = '$keyId'";
$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];
}else{
echo "<font><b>ERROR!!:keyId == NULL</b></font>";
exit();
}
/**************************************
*objName
*[unit]name[u]xx.xx-yy.yy[u]input[v]toDec-fillHigh-fillChar
*[unit]name[u]xx.xx-yy.yy[u]select[v]value1[opt]desc1[v]value2[opt]desc2
*[remark]
***************************************/
//explode by '[remark]'
$remarkArr = explode('[remark]',$setTemplate);
$remark = $remarkArr[1];
//explode by '[unit]'
$unitArr = explode('[unit]',$remarkArr[0]);
//show instance's name
echo "<b>{$unitArr[0]}</b><br><br>";
if($DEBUG) echo "<br>$unitArr[1]";
//show every one unit
//--><-//$setValue = strrev($setValue);
if($DEBUG){
echo "<table border=\"1\" cellpadding=\"0\" cellspacing=\"2\" width=\"100%\">";
}else{
echo "<table border=\"0\" cellpadding=\"0\" cellspacing=\"2\" width=\"100%\">";
}
for($i=1;$i<sizeof($unitArr);$i++){
echo "\n <tr><td width=\"10%\" valign=middle><nobr>";
//unit input name
$unitName = "unit_".$i;
//explode by '[u]'
$tlvArr = explode('[u]',$unitArr[$i]);
if(sizeof($tlvArr) <= 1 ){
echo "<u><b>{$unitArr[$i]}</b></u>";
continue;
}
//show Unit Name
echo "$tlvArr[0]";
echo "&nbsp;</nobr></td><td>";
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);
//--><-//$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]);
$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($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++;
}
$inputValue = $charValue;
$inputValue = trim($inputValue);//add by oven 2006-8-2 remvove dirty in Mozilla.
}
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 if($defArr[0] == 'toAscii'){
for($ii=0;$ii<strlen($inputValue);$ii++){
if($inputValue[$ii]=='0')
$inputValue[$ii]='';
else
break;
}
}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;
default: break;
}
}
break;
default: break;
}
if($DEBUG) echo "<br>$valueType == $nOctStr";
if($valueType == $nOctStr){
if($defArr[0] == 'toAscii'){
$inputLen = $byteLen;
}elseif($defArr[0] == 'toHex' || $defArr[0] == 'keepHex'){
$inputLen = $byteLen *2;
}else{
$inputLen = $byteLen *3;
}
echo "<input type=\"text\" size=\"$inputLen\" maxLength =\"$inputLen\" name=\"$unitName\" value=\"$inputValue\" class=\"text\">";
}else{
echo "<input type=\"text\" size=\"8\" name=\"$unitName\" value=\"$inputValue\" onchange=\"checkInt(this)\" class=\"text\">";
echo "<input type=\"hidden\" name=\"$unitName"."_min\" value=\"$minValue\">";
echo "<input type=\"hidden\" name=\"$unitName"."_max\" value=\"$maxValue\">";
echo "<input type=\"hidden\" name=\"$unitName"."_old\" value=\"$inputValue\">";
}
break;
case 'select':
if($valueType == $nOctStr){
if($bitValue != ''){
$selectValue = BinDec($bitValue);
}else{
$selectValue = HexDec($byteValue);
}
}else{
$selectValue=$byteValue;
}
if($DEBUG) echo "<br>bitValue = $bitValue";
if($DEBUG) echo "<br>selectValue = $selectValue";
if($DEBUG) echo "<br>$valueType =?= $nOctStr(nOctStr)";
echo "<select size=\"1\" name=\"$unitName\">";
$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>";
break;
}else if($defArr[0] == $selectValue){
echo "<option value=\"$defArr[0]\" selected>$defArr[1]</option>";
$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>";
}
echo "</select>";
break;
default: echo "<br>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);
echo "\n <input type=\"hidden\" name=\"unitDef_$i\" value=\"$tempDef\">";
echo "</td></tr>";
}//end of for(..)
//parmmeter alias
/*
echo "<td>";
echo "Alais:";
echo "<input type=text size=20 name=\"strAlias\" value=\"$strAlias\" class=text>";
echo "</td>";
*/
echo "</table>";
$remark=nl2br($remark);
echo "<br><b>Remarks:</b><br>$remark<br><br>";
$unitNum = $i-1;
echo "\n<input type=\"hidden\" name=\"unitNum\" value=\"$unitNum\">";
echo "\n<input type=\"hidden\" name=\"inputName\" value=\"$inputName\">";
echo "\n<input type=\"hidden\" name=\"keyId\" value=\"$keyId\">";
echo "\n<input type=\"hidden\" name=\"sysTypeNo\" value=\"$sysTypeNo\">";
echo "\n<input type=\"hidden\" name=\"setValue\" value=\"$setValue\">";
echo "\n<input type=\"hidden\" name=\"TEST\" value=\"$TEST\">";
//echo "\n<input type=\"hidden\" name=\"strAlias\" value=\"$strAlias\">";
echo "\n<input type=\"submit\" name=\"set\" value = \"Set\">";
echo "\n<input type=\"reset\" name=\"Reset\" value =\"Reset\">";
echo "</Form>";
//=======================Test input field========================
if($TEST){
echo "<Form method=\"POST\" name=\"testForm\" action=\"$PHP_SELF\">";
echo "<hr>";
//--><--// $setValue = strrev($setValue);
echo "<u><b>Test Area</b></u><br>";
echo "Test Value:&nbsp;&nbsp;&nbsp;<input type=\"text\" name=\"setValue\" value=\"$setValue\">";
echo "<input type=\"submit\" name=\"setTest\" value=\"set..\">";
echo "\n<input type=\"hidden\" name=\"sysTypeNo\" value=\"$sysTypeNo\">";
echo "\n<input type=\"hidden\" name=\"keyId\" value=\"$keyId\">";
echo "\n<input type=\"hidden\" name=\"inputName\" value=\"$inputName\">";
echo "\n<input type=\"hidden\" name=\"TEST\" value=\"$TEST\">";
echo "</Form>";
}
?>
</body>
</html>