|
|
|
|
@ -309,7 +309,7 @@ function insertTrafficLightRectangle(r_left, r_top, r_width, r_height, r_direct,
|
|
|
|
|
if (r_name == "person") { |
|
|
|
|
color_type = '#FF8C00'; |
|
|
|
|
} |
|
|
|
|
else { |
|
|
|
|
else if(r_name == "car"){ |
|
|
|
|
color_type = '#800080'; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
@ -3046,7 +3046,12 @@ function GetAlarm(alarm_data) {
|
|
|
|
|
var complete_data = ""; |
|
|
|
|
var n1 = -1, n2 = -1, n2_temp = -1; |
|
|
|
|
|
|
|
|
|
// console.log("[GetAlarm] localStorage fetchHttpGetalarm:", localStorage.getItem("fetchHttpGetalarm"));
|
|
|
|
|
// console.log("[GetAlarm] g_max_protected_objects:", g_max_protected_objects);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var max_protected_objects = g_max_protected_objects; |
|
|
|
|
|
|
|
|
|
if (g_enable_show_pixel === 1) { |
|
|
|
|
max_protected_objects = g_max_protected_objects + 2; |
|
|
|
|
} |
|
|
|
|
@ -3059,6 +3064,8 @@ function GetAlarm(alarm_data) {
|
|
|
|
|
|
|
|
|
|
n2 = complete_data.indexOf('}', n2_temp); |
|
|
|
|
|
|
|
|
|
// console.log(`[GetAlarm] n1:${n1} , n2_temp:${n2_temp} , n2:${n2}`);
|
|
|
|
|
|
|
|
|
|
if (n1 > 0 && n2_temp > 0 && n2 > 0 && (n1 + 7) < n2_temp && n2_temp < n2) { |
|
|
|
|
wait_count = 0; |
|
|
|
|
clear_count = 0; |
|
|
|
|
@ -3073,6 +3080,9 @@ function GetAlarm(alarm_data) {
|
|
|
|
|
buffer_cam_time = ""; |
|
|
|
|
buffer_cam_time = datas[i].slice(); |
|
|
|
|
}*/ |
|
|
|
|
|
|
|
|
|
// console.log(`datas[${i}].length: ${datas[i].length}`);
|
|
|
|
|
|
|
|
|
|
if (datas[i].length > 12 && datas[i].substring(0, 12) == '{"AiEngine":' && datas[i].length < 8192 * 8) { |
|
|
|
|
//datas[i].replace(/\\'/g, "'");
|
|
|
|
|
//datas[i].replace('\"', '"');
|
|
|
|
|
@ -3100,6 +3110,9 @@ function GetAlarm(alarm_data) {
|
|
|
|
|
|
|
|
|
|
ai_json = JSON.parse(temp); |
|
|
|
|
//ai_json = validatingJSON(temp);
|
|
|
|
|
// console.log("ai_json:");
|
|
|
|
|
// console.log(ai_json);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
datas[i] = null; |
|
|
|
|
//check_cam_time = 1;
|
|
|
|
|
@ -3123,7 +3136,7 @@ function GetAlarm(alarm_data) {
|
|
|
|
|
} |
|
|
|
|
}*/ |
|
|
|
|
|
|
|
|
|
//console.log(ai_json);
|
|
|
|
|
// console.log(ai_json);
|
|
|
|
|
|
|
|
|
|
if (localStorage.getItem("ToF_recognition") === "Yes"){ |
|
|
|
|
// console.log("ai_json.AIToF:");
|
|
|
|
|
@ -3154,12 +3167,15 @@ function GetAlarm(alarm_data) {
|
|
|
|
|
/*if (clear_count_2 >= 3) */ |
|
|
|
|
{ |
|
|
|
|
//clear_count_2 = 0;
|
|
|
|
|
|
|
|
|
|
// console.log("[WebSocket] max_protected_objects: ", max_protected_objects);
|
|
|
|
|
RefreshCanvasObject(max_protected_objects); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//console.log("bbox_count: " + bbox_count.toString());
|
|
|
|
|
|
|
|
|
|
// console.log("ai_json.counter_count:", ai_json.counter_count);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (ai_json != null && typeof ai_json.counter_count !== 'undefined') { |
|
|
|
|
counter_count_msg = ""; |
|
|
|
|
|
|
|
|
|
@ -3233,12 +3249,15 @@ function GetAlarm(alarm_data) {
|
|
|
|
|
insert_red_text = "FPS:" + AI_fps.toString() + ","; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var insert_red_text_max = ""; |
|
|
|
|
var insert_red_text_min = ""; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (current_state_hide_or_open_getalarmmotion == 1) { |
|
|
|
|
for (var i = 0; i < bbox_count /*&& i <= 10*/; i++) { |
|
|
|
|
// console.log(ai_json.AiEngine[i]);
|
|
|
|
|
if (ai_json.AiEngine[i]) { |
|
|
|
|
|
|
|
|
|
if (ai_json.AiEngine[i].parent_idx == -1) { |
|
|
|
|
@ -3336,9 +3355,9 @@ function GetAlarm(alarm_data) {
|
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
if (canvasTripwire_all && canvasTripwire && canvasTripwire1 && canvasTripwire2 && canvasTripwire3 && canvasTripwire4 && canvasTripwire5 && canvasTripwire6 && canvasTripwire7 && canvasTripwire8) { |
|
|
|
|
|
|
|
|
|
var translate_name = func_translate_name(plate_name); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var behavior_id = ai_json.AiEngine[i].behavior_id; |
|
|
|
|
var detection_zone_id = ai_json.AiEngine[i].detection_zone_id; |
|
|
|
|
var obj_dwell_time = ai_json.AiEngine[i].obj_dwell_time; |
|
|
|
|
@ -3583,6 +3602,13 @@ function GetAlarm(alarm_data) {
|
|
|
|
|
canvasTripwire8.add(insertTrafficLightRectangle(x * 0.25, y * 0.3, w * 0.25, h * 0.3, 1, 1, plate_name, number_row)); |
|
|
|
|
} |
|
|
|
|
else { |
|
|
|
|
// 11-01
|
|
|
|
|
// console.log("trigger any events... , behavior_id: ", behavior_id); // 禁區 0 , 久留 4, 警戒線 8
|
|
|
|
|
// console.log(ai_json.AiEngine[i]); // 沒有和 zone index 相關的資訊
|
|
|
|
|
// console.log("detection_zone_id: ", detection_zone_id); // undefined
|
|
|
|
|
|
|
|
|
|
func_checkTriggerZoneStatus(behavior_id); // 為了連動 zone polygon 變顏色
|
|
|
|
|
|
|
|
|
|
canvasTripwire_all.add(insertTrafficLightRectangle_Red(x * 0.25, y * 0.3, w * 0.25, h * 0.3, 1, 1, plate_name)); |
|
|
|
|
canvasTripwire.add(insertTrafficLightRectangle_Red(x * 0.25, y * 0.3, w * 0.25, h * 0.3, 1, 1, plate_name)); |
|
|
|
|
canvasTripwire1.add(insertTrafficLightRectangle_Red(x * 0.25, y * 0.3, w * 0.25, h * 0.3, 1, 1, plate_name)); |
|
|
|
|
@ -3923,6 +3949,9 @@ function GetAlarm(alarm_data) {
|
|
|
|
|
canvasTripwire8.getObjects()[0].stroke = "#ff0000"; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 11-01
|
|
|
|
|
func_checkZoneColor(); |
|
|
|
|
|
|
|
|
|
if (canvasTripwire_all && canvasTripwire && canvasTripwire1 && canvasTripwire2 && canvasTripwire3 && canvasTripwire4 && canvasTripwire5 && canvasTripwire6 && canvasTripwire7 && canvasTripwire8) { |
|
|
|
|
for (var index_zone = 0; index_zone < count_zone; index_zone++) { |
|
|
|
|
if (parseInt(parking_space[index_zone], 10) >= 1 && parseInt(parking_line[index_zone], 10) >= 1) { |
|
|
|
|
@ -4190,27 +4219,6 @@ function AssignPlateObject(ai_json,i_index,plate_name) {
|
|
|
|
|
var h = parseInt(ai_json.AiEngine[i_index].h, 10); |
|
|
|
|
var text_y = parseInt((ai_json.AiEngine[i_index].y + ai_json.AiEngine[i_index].h), 10); |
|
|
|
|
//console.log(text_y);
|
|
|
|
|
/*if (x * 0.25 <= 20) { |
|
|
|
|
x = 80; |
|
|
|
|
} |
|
|
|
|
else if (x * 0.25 >= 460) { |
|
|
|
|
x = 1840; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (y * 0.3 <= 20) { |
|
|
|
|
y = 66; |
|
|
|
|
} |
|
|
|
|
else if (y * 0.3 >= 300) { |
|
|
|
|
y = 999; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (x * 0.25 + w * 0.25 >= 460) { |
|
|
|
|
w = parseInt((460 - x * 0.25) * 4, 10); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (y * 0.3 + h * 0.3 >= 300) { |
|
|
|
|
h = parseInt((300 - y * 0.3) * 3.33, 10); |
|
|
|
|
}*/ |
|
|
|
|
|
|
|
|
|
text_y = y - 66; |
|
|
|
|
|
|
|
|
|
@ -4394,16 +4402,22 @@ function RenderAllCanvas() {
|
|
|
|
|
function RefreshCanvasObject(max_protected_objects) { |
|
|
|
|
if (typeof canvasTripwire !== 'undefined') { |
|
|
|
|
//Clear all objects
|
|
|
|
|
// console.log(canvasTripwire.getObjects());
|
|
|
|
|
while (canvasTripwire.getObjects().length > 0) { |
|
|
|
|
var items = canvasTripwire.getObjects(); |
|
|
|
|
if (items[canvasTripwire.getObjects().length - 1]) { |
|
|
|
|
canvasTripwire.remove(items[canvasTripwire.getObjects().length - 1]); |
|
|
|
|
} |
|
|
|
|
// canvasTripwire.remove(items[canvasTripwire.getObjects().length - 1]);
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// console.log(canvasTripwire.getObjects());
|
|
|
|
|
// console.log("--------------------------");
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (typeof canvasTripwire1 !== 'undefined') { |
|
|
|
|
//Clear all objects
|
|
|
|
|
// console.log(canvasTripwire1.getObjects());
|
|
|
|
|
while (canvasTripwire1.getObjects().length > max_protected_objects) { |
|
|
|
|
var items = canvasTripwire1.getObjects(); |
|
|
|
|
if (items[canvasTripwire1.getObjects().length - 1]) { |
|
|
|
|
@ -4411,10 +4425,14 @@ function RefreshCanvasObject(max_protected_objects) {
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
canvasTripwire1.getObjects()[0].stroke = "#ffff00"; |
|
|
|
|
|
|
|
|
|
// console.log(canvasTripwire1.getObjects());
|
|
|
|
|
// console.log("--------------------------");
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (typeof canvasTripwire2 !== 'undefined') { |
|
|
|
|
// console.log(canvasTripwire2.getObjects());
|
|
|
|
|
//Clear all objects
|
|
|
|
|
while (canvasTripwire2.getObjects().length > max_protected_objects) { |
|
|
|
|
var items = canvasTripwire2.getObjects(); |
|
|
|
|
@ -4423,10 +4441,14 @@ function RefreshCanvasObject(max_protected_objects) {
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
canvasTripwire2.getObjects()[0].stroke = "#ffff00"; |
|
|
|
|
|
|
|
|
|
// console.log(canvasTripwire2.getObjects());
|
|
|
|
|
// console.log("--------------------------");
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (typeof canvasTripwire3 !== 'undefined') { |
|
|
|
|
// console.log(canvasTripwire3.getObjects());
|
|
|
|
|
//Clear all objects
|
|
|
|
|
while (canvasTripwire3.getObjects().length > max_protected_objects) { |
|
|
|
|
var items = canvasTripwire3.getObjects(); |
|
|
|
|
@ -4435,9 +4457,13 @@ function RefreshCanvasObject(max_protected_objects) {
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
canvasTripwire3.getObjects()[0].stroke = "#ffff00"; |
|
|
|
|
|
|
|
|
|
// console.log(canvasTripwire3.getObjects());
|
|
|
|
|
// console.log("--------------------------");
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (typeof canvasTripwire4 !== 'undefined') { |
|
|
|
|
// console.log(canvasTripwire4.getObjects());
|
|
|
|
|
//Clear all objects
|
|
|
|
|
while (canvasTripwire4.getObjects().length > max_protected_objects) { |
|
|
|
|
var items = canvasTripwire4.getObjects(); |
|
|
|
|
@ -4446,9 +4472,13 @@ function RefreshCanvasObject(max_protected_objects) {
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
canvasTripwire4.getObjects()[0].stroke = "#ffff00"; |
|
|
|
|
|
|
|
|
|
// console.log(canvasTripwire4.getObjects());
|
|
|
|
|
// console.log("--------------------------");
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (typeof canvasTripwire5 !== 'undefined') { |
|
|
|
|
// console.log(canvasTripwire5.getObjects());
|
|
|
|
|
//Clear all objects
|
|
|
|
|
while (canvasTripwire5.getObjects().length > max_protected_objects) { |
|
|
|
|
var items = canvasTripwire5.getObjects(); |
|
|
|
|
@ -4457,9 +4487,13 @@ function RefreshCanvasObject(max_protected_objects) {
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
canvasTripwire5.getObjects()[0].stroke = "#ffff00"; |
|
|
|
|
|
|
|
|
|
// console.log(canvasTripwire5.getObjects());
|
|
|
|
|
// console.log("--------------------------");
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (typeof canvasTripwire6 !== 'undefined') { |
|
|
|
|
// console.log(canvasTripwire6.getObjects());
|
|
|
|
|
//Clear all objects
|
|
|
|
|
while (canvasTripwire6.getObjects().length > max_protected_objects) { |
|
|
|
|
var items = canvasTripwire6.getObjects(); |
|
|
|
|
@ -4468,9 +4502,13 @@ function RefreshCanvasObject(max_protected_objects) {
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
canvasTripwire6.getObjects()[0].stroke = "#ffff00"; |
|
|
|
|
|
|
|
|
|
// console.log(canvasTripwire6.getObjects());
|
|
|
|
|
// console.log("--------------------------");
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (typeof canvasTripwire7 !== 'undefined') { |
|
|
|
|
// console.log(canvasTripwire7.getObjects());
|
|
|
|
|
//Clear all objects
|
|
|
|
|
while (canvasTripwire7.getObjects().length > max_protected_objects) { |
|
|
|
|
var items = canvasTripwire7.getObjects(); |
|
|
|
|
@ -4479,9 +4517,12 @@ function RefreshCanvasObject(max_protected_objects) {
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
canvasTripwire7.getObjects()[0].stroke = "#ffff00"; |
|
|
|
|
// console.log(canvasTripwire7.getObjects());
|
|
|
|
|
// console.log("--------------------------");
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (typeof canvasTripwire8 !== 'undefined') { |
|
|
|
|
// console.log(canvasTripwire8.getObjects());
|
|
|
|
|
//Clear all objects
|
|
|
|
|
while (canvasTripwire8.getObjects().length > max_protected_objects) { |
|
|
|
|
var items = canvasTripwire8.getObjects(); |
|
|
|
|
@ -4490,20 +4531,27 @@ function RefreshCanvasObject(max_protected_objects) {
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
canvasTripwire8.getObjects()[0].stroke = "#ffff00"; |
|
|
|
|
// console.log(canvasTripwire8.getObjects());
|
|
|
|
|
// console.log("--------------------------");
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (typeof canvasTripwire_all !== 'undefined') { |
|
|
|
|
// console.log("click_canvas_all:", click_canvas_all);
|
|
|
|
|
// console.log(canvasTripwire_all.getObjects());
|
|
|
|
|
//Clear all objects
|
|
|
|
|
while (canvasTripwire_all.getObjects().length > click_canvas_all) { |
|
|
|
|
var items = canvasTripwire_all.getObjects(); |
|
|
|
|
if (items[canvasTripwire_all.getObjects().length - 1]) { |
|
|
|
|
canvasTripwire_all.remove(items[canvasTripwire_all.getObjects().length - 1]); |
|
|
|
|
} |
|
|
|
|
// canvasTripwire_all.remove(items[canvasTripwire_all.getObjects().length - 1]);
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
for (var index_click = 0; index_click < click_canvas_all; index_click++) { |
|
|
|
|
canvasTripwire_all.getObjects()[index_click].stroke = "#ffff00"; |
|
|
|
|
} |
|
|
|
|
// console.log(canvasTripwire_all.getObjects());
|
|
|
|
|
// console.log("--------------------------");
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -4582,6 +4630,7 @@ function GetRequest_WebSocket() {
|
|
|
|
|
//console.log("WebSocket is supported by your Browser!");
|
|
|
|
|
//console.log(navigator.userAgent);
|
|
|
|
|
// Let us open a web socket
|
|
|
|
|
|
|
|
|
|
if ( navigator.userAgent.indexOf( "nvr_auth=" ) != -1 ) |
|
|
|
|
ws = new WebSocket("ws://" + window.location.hostname + ":" + GetUrlPort() + "/getalarmmotion?" + navigator.userAgent ); |
|
|
|
|
else |
|
|
|
|
@ -4666,6 +4715,7 @@ function GetRequest_WebSocket() {
|
|
|
|
|
//console.log("WebSocket NOT supported by your Browser!");
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* |
|
|
|
|
function reConnect() {
|
|
|
|
|
//console.log("socket 連線斷開,正在嘗試重新建立連線");
|
|
|
|
|
@ -4720,6 +4770,8 @@ function GetRequest_Http() {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function func_set_coldobjects(object_x, object_y, object_w, object_h, object_name) { |
|
|
|
|
//console.log(`[func_set_coldobjects] obj x:${object_x} , y:${object_y} , w:${object_w} , h:${object_h} , name:${object_name}`);
|
|
|
|
|
|
|
|
|
|
$.ajax({ |
|
|
|
|
url: "/setconfig?coldobjects&x=" + object_x + "&y=" + object_y + "&w=" + object_w + "&h=" + object_h + "&Object=" + object_name, |
|
|
|
|
method: "GET", |
|
|
|
|
@ -4834,7 +4886,6 @@ function func_translate_name(translate_name) {
|
|
|
|
|
var label_names_zh_tw = data_zh_tw[key]; |
|
|
|
|
var label_names_ja_jp = data_ja_jp[key]; |
|
|
|
|
var label_names_it_it = data_it_it[key]; |
|
|
|
|
|
|
|
|
|
if (localStorage.getItem("events_default_version") != null && localStorage.getItem("events_default_version") == "4") { |
|
|
|
|
if (translate_name == "person") { |
|
|
|
|
if (G_LANG == "zh_tw") |
|
|
|
|
@ -4873,7 +4924,6 @@ function func_translate_name(translate_name) {
|
|
|
|
|
else if (G_LANG == "it_it") |
|
|
|
|
translate_name = label_names_it_it; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
@ -5321,3 +5371,119 @@ function func_changeColorBarMinMax(tofInfo) {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 11-01
|
|
|
|
|
var defaultPolygonColor = "#ffff00"; // 預設色號 亮黃色的 Zone
|
|
|
|
|
var alarmColor = "#ff0000"; // 觸發 禁區、違停、警戒線 事件時,顯示紅色的 Zone ( Polygon )
|
|
|
|
|
var defaultZoneAlarmStatus = {'behavior_id': 0, 'red_zone': 0, 'time_stamp': 0}; |
|
|
|
|
var g_zoneAlarmStatus = func_initZoneAlarmStatus(defaultZoneAlarmStatus); |
|
|
|
|
var g_zoneAlarmColorDisplayTime = 2; // Unit : second
|
|
|
|
|
|
|
|
|
|
function func_checkZoneColor() |
|
|
|
|
{ |
|
|
|
|
// console.log("g_zoneAlarmStatus: ", g_zoneAlarmStatus);
|
|
|
|
|
|
|
|
|
|
var currentTimeDiff = null; |
|
|
|
|
var zoneColor = defaultPolygonColor; |
|
|
|
|
for (var zoneIndex = 0; zoneIndex < MAX_DETECTION_ZONE; zoneIndex++) |
|
|
|
|
{ |
|
|
|
|
zoneColor = defaultPolygonColor; |
|
|
|
|
|
|
|
|
|
if (g_zoneAlarmStatus[zoneIndex]['time_stamp'] > 0) |
|
|
|
|
{ |
|
|
|
|
currentTimeDiff = new Date().getTime() - g_zoneAlarmStatus[zoneIndex]['time_stamp']; |
|
|
|
|
if (currentTimeDiff > (g_zoneAlarmColorDisplayTime * 1000)) |
|
|
|
|
{ |
|
|
|
|
// console.log(`[func_checkZoneColor] reset g_zoneAlarmStatus[${zoneIndex}]`);
|
|
|
|
|
|
|
|
|
|
g_zoneAlarmStatus[zoneIndex]['behavior_id'] = 0; |
|
|
|
|
g_zoneAlarmStatus[zoneIndex]['red_zone'] = 0; |
|
|
|
|
g_zoneAlarmStatus[zoneIndex]['time_stamp'] = 0; |
|
|
|
|
} // else 的 zone 仍在顯示時間內,仰賴 red_zone 賦予警報顏色
|
|
|
|
|
|
|
|
|
|
if (g_zoneAlarmStatus[zoneIndex]['red_zone'] == 1)
|
|
|
|
|
{ |
|
|
|
|
zoneColor = alarmColor; |
|
|
|
|
} // else 的 zone 應是剛被 reset 狀態值的,以預設顏色顯示
|
|
|
|
|
|
|
|
|
|
} // else 是 時間戳被歸零的 以預設顏色顯示
|
|
|
|
|
|
|
|
|
|
// console.log(`[func_checkZoneColor] check zone ${(zoneIndex+1)} color:${zoneColor}`);
|
|
|
|
|
|
|
|
|
|
// check all zone
|
|
|
|
|
// console.log("check show_all_zone: ", show_all_zone);
|
|
|
|
|
if (show_all_zone == 0)
|
|
|
|
|
{ |
|
|
|
|
// check which canvas is active
|
|
|
|
|
try
|
|
|
|
|
{ |
|
|
|
|
window["canvasTripwire"+(zoneIndex+1)].getObjects()[0].stroke = zoneColor; |
|
|
|
|
} |
|
|
|
|
catch (error) |
|
|
|
|
{ |
|
|
|
|
console.log(error); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
if (zoneIndex < count_zone) { |
|
|
|
|
// console.log(`[func_checkZoneColor] activeZoneIndex: ${zoneIndex}`);
|
|
|
|
|
canvasTripwire_all.getObjects()[zoneIndex].stroke = zoneColor; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function func_checkTriggerZoneStatus(behavior_id) |
|
|
|
|
{ |
|
|
|
|
// console.log("checked_trigger_events:");
|
|
|
|
|
// console.log(checked_trigger_events);
|
|
|
|
|
|
|
|
|
|
//var trigger_index = null;
|
|
|
|
|
|
|
|
|
|
/*if (behavior_id == 1) // 禁區 |
|
|
|
|
{
|
|
|
|
|
trigger_index = 0; |
|
|
|
|
} |
|
|
|
|
else if (behavior_id == 4) // 違停
|
|
|
|
|
{
|
|
|
|
|
trigger_index = 1; |
|
|
|
|
} |
|
|
|
|
else if (behavior_id == 8) // 警戒線
|
|
|
|
|
{
|
|
|
|
|
trigger_index = 4; |
|
|
|
|
}*/ |
|
|
|
|
|
|
|
|
|
for (var zoneIndex = 0; zoneIndex < MAX_DETECTION_ZONE; zoneIndex++) { |
|
|
|
|
for (var trigger_index = 0; trigger_index < MAX_SIZE_IDC_LIST_TRIGGER_EVENTS; trigger_index++) { |
|
|
|
|
if (checked_trigger_events[zoneIndex][trigger_index] == 1) { |
|
|
|
|
if (g_zoneAlarmStatus[zoneIndex]['time_stamp'] == 0) { |
|
|
|
|
g_zoneAlarmStatus[zoneIndex]['behavior_id'] = behavior_id; |
|
|
|
|
g_zoneAlarmStatus[zoneIndex]['time_stamp'] = new Date().getTime(); |
|
|
|
|
// console.log(`[func_checkTriggerZoneStatus] init g_zoneAlarmStatus[${zoneIndex}]['time_stamp']:${g_zoneAlarmStatus[zoneIndex]['time_stamp']}`);
|
|
|
|
|
g_zoneAlarmStatus[zoneIndex]['red_zone'] = 1; |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// console.log("[func_checkTriggerZoneStatus] check g_zoneAlarmStatus:");
|
|
|
|
|
// console.log(g_zoneAlarmStatus);
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function func_initZoneAlarmStatus(defaultValue) |
|
|
|
|
{ |
|
|
|
|
var array = []; |
|
|
|
|
for (var i = 0; i < MAX_DETECTION_ZONE; i++)
|
|
|
|
|
{ |
|
|
|
|
// 確保每個元素都是一個新的副本,避免不同 Zone 紀載不同行為時互相干擾狀態值
|
|
|
|
|
array.push(JSON.parse(JSON.stringify(defaultValue))); |
|
|
|
|
} |
|
|
|
|
return array; |
|
|
|
|
} |