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

375 lines
12 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;
}