375 lines
12 KiB
Plaintext
Raw Normal View History

2025-07-04 11:59:16 +08:00

var g_activeTab = "border-top:1.5px solid #acacac; border-left:1.5px solid #acacac; border-bottom:0 solid #f5f5f5; border-right:1.5px solid #acacac; text-align:center; background-color:rgb(245,245,245);";
var g_inActiveTab = "border-top:1.5px solid #acacac; border-bottom:1.5px solid #acacac; border-right:2.5px solid qlineargradient(spread:repeat, x1:1, y1:0.5, x2:0, y2:0.5, stop:0.75 #acacac, stop:0.76 #ffffff); text-align:center; background-color:rgb(210,210,210);";
var CH_HMI_TO_OPT_OPTCMD_DOWN = 30;
var CH_OPT_TO_HMI_OPTCMD_UP = 31;
var MT_OPT_CTRL_UP_REQUEST_REPLY = 50 /*遥控请求应答*/
var MT_OPT_CTRL_UP_SELECT_REPLY = 51 /*遥控选择返校*/
var MT_OPT_CTRL_UP_EXECUTE_REPLY = 52 /*遥控执行返校*/
var MT_OPT_CTRL_UP_CANCEL_REPLY = 53 /*遥控取消返校*/
var MT_OPT_CTRL_UP_GUARD_REPLY = 54 /*HMI->OPT->HMI 监护返回报文*/
/*控制类型*/
var MT_OPT_CTRL_DOWN_REQUEST = 40; /*遥控请求*/
var MT_OPT_CTRL_DOWN_SELECT = 41; /*遥控预置*/
var MT_OPT_CTRL_DOWN_EXECUTE = 42; /*遥控执行*/
var MT_OPT_CTRL_DOWN_CANCEL = 43; /*遥控取消*/
var MT_OPT_CTRL_DOWN_CLOSE = 44; /*关闭或切换遥控对话框*/
var MT_OPT_CTRL_DOWN_GUARD = 45; /*遥控监护*/
var MT_OPT_AUTO_CTRL_DOWN = 30; /*自动控制 复归 投退*/
var MT_OPT_AUTO_CTRL_UP = 31;
var MT_OPT_INTERN_HANDOVER = 32;
var MT_OPT_INTERN_HANDOVER_UP = 33;
var MT_OPT_TOKEN_SET = 20;
var MT_OPT_TOKEN_DELETE = 21;
var MT_OPT_TOKEN_MOVE = 22;
var MT_OPT_TOKEN_MODIFY = 23;
var MT_OPT_TOKEN_SYNC = 24; /*挂牌同步*/
var MT_OPT_AI_LIMIT_SET_DOWN = 1;
var MT_OPT_AI_LIMIT_SET_UP = 2;
var MT_OPT_SET_DATA = 3;
var MT_OPT_PINHIBIT_REF = 4;
var MT_OPT_PINHIBIT_ALARM = 5;
var MT_OPT_PINHIBIT_CTRL = 6;
var MT_OPT_TAG_VALUE_SET = 7;
var MT_OPT_TAG_STATUS_SET = 8;
var MT_OPT_SHIELD_SET_DOWN = 9;
/*遥控面板操作阶段标志*/
var CTRL_ANSWER_FLAG = 0;
var CTRL_SELECT_FLAG = 1;
var CTRL_SELECT_REPLY_FLAG = 2;
var CTRL_EXECUTE_FLAG = 3;
var CTRL_EXECUTE_REPLY_FLAG = 4;
var CTRL_CANCEL_REPLY_FLAG = 5;
var TOKEN_REPLY_FLAG = 6;
var CTRL_GUARD_FLAG = 7;
var CTRL_GUARD_REPLY_FLAG = 8;
var TOKEN_CTRL_REPLY_FLAG = 9;
var CTRL_REANSWER_FLAG = 10;
var CTRL_CANCEL_FLAG = 11;
var CTRL_RESET_FLAG = 12;
var CTRL_RESET_REPLY_FLAG = 13;
var HAND_TO_LOC = 0;
var HAND_TO_OCC = 1;
var HAND_OCC_ACCEPT = 2;
var HAND_LOC_ACCEPT = 3;
var HAND_OCC_FORCE = 4;
var HAND_LOC_FORCE = 5;
var HAND_OCC_REJECT = 6;
var HAND_LOC_REJECT = 7;
var HAND_ON_OCC = 0;
var HAND_ON_OCC_LOC = 1;
var HAND_ON_LOC = 2;
var HAND_ON_LOC_OOC = 3;
var PERM_HMI_TYPE = 1; //<权限类型:画面
var PERM_REPORT_TYPE = 2; //<权限类型:报表
var PERM_NOM_FUNC_ID = 3; //<权限类型普通功能ID
var PERM_NOM_FUNC_DEF = 4; //<权限类型:普通功能宏定义
var PERM_SPE_FUNC_ID = 5; //<权限类型特殊功能ID
var PERM_SPE_FUNC_DEF = 6; //<权限类型:特殊功能宏定义
var PERM_DB_TABLE = 7; //<权限类型:数据库表
var PERM_DEPT = 8; //<权限类型:部门
// 发送遥控命令
function sendCtrlCmd(ctrlInfo)
{
if(ctrlInfo.length < 15)
{
showMessageDialog("sendCtrlCmd() ctrlInfo Error! ctrlInfo:" + ctrlInfo);
return 0;
}
var curDate = new Date();
var curTime = getLocalMsec();
var logStr = ctrlInfo[14];
var appId = parseInt(ctrlInfo[2]);
var ctrlDownInfo = {};
ctrlDownInfo.strSrcTag = logStr;
ctrlDownInfo.nSrcDomainID = parseInt(ctrlInfo[0]);
ctrlDownInfo.nDstDomainID = parseInt(ctrlInfo[1]);
ctrlDownInfo.nAppID = parseInt(ctrlInfo[2]);
ctrlDownInfo.strHostName = ctrlInfo[3];
ctrlDownInfo.strInstName = ctrlInfo[4];
ctrlDownInfo.strCommName = ctrlInfo[4];
ctrlDownInfo.nUserID = parseInt(ctrlInfo[5]);
ctrlDownInfo.nUserGroupID = parseInt(ctrlInfo[6]);
ctrlDownInfo.nOptTime = parseInt(curTime);
var ctrlReqQueue = [];
var ctrlReq = {};
var retCode = 1;
var ctrlType = parseInt(ctrlInfo[13]);
switch (ctrlType)
{
case MT_OPT_CTRL_DOWN_REQUEST: // 遥控请求
//showMessageDialog("requst");
ctrlReq.nCtrlType = 1;
ctrlReq.strKeyIdTag = ctrlInfo[7];
ctrlReq.nCtrlActType = ctrlInfo[8];
ctrlReq.strCtrlActName = ctrlInfo[9];
ctrlReq.fTargetValue = String(ctrlInfo[10]);
ctrlReq.strOffsetNo = String(ctrlInfo[11]);
ctrlReq.bCheckInterLock = 1;
ctrlReq.bIsDeviceOccupy = 1;
ctrlReqQueue[0] = ctrlReq;
ctrlDownInfo.OPT_DOWN_INFO = ctrlReqQueue;
var str = JSON.stringify(ctrlDownInfo);
retCode = SDAO.sendMessage(appId, CH_HMI_TO_OPT_OPTCMD_DOWN, ctrlType, str, ctrlInfo[1]);
//showMessageDialog(str, retCode);
break;
case MT_OPT_CTRL_DOWN_SELECT: // 遥控选择
//showMessageDialog("select");
ctrlReq.nCtrlType = 1;
ctrlReq.strKeyIdTag = ctrlInfo[7];
ctrlReq.nCtrlActType = parseInt(ctrlInfo[8]);
ctrlReq.strCtrlActName = ctrlInfo[9];
ctrlReq.fTargetValue = String(ctrlInfo[10]);
ctrlReq.strOffsetNo = String(ctrlInfo[11]);
ctrlReq.bIsDeviceOccupy = 0;
ctrlReqQueue[0] = ctrlReq;
ctrlDownInfo.OPT_DOWN_INFO = ctrlReqQueue;
var str = JSON.stringify(ctrlDownInfo);
retCode = SDAO.sendMessage(appId, CH_HMI_TO_OPT_OPTCMD_DOWN, ctrlType, str, ctrlInfo[1]);
//showMessageDialog(str, retCode);
break;
case MT_OPT_CTRL_DOWN_EXECUTE: // 遥控执行
//showMessageDialog("execute");
ctrlReq.nCtrlType = 1;
ctrlReq.strKeyIdTag = ctrlInfo[7];
ctrlReq.nCtrlActType = parseInt(ctrlInfo[8]);
ctrlReq.strCtrlActName = ctrlInfo[9];
ctrlReq.fTargetValue = String(ctrlInfo[10]);
ctrlReq.strOffsetNo = String(ctrlInfo[11]);
ctrlReq.bIsDeviceOccupy = 0;
ctrlReqQueue[0] = ctrlReq;
ctrlDownInfo.OPT_DOWN_INFO = ctrlReqQueue;
var str = JSON.stringify(ctrlDownInfo);
retCode = SDAO.sendMessage(appId, CH_HMI_TO_OPT_OPTCMD_DOWN, ctrlType, str, ctrlInfo[1]);
//showMessageDialog(str, retCode);
break;
case MT_OPT_CTRL_DOWN_CANCEL: // 遥控取消
//showMessageDialog("cancel");
ctrlReq.nCtrlType = 1;
ctrlReq.strKeyIdTag = ctrlInfo[7];
ctrlReq.nCtrlActType = parseInt(ctrlInfo[8]);
ctrlReq.strCtrlActName = ctrlInfo[9];
ctrlReq.fTargetValue = String(ctrlInfo[10]);
ctrlReq.strOffsetNo = String(ctrlInfo[11]);
ctrlReq.bIsDeviceOccupy = 0;
ctrlReqQueue[0] = ctrlReq;
ctrlDownInfo.OPT_DOWN_INFO = ctrlReqQueue;
var str = JSON.stringify(ctrlDownInfo);
retCode = SDAO.sendMessage(appId, CH_HMI_TO_OPT_OPTCMD_DOWN, ctrlType, str, ctrlInfo[1]);
//showMessageDialog(str, retCode);
break;
case MT_OPT_CTRL_DOWN_CLOSE: // 关闭/切换遥控对话框
//showMessageDialog("close");
ctrlReq.nCtrlType = 1;
ctrlReq.strKeyIdTag = ctrlInfo[7];
ctrlReq.nCtrlActType = parseInt(ctrlInfo[8]);
ctrlReq.strCtrlActName = ctrlInfo[9];
ctrlReq.fTargetValue = String(ctrlInfo[10]);
ctrlReq.strOffsetNo = String(ctrlInfo[11]);
ctrlReq.bIsDeviceOccupy = 0;
ctrlReqQueue[0] = ctrlReq;
ctrlDownInfo.OPT_DOWN_INFO = ctrlReqQueue;
var str = JSON.stringify(ctrlDownInfo);
retCode = SDAO.sendMessage(appId, CH_HMI_TO_OPT_OPTCMD_DOWN, ctrlType, str, ctrlInfo[1]);
//showMessageDialog(str, retCode);
break;
case MT_OPT_AUTO_CTRL_DOWN: //自动控制
//showMessageDialog("auto ctrl");
ctrlReq.nCtrlType = 1;
ctrlReq.strKeyIdTag = ctrlInfo[7];
ctrlReq.nCtrlActType = parseInt(ctrlInfo[8]);
ctrlReq.strCtrlActName = ctrlInfo[9];
ctrlReq.fTargetValue = String(ctrlInfo[10]);
ctrlReq.strOffsetNo = String(ctrlInfo[11]);
ctrlReq.bIsDeviceOccupy = 0;
ctrlReq.bCheckInterLock = 1;
ctrlReqQueue[0] = ctrlReq;
ctrlDownInfo.OPT_DOWN_INFO = ctrlReqQueue;
var str = JSON.stringify(ctrlDownInfo);
retCode = SDAO.sendMessage(appId, CH_HMI_TO_OPT_OPTCMD_DOWN, ctrlType, str, ctrlInfo[1]);
//showMessageDialog(str, retCode);
break;
case MT_OPT_CTRL_DOWN_GUARD: // 监护
ctrlReq.strKeyIdTag = ctrlInfo[7];
ctrlReq.strCtrlActName = ctrlInfo[9];
ctrlReq.fTargetValue = String(ctrlInfo[10]);
ctrlReq.isAllow = parseInt(ctrlInfo[12]);
ctrlReqQueue[0] = ctrlReq;
ctrlDownInfo.OPT_DOWN_INFO = ctrlReqQueue;
var str = JSON.stringify(ctrlDownInfo);
retCode = SDAO.sendMessage(appId, CH_HMI_TO_OPT_OPTCMD_DOWN, ctrlType, str, ctrlInfo[1]);
break;
default:
break;
}
return retCode;
}
function sendTokenCtrl(ctrlInfo)
{
if(ctrlInfo.length < 15)
{
showMessageDialog("sendTokenCtrl() ctrlInfo Error!");
return 0;
}
var curDate = new Date();
var curTime = getLocalMsec();//curDate.getTime();
var logStr = ctrlInfo[14];
var appId = parseInt(ctrlInfo[2]);
var ctrlTokenInfo = {};
ctrlTokenInfo.strSrcTag = logStr;
ctrlTokenInfo.nSrcDomainID = parseInt(ctrlInfo[0]);
ctrlTokenInfo.nDstDomainID = parseInt(ctrlInfo[1]);
ctrlTokenInfo.nAppID = parseInt(ctrlInfo[2]);
ctrlTokenInfo.strHostName = ctrlInfo[3];
ctrlTokenInfo.strInstName = ctrlInfo[4];
ctrlTokenInfo.strCommName = ctrlInfo[4];
ctrlTokenInfo.nUserID = parseInt(ctrlInfo[5]);
ctrlTokenInfo.nUserGroupID = parseInt(ctrlInfo[6]);
ctrlTokenInfo.nOptTime = parseInt(curTime);
var ctrlTokenQueue = [];
var ctrlToken = {};
ctrlToken.strKeyIdTag = ctrlInfo[7];
ctrlToken.nTokenId = parseInt(ctrlInfo[8]);
ctrlToken.nTokenPosX = parseInt(ctrlInfo[9]);
ctrlToken.nTokenPosY = parseInt(ctrlInfo[10]);
ctrlToken.nIsDisplay = 1;
ctrlToken.strNote = ctrlInfo[12];
ctrlToken.nLocationId = parseInt(ctrlInfo[11]);
ctrlToken.nSubSystem = parseInt(ctrlInfo[2]);
ctrlTokenQueue[0] = ctrlToken;
ctrlTokenInfo.OPT_DOWN_INFO = ctrlTokenQueue;
var str = JSON.stringify(ctrlTokenInfo);
var tokenType = parseInt(ctrlInfo[13]);
var retCode = SDAO.sendMessage(appId, CH_HMI_TO_OPT_OPTCMD_DOWN, tokenType, str, ctrlInfo[1]);
//showMessageDialog(str, retCode);
return retCode;
}
function checkCtrlPerm(locationId, regionId)
{
var result = [];
//遥控、挂牌、点标签
var permSpecSet = [];
var permCtrl = [];
var permToken = [];
var prermTag = [];
var permRet;
permCtrl[0] = "FUNC_SPE_OPT_CTRL";
permCtrl[1] = regionId;
permCtrl[2] = locationId;
permToken[0] = "FUNC_SPE_OPT_TOKEN";
permToken[1] = regionId;
permToken[2] = locationId;
prermTag[0] = "FUNC_SPE_OPT_OVERRIDE";
prermTag[1] = regionId;
prermTag[2] = locationId;
permSpecSet[0] = permCtrl.join(",");
permSpecSet[1] = permToken.join(",");
permSpecSet[2] = prermTag.join(",");
permRet = SDAO.getPerm(PERM_SPE_FUNC_DEF, permSpecSet);
if (permRet[0] != 3)
{
result[0] = -1;
return result;
}
result[0] = permRet[0];
result[1] = permRet[1];
result[2] = permRet[2];
result[3] = permRet[3];
return result;
}
function checkNomPerm(macro)
{
var result = [];
var permNomSet = [];
var permRet;
permNomSet[0] = macro;
permRet = SDAO.getPerm(PERM_NOM_FUNC_DEF, permNomSet);
if(permRet[0] != 1)
{
result[0] = -1;
return result;
}
result[0] = permRet[0];
result[1] = permRet[1];
return result;
}
function checkPicPerm(glx)
{
var result;
var permPic = [];
permPic[0] = glx;
var permRet;
permRet = SDAO.getPerm(PERM_HMI_TYPE, permPic);
if (permRet[0] != 1)
{
result = 0;
}
result = permRet[1];
return result;
}
function checkReceiveMsg(va1, va2, num)
{
for(var i = 0; i < num; i ++)
{
if(va1[i] != va2[i])
return false;
}
return true;
}
function getCommonUpInfo(answerInfo)
{
var result = [];
var jsonobj = JSON.parse(answerInfo);
result[0] = jsonobj.strHostName;
result[1] = jsonobj.strKeyIdTag;
return result;
}