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.
270 lines
7.1 KiB
270 lines
7.1 KiB
/************ 常量配置项*****************/ |
|
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(); |
|
}
|
|
|