minor cleanup for PTZ handling

merge-requests/210/head
Moe 2020-06-13 11:46:20 -07:00
parent fc082daf8c
commit 57a876e28d
3 changed files with 28 additions and 29 deletions

View File

@ -105,42 +105,41 @@ module.exports = function(s,config,lang,app,io){
break;
}
}
const ptzControl = async function(e,callback){
s.checkDetails(e)
if(!s.group[e.ke] || !s.group[e.ke].activeMonitors[e.id]){return}
const monitorConfig = s.group[e.ke].rawMonitorConfigurations[e.id]
const ptzControl = async function(options,callback){
if(!s.group[options.ke] || !s.group[options.ke].activeMonitors[options.id]){return}
const monitorConfig = s.group[options.ke].rawMonitorConfigurations[options.id]
const controlUrlMethod = monitorConfig.details.control_url_method || 'GET'
const controlBaseUrl = monitorConfig.details.control_base_url || s.buildMonitorUrl(monitorConfig, true)
if(monitorConfig.details.control !== "1"){
s.userLog(e,{type:lang['Control Error'],msg:lang.ControlErrorText1});
return
}
if(monitorConfig.details.control_url_stop_timeout === '0' && monitorConfig.details.control_stop === '1' && s.group[e.ke].activeMonitors[e.id].ptzMoving === true){
e.direction = 'stopMove'
s.group[e.ke].activeMonitors[e.id].ptzMoving = false
if(monitorConfig.details.control_url_stop_timeout === '0' && monitorConfig.details.control_stop === '1' && s.group[options.ke].activeMonitors[options.id].ptzMoving === true){
options.direction = 'stopMove'
s.group[options.ke].activeMonitors[options.id].ptzMoving = false
}else{
s.group[e.ke].activeMonitors[e.id].ptzMoving = true
s.group[options.ke].activeMonitors[options.id].ptzMoving = true
}
if(controlUrlMethod === 'ONVIF'){
try{
//create onvif connection
if(
!s.group[e.ke].activeMonitors[e.id].onvifConnection ||
!s.group[e.ke].activeMonitors[e.id].onvifConnection.current_profile ||
!s.group[e.ke].activeMonitors[e.id].onvifConnection.current_profile.token
!s.group[options.ke].activeMonitors[options.id].onvifConnection ||
!s.group[options.ke].activeMonitors[options.id].onvifConnection.current_profile ||
!s.group[options.ke].activeMonitors[options.id].onvifConnection.current_profile.token
){
const response = await s.createOnvifDevice({
ke: e.ke,
id: e.id,
ke: options.ke,
id: options.id,
})
if(response.ok){
moveCamera({
ke: e.ke,
id: e.id,
direction: e.direction,
axis: e.axis,
ke: options.ke,
id: options.id,
direction: options.direction,
axis: options.axis,
},(msg) => {
msg.msg = e.direction
msg.msg = options.direction
callback(msg)
})
}else{
@ -148,12 +147,12 @@ module.exports = function(s,config,lang,app,io){
}
}else{
moveCamera({
ke: e.ke,
id: e.id,
direction: e.direction,
axis: e.axis,
ke: options.ke,
id: options.id,
direction: options.direction,
axis: options.axis,
},(msg) => {
if(!msg.msg)msg.msg = {direction: e.direction}
if(!msg.msg)msg.msg = {direction: options.direction}
callback(msg)
})
}
@ -164,14 +163,14 @@ module.exports = function(s,config,lang,app,io){
msg: {
msg: lang.ControlErrorText2,
error: err,
direction: e.direction
direction: options.direction
}
})
}
}else{
const controlUrlStopTimeout = parseInt(monitorConfig.details.control_url_stop_timeout) || 1000
var stopCamera = function(){
var stopURL = controlBaseUrl + monitorConfig.details['control_url_'+e.direction+'_stop']
var stopURL = controlBaseUrl + monitorConfig.details[`control_url_${options.direction}_stop`]
var options = s.cameraControlOptionsFromUrl(stopURL,monitorConfig)
var requestOptions = {
url : stopURL,
@ -194,7 +193,7 @@ module.exports = function(s,config,lang,app,io){
s.userLog(e,msg);
})
}
if(e.direction === 'stopMove'){
if(options.direction === 'stopMove'){
stopCamera()
}else{
var requestOptions = {
@ -213,7 +212,7 @@ module.exports = function(s,config,lang,app,io){
callback({ok:false,type:'Control Error',msg:err})
return
}
if(monitorConfig.details.control_stop == '1' && e.direction !== 'center' ){
if(monitorConfig.details.control_stop == '1' && options.direction !== 'center' ){
s.userLog(e,{type:'Control Triggered Started'});
if(controlUrlStopTimeout > 0){
setTimeout(function(){

View File

@ -105,7 +105,7 @@ module.exports = function(s,config,lang){
s.cameraControl({
axis: axis,
// axis: [{direction: 'x', amount: 1.0}],
mid: event.id,
id: event.id,
ke: event.ke
},(msg) => {
s.userLog(event,msg)

View File

@ -435,7 +435,7 @@ $(document).ready(function(e){
break;
case'control':
e.a=e.e.attr('control')
$.ccio.cx({f:'monitor',ff:'control',direction:e.a,mid:e.mid,ke:e.ke},user)
$.ccio.cx({f:'monitor',ff:'control',direction:e.a,id:e.mid,ke:e.ke},user)
break;
case'videos_table':case'calendar':case'video_grid'://call videos table or calendar or video grid
$.vidview.launcher=$(this);