You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
271 lines
7.1 KiB
271 lines
7.1 KiB
|
2 years ago
|
/************ 常量配置项*****************/
|
||
|
|
var MAXMEMBERS = 6; // 对讲组成员上限, 最多支持12个
|
||
|
|
var PTTLINE = MAXMEMBERS; // 对讲组线路
|
||
|
|
var DEVMODE = true; //调试模式
|
||
|
|
|
||
|
|
/************ 全局变量 *****************/
|
||
|
|
var currentGroupG = {}; // 当前对讲组对象
|
||
|
|
var isLoginG = false; // 是否登录
|
||
|
|
|
||
|
|
// 初始化线路状态
|
||
|
|
if (MAXMEMBERS > 12) {
|
||
|
|
alert('对讲组成员上限最多支持12个');
|
||
|
|
}
|
||
|
|
var lineArr = [];
|
||
|
|
for (var i = 0; i < MAXMEMBERS; i++) {
|
||
|
|
lineArr[i] = {policeid: '', policename: ''};
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 给警员分配线路号
|
||
|
|
* @returns {Number}, 线路号,失败返回-1
|
||
|
|
*/
|
||
|
|
function assignPoliceLine(policeid) {
|
||
|
|
//如果当前警员正在占用一条线路,返回该线路
|
||
|
|
var linenum = getPoliceLineNum(policeid);
|
||
|
|
if (linenum != -1) {
|
||
|
|
return linenum;
|
||
|
|
}
|
||
|
|
//否则返回一条空线路
|
||
|
|
for (var i = 0; i < MAXMEMBERS; i++) {
|
||
|
|
var a = IPDispatcherCtrl.GetLineState(i);
|
||
|
|
if (a == 0 && lineArr[i].policeid == '') {
|
||
|
|
return i;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return -1;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**获取警员占用的线路号,没有返回-1*/
|
||
|
|
function getPoliceLineNum(policeid) {
|
||
|
|
for (var i = 0; i < MAXMEMBERS; i++) {
|
||
|
|
if (lineArr[i].policeid == policeid) {
|
||
|
|
return i;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return -1;
|
||
|
|
}
|
||
|
|
|
||
|
|
function isOpen() {
|
||
|
|
return true;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 获取url参数
|
||
|
|
*/
|
||
|
|
function GetUrlParam(paraName) {
|
||
|
|
var url = window.document.location.href.toString();
|
||
|
|
var arrObj = url.split("?");
|
||
|
|
if (arrObj.length > 1) {
|
||
|
|
var arrPara = arrObj[1].split("&");
|
||
|
|
var arr;
|
||
|
|
for (var i = 0; i < arrPara.length; i++) {
|
||
|
|
arr = arrPara[i].split("=");
|
||
|
|
if (arr != null && arr[0] == paraName) {
|
||
|
|
return arr[1];
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return "";
|
||
|
|
} else {
|
||
|
|
return "";
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 页面初始化方法
|
||
|
|
*/
|
||
|
|
function initMDSParam() {
|
||
|
|
closeIPDispatcher();
|
||
|
|
initVideoCtrl();
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 初始化调度台
|
||
|
|
*/
|
||
|
|
function initVideoCtrl() {
|
||
|
|
// for test start
|
||
|
|
try {
|
||
|
|
IPDispatcherCtrl.strName = '1005';
|
||
|
|
IPDispatcherCtrl.strPassword = '1005';
|
||
|
|
IPDispatcherCtrl.strServer = '119.167.113.90';
|
||
|
|
IPDispatcherCtrl.strLocal = '10.16.5.22';
|
||
|
|
IPDispatcherCtrl.strLicense = '49425E54DE5743AEA6750B28E7A70202';
|
||
|
|
var bresult = IPDispatcherCtrl.IsInitialize();
|
||
|
|
IPDispatcherCtrl.Initialize();
|
||
|
|
bresult = IPDispatcherCtrl.IsInitialize();
|
||
|
|
if (bresult == 0) {
|
||
|
|
alert("调度台没有初始化!");
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
IPDispatcherCtrl.Logout();
|
||
|
|
var ret = IPDispatcherCtrl.Login(10);
|
||
|
|
}
|
||
|
|
catch (e) {
|
||
|
|
alert('服务异常!');
|
||
|
|
}
|
||
|
|
// for test end
|
||
|
|
// var url = "/HiatmpPro/scs/mds/initMdsConf";
|
||
|
|
// $.ajax({
|
||
|
|
// url: url,
|
||
|
|
// type: 'get',
|
||
|
|
// dataType: 'json',
|
||
|
|
// cache: false,
|
||
|
|
// success: function (data) {
|
||
|
|
// if (data.result == false) {
|
||
|
|
// alert("初始化调度台失败!");
|
||
|
|
// } else {
|
||
|
|
// var result = data.params;
|
||
|
|
// if (result == null || typeof (result) == "undefined") {
|
||
|
|
// alert("初始化调度台失败!");
|
||
|
|
// return;
|
||
|
|
// }
|
||
|
|
// try {
|
||
|
|
// IPDispatcherCtrl.strName = result.username;
|
||
|
|
// IPDispatcherCtrl.strPassword = result.password;
|
||
|
|
// IPDispatcherCtrl.strServer = result.serverip;
|
||
|
|
// IPDispatcherCtrl.strLocal = result.localip;
|
||
|
|
// IPDispatcherCtrl.strLicense = result.license;
|
||
|
|
// var bresult = IPDispatcherCtrl.IsInitialize();
|
||
|
|
// IPDispatcherCtrl.Initialize();
|
||
|
|
// bresult = IPDispatcherCtrl.IsInitialize();
|
||
|
|
// var timeout = 0;
|
||
|
|
// if (bresult == 0) {
|
||
|
|
// alert("调度台没有初始化!");
|
||
|
|
// return;
|
||
|
|
// }
|
||
|
|
// IPDispatcherCtrl.Logout();
|
||
|
|
// var ret = IPDispatcherCtrl.Login(10);
|
||
|
|
// }
|
||
|
|
// catch (e) {
|
||
|
|
// alert('服务异常!');
|
||
|
|
// }
|
||
|
|
// }
|
||
|
|
// }
|
||
|
|
// });
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 注销调度台控件
|
||
|
|
*/
|
||
|
|
function closeIPDispatcher() {
|
||
|
|
var voiceCtrl = document.getElementById("IPDispatcherCtrl");
|
||
|
|
if (null == voiceCtrl || "undefined" == voiceCtrl) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
var isInit = IPDispatcherCtrl.IsInitialize();
|
||
|
|
var isLog = IPDispatcherCtrl.IsLogin();
|
||
|
|
if (isInit == 1 && isLog == 1)//登录
|
||
|
|
{
|
||
|
|
IPDispatcherCtrl.Logout();
|
||
|
|
}
|
||
|
|
IPDispatcherCtrl.OnCloseIPDispatcher();
|
||
|
|
IPDispatcherCtrl.DestroyInstance();
|
||
|
|
var isInit = IPDispatcherCtrl.IsInitialize();
|
||
|
|
if (isInit == 1) {
|
||
|
|
IPDispatcherCtrl.OnCloseIPDispatcher();
|
||
|
|
setCtrlUnUsed();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
/**解散对讲组*/
|
||
|
|
function destoryCustomPttGroup() {
|
||
|
|
IPDispatcherCtrl.DestoryCustomPttGroup(currentGroupG.GroupNum, currentGroupG.GroupCreatorName);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**创建对讲组*/
|
||
|
|
function createCustomPttGroup() {
|
||
|
|
IPDispatcherCtrl.SetPhoneCurrentLine(PTTLINE);
|
||
|
|
var carno = GetUrlParam('carno');
|
||
|
|
var policename = decodeURIComponent(GetUrlParam('policename'));
|
||
|
|
var groupname = carno ? carno + '布控' : '缉查布控' + new Date().getTime();
|
||
|
|
var policeid = GetUrlParam('policeid');
|
||
|
|
var bstrMembersList = '1:' + IPDispatcherCtrl.strName + ',';
|
||
|
|
// if (policeid) {
|
||
|
|
// bstrMembersList += policeid + ',';
|
||
|
|
// }
|
||
|
|
IPDispatcherCtrl.CreateCustomPttGroup(groupname, '20,120,120,2,5,1800,', bstrMembersList);
|
||
|
|
if (policeid) {
|
||
|
|
setTimeout(function () {
|
||
|
|
addMember(policeid, policename);
|
||
|
|
}, 1000);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
function pttSwitch() {
|
||
|
|
var current = $('#pttbtn').html();
|
||
|
|
if (current == '释放话权') {
|
||
|
|
pttFree();
|
||
|
|
$('#pttbtn').html('请求话权');
|
||
|
|
} else {
|
||
|
|
pttSnatch();
|
||
|
|
$('#pttbtn').html('释放话权');
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 对讲抢话
|
||
|
|
*/
|
||
|
|
function pttSnatch() {
|
||
|
|
IPDispatcherCtrl.PttSnatch(PTTLINE);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**释放话权*/
|
||
|
|
function pttFree() {
|
||
|
|
IPDispatcherCtrl.PttFree(PTTLINE);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**添加对讲组成员*/
|
||
|
|
function addMember(policeid, policename) {
|
||
|
|
IPDispatcherCtrl.AddCustomPttGroupMember(currentGroupG.GroupNum, currentGroupG.GroupName, '1:' + policeid + ',');
|
||
|
|
setTimeout(function () {
|
||
|
|
var linenum = videoMonitor(policeid, policename);
|
||
|
|
if (linenum != -1) {
|
||
|
|
lineArr[linenum].policeid = policeid;
|
||
|
|
lineArr[linenum].policename = policename;
|
||
|
|
$('#card' + linenum + ' > .cardText').html('警号:' + policeid + '<br/> 姓名:' + policename);
|
||
|
|
$('#card' + linenum + ' > .cardVideo').css('display', 'block');
|
||
|
|
}
|
||
|
|
}, 1500);
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
/**删除对讲组成员*/
|
||
|
|
function delMember(policeid) {
|
||
|
|
IPDispatcherCtrl.DelCustomPttGroupMember(currentGroupG.GroupNum, currentGroupG.GroupName, '1:' + policeid + ',');
|
||
|
|
var linenum = getPoliceLineNum(policeid);
|
||
|
|
if (linenum != -1) {
|
||
|
|
lineArr[linenum].policeid = '';
|
||
|
|
lineArr[linenum].policename = '';
|
||
|
|
$('#card' + linenum + ' > .cardText').html('');
|
||
|
|
$('#card' + linenum + ' > .cardVideo').css('display', 'none');
|
||
|
|
}
|
||
|
|
videoHangup(policeid);
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
/**视频监控*/
|
||
|
|
function videoMonitor(policeid, policename) {
|
||
|
|
var linenum = assignPoliceLine(policeid, policename);
|
||
|
|
if (linenum == -1) {
|
||
|
|
alert('没有空余线路!');
|
||
|
|
} else {
|
||
|
|
IPDispatcherCtrl.VideoMonitor(linenum, policeid);
|
||
|
|
}
|
||
|
|
return linenum;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**视频挂断*/
|
||
|
|
function videoHangup(policeid) {
|
||
|
|
var linenum = getPoliceLineNum(policeid);
|
||
|
|
if (linenum != -1) {
|
||
|
|
IPDispatcherCtrl.HangupCall(linenum);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
/**注销*/
|
||
|
|
window.onbeforeunload = function () {
|
||
|
|
destoryCustomPttGroup();
|
||
|
|
IPDispatcherCtrl.OnCloseIPDispatcher();
|
||
|
|
}
|