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.
1176 lines
68 KiB
1176 lines
68 KiB
var data_radar = ""; // 2022-11-09 Ken |
|
var wait_count = 0; |
|
var clear_count = 0; |
|
|
|
var debug_para = 1; |
|
|
|
var enable_ptz_temp = ""; |
|
var enable_calibration_radar_temp = ""; |
|
var enable_calibration_ptz_temp = ""; |
|
var enable_ip_setting_temp = ""; |
|
var enable_ptz_tracking_temp = ""; |
|
var enalbe_radar_xy_sync = 0; |
|
|
|
var k_index = -1; |
|
|
|
// ======================================================================= |
|
// Radar setting init |
|
|
|
function func_setradar_default() { |
|
func_setelement("radar_x_axis", 400); |
|
func_setelement("radar_y_axis", 500); |
|
func_setelement("target_x_axis", 400); |
|
func_setelement("target_y_axis", 100); |
|
func_setelement("world_camera_x_axis", 100); |
|
func_setelement("world_camera_y_axis", 400); |
|
func_setelement("radar_section_degree", 90); |
|
|
|
$('#slider_distance').slider('setValue', 10); |
|
$('#slider_distance_y').slider('setValue', 10); |
|
$('#radar_section_degree').val(90); |
|
var tmp_radar_x_axis = 400; |
|
var tmp_radar_y_axis = 500; |
|
var tmp_target_x_axis = 400; |
|
var tmp_target_y_axis = 100; |
|
section_line1.path[2][1] = tmp_radar_x_axis;//localStorage.getItem("radar_x_axis"); |
|
section_line1.path[2][2] = tmp_radar_y_axis;//localStorage.getItem("radar_y_axis"); |
|
section_line1.path[1][1] = tmp_target_x_axis;//localStorage.getItem("target_x_axis"); |
|
section_line1.path[1][2] = tmp_target_y_axis;//localStorage.getItem("target_y_axis"); |
|
|
|
document.getElementById("radar_section_degree").value = 90; |
|
|
|
// var ab_len = Math.sqrt((((localStorage.getItem("radar_x_axis") - localStorage.getItem("target_x_axis")) * (localStorage.getItem("radar_x_axis") - localStorage.getItem("target_x_axis"))) + (localStorage.getItem("radar_y_axis") - localStorage.getItem("target_y_axis")) * (localStorage.getItem("radar_y_axis") - localStorage.getItem("target_y_axis")))); |
|
// console.log("ab_len:" + ab_len); |
|
var theta = 90; |
|
var c_x = (Math.cos((-theta / 2) * Math.PI / 180) * (tmp_target_x_axis - tmp_radar_x_axis) - Math.sin((-theta / 2) * Math.PI / 180) * (tmp_target_y_axis - tmp_radar_y_axis)) + tmp_radar_x_axis; |
|
var c_y = (Math.sin((-theta / 2) * Math.PI / 180) * (tmp_target_x_axis - tmp_radar_x_axis) + Math.cos((-theta / 2) * Math.PI / 180) * (tmp_target_y_axis - tmp_radar_y_axis)) + tmp_radar_y_axis; |
|
//console.log("c_x,c_y:" + c_x + c_y); |
|
section_line1.path[0][1] = c_x; |
|
section_line1.path[0][2] = c_y; |
|
section_line1.path[3][1] = c_x; |
|
section_line1.path[3][2] = c_y; |
|
|
|
var d_x = (Math.cos((theta / 2) * Math.PI / 180) * (tmp_target_x_axis - tmp_radar_x_axis) - Math.sin((theta / 2) * Math.PI / 180) * (tmp_target_y_axis - tmp_radar_y_axis)) + tmp_radar_x_axis; |
|
var d_y = (Math.sin((theta / 2) * Math.PI / 180) * (tmp_target_x_axis - tmp_radar_x_axis) + Math.cos((theta / 2) * Math.PI / 180) * (tmp_target_y_axis - tmp_radar_y_axis)) + tmp_radar_y_axis; |
|
//console.log("d_x,d_y:" + d_x + d_y); |
|
section_line1.path[1][3] = d_x; |
|
section_line1.path[1][4] = d_y; |
|
|
|
radar_line.set({ 'x1': tmp_radar_x_axis, 'y1': tmp_radar_y_axis, 'x2': tmp_target_x_axis, 'y2': tmp_target_y_axis }); |
|
|
|
circle_radar.set({ 'left': tmp_radar_x_axis - 12, 'top': tmp_radar_y_axis - 14 }); |
|
radar_circle.set({ 'left': tmp_target_x_axis - 12, 'top': tmp_target_y_axis - 14 }); |
|
|
|
RefreshradarDot(0, canvasTripwire_radar); |
|
canvasTripwire_radar.add(radar_line); |
|
canvasTripwire_radar.add(circle_radar); |
|
canvasTripwire_radar.add(radar_circle); |
|
canvasTripwire_radar.add(section_line1); |
|
canvasTripwire_radar.add(ruler_x_sign); |
|
canvasTripwire_radar.add(ruler_y_sign); |
|
|
|
func_setelement_default(); |
|
console.log("func_setradar_default END"); |
|
} |
|
|
|
function func_setelement_default() { |
|
$.ajax({ |
|
url: "/setradarconfig?default", |
|
method: "GET", |
|
async: false, |
|
beforeSend: function (xmlHttp) { |
|
xmlHttp.setRequestHeader("If-Modified-Since", "0"); |
|
xmlHttp.setRequestHeader("Cache-Control", "no-cache"); |
|
//xmlHttp.setRequestHeader("Authorization", "Basic " + btoa("username:password")); |
|
}, |
|
success: function (res) { |
|
console.info(res); |
|
}, |
|
error: function (err) { |
|
console.warn(err); |
|
} |
|
}); |
|
return false; |
|
} |
|
|
|
// ======================================================================= |
|
// Radar canvas funcs |
|
|
|
// Issue : 沒用到的 func |
|
function mix_scale_radar_hidden() { |
|
|
|
// canvasTripwire_radar.remove(mix_scale_radar); |
|
canvasTripwire_radar.remove(radar_line); |
|
canvasTripwire_radar.remove(radar_circle); |
|
canvasTripwire_radar.remove(circle_radar); |
|
canvasTripwire_radar.remove(section_line1); |
|
// RefreshradarDot(0); |
|
canvasTripwire_radar.requestRenderAll(); |
|
} |
|
|
|
function mix_scale_radar_visible() { |
|
console.log("[radar.js] mix_scale_radar_visible()"); |
|
if (canvasTripwire_radar.getObjects().indexOf(radar_line) == -1) { |
|
RefreshradarDot(0, canvasTripwire_radar); |
|
// canvasTripwire_radar.add(mix_scale_radar); |
|
canvasTripwire_radar.add(radar_line); |
|
canvasTripwire_radar.add(radar_circle); |
|
canvasTripwire_radar.add(circle_radar); |
|
canvasTripwire_radar.add(section_line1); |
|
|
|
canvasTripwire_radar.add(ruler_x_sign); |
|
canvasTripwire_radar.add(ruler_y_sign); |
|
|
|
// console.log("add(section_line1)", canvasTripwire_radar.getObjects().indexOf(section_line1)); |
|
// canvasTripwire_radar.add(radar_dot); |
|
} |
|
|
|
if (localStorage.getItem("calibration_radar")) { |
|
canvasTripwire_radar.on({ |
|
'object:moving': onObjectMoving, |
|
'object:moved': onObjectMoved, |
|
'mouse:wheel': MouseWheel, |
|
'mouse:over': MouseOver, |
|
'mouse:out': MouseOut, |
|
'mouse:move': MouseMove |
|
}); |
|
console.log('canvasTripwire_radar.on'); |
|
} else { |
|
canvasTripwire_radar.off({ |
|
'object:moving': onObjectMoving, |
|
'object:moved': onObjectMoved, |
|
'mouse:wheel': MouseWheel, |
|
'mouse:over': MouseOver, |
|
'mouse:out': MouseOut, |
|
'mouse:move': MouseMove |
|
}); |
|
console.log('canvasTripwire_radar.off '); |
|
} |
|
function onObjectMoving(e) { |
|
|
|
if (e.target.name == "circle_radar" && localStorage.getItem("calibration_radar")) { |
|
var p = e.target; |
|
// var toLeft = p.left; |
|
// var toTop = p.top; |
|
if (p.left < 30) |
|
p.left = 30; |
|
if (p.left > 760) |
|
p.left = 760; |
|
if (p.top < 30) |
|
p.top = 30; |
|
if (p.top > 560) |
|
p.top = 560; |
|
|
|
p.radar_line & p.radar_line.set({ 'x1': p.left + 12, 'y1': p.top + 14 }); |
|
// p.radar_line & p.radar_line.set({ 'x1': toLeft + 18, 'y1': toTop + 20 }); |
|
// console.log(' p.left p.top(x,y):', toLeft, toTop); |
|
// func_setelement("radar_x_axis", p.radar_line.get('x1')); |
|
// func_setelement("radar_y_axis", p.radar_line.get('y1')); |
|
// console.log('send radar_axis(x,y):', p.radar_line.get('x1'), p.radar_line.get('y1')); |
|
// func_setelement("target_x_axis", p.radar_line.get('x2')); |
|
// func_setelement("target_y_axis", p.radar_line.get('y2')); |
|
// console.log('send target_axis (x,y):', p.radar_line.get('x2'), p.radar_line.get('y2')); |
|
|
|
// console.log("x1,y1:" + p.radar_line.get('x1') + "," + p.radar_line.get('y1')); |
|
// console.log("x2,y2:" + p.radar_line.get('x2') + "," + p.radar_line.get('y2')); |
|
section_line1.path[2][1] = p.radar_line.get('x1'); |
|
section_line1.path[2][2] = p.radar_line.get('y1'); |
|
|
|
var ab_len = Math.sqrt(((p.radar_line.get('x1') - p.radar_line.get('x2')) * (p.radar_line.get('x1') - p.radar_line.get('x2'))) + ((p.radar_line.get('y1') - p.radar_line.get('y2')) * (p.radar_line.get('y1') - p.radar_line.get('y2')))) |
|
// console.log("ab_len:" + ab_len); |
|
var theta = json_radar_section_degree; |
|
var c_x = (Math.cos((-theta / 2) * Math.PI / 180) * (p.radar_line.get('x2') - p.radar_line.get('x1')) - Math.sin((-theta / 2) * Math.PI / 180) * (p.radar_line.get('y2') - p.radar_line.get('y1'))) + p.radar_line.get('x1'); |
|
var c_y = (Math.sin((-theta / 2) * Math.PI / 180) * (p.radar_line.get('x2') - p.radar_line.get('x1')) + Math.cos((-theta / 2) * Math.PI / 180) * (p.radar_line.get('y2') - p.radar_line.get('y1'))) + p.radar_line.get('y1'); |
|
// console.log("c_x,c_y:" + c_x + c_y); |
|
section_line1.path[0][1] = c_x; |
|
section_line1.path[0][2] = c_y; |
|
section_line1.path[3][1] = c_x; |
|
section_line1.path[3][2] = c_y; |
|
|
|
var d_x = (Math.cos((theta / 2) * Math.PI / 180) * (p.radar_line.get('x2') - p.radar_line.get('x1')) - Math.sin((theta / 2) * Math.PI / 180) * (p.radar_line.get('y2') - p.radar_line.get('y1'))) + p.radar_line.get('x1'); |
|
var d_y = (Math.sin((theta / 2) * Math.PI / 180) * (p.radar_line.get('x2') - p.radar_line.get('x1')) + Math.cos((theta / 2) * Math.PI / 180) * (p.radar_line.get('y2') - p.radar_line.get('y1'))) + p.radar_line.get('y1'); |
|
// console.log("d_x,d_y:" + d_x + d_y); |
|
section_line1.path[1][3] = d_x; |
|
section_line1.path[1][4] = d_y; |
|
|
|
// canvasTripwire_radar.remove(section_line1); |
|
if (canvasTripwire_radar.getObjects().indexOf(section_line1) == -1) { |
|
canvasTripwire_radar.add(section_line1); |
|
} |
|
// RefreshradarDot(3); |
|
var rotate_theta = (Math.atan((p.radar_line.get('y2') - p.radar_line.get('y1')) / (p.radar_line.get('x2') - p.radar_line.get('x1') + 0.001)) * 180 / Math.PI) - 90; |
|
|
|
if (p.radar_line.get('x2') >= p.radar_line.get('x1')) { |
|
document.getElementById("world_radar_degree").innerHTML = 270 + Math.round(rotate_theta); |
|
// func_setelement("world_radar_degree", 270 + Math.round(rotate_theta)); |
|
} else { |
|
if (p.radar_line.get('y2') >= p.radar_line.get('y1')) { |
|
document.getElementById("world_radar_degree").innerHTML = 180 + 270 + Math.round(rotate_theta); |
|
// func_setelement("world_radar_degree", 180 + 270 + Math.round(rotate_theta)); |
|
} else { |
|
document.getElementById("world_radar_degree").innerHTML = 90 + Math.round(rotate_theta); |
|
// func_setelement("world_radar_degree", 90 + Math.round(rotate_theta)); |
|
} |
|
} |
|
} |
|
else if (e.target.name == "radar_circle" && localStorage.getItem("calibration_radar")) { |
|
var p = e.target; |
|
// console.log("localStorage.getItem(target_x_axis).value", localStorage.getItem("target_x_axis")); |
|
// console.log("localStorage.getItem(target_y_axis).value", localStorage.getItem("target_y_axis")); |
|
// console.log("localStorage.getItem(radar_x_axis).value", localStorage.getItem("radar_x_axis")); |
|
// console.log("document.localStorage.getItem(radar_y_axis).value", localStorage.getItem("radar_y_axis")); |
|
|
|
// console.log("document.getElementById(radar_section_degree).value", document.getElementById("radar_section_degree").value); |
|
// var toLeft = p.left; |
|
// var toTop = p.top; |
|
if (p.left < 30) |
|
p.left = 30; |
|
if (p.left > 760) |
|
p.left = 760; |
|
if (p.top < 30) |
|
p.top = 30; |
|
if (p.top > 560) |
|
p.top = 560; |
|
// p.radar_line & p.radar_line.set({ 'x2': toLeft + 18, 'y2': toTop + 20 }); |
|
// console.log(' p.left p.top(x,y):', toLeft, toTop); |
|
p.radar_line & p.radar_line.set({ 'x2': p.left + 12, 'y2': p.top + 14 }); |
|
// func_setelement("radar_x_axis", p.radar_line.get('x1')); |
|
// func_setelement("radar_y_axis", p.radar_line.get('y1')); |
|
// console.log('send radar_axis(x,y):', p.radar_line.get('x1'), p.radar_line.get('y1')); |
|
|
|
// func_setelement("target_x_axis", p.radar_line.get('x2')); |
|
// func_setelement("target_y_axis", p.radar_line.get('y2')); |
|
// console.log('send target_axis (x,y):', p.radar_line.get('x2'), p.radar_line.get('y2')); |
|
|
|
section_line1.path[1][1] = p.radar_line.get('x2'); |
|
section_line1.path[1][2] = p.radar_line.get('y2'); |
|
|
|
// console.log("x1,y1:" + p.radar_line.get('x1') + "," + p.radar_line.get('y1')); |
|
// console.log("x2,y2:" + p.radar_line.get('x2') + "," + p.radar_line.get('y2')); |
|
|
|
var ab_len = Math.sqrt(((p.radar_line.get('x1') - p.radar_line.get('x2')) * (p.radar_line.get('x1') - p.radar_line.get('x2'))) + ((p.radar_line.get('y1') - p.radar_line.get('y2')) * (p.radar_line.get('y1') - p.radar_line.get('y2')))) |
|
// console.log("ab_len:" + ab_len); |
|
var theta = json_radar_section_degree; |
|
var c_x = (Math.cos((-theta / 2) * Math.PI / 180) * (p.radar_line.get('x2') - p.radar_line.get('x1')) - Math.sin((-theta / 2) * Math.PI / 180) * (p.radar_line.get('y2') - p.radar_line.get('y1'))) + p.radar_line.get('x1'); |
|
var c_y = (Math.sin((-theta / 2) * Math.PI / 180) * (p.radar_line.get('x2') - p.radar_line.get('x1')) + Math.cos((-theta / 2) * Math.PI / 180) * (p.radar_line.get('y2') - p.radar_line.get('y1'))) + p.radar_line.get('y1'); |
|
// console.log("c_x,c_y:" + c_x + c_y); |
|
section_line1.path[0][1] = c_x; |
|
section_line1.path[0][2] = c_y; |
|
section_line1.path[3][1] = c_x; |
|
section_line1.path[3][2] = c_y; |
|
|
|
var d_x = (Math.cos((theta / 2) * Math.PI / 180) * (p.radar_line.get('x2') - p.radar_line.get('x1')) - Math.sin((theta / 2) * Math.PI / 180) * (p.radar_line.get('y2') - p.radar_line.get('y1'))) + p.radar_line.get('x1'); |
|
var d_y = (Math.sin((theta / 2) * Math.PI / 180) * (p.radar_line.get('x2') - p.radar_line.get('x1')) + Math.cos((theta / 2) * Math.PI / 180) * (p.radar_line.get('y2') - p.radar_line.get('y1'))) + p.radar_line.get('y1'); |
|
// console.log("d_x,d_y:" + d_x + d_y); |
|
section_line1.path[1][3] = d_x; |
|
section_line1.path[1][4] = d_y; |
|
if (canvasTripwire_radar.getObjects().indexOf(section_line1) == -1) { |
|
canvasTripwire_radar.add(section_line1); |
|
} |
|
|
|
var rotate_theta = (Math.atan((p.radar_line.get('y2') - p.radar_line.get('y1')) / (p.radar_line.get('x2') - p.radar_line.get('x1') + 0.001)) * 180 / Math.PI) - 90; |
|
|
|
if (p.radar_line.get('x2') >= p.radar_line.get('x1')) { |
|
document.getElementById("world_radar_degree").innerHTML = 270 + Math.round(rotate_theta); |
|
// func_setelement("world_radar_degree", 270 + Math.round(rotate_theta)); |
|
} else { |
|
if (p.radar_line.get('y2') >= p.radar_line.get('y1')) { |
|
document.getElementById("world_radar_degree").innerHTML = 180 + 270 + Math.round(rotate_theta); |
|
// func_setelement("world_radar_degree", 180 + 270 + Math.round(rotate_theta)); |
|
} else { |
|
document.getElementById("world_radar_degree").innerHTML = 90 + Math.round(rotate_theta); |
|
// func_setelement("world_radar_degree", 90 + Math.round(rotate_theta)); |
|
} |
|
} |
|
} |
|
canvasTripwire_radar.requestRenderAll(); |
|
} |
|
|
|
function onObjectMoved(e) { |
|
|
|
if (e.target.name == "circle_radar" && localStorage.getItem("calibration_radar")) { |
|
var p = e.target; |
|
// var toLeft = p.left; |
|
// var toTop = p.top; |
|
if (p.left < 30) |
|
p.left = 30; |
|
if (p.left > 760) |
|
p.left = 760; |
|
if (p.top < 30) |
|
p.top = 30; |
|
if (p.top > 560) |
|
p.top = 560; |
|
|
|
p.radar_line & p.radar_line.set({ 'x1': p.left + 12, 'y1': p.top + 14 }); |
|
// p.radar_line & p.radar_line.set({ 'x1': toLeft + 18, 'y1': toTop + 20 }); |
|
|
|
func_setelement("radar_x_axis", p.radar_line.get('x1')); |
|
func_setelement("radar_y_axis", p.radar_line.get('y1')); |
|
console.log('send radar_axis(x,y):', p.radar_line.get('x1'), p.radar_line.get('y1')); |
|
func_setelement("target_x_axis", p.radar_line.get('x2')); |
|
func_setelement("target_y_axis", p.radar_line.get('y2')); |
|
console.log('send target_axis (x,y):', p.radar_line.get('x2'), p.radar_line.get('y2')); |
|
|
|
// console.log("x1,y1:" + p.radar_line.get('x1') + "," + p.radar_line.get('y1')); |
|
//console.log("x2,y2:" + p.radar_line.get('x2') + "," + p.radar_line.get('y2')); |
|
section_line1.path[2][1] = p.radar_line.get('x1'); |
|
section_line1.path[2][2] = p.radar_line.get('y1'); |
|
|
|
var ab_len = Math.sqrt(((p.radar_line.get('x1') - p.radar_line.get('x2')) * (p.radar_line.get('x1') - p.radar_line.get('x2'))) + ((p.radar_line.get('y1') - p.radar_line.get('y2')) * (p.radar_line.get('y1') - p.radar_line.get('y2')))) |
|
//console.log("ab_len:" + ab_len); |
|
var theta = json_radar_section_degree; |
|
var c_x = (Math.cos((-theta / 2) * Math.PI / 180) * (p.radar_line.get('x2') - p.radar_line.get('x1')) - Math.sin((-theta / 2) * Math.PI / 180) * (p.radar_line.get('y2') - p.radar_line.get('y1'))) + p.radar_line.get('x1'); |
|
var c_y = (Math.sin((-theta / 2) * Math.PI / 180) * (p.radar_line.get('x2') - p.radar_line.get('x1')) + Math.cos((-theta / 2) * Math.PI / 180) * (p.radar_line.get('y2') - p.radar_line.get('y1'))) + p.radar_line.get('y1'); |
|
//console.log("c_x,c_y:" + c_x + c_y); |
|
section_line1.path[0][1] = c_x; |
|
section_line1.path[0][2] = c_y; |
|
section_line1.path[3][1] = c_x; |
|
section_line1.path[3][2] = c_y; |
|
|
|
var d_x = (Math.cos((theta / 2) * Math.PI / 180) * (p.radar_line.get('x2') - p.radar_line.get('x1')) - Math.sin((theta / 2) * Math.PI / 180) * (p.radar_line.get('y2') - p.radar_line.get('y1'))) + p.radar_line.get('x1'); |
|
var d_y = (Math.sin((theta / 2) * Math.PI / 180) * (p.radar_line.get('x2') - p.radar_line.get('x1')) + Math.cos((theta / 2) * Math.PI / 180) * (p.radar_line.get('y2') - p.radar_line.get('y1'))) + p.radar_line.get('y1'); |
|
console.log("c_x,c_y:" + c_x + c_y, "d_x,d_y:" + d_x + d_y); |
|
section_line1.path[1][3] = d_x; |
|
section_line1.path[1][4] = d_y; |
|
|
|
// canvasTripwire_radar.remove(section_line1); |
|
if (canvasTripwire_radar.getObjects().indexOf(section_line1) == -1) { |
|
canvasTripwire_radar.add(section_line1); |
|
} |
|
// RefreshradarDot(3); |
|
var rotate_theta = (Math.atan((p.radar_line.get('y2') - p.radar_line.get('y1')) / (p.radar_line.get('x2') - p.radar_line.get('x1') + 0.001)) * 180 / Math.PI) - 90; |
|
|
|
if (p.radar_line.get('x2') >= p.radar_line.get('x1')) { |
|
document.getElementById("world_radar_degree").innerHTML = 270 + Math.round(rotate_theta); |
|
func_setelement("world_radar_degree", 270 + Math.round(rotate_theta)); |
|
} else { |
|
if (p.radar_line.get('y2') >= p.radar_line.get('y1')) { |
|
document.getElementById("world_radar_degree").innerHTML = 180 + 270 + Math.round(rotate_theta); |
|
func_setelement("world_radar_degree", 180 + 270 + Math.round(rotate_theta)); |
|
} else { |
|
document.getElementById("world_radar_degree").innerHTML = 90 + Math.round(rotate_theta); |
|
func_setelement("world_radar_degree", 90 + Math.round(rotate_theta)); |
|
} |
|
} |
|
rescale_ruler(rulerRadar); |
|
} |
|
else if (e.target.name == "radar_circle" && localStorage.getItem("calibration_radar")) { |
|
var p = e.target; |
|
// console.log("localStorage.getItem(target_x_axis).value", localStorage.getItem("target_x_axis")); |
|
// console.log("localStorage.getItem(target_y_axis).value", localStorage.getItem("target_y_axis")); |
|
// console.log("localStorage.getItem(radar_x_axis).value", localStorage.getItem("radar_x_axis")); |
|
// console.log("document.localStorage.getItem(radar_y_axis).value", localStorage.getItem("radar_y_axis")); |
|
|
|
//console.log("document.getElementById(radar_section_degree).value", document.getElementById("radar_section_degree").value); |
|
// var toLeft = p.left; |
|
// var toTop = p.top; |
|
if (p.left < 30) |
|
p.left = 30; |
|
if (p.left > 760) |
|
p.left = 760; |
|
if (p.top < 30) |
|
p.top = 30; |
|
if (p.top > 560) |
|
p.top = 560; |
|
// p.radar_line & p.radar_line.set({ 'x2': toLeft + 18, 'y2': toTop + 20 }); |
|
// console.log(' p.left p.top(x,y):', toLeft, toTop); |
|
p.radar_line & p.radar_line.set({ 'x2': p.left + 12, 'y2': p.top + 14 }); |
|
|
|
func_setelement("radar_x_axis", p.radar_line.get('x1')); |
|
func_setelement("radar_y_axis", p.radar_line.get('y1')); |
|
console.log('send radar_axis(x,y):', p.radar_line.get('x1'), p.radar_line.get('y1')); |
|
|
|
func_setelement("target_x_axis", p.radar_line.get('x2')); |
|
func_setelement("target_y_axis", p.radar_line.get('y2')); |
|
console.log('send target_axis (x,y):', p.radar_line.get('x2'), p.radar_line.get('y2')); |
|
|
|
section_line1.path[1][1] = p.radar_line.get('x2'); |
|
section_line1.path[1][2] = p.radar_line.get('y2'); |
|
|
|
//console.log("x1,y1:" + p.radar_line.get('x1') + "," + p.radar_line.get('y1')); |
|
//console.log("x2,y2:" + p.radar_line.get('x2') + "," + p.radar_line.get('y2')); |
|
|
|
var ab_len = Math.sqrt(((p.radar_line.get('x1') - p.radar_line.get('x2')) * (p.radar_line.get('x1') - p.radar_line.get('x2'))) + ((p.radar_line.get('y1') - p.radar_line.get('y2')) * (p.radar_line.get('y1') - p.radar_line.get('y2')))) |
|
//console.log("ab_len:" + ab_len); |
|
var theta = json_radar_section_degree; |
|
var c_x = (Math.cos((-theta / 2) * Math.PI / 180) * (p.radar_line.get('x2') - p.radar_line.get('x1')) - Math.sin((-theta / 2) * Math.PI / 180) * (p.radar_line.get('y2') - p.radar_line.get('y1'))) + p.radar_line.get('x1'); |
|
var c_y = (Math.sin((-theta / 2) * Math.PI / 180) * (p.radar_line.get('x2') - p.radar_line.get('x1')) + Math.cos((-theta / 2) * Math.PI / 180) * (p.radar_line.get('y2') - p.radar_line.get('y1'))) + p.radar_line.get('y1'); |
|
//console.log("c_x,c_y:" + c_x + c_y); |
|
section_line1.path[0][1] = c_x; |
|
section_line1.path[0][2] = c_y; |
|
section_line1.path[3][1] = c_x; |
|
section_line1.path[3][2] = c_y; |
|
|
|
var d_x = (Math.cos((theta / 2) * Math.PI / 180) * (p.radar_line.get('x2') - p.radar_line.get('x1')) - Math.sin((theta / 2) * Math.PI / 180) * (p.radar_line.get('y2') - p.radar_line.get('y1'))) + p.radar_line.get('x1'); |
|
var d_y = (Math.sin((theta / 2) * Math.PI / 180) * (p.radar_line.get('x2') - p.radar_line.get('x1')) + Math.cos((theta / 2) * Math.PI / 180) * (p.radar_line.get('y2') - p.radar_line.get('y1'))) + p.radar_line.get('y1'); |
|
console.log("c_x,c_y:" + c_x + c_y, "d_x,d_y:" + d_x + d_y); |
|
section_line1.path[1][3] = d_x; |
|
section_line1.path[1][4] = d_y; |
|
if (canvasTripwire_radar.getObjects().indexOf(section_line1) == -1) { |
|
canvasTripwire_radar.add(section_line1); |
|
} |
|
|
|
var rotate_theta = (Math.atan((p.radar_line.get('y2') - p.radar_line.get('y1')) / (p.radar_line.get('x2') - p.radar_line.get('x1') + 0.001)) * 180 / Math.PI) - 90; |
|
|
|
if (p.radar_line.get('x2') >= p.radar_line.get('x1')) { |
|
document.getElementById("world_radar_degree").innerHTML = 270 + Math.round(rotate_theta); |
|
func_setelement("world_radar_degree", 270 + Math.round(rotate_theta)); |
|
} else { |
|
if (p.radar_line.get('y2') >= p.radar_line.get('y1')) { |
|
document.getElementById("world_radar_degree").innerHTML = 180 + 270 + Math.round(rotate_theta); |
|
func_setelement("world_radar_degree", 180 + 270 + Math.round(rotate_theta)); |
|
} else { |
|
document.getElementById("world_radar_degree").innerHTML = 90 + Math.round(rotate_theta); |
|
func_setelement("world_radar_degree", 90 + Math.round(rotate_theta)); |
|
} |
|
} |
|
rescale_ruler(rulerRadar); |
|
} |
|
canvasTripwire_radar.requestRenderAll(); |
|
} |
|
|
|
function MouseWheel(e) { |
|
//Mark at 20230110 Steven |
|
/* |
|
// $("#IFRAME_RADAR").prop("scrolling", "no"); |
|
var delta = e.e.deltaY; |
|
console.log("e:", e); |
|
console.log("delta:", delta); |
|
// var zoom = canvas.getZoom(); |
|
// var zoom; |
|
// zoom = 0.999 ** delta; |
|
// if (zoom > 20) zoom = 20; |
|
// if (zoom < 0.01) zoom = 0.01; |
|
// console.log("zoom:", zoom); |
|
|
|
if (delta > 0) { |
|
// console.log("document.getElementById(slider_distance).value:", parseInt(document.getElementById("slider_distance").value) + 5); |
|
$('#slider_distance').slider('setValue', parseInt(document.getElementById("slider_distance").value) + 5); |
|
} else if (delta < 0) { |
|
// console.log("document.getElementById(slider_distance).value:", document.getElementById("slider_distance").value - 5); |
|
$('#slider_distance').slider('setValue', document.getElementById("slider_distance").value - 5); |
|
} |
|
// canvas.setZoom(zoom); |
|
// opt.e.preventDefault(); |
|
// opt.e.stopPropagation(); |
|
// $("#IFRAME_RADAR").prop("scrolling", "yes"); |
|
rescale_ruler(rulerRadar); |
|
func_setelement("distance_meter", document.getElementById("slider_distance").value); |
|
*/ |
|
} |
|
|
|
function MouseOver(e) { |
|
// console.log("MouseOver e:", e); |
|
} |
|
|
|
function MouseOut(e) { |
|
// console.log("MouseOut e:", e); |
|
//top.document.getElementById("IFRAME_RADAR").scrolling = "yes"; |
|
} |
|
|
|
function MouseMove(e) { |
|
// console.log("MouseMove e:", e); |
|
// ruler_x_sign.set({ 'left': e.e.layerX - (ruler_x_sign.width / 2), 'top': 10 }); |
|
// ruler_y_sign.set({ 'left': 20, 'top': e.e.layerY - (ruler_y_sign.width / 2) }); |
|
|
|
//top.document.getElementById("IFRAME_RADAR").scrolling = "no"; |
|
} |
|
canvasTripwire_radar.requestRenderAll(); |
|
} |
|
|
|
function circle_ptz_hidden() { |
|
canvasTripwire_radar.remove(circle_ptz); |
|
canvasTripwire_radar.remove(ptz_line); |
|
canvasTripwire_radar.requestRenderAll(); |
|
} |
|
|
|
function circle_ptz_visible() { |
|
if (canvasTripwire_radar.getObjects().indexOf(circle_ptz) == -1) { |
|
RefreshradarDot(6, canvasTripwire_radar); |
|
canvasTripwire_radar.add(ptz_line); |
|
canvasTripwire_radar.add(circle_ptz); |
|
// console.log("add circle_ptz indexOf:", canvasTripwire_radar.getObjects().indexOf(circle_ptz)); |
|
} |
|
canvasTripwire_radar.on({ |
|
'object:moving': onObjectMoving, |
|
'object:moved': onObjectMoved |
|
}); |
|
function onObjectMoving(e) { |
|
|
|
if (e.target.name == "circle_ptz") { |
|
var p = e.target; |
|
// p.radar_line & p.radar_line.set({ 'x1': p.left + p.radius, 'y1': p.top + p.radius }); |
|
|
|
// var r = 50; |
|
// // var theta = 90; |
|
// var theta = ptz_degree_tmp; |
|
// console.log("radar_json.ptz_degree in mouse moving", ptz_degree_tmp); |
|
|
|
// p.radar_line & p.radar_line.set({ 'x2': p.left + p.radius - r * Math.cos(theta * Math.PI / 180), 'y2': p.top + p.radius - r * Math.sin(theta * Math.PI / 180) }); |
|
|
|
|
|
// p.radar_line & p.radar_line.set({ 'x2': p.left - r * Math.cos(theta), 'y2': p.top - r * Math.sin(theta) }); |
|
// console.log("document.getElementById(radar_section_degree).value", document.getElementById("radar_section_degree").value); |
|
// func_setelement("world_camera_x_axis", p.left + p.radius); |
|
// func_setelement("world_camera_y_axis", p.top + p.radius); |
|
console.log("setting ptz (x,y)", p.left + p.radius, p.top + p.radius); |
|
canvasTripwire_radar.remove(ptz_line); |
|
RefreshradarDot(7, canvasTripwire_radar); |
|
} |
|
canvasTripwire_radar.requestRenderAll(); |
|
} |
|
|
|
function onObjectMoved(e) { |
|
if (e.target.name == "circle_ptz") { |
|
var p = e.target; |
|
p.radar_line & p.radar_line.set({ 'x1': p.left + p.radius, 'y1': p.top + p.radius }); |
|
|
|
var r = 50; |
|
// var theta = 90; |
|
// var theta = ptz_degree_tmp; |
|
var theta = localStorage.getItem("ptz_degree_tmp"); |
|
// console.log("radar_json.ptz_degree in mouse moving", ptz_degree_tmp); |
|
|
|
p.radar_line & p.radar_line.set({ 'x2': p.left + p.radius - r * Math.cos(theta * Math.PI / 180), 'y2': p.top + p.radius - r * Math.sin(theta * Math.PI / 180) }); |
|
|
|
// p.radar_line & p.radar_line.set({ 'x2': p.left - r * Math.cos(theta), 'y2': p.top - r * Math.sin(theta) }); |
|
console.log("document.getElementById(radar_section_degree).value", document.getElementById("radar_section_degree").value); |
|
func_setelement("world_camera_x_axis", p.left + p.radius); |
|
func_setelement("world_camera_y_axis", p.top + p.radius); |
|
console.log("setting ptz (x,y)", p.left + p.radius, p.top + p.radius); |
|
canvasTripwire_radar.add(ptz_line); |
|
|
|
RefreshradarDot(8, canvasTripwire_radar); |
|
} |
|
canvasTripwire_radar.requestRenderAll(); |
|
} |
|
canvasTripwire_radar.requestRenderAll(); |
|
} |
|
|
|
|
|
function send_radarbg(file_data, listmode_id) { |
|
|
|
func_get_lang_cookie(); |
|
var form_data = new FormData(); //建構new FormData() |
|
form_data.append('file', file_data); //把物件加到file後面 |
|
|
|
$.ajax({ |
|
url: "/import_radarbg", |
|
// url: "http://127.0.0.1:" + GetUrlPort() + "/upload_radarbg", |
|
// url: "/import_lpr_list", |
|
type: "POST", |
|
// mimeType: "multipart/form-data", |
|
mimeType: "image/jpeg", |
|
data: form_data, |
|
contentType: false, |
|
processData: false, |
|
async: false, |
|
beforeSend: function (xmlHttp) { |
|
xmlHttp.setRequestHeader("If-Modified-Since", "0"); |
|
xmlHttp.setRequestHeader("Cache-Control", "no-cache"); |
|
// xmlHttp.setRequestHeader("Authorization", "Basic " + btoa("username:password")); |
|
console.log("[send_radarbg] beforeSend"); |
|
|
|
}, |
|
success: function (retdata) { |
|
console.log("[send_radarbg] success"); |
|
console.info(retdata); |
|
// g_listmode_id = listmode_id; |
|
// window.location.reload(); |
|
// location.reload(); |
|
// setTimeout(location.reload(),3000); |
|
}, |
|
error: function (retdata) { |
|
console.log("[send_radarbg] error"); |
|
console.warn(retdata); |
|
alert(MESSAGE64); |
|
// window.location.reload(); |
|
// location.reload(); |
|
} |
|
}); |
|
} |
|
|
|
function upload_radarbg(e) { |
|
console.log("[upload_radarbg] enter"); |
|
var file = e.files[0]; |
|
console.log(file); |
|
|
|
send_radarbg(file, 2); |
|
|
|
//上傳後將檔案清除 |
|
e.value = ''; |
|
} |
|
|
|
// ======================================================================= |
|
// get Radar info by /getalarmmotion CGI ( Leo ) |
|
// 2022-12-29 Merge issue : check all comments are necessary |
|
var g_max_protected_objects = 2; |
|
var g_enable_show_pixel = 0; |
|
var radar_msg; |
|
var radar_dot = []; |
|
var radar_id_num = 10; |
|
var trial_array = {}; |
|
var ptz_degree_tmp = 0; |
|
localStorage.setItem("ptz_degree_tmp", 0); |
|
var ptz_degree_offset = 0; |
|
// var trial_life_time = 5; |
|
function GetAlarm_radar(alarm_data) { |
|
// console.log("GetAlarm_radar"); |
|
if (!!alarm_data) { |
|
var datas; |
|
var radar_json; |
|
var complete_data = ""; |
|
var n1 = -1, n2 = -1, n2_temp = -1; |
|
|
|
var max_protected_objects = 3; |
|
// var max_protected_objects = g_max_protected_objects; |
|
// if (g_enable_show_pixel === 1) { |
|
// max_protected_objects = g_max_protected_objects + 2; |
|
// } |
|
|
|
|
|
// AiEngine_json_split() var n1 = -1, n2 = -1, n2_temp = -1; |
|
complete_data = complete_data.concat(alarm_data); |
|
|
|
// n1 = complete_data.indexOf('{"AiRadar"'); |
|
n1 = complete_data.indexOf('"AiRadar"'); |
|
|
|
// n2_temp = complete_data.indexOf('"Type"'); |
|
n2_temp = complete_data.indexOf('"Speed"'); |
|
|
|
// n2 = complete_data.indexOf('}]}', n2_temp); |
|
n2 = complete_data.indexOf('}]}', n2_temp); |
|
|
|
if (n1 > 0 && n2_temp > 0 && n2 > 0 && (n1 + 7) < n2_temp && n2_temp < n2) { |
|
// Ken 2022-09-22 |
|
// console.log("complete_data"); |
|
// console.log(complete_data); |
|
|
|
wait_count = 0; |
|
clear_count = 0; |
|
|
|
// Ken 2022-09-22 將字串轉換成過去格式,以符合後續 split 並比對 AiRadar 字串的邏輯 |
|
complete_data = complete_data.replace(',"AiRadar"', ',\r\{"AiRadar"') |
|
|
|
// console.log("complete_data"); |
|
// console.log(complete_data); |
|
|
|
datas = complete_data.split(/\r\n|\r/); |
|
complete_data = ""; |
|
|
|
// console.log("datas"); |
|
// console.log(datas); |
|
|
|
//var check_cam_time = 0; |
|
//var buffer_cam_time = ""; |
|
for (var i = datas.length - 1; i >= 0; i--) { |
|
/* |
|
if (datas[i].substring(0, 8) == 'CamTime:') { |
|
buffer_cam_time = ""; |
|
buffer_cam_time = datas[i].slice(); |
|
}*/ |
|
if (datas[i].length > 11 && datas[i].substring(0, 11) == '{"AiRadar":' && datas[i].length < 8192 * 8) { |
|
//datas[i].replace(/\\'/g, "'"); |
|
//datas[i].replace('\"', '"'); |
|
|
|
// console.log(datas[i]); |
|
|
|
/* |
|
datas[i].replace('\n', ''); |
|
datas[i].replace('\r', ''); |
|
datas[i].replace('\t', ''); |
|
datas[i].replace('\\', ''); |
|
*/ |
|
|
|
/* |
|
var alarm_test = '{"AiEngine":[{"id":0,"channel_id":1,"camera_name":"","res_height":1080,"res_width":1920,"confidence":59,"engine_type":1,"label_name":"car","class_id":2,"obj_type":0,"obj_tracking_id":1,"obj_dwell_time":23,"color_id":0,"color":"","linked_plate":"","x":83,"y":136,"w":215,"h":168,"parent_idx":-1,"behavior_id":0},{"id":1,"channel_id":1,"camera_name":"","res_height":1080,"res_width":1920,"confidence":43,"engine_type":1,"label_name":"car","class_id":2,"obj_type":0,"obj_tracking_id":2,"obj_dwell_time":23,"color_id":0,"color":"","linked_plate":"","x":158,"y":538,"w":218,"h":144,"parent_idx":-1,"behavior_id":0},{"id":2,"channel_id":1,"camera_name":"","res_height":1080,"res_width":1920,"confidence":82,"engine_type":1,"label_name":"car","class_id":2,"obj_type":0,"obj_tracking_id":3,"obj_dwell_time":23,"color_id":0,"color":"","linked_plate":"","x":342,"y":175,"w":321,"h":196,"parent_idx":-1,"behavior_id":0},{"id":3,"channel_id":1,"camera_name":"","res_height":1080,"res_width":1920,"confidence":49,"engine_type":1,"label_name":"car","class_id":2,"obj_type":0,"obj_tracking_id":6,"obj_dwell_time":23,"color_id":0,"color":"","linked_plate":"","x":362,"y":578,"w":253,"h":132,"parent_idx":-1,"behavior_id":0},{"id":4,"channel_id":1,"camera_name":"","res_height":1080,"res_width":1920,"confidence":69,"engine_type":1,"label_name":"car","class_id":2,"obj_type":0,"obj_tracking_id":4,"obj_dwell_time":23,"color_id":0,"color":"","linked_plate":"","x":714,"y":608,"w":239,"h":130,"parent_idx":-1,"behavior_id":0},{"id":5,"channel_id":1,"camera_name":"","res_height":1080,"res_width":1920,"confidence":31,"engine_type":1,"label_name":"car","class_id":2,"obj_type":0,"obj_tracking_id":5,"obj_dwell_time":23,"color_id":0,"color":"","linked_plate":"","x":1035,"y":663,"w":340,"h":179,"parent_idx":-1,"behavior_id":0}],"Count":6}'; |
|
|
|
ai_json = JSON.parse(alarm_test);*/ |
|
|
|
/* |
|
if (index_ == 0) { |
|
index_ = 1; |
|
alert(ai_json); |
|
}*/ |
|
|
|
var temp = null; |
|
temp = datas[i].slice(); |
|
|
|
radar_json = JSON.parse(temp); |
|
//radar_json = validatingJSON(temp); |
|
|
|
// console.log("radar_json", radar_json); |
|
|
|
// radar_msg = radar_json; |
|
|
|
|
|
datas[i] = null; |
|
//check_cam_time = 1; |
|
break; |
|
} |
|
|
|
} |
|
/* |
|
if (check_cam_time === 1) { |
|
if (last_cam_time === "") { |
|
last_cam_time = buffer_cam_time; |
|
count_the_same_cam_time++; |
|
} |
|
else if (last_cam_time === buffer_cam_time) { |
|
count_the_same_cam_time++; |
|
} |
|
else { |
|
last_cam_time = buffer_cam_time; |
|
console.log(count_the_same_cam_time); |
|
count_the_same_cam_time = 0; |
|
} |
|
}*/ |
|
if (radar_json != null) { |
|
bbox_count = radar_json.Count; |
|
} |
|
else { |
|
bbox_count = 0; |
|
} |
|
|
|
plate_count = 0; |
|
plate_idx = 0; |
|
|
|
/* |
|
if (bbox_count == 0) { |
|
clear_count_2++; |
|
} |
|
else { |
|
clear_count_2 = 3; |
|
}*/ |
|
/*if (clear_count_2 >= 3) */ |
|
{ |
|
//clear_count_2 = 0; |
|
|
|
// RefreshCanvasObject(max_protected_objects); |
|
} |
|
|
|
//console.log("bbox_count: " + bbox_count.toString()); |
|
radar_id_num = (Math.random() * 100 % 10) + 1; |
|
// console.log("radar_id_num", radar_id_num); |
|
if (radar_json != null && (canvasTripwire_radar.getObjects().indexOf(section_line1) != -1)) { |
|
// console.log("radar_circle.radar_line.get('x1')"); |
|
|
|
|
|
// console.log("canvasTripwire_radar.getObjects(radar_dot)", canvasTripwire_radar.getObjects(radar_dot)); |
|
// while (canvasTripwire_radar.getObjects().indexOf(radar_dot) != -1) { |
|
// canvasTripwire_radar.remove(radar_dot); |
|
|
|
// } |
|
// console.log("add circle_ptz indexOf:", canvasTripwire_radar.getObjects().indexOf(circle_ptz)); |
|
// if (canvasTripwire_radar.getObjects().indexOf(circle_ptz) == -1) { |
|
// RefreshradarDot(4); |
|
// } else if (canvasTripwire_radar.getObjects().indexOf(circle_ptz) != -1) { |
|
// RefreshradarDot(5); |
|
// } |
|
|
|
// for (var id_index = 0; id_index < 10; id_index++) { |
|
// canvasTripwire_radar.remove(radar_dot[id_index]); |
|
// } |
|
// console.log("radar_json.AiRadar.RadarArray.length", radar_json.AiRadar.RadarArray.length); |
|
// console.log("canvasTripwire_radar.getObjects().indexOf(0)", canvasTripwire_radar.getObjects().indexOf(radar_dot)); |
|
|
|
var d = new Date(); |
|
// console.log(d); |
|
var getTime_tmp = d.getTime(); |
|
|
|
//steven modify |
|
var a_x = radar_circle.radar_line.get('x1'); |
|
var a_y = radar_circle.radar_line.get('y1'); |
|
var b_x = radar_circle.radar_line.get('x2'); |
|
var b_y = radar_circle.radar_line.get('y2'); |
|
var ab_len = Math.sqrt((a_x - b_x) * (a_x - b_x) + (a_y - b_y) * (a_y - b_y)); |
|
var distance_meter = document.getElementById("slider_distance").value; |
|
// var scalex = ab_len / distance_meter; |
|
var scalex = 800 / distance_meter; |
|
var rotate_theta = (Math.atan((b_y - a_y) / (b_x - a_x + 0.001)) * 180 / Math.PI) - 90; |
|
|
|
//console.log(" sucess log radar data a x,y", a_x, a_y, "b x,y", b_x, b_y); |
|
|
|
if (b_x >= a_x) { |
|
document.getElementById("world_radar_degree").innerHTML = 270 + Math.round(rotate_theta); |
|
} |
|
else { |
|
if (b_y >= a_y) { |
|
document.getElementById("world_radar_degree").innerHTML = 180 + 270 + Math.round(rotate_theta); |
|
} |
|
else { |
|
document.getElementById("world_radar_degree").innerHTML = 90 + Math.round(rotate_theta); |
|
} |
|
} |
|
//steven modify |
|
// console.log("radar_json.AiRadar.ptz_p_degree", parseInt(radar_json.AiRadar.ptz_p_degree)); |
|
// ptz_degree_tmp = parseInt(radar_json.AiRadar.ptz_p_degree); |
|
localStorage.setItem("ptz_degree_tmp", parseInt(radar_json.AiRadar.ptz_p_degree)); |
|
// console.log("after radar_json.AiRadar.ptz_p_degree", ptz_degree_tmp); |
|
|
|
for (var id_index = 0; id_index <= radar_json.AiRadar.RadarArray.length - 1; id_index++) { |
|
if (radar_json.AiRadar.RadarArray[id_index].Type == 1) { // 09-27 1 |
|
// console.log("document.getElementById(slider_distance).value", document.getElementById("slider_distance").value); |
|
|
|
|
|
var radar_x = radar_json.AiRadar.RadarArray[id_index].PosX; |
|
var radar_y = radar_json.AiRadar.RadarArray[id_index].PosY; |
|
var radar_z = radar_json.AiRadar.RadarArray[id_index].PosZ; |
|
|
|
// var radar_x = radar_json.AiRadar.RadarArray[id_index].posX = Math.round(Math.random() * 10000 % 50 - 25); |
|
// var radar_y = radar_json.AiRadar.RadarArray[id_index].posY = Math.round(Math.random() * 10000 % 50); |
|
// var radar_x = radar_json.AiRadar.RadarArray[0].posX = 25; |
|
// var radar_y = radar_json.AiRadar.RadarArray[0].posY = 25; |
|
//steven modify |
|
//var a_x = radar_circle.radar_line.get('x1'); |
|
//var a_y = radar_circle.radar_line.get('y1'); |
|
//var b_x = radar_circle.radar_line.get('x2'); |
|
//var b_y = radar_circle.radar_line.get('y2'); |
|
//var ab_len = Math.sqrt((a_x - b_x) * (a_x - b_x) + (a_y - b_y) * (a_y - b_y)); |
|
//var distance_meter = document.getElementById("slider_distance").value; |
|
//var scalex = ab_len / distance_meter; |
|
//var rotate_theta = (Math.atan((b_y - a_y) / (b_x - a_x + 0.001)) * 180 / Math.PI) - 90; |
|
//steven modify |
|
|
|
|
|
|
|
// document.getElementById("world_radar_degree").innerHTML = 360 + Math.round(rotate_theta); |
|
// var test_x = Math.round(Math.cos((-rotate_theta) * Math.PI / 180) * (radar_x * scalex) - Math.sin((-rotate_theta) * Math.PI / 180) * (radar_y * scalex)) + a_x; |
|
// var test_y = a_y - Math.round(Math.sin((-rotate_theta) * Math.PI / 180) * (radar_x * scalex) + Math.cos((-rotate_theta) * Math.PI / 180) * (radar_y * scalex)); |
|
|
|
if (b_x >= a_x) { |
|
var test_x = Math.round(Math.cos((-rotate_theta + 180) * Math.PI / 180) * (radar_x * scalex) - Math.sin((-rotate_theta + 180) * Math.PI / 180) * (radar_y * scalex)) + a_x; |
|
var test_y = a_y - Math.round(Math.sin((-rotate_theta + 180) * Math.PI / 180) * (radar_x * scalex) + Math.cos((-rotate_theta + 180) * Math.PI / 180) * (radar_y * scalex)); |
|
// document.getElementById("world_radar_degree").innerHTML = 270 + Math.round(rotate_theta); |
|
} else { |
|
var test_x = Math.round(Math.cos((-rotate_theta) * Math.PI / 180) * (radar_x * scalex) - Math.sin((-rotate_theta) * Math.PI / 180) * (radar_y * scalex)) + a_x; |
|
var test_y = a_y - Math.round(Math.sin((-rotate_theta) * Math.PI / 180) * (radar_x * scalex) + Math.cos((-rotate_theta) * Math.PI / 180) * (radar_y * scalex)); |
|
//if (b_y >= a_y) { |
|
// document.getElementById("world_radar_degree").innerHTML = 180 + 270 + Math.round(rotate_theta); |
|
//} else { |
|
// document.getElementById("world_radar_degree").innerHTML = 90 + Math.round(rotate_theta); |
|
//} |
|
} |
|
|
|
//read getalarmmotion local x,y |
|
// if (radar_json.AiRadar.RadarArray[id_index].plot == "Yes") { |
|
// var radar_id_name = radar_json.AiRadar.FrameNum + radar_json.AiRadar.RadarArray[id_index].tid; |
|
// trial_array[radar_id_name] = { 'time': getTime_tmp, 'FrameNum': radar_json.AiRadar.FrameNum, 'Type': radar_json.AiRadar.RadarArray[id_index].Type, 'PosX': radar_x, 'PosY': radar_y, 'PosZ': radar_z, 'world_radar_x': test_x, 'world_radar_y': test_y, 'Speed': radar_json.AiRadar.RadarArray[id_index].Speed, 'C': json_trial_life_time, 'json_world_radar_x': radar_json.AiRadar.RadarArray[id_index].world_radar_x, 'json_world_radar_y': radar_json.AiRadar.RadarArray[id_index].world_radar_y };//add object |
|
// } |
|
|
|
// read getalatmmotion world radar x,y start |
|
if (radar_json.AiRadar.RadarArray[id_index].plot == "Yes") { |
|
var radar_id_name = radar_json.AiRadar.FrameNum + radar_json.AiRadar.RadarArray[id_index].tid; |
|
trial_array[radar_id_name] = { 'time': getTime_tmp, 'FrameNum': radar_json.AiRadar.FrameNum, 'Type': radar_json.AiRadar.RadarArray[id_index].Type, 'PosX': radar_x, 'PosY': radar_y, 'PosZ': radar_z, 'world_radar_x': parseInt(radar_json.AiRadar.RadarArray[id_index].world_radar_x), 'world_radar_y': parseInt(radar_json.AiRadar.RadarArray[id_index].world_radar_y), 'Speed': radar_json.AiRadar.RadarArray[id_index].Speed, 'C': json_trial_life_time };//add object |
|
} |
|
// read getalatmmotion world radar x,y end |
|
|
|
|
|
|
|
// console.log("radar_json - FrameNum(V1):", radar_json.AiRadar.FrameNum, " , posX:", radar_json.AiRadar.RadarArray[id_index].PosX, " , posY:", radar_json.AiRadar.RadarArray[id_index].PosY, " , world_radar_x:", test_x, " , world_radar_y:", test_y); |
|
// console.log("radar_json.AiRadar.RadarArray[" + id_index + "].FrameNum posX posY", radar_json.AiRadar.RadarArray[id_index].FrameNum, radar_json.AiRadar.RadarArray[id_index].PosX, radar_json.AiRadar.RadarArray[id_index].PosY); |
|
// // var radar_json.AiRadar.RadarArray[0].posX, radar_json.AiRadar.RadarArray[0].posY; |
|
// console.log("test_x", test_x, " , test_y", test_y); |
|
// radar_dot = makedot(radar_json.AiRadar.RadarArray[0].posX, radar_json.AiRadar.RadarArray[0].posY, 'red'); |
|
// canvasTripwire_radar.add(makedot(radar_json.AiRadar.RadarArray[0].posX, radar_json.AiRadar.RadarArray[0].posY, 'red')); |
|
|
|
//draw radar dot & text |
|
// radar_dot = makedot(test_x, test_y, 'red'); |
|
// canvasTripwire_radar.add(radar_dot); |
|
// canvasTripwire_radar.add(insertTextLabel_Color(test_x + 20, test_y + 20, 50, 50, "V1 (" + parseInt(test_x) + "," + parseInt(test_y) + "), Pos (" + parseFloat(radar_x).toFixed(2) + "," + parseFloat(radar_y).toFixed(2) + ") Speed: " + (radar_json.AiRadar.RadarArray[id_index].Speed), 'red')); |
|
|
|
// console.log("canvasTripwire_radar.getObjects().length", canvasTripwire_radar.getObjects().length); |
|
// console.log("canvasTripwire_radar.getObjects()", canvasTripwire_radar.getObjects()); |
|
// console.log("canvasTripwire_radar.getObjects().indexOf(radar_dot)", canvasTripwire_radar.getObjects().indexOf(radar_dot)); |
|
// if (canvasTripwire_radar.getObjects().indexOf(radar_dot) > 1) { |
|
// canvasTripwire_radar.remove(radar_dot); |
|
// } |
|
|
|
|
|
// while (canvasTripwire_radar.getObjects().length > 10) { |
|
// var items = canvasTripwire_radar.getObjects(); |
|
// console.log("items", items); |
|
// if (items[canvasTripwire_radar.getObjects().length - 1]) { |
|
// canvasTripwire_radar.remove(items[canvasTripwire_radar.getObjects().length - 1]); |
|
// } |
|
// } |
|
} else if (radar_json.AiRadar.RadarArray[id_index].Type == 2) { // 09-27 2 |
|
// console.log("document.getElementById(slider_distance).value", document.getElementById("slider_distance").value); |
|
|
|
|
|
var radar_x = radar_json.AiRadar.RadarArray[id_index].PosX; |
|
var radar_y = radar_json.AiRadar.RadarArray[id_index].PosY; |
|
|
|
// var radar_x = radar_json.AiRadar.RadarArray[id_index].posX = Math.round(Math.random() * 10000 % 50 - 25); |
|
// var radar_y = radar_json.AiRadar.RadarArray[id_index].posY = Math.round(Math.random() * 10000 % 50); |
|
// var radar_x = radar_json.AiRadar.RadarArray[0].posX = 25; |
|
// var radar_y = radar_json.AiRadar.RadarArray[0].posY = 25; |
|
//steven modify |
|
//var a_x = radar_circle.radar_line.get('x1'); |
|
//var a_y = radar_circle.radar_line.get('y1'); |
|
//var b_x = radar_circle.radar_line.get('x2'); |
|
//var b_y = radar_circle.radar_line.get('y2'); |
|
//var ab_len = Math.sqrt((a_x - b_x) * (a_x - b_x) + (a_y - b_y) * (a_y - b_y)); |
|
//var distance_meter = document.getElementById("slider_distance").value; |
|
//var scalex = ab_len / distance_meter; |
|
//var rotate_theta = (Math.atan((b_y - a_y) / (b_x - a_x + 0.001)) * 180 / Math.PI) - 90; |
|
//steven modify |
|
|
|
|
|
|
|
// document.getElementById("world_radar_degree").innerHTML = 360 + Math.round(rotate_theta); |
|
// var test_x = Math.round(Math.cos((-rotate_theta) * Math.PI / 180) * (radar_x * scalex) - Math.sin((-rotate_theta) * Math.PI / 180) * (radar_y * scalex)) + a_x; |
|
// var test_y = a_y - Math.round(Math.sin((-rotate_theta) * Math.PI / 180) * (radar_x * scalex) + Math.cos((-rotate_theta) * Math.PI / 180) * (radar_y * scalex)); |
|
|
|
if (b_x >= a_x) { |
|
var test_x = Math.round(Math.cos((-rotate_theta + 180) * Math.PI / 180) * (radar_x * scalex) - Math.sin((-rotate_theta + 180) * Math.PI / 180) * (radar_y * scalex)) + a_x; |
|
var test_y = a_y - Math.round(Math.sin((-rotate_theta + 180) * Math.PI / 180) * (radar_x * scalex) + Math.cos((-rotate_theta + 180) * Math.PI / 180) * (radar_y * scalex)); |
|
//document.getElementById("world_radar_degree").innerHTML = 270 + Math.round(rotate_theta); |
|
} else { |
|
var test_x = Math.round(Math.cos((-rotate_theta) * Math.PI / 180) * (radar_x * scalex) - Math.sin((-rotate_theta) * Math.PI / 180) * (radar_y * scalex)) + a_x; |
|
var test_y = a_y - Math.round(Math.sin((-rotate_theta) * Math.PI / 180) * (radar_x * scalex) + Math.cos((-rotate_theta) * Math.PI / 180) * (radar_y * scalex)); |
|
//if (b_y >= a_y) { |
|
// document.getElementById("world_radar_degree").innerHTML = 180 + 270 + Math.round(rotate_theta); |
|
//} else { |
|
// document.getElementById("world_radar_degree").innerHTML = 90 + Math.round(rotate_theta); |
|
//} |
|
} |
|
|
|
//read getalarmmotion local x,y |
|
// if (radar_json.AiRadar.RadarArray[id_index].plot == "Yes") { |
|
// var radar_id_name = radar_json.AiRadar.FrameNum + radar_json.AiRadar.RadarArray[id_index].tid; |
|
// trial_array[radar_id_name] = { 'time': getTime_tmp, 'FrameNum': radar_json.AiRadar.FrameNum, 'Type': radar_json.AiRadar.RadarArray[id_index].Type, 'PosX': radar_x, 'PosY': radar_y, 'PosZ': radar_z, 'world_radar_x': test_x, 'world_radar_y': test_y, 'Speed': radar_json.AiRadar.RadarArray[id_index].Speed, 'C': json_trial_life_time, 'json_world_radar_x': radar_json.AiRadar.RadarArray[id_index].world_radar_x, 'json_world_radar_y': radar_json.AiRadar.RadarArray[id_index].world_radar_y };//add object |
|
// } |
|
|
|
// read getalatmmotion world radar x,y start |
|
if (radar_json.AiRadar.RadarArray[id_index].plot == "Yes") { |
|
var radar_id_name = radar_json.AiRadar.FrameNum + radar_json.AiRadar.RadarArray[id_index].tid; |
|
trial_array[radar_id_name] = { 'time': getTime_tmp, 'FrameNum': radar_json.AiRadar.FrameNum, 'Type': radar_json.AiRadar.RadarArray[id_index].Type, 'PosX': radar_x, 'PosY': radar_y, 'PosZ': radar_z, 'world_radar_x': parseInt(radar_json.AiRadar.RadarArray[id_index].world_radar_x), 'world_radar_y': parseInt(radar_json.AiRadar.RadarArray[id_index].world_radar_y), 'Speed': radar_json.AiRadar.RadarArray[id_index].Speed, 'C': json_trial_life_time };//add object |
|
} |
|
// read getalatmmotion world radar x,y end |
|
|
|
|
|
|
|
// console.log("radar_json - FrameNum(V2):", radar_json.AiRadar.FrameNum, " , posX:", radar_json.AiRadar.RadarArray[id_index].PosX, " , posY:", radar_json.AiRadar.RadarArray[id_index].PosY, " , world_radar_x:", test_x, " , world_radar_y:", test_y, " , csX:", radar_json.AiRadar.RadarArray[id_index].csX, " , csY:", radar_json.AiRadar.RadarArray[id_index].csY); |
|
// console.log("radar_json.AiRadar.RadarArray[" + id_index + "].FrameNum posX posY", radar_json.AiRadar.RadarArray[id_index].FrameNum, radar_json.AiRadar.RadarArray[id_index].PosX, radar_json.AiRadar.RadarArray[id_index].PosY); |
|
// var radar_json.AiRadar.RadarArray[0].posX, radar_json.AiRadar.RadarArray[0].posY; |
|
// console.log("test_x", test_x, " , test_y", test_y); |
|
|
|
// radar_dot = makedot(radar_json.AiRadar.RadarArray[0].posX, radar_json.AiRadar.RadarArray[0].posY, 'red'); |
|
// canvasTripwire_radar.add(makedot(radar_json.AiRadar.RadarArray[0].posX, radar_json.AiRadar.RadarArray[0].posY, 'red')); |
|
|
|
//draw radar dot & text |
|
// radar_dot = makedot(test_x, test_y, 'green'); |
|
// canvasTripwire_radar.add(radar_dot); |
|
// canvasTripwire_radar.add(insertTextLabel_Color(test_x + 20, test_y + 20, 50, 50, "V2 (" + parseInt(test_x) + "," + parseInt(test_y) + "), Pos (" + parseFloat(radar_x).toFixed(2) + "," + parseFloat(radar_y).toFixed(2) + ") Speed: " + (radar_json.AiRadar.RadarArray[id_index].Speed), 'green')); |
|
|
|
// console.log("canvasTripwire_radar.getObjects().length", canvasTripwire_radar.getObjects().length); |
|
// console.log("canvasTripwire_radar.getObjects()", canvasTripwire_radar.getObjects()); |
|
// console.log("canvasTripwire_radar.getObjects().indexOf(radar_dot)", canvasTripwire_radar.getObjects().indexOf(radar_dot)); |
|
// if (canvasTripwire_radar.getObjects().indexOf(radar_dot) > 1) { |
|
// canvasTripwire_radar.remove(radar_dot); |
|
// } |
|
|
|
|
|
// while (canvasTripwire_radar.getObjects().length > 10) { |
|
// var items = canvasTripwire_radar.getObjects(); |
|
// console.log("items", items); |
|
// if (items[canvasTripwire_radar.getObjects().length - 1]) { |
|
// canvasTripwire_radar.remove(items[canvasTripwire_radar.getObjects().length - 1]); |
|
// } |
|
// } |
|
} else if (radar_json.AiRadar.RadarArray[id_index].Type == 3) { // 09-27 3 |
|
// console.log("document.getElementById(slider_distance).value", document.getElementById("slider_distance").value); |
|
|
|
|
|
var radar_x = radar_json.AiRadar.RadarArray[id_index].PosX; |
|
var radar_y = radar_json.AiRadar.RadarArray[id_index].PosY; |
|
|
|
// var radar_x = radar_json.AiRadar.RadarArray[id_index].posX = Math.round(Math.random() * 10000 % 50 - 25); |
|
// var radar_y = radar_json.AiRadar.RadarArray[id_index].posY = Math.round(Math.random() * 10000 % 50); |
|
// var radar_x = radar_json.AiRadar.RadarArray[0].posX = 25; |
|
// var radar_y = radar_json.AiRadar.RadarArray[0].posY = 25; |
|
|
|
//steven modify |
|
//var a_x = radar_circle.radar_line.get('x1'); |
|
//var a_y = radar_circle.radar_line.get('y1'); |
|
//var b_x = radar_circle.radar_line.get('x2'); |
|
//var b_y = radar_circle.radar_line.get('y2'); |
|
//var ab_len = Math.sqrt((a_x - b_x) * (a_x - b_x) + (a_y - b_y) * (a_y - b_y)); |
|
//var distance_meter = document.getElementById("slider_distance").value; |
|
//var scalex = ab_len / distance_meter; |
|
//var rotate_theta = (Math.atan((b_y - a_y) / (b_x - a_x + 0.001)) * 180 / Math.PI) - 90; |
|
//steven modify |
|
|
|
|
|
// document.getElementById("world_radar_degree").innerHTML = 360 + Math.round(rotate_theta); |
|
// var test_x = Math.round(Math.cos((-rotate_theta) * Math.PI / 180) * (radar_x * scalex) - Math.sin((-rotate_theta) * Math.PI / 180) * (radar_y * scalex)) + a_x; |
|
// var test_y = a_y - Math.round(Math.sin((-rotate_theta) * Math.PI / 180) * (radar_x * scalex) + Math.cos((-rotate_theta) * Math.PI / 180) * (radar_y * scalex)); |
|
|
|
if (b_x >= a_x) { |
|
var test_x = Math.round(Math.cos((-rotate_theta + 180) * Math.PI / 180) * (radar_x * scalex) - Math.sin((-rotate_theta + 180) * Math.PI / 180) * (radar_y * scalex)) + a_x; |
|
var test_y = a_y - Math.round(Math.sin((-rotate_theta + 180) * Math.PI / 180) * (radar_x * scalex) + Math.cos((-rotate_theta + 180) * Math.PI / 180) * (radar_y * scalex)); |
|
//document.getElementById("world_radar_degree").innerHTML = 270 + Math.round(rotate_theta); |
|
} else { |
|
var test_x = Math.round(Math.cos((-rotate_theta) * Math.PI / 180) * (radar_x * scalex) - Math.sin((-rotate_theta) * Math.PI / 180) * (radar_y * scalex)) + a_x; |
|
var test_y = a_y - Math.round(Math.sin((-rotate_theta) * Math.PI / 180) * (radar_x * scalex) + Math.cos((-rotate_theta) * Math.PI / 180) * (radar_y * scalex)); |
|
//if (b_y >= a_y) { |
|
// document.getElementById("world_radar_degree").innerHTML = 180 + 270 + Math.round(rotate_theta); |
|
//} else { |
|
// document.getElementById("world_radar_degree").innerHTML = 90 + Math.round(rotate_theta); |
|
//} |
|
} |
|
//read getalarmmotion local x,y |
|
// if (radar_json.AiRadar.RadarArray[id_index].plot == "Yes") { |
|
// var radar_id_name = radar_json.AiRadar.FrameNum + radar_json.AiRadar.RadarArray[id_index].tid; |
|
// trial_array[radar_id_name] = { 'time': getTime_tmp, 'FrameNum': radar_json.AiRadar.FrameNum, 'Type': radar_json.AiRadar.RadarArray[id_index].Type, 'PosX': radar_x, 'PosY': radar_y, 'PosZ': radar_z, 'world_radar_x': test_x, 'world_radar_y': test_y, 'Speed': radar_json.AiRadar.RadarArray[id_index].Speed, 'C': json_trial_life_time, 'json_world_radar_x': radar_json.AiRadar.RadarArray[id_index].world_radar_x, 'json_world_radar_y': radar_json.AiRadar.RadarArray[id_index].world_radar_y };//add object |
|
// } |
|
|
|
// read getalatmmotion world radar x,y start |
|
if (radar_json.AiRadar.RadarArray[id_index].plot == "Yes" && (Math.abs(radar_json.AiRadar.RadarArray[id_index].Speed) > 0.1)) { |
|
var radar_id_name = radar_json.AiRadar.FrameNum + radar_json.AiRadar.RadarArray[id_index].tid; |
|
trial_array[radar_id_name] = { 'time': getTime_tmp, 'FrameNum': radar_json.AiRadar.FrameNum, 'Type': radar_json.AiRadar.RadarArray[id_index].Type, 'PosX': radar_x, 'PosY': radar_y, 'PosZ': radar_z, 'world_radar_x': parseInt(radar_json.AiRadar.RadarArray[id_index].world_radar_x), 'world_radar_y': parseInt(radar_json.AiRadar.RadarArray[id_index].world_radar_y), 'Speed': radar_json.AiRadar.RadarArray[id_index].Speed, 'C': json_trial_life_time };//add object |
|
} |
|
// read getalatmmotion world radar x,y end |
|
|
|
|
|
// console.log("radar_json - FrameNum(V3):", radar_json.AiRadar.FrameNum, " , posX:", radar_json.AiRadar.RadarArray[id_index].PosX, " , posY:", radar_json.AiRadar.RadarArray[id_index].PosY, " , world_radar_x:", test_x, " , world_radar_y:", test_y, " , Speed:", radar_json.AiRadar.RadarArray[id_index].Speed); |
|
|
|
// console.log("radar_json - FrameNum(V3):", radar_json.AiRadar.FrameNum, " , posX:", radar_json.AiRadar.RadarArray[id_index].PosX, " , posY:", radar_json.AiRadar.RadarArray[id_index].PosY, " , world_radar_x:", radar_json.AiRadar.RadarArray[id_index].world_radar_x, " , world_radar_y:", radar_json.AiRadar.RadarArray[id_index].world_radar_y); |
|
// console.log("radar_json.AiRadar.RadarArray[" + id_index + "].FrameNum posX posY", radar_json.AiRadar.RadarArray[id_index].FrameNum, radar_json.AiRadar.RadarArray[id_index].PosX, radar_json.AiRadar.RadarArray[id_index].PosY); |
|
// var radar_json.AiRadar.RadarArray[0].posX, radar_json.AiRadar.RadarArray[0].posY; |
|
// console.log("test_x", test_x, " , test_y", test_y); |
|
// radar_dot = makedot(radar_json.AiRadar.RadarArray[0].posX, radar_json.AiRadar.RadarArray[0].posY, 'red'); |
|
// canvasTripwire_radar.add(makedot(radar_json.AiRadar.RadarArray[0].posX, radar_json.AiRadar.RadarArray[0].posY, 'red')); |
|
|
|
//draw radar dot & text |
|
// radar_dot = makedot(test_x, test_y, 'blue'); |
|
// canvasTripwire_radar.add(radar_dot); |
|
// canvasTripwire_radar.add(insertTextLabel_Color(test_x + 20, test_y + 20, 50, 50, "V3 (" + parseInt(test_x) + "," + parseInt(test_y) + "), Pos (" + parseFloat(radar_x).toFixed(2) + "," + parseFloat(radar_y).toFixed(2) + ") Speed: " + parseFloat(radar_json.AiRadar.RadarArray[id_index].Speed).toFixed(2), 'blue')); |
|
|
|
// console.log("canvasTripwire_radar.getObjects().length", canvasTripwire_radar.getObjects().length); |
|
// console.log("canvasTripwire_radar.getObjects()", canvasTripwire_radar.getObjects()); |
|
// console.log("canvasTripwire_radar.getObjects().indexOf(radar_dot)", canvasTripwire_radar.getObjects().indexOf(radar_dot)); |
|
// if (canvasTripwire_radar.getObjects().indexOf(radar_dot) > 1) { |
|
// canvasTripwire_radar.remove(radar_dot); |
|
// } |
|
|
|
|
|
// while (canvasTripwire_radar.getObjects().length > 10) { |
|
// var items = canvasTripwire_radar.getObjects(); |
|
// console.log("items", items); |
|
// if (items[canvasTripwire_radar.getObjects().length - 1]) { |
|
// canvasTripwire_radar.remove(items[canvasTripwire_radar.getObjects().length - 1]); |
|
// } |
|
// } |
|
} else { |
|
console.log("radar_json.AiRadar.RadarArray[" + id_index + "].Type", radar_json.AiRadar.RadarArray[id_index].Type); |
|
} |
|
|
|
|
|
} |
|
|
|
// console.log("trial_array", trial_array); |
|
// draw_radar_dot(); |
|
|
|
|
|
} |
|
} |
|
else { |
|
wait_count++; |
|
if (wait_count >= 3) { |
|
wait_count = 0; |
|
complete_data = ""; |
|
} |
|
|
|
clear_count++; |
|
if (clear_count >= 3) { |
|
clear_count = 0; |
|
// if (canvasTripwire_radar.getObjects().indexOf(circle_ptz) == -1) { |
|
// RefreshradarDot(4); |
|
// } else if (canvasTripwire_radar.getObjects().indexOf(circle_ptz) != -1) { |
|
// RefreshradarDot(5); |
|
// } |
|
// RefreshCanvasObject(max_protected_objects); |
|
} |
|
} |
|
} |
|
} |
|
|
|
function RefreshCanvasObject(max_protected_objects) { |
|
console.log("RefreshCanvasObject"); |
|
if (typeof canvasTripwire_radar !== 'undefined') { |
|
//Clear all objects |
|
while (canvasTripwire_radar.getObjects().length > max_protected_objects) { |
|
var items = canvasTripwire_radar.getObjects(); |
|
console.log("items", items); |
|
if (items[canvasTripwire_radar.getObjects().length - 1]) { |
|
canvasTripwire_radar.remove(items[canvasTripwire_radar.getObjects().length - 1]); |
|
} |
|
} |
|
} |
|
} |
|
|
|
|
|
var g_GetRequest = null; |
|
var g_h = -1; |
|
var g_m = -1; |
|
var g_s = -1; |
|
var g_ms = -1; |
|
|
|
var g_time_canvas = 50; |
|
var g_imgUrl = ""; |
|
var g_speed = 99999; |
|
var g_times_update_canvas = 0; |
|
var g_avg_speed = 7000; |
|
var get_bg_count = 0; |
|
|
|
function radarGetRequest() { |
|
clearInterval(g_GetRequest); |
|
g_GetRequest = setInterval(function GetRequest_set_interval() { |
|
var current_page = localStorage.getItem('current_page'); |
|
var win_width = G_VIEW_CANVAS_X, win_height = G_VIEW_CANVAS_Y; |
|
|
|
if (current_page === 'radar') { |
|
|
|
if (data_radar != sessionStorage.getItem('getalarmmotion_data')) { |
|
data_radar = sessionStorage.getItem('getalarmmotion_data'); |
|
GetAlarm_radar(data_radar); |
|
} |
|
|
|
var win_width = 800, win_height = 600; |
|
//var imgUrl = 'http://' + window.location.hostname + ":" + GetUrlPort() + '/bgsnap' + Math.random(); |
|
var imgUrl = 'http://' + window.location.hostname + ":" + GetUrlPort() + '/bgsnap'; |
|
|
|
if (get_bg_count == 0) { |
|
get_bg_count = 100; |
|
|
|
if (canvasTripwire_radar) { |
|
canvasTripwire_radar.renderAll(); |
|
} |
|
try { |
|
fabric.Image.fromURL(imgUrl, function (img) { |
|
|
|
if (img != null && img._element != null) { |
|
|
|
img.set({ |
|
scaleX: win_width / img.width, |
|
scaleY: win_height / img.height, |
|
}); |
|
canvasTripwire_radar.setBackgroundImage(img, () => canvasTripwire_radar.renderAll.bind(canvasTripwire_radar)); |
|
img = null; |
|
} |
|
}); |
|
//console.log("radar snap"); |
|
} |
|
catch (e) { |
|
console.log(e); |
|
} |
|
} |
|
else { |
|
get_bg_count--; |
|
} |
|
imgUrl = null; |
|
} |
|
}, g_time_canvas); |
|
}
|
|
|