ibms-dome/Frontend/js/n4js/bajatest.js

840 lines
42 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

let baja_subscribe_device_callback_func; //設定BQL訂閱之後要回傳的Function
let baja_subscribe_end_device_callback_func; //設定BQL訂閱結束之後要回傳的Function
//let baja_my_user_account_func; //取得帳號資料要回傳的Function
var ordPath; //當前點選選單的tag用來抓出設備路徑例如:旅館棟->H消防偵煙器->F3
let baja_subscribe_alarm_callback_func; //設定 alarm BQL訂閱之後要回傳的Function
let baja_subscribe_end_alarm_callback_func; //設定 alarm BQL訂閱結束之後要回傳的Function
var ordPathForAlarm; //當前點選選單的tag用來抓出alarm路徑
let baja_subscribe_electricmeter_callback_func;
let baja_subscribe_end_electricmeter_callback_func;
var ordPathForElectricmeter;
var startPageLoading; // 開始 loading
var endPageLoading; // 開始 loading
//window.baja = null;
//require(['baja!'], function (baja) {
// window.baja = baja;
//})
window.tolSubList = [];
var user_name = "";
class subscriptionDevices {
constructor() {
this.ordPath = {};
this.changeCallback = null;
this.changeEndCallback = null;
}
setSubscribeDevicesByBql = function (tempOrdPath) {
this.ordPath = tempOrdPath;
this.BajaSubscribeDevicesByBql();
};
setSubscribeDevicesCallBack = function (callBackFunc) {
// console.log(callBackFunc)
if (callBackFunc != undefined && callBackFunc != null) {
this.changeCallback = callBackFunc;
}
}
// BQL訂閱結束回傳的Function
setSubscribeDeviceEndCallBack = function (callBackFunc) {
if (callBackFunc != undefined && callBackFunc != null) {
this.changeEndCallback = callBackFunc;
}
}
BajaSubscribeDevicesByBql = function () {
let _this = this;
require(['baja!'], function (baja) {
console.log("進入Function 準備執行BQL訂閱");
startPageLoading ? startPageLoading() : ""
var init_start = new Date(Date.now());
var sub = new baja.Subscriber();
sub.attach('changed', function (prop) {
// console.log(prop)
// console.log(prop.getName())
if (prop.getName() === 'out') {
var out_value = this.getOutDisplay();
var target_device_number = this.$parent.getDisplayName().split('_').slice(0, 5).join('_');
var point_name = this.getDisplayName();
//依據Facets判斷回傳的內容值為何
var facets_split = this.getFacets1().$cEncStr.split('|');
var facets_arr = [];
facets_split.forEach(function (item, index) {
facets_arr.push(item.split('=s:'));
});
var facets = facets_arr.reduce((obj, cur) => ({ ...obj, [cur[0]]: cur[1] }), {})
var point_out_split = this.getOutDisplay().split(' ');
let key = Object.keys(facets).find(k => facets[k] === point_out_split[0]);
if (key == undefined) {
key = point_out_split[0];
}
var modify_target_device = {
"device_number": target_device_number ? target_device_number : null,
"device_number_full": this.$parent.getSlotPath().$names.join("_"),
"point_name": point_name ? point_name : null,
"value": key
}
if (_this.changeCallback != undefined && _this.changeCallback != null) {
_this.changeCallback(modify_target_device, true); //第2參數用在平面圖刷新畫面
}
}
}, function (err) {
console.log(err)
});
//使用bql語法
// var building_tag = "H";
// var system_tag = "M10";
// baja.Ord.make(`ip:greencloud.fic.com.tw|foxs:|station:|slot:/Arena/${building_tag}/${system_tag}|bql:select name, displayname, slotPath, out.value, out from control:ControlPoint`)
console.log(`local:|foxs:|station:|slot:/${_this.ordPath.area_tag}/${_this.ordPath.building_tag}/${_this.ordPath.system_tag}/${_this.ordPath.name_tag}|bql:select name, displayname, slotPath, out.value, out, facets from control:ControlPoint`);
baja.Ord.make(`local:|foxs:|station:|slot:/${_this.ordPath.area_tag}/${_this.ordPath.building_tag}/${_this.ordPath.system_tag}/${_this.ordPath.name_tag}|bql:select name, displayname, slotPath, out.value, out, facets from control:ControlPoint`)
.get(
function (table) {
var tableStart, tableFinish;
var subStart, subFinish;
var component_index = 0;
var total_component_index = 0;
var totalTargetDevice = [];
var readBqlFinish = new Date(Date.now());
// $("#readPath-finish-timestamp").html(readBqlFinish.toISOString());
// $("#readPath-finish-time").html((readBqlFinish.getTime() - init_start.getTime()) / 1000 + "sec");
console.log("讀取路徑完成-花費時間", (readBqlFinish.getTime() - init_start.getTime()) / 1000 + "sec");
table.cursor({
before: function () {
totalTargetDevice = [];
tableStart = new Date(Date.now());
$("#table-start-timestamp").html(tableStart.toISOString());
},
each: function (item, index) {
if (index < 1) {
subStart = new Date(Date.now());
$("#sub-start").html(subStart.toISOString());
}
$("#sub-number").html(index + 1);
total_component_index = index;
var target_device_number_split = this.getDisplay("slotPath").split('/');
var target_device_number = target_device_number_split[8];
//console.log(target_device_number);
var point_name = this.getDisplay("name");
var facets = this.getDisplay("facets");
//依據Facets判斷回傳的內容值為何
var facets_split = facets.split(',');
var facets_arr = [];
facets_split.forEach(function (item, index) {
facets_arr.push(item.split('='));
});
facets = facets_arr.reduce((obj, cur) => ({ ...obj, [cur[0]]: cur[1] }), {})
var point_out_split = this.getDisplay("out").split(' ');
let key = Object.keys(facets).find(k => facets[k] === point_out_split[0]);
if (key == undefined) {
key = point_out_split[0];
}
var modify_target_device = {
"device_number": target_device_number ? target_device_number : null,
"device_number_full": this.getDisplay("slotPath").split("slot:")[1].split('/').slice(1, -1).join("_"),
"point_name": point_name ? point_name : null,
"value": key
}
totalTargetDevice.push(modify_target_device);
//取得component當下就更新設備點位
if (_this.changeCallback != undefined && _this.changeCallback != null) {
_this.changeCallback(modify_target_device);
}
baja.Ord.make("local:|foxs:|station:|" + this.getDisplay("slotPath"))
.get()
.then(function (component) {
component_index++;
var target_device_number = component.$parent.getDisplayName().split('_').slice(0, 5).join('_');
// console.log(component, component.getDisplayName())
var point_name = component.getDisplayName();
// //依據Facets判斷回傳的內容值為何
// var facets_split = component.getFacets1().$cEncStr.split('|');
// var facets_arr = [];
// facets_split.forEach(function (item, index) {
// facets_arr.push(item.split('=s:'));
// });
// var facets = facets_arr.reduce((obj, cur) => ({ ...obj, [cur[0]]: cur[1] }), {})
// var point_out_split = component.getOutDisplay().split(' ');
// let key = Object.keys(facets).find(k => facets[k] === point_out_split[0]);
// if (key == undefined) {
// key = point_out_split[0];
// }
// var modify_target_device = {
// "device_number": target_device_number ? target_device_number : null,
// "point_name": point_name ? point_name : null,
// "value": key
// }
// //取得component當下就更新設備點位
// if (baja_subscribe_device_callback_func != undefined && baja_subscribe_device_callback_func != null) {
// if (component_index == total_component_index) {
// baja_subscribe_device_callback_func(modify_target_device, true);
// }
// else {
// baja_subscribe_device_callback_func(modify_target_device);
// }
// }
sub.subscribe({
comps: component,
});
tolSubList.push(sub);
subFinish = new Date(Date.now());
$("#sub-end").html(subFinish.toISOString());
$("#sub-time").html((subFinish.getTime() - subStart.getTime()) / 1000 + "sec");
// console.log("訂閱完成時間", (subFinish.getTime() - subStart.getTime()) / 1000 + "sec");
});
},
after: function () {
tableFinish = new Date(Date.now());
// $("#table-finish-timestamp").html(tableFinish.toISOString());
// $("#table-time").html((tableFinish.getTime() - tableStart.getTime()) / 1000 + "sec");
//取得component當下就更新設備點位
if (_this.changeEndCallback != undefined && _this.changeEndCallback != null) {
_this.changeEndCallback(totalTargetDevice);
}
endPageLoading ? endPageLoading() : ""
console.log("表格完成時間", (tableFinish.getTime() - tableStart.getTime()) / 1000 + "sec");
},
limit: -1,
offset: 0
});
});
})
}
}
//function subscriptionDevices() {
// // 用BQL的方式去訂閱
// this.setSubscribeDevicesByBql = function (tempOrdPath) {
// ordPath = tempOrdPath;
// BajaSubscribeDevicesByBql();
// };
// // BQL去訂閱回傳的Function
// this.setSubscribeDevicesCallBack = function (callBackFunc) {
// if (callBackFunc != undefined && callBackFunc != null) {
// baja_subscribe_device_callback_func = callBackFunc;
// }
// }
// // BQL訂閱結束回傳的Function
// this.setSubscribeDeviceEndCallBack = function (callBackFunc) {
// if (callBackFunc != undefined && callBackFunc != null) {
// baja_subscribe_end_device_callback_func = callBackFunc;
// }
// }
//}
function subscriptionAlarms() {
// 用BQL的方式去訂閱
this.setSubscribeAlarmsByBql = function (tempOrdPath) {
BajaSubscribeAlarmsByBql(tempOrdPath);
};
// BQL去訂閱回傳的Function
this.setSubscribeAlarmsCallBack = function (callBackFunc) {
if (callBackFunc != undefined && callBackFunc != null) {
baja_subscribe_alarm_callback_func = callBackFunc;
}
}
// BQL訂閱結束回傳的Function
this.setSubscribeAlarmEndCallBack = function (callBackFunc) {
if (callBackFunc != undefined && callBackFunc != null) {
baja_subscribe_end_alarm_callback_func = callBackFunc;
}
}
}
function subscriptionElectricmeter() {
// 用BQL的方式去訂閱
this.setSubscribeElectricmeterByBql = function (tempOrdPath) {
BajaSubscribeElectricmeterByBql(tempOrdPath);
};
// BQL去訂閱回傳的Function
this.setSubscribeElectricmeterCallBack = function (callBackFunc) {
if (callBackFunc != undefined && callBackFunc != null) {
baja_subscribe_electricmeter_callback_func = callBackFunc;
}
}
// BQL訂閱結束回傳的Function
this.setSubscribeElectricmeterEndCallBack = function (callBackFunc) {
if (callBackFunc != undefined && callBackFunc != null) {
baja_subscribe_end_electricmeter_callback_func = callBackFunc;
}
}
}
function MyBaja() {
// 取得使用者帳號
this.setMyUserAccount = function (callBackFunc = null) {
require(['baja!'], function (baja) {
user_name = baja.getUserName();
callBackFunc ? callBackFunc(user_name) : "";
});
};
}
/**
* 使用者透過BQL指定路徑去訂閱設備點位
*/
//function BajaSubscribeDevicesByBql() {
// require(['baja!'], function (baja) {
// console.log("進入Function 準備執行BQL訂閱");
// startPageLoading ? startPageLoading() : ""
// var init_start = new Date(Date.now());
// var sub = new baja.Subscriber();
// sub.attach('changed', function (prop) {
// if (prop.getName() === 'out') {
// var out_value = this.getOutDisplay();
// var target_device_number = this.$parent.getDisplayName().split('_').slice(0, 5).join('_');
// var point_name = this.getDisplayName();
// //依據Facets判斷回傳的內容值為何
// var facets_split = this.getFacets1().$cEncStr.split('|');
// var facets_arr = [];
// facets_split.forEach(function (item, index) {
// facets_arr.push(item.split('=s:'));
// });
// var facets = facets_arr.reduce((obj, cur) => ({ ...obj, [cur[0]]: cur[1] }), {})
// var point_out_split = this.getOutDisplay().split(' ');
// let key = Object.keys(facets).find(k => facets[k] === point_out_split[0]);
// if (key == undefined) {
// key = point_out_split[0];
// }
// var modify_target_device = {
// "device_number": target_device_number ? target_device_number : null,
// "device_number_full": this.$parent.getSlotPath().$names.join("_"),
// "point_name": point_name ? point_name : null,
// "value": key
// }
// if (baja_subscribe_device_callback_func != undefined && baja_subscribe_device_callback_func != null) {
// baja_subscribe_device_callback_func(modify_target_device, true); //第2參數用在平面圖刷新畫面
// }
// }
// }, function (err) {
// console.log(err)
// });
// //使用bql語法
// // var building_tag = "H";
// // var system_tag = "M10";
// // baja.Ord.make(`ip:greencloud.fic.com.tw|foxs:|station:|slot:/Arena/${building_tag}/${system_tag}|bql:select name, displayname, slotPath, out.value, out from control:ControlPoint`)
// console.log(`local:|foxs:|station:|slot:/${_this.ordPath.area_tag}/${ordPath.building_tag}/${ordPath.system_tag}/${ordPath.name_tag}|bql:select name, displayname, slotPath, out.value, out, facets from control:ControlPoint`);
// baja.Ord.make(`local:|foxs:|station:|slot:/${_this.ordPath.area_tag}/${ordPath.building_tag}/${ordPath.system_tag}/${ordPath.name_tag}|bql:select name, displayname, slotPath, out.value, out, facets from control:ControlPoint`)
// .get(
// function (table) {
// var tableStart, tableFinish;
// var subStart, subFinish;
// var component_index = 0;
// var total_component_index = 0;
// var totalTargetDevice = [];
// var readBqlFinish = new Date(Date.now());
// // $("#readPath-finish-timestamp").html(readBqlFinish.toISOString());
// // $("#readPath-finish-time").html((readBqlFinish.getTime() - init_start.getTime()) / 1000 + "sec");
// console.log("讀取路徑完成-花費時間", (readBqlFinish.getTime() - init_start.getTime()) / 1000 + "sec");
// table.cursor({
// before: function () {
// totalTargetDevice = [];
// tableStart = new Date(Date.now());
// $("#table-start-timestamp").html(tableStart.toISOString());
// render_start = new Date(Date.now());
// },
// each: function (item, index) {
// if (index < 1) {
// subStart = new Date(Date.now());
// $("#sub-start").html(subStart.toISOString());
// }
// $("#sub-number").html(index + 1);
// total_component_index = index;
// var target_device_number_split = this.getDisplay("slotPath").split('/');
// var target_device_number = target_device_number_split[8];
// //console.log(target_device_number);
// var point_name = this.getDisplay("name");
// var facets = this.getDisplay("facets");
// //依據Facets判斷回傳的內容值為何
// var facets_split = facets.split(',');
// var facets_arr = [];
// facets_split.forEach(function (item, index) {
// facets_arr.push(item.split('='));
// });
// facets = facets_arr.reduce((obj, cur) => ({ ...obj, [cur[0]]: cur[1] }), {})
// var point_out_split = this.getDisplay("out").split(' ');
// let key = Object.keys(facets).find(k => facets[k] === point_out_split[0]);
// if (key == undefined) {
// key = point_out_split[0];
// }
// var modify_target_device = {
// "device_number": target_device_number ? target_device_number : null,
// "device_number_full": this.getDisplay("slotPath").split("slot:")[1].split('/').slice(1, -1).join("_"),
// "point_name": point_name ? point_name : null,
// "value": key
// }
// totalTargetDevice.push(modify_target_device);
// //取得component當下就更新設備點位
// if (baja_subscribe_device_callback_func != undefined && baja_subscribe_device_callback_func != null) {
// baja_subscribe_device_callback_func(modify_target_device);
// }
// baja.Ord.make("local:|foxs:|station:|" + this.getDisplay("slotPath"))
// .get()
// .then(function (component) {
// component_index++;
// var target_device_number = component.$parent.getDisplayName().split('_').slice(0, 5).join('_');
// var point_name = component.getDisplayName();
// // //依據Facets判斷回傳的內容值為何
// // var facets_split = component.getFacets1().$cEncStr.split('|');
// // var facets_arr = [];
// // facets_split.forEach(function (item, index) {
// // facets_arr.push(item.split('=s:'));
// // });
// // var facets = facets_arr.reduce((obj, cur) => ({ ...obj, [cur[0]]: cur[1] }), {})
// // var point_out_split = component.getOutDisplay().split(' ');
// // let key = Object.keys(facets).find(k => facets[k] === point_out_split[0]);
// // if (key == undefined) {
// // key = point_out_split[0];
// // }
// // var modify_target_device = {
// // "device_number": target_device_number ? target_device_number : null,
// // "point_name": point_name ? point_name : null,
// // "value": key
// // }
// // //取得component當下就更新設備點位
// // if (baja_subscribe_device_callback_func != undefined && baja_subscribe_device_callback_func != null) {
// // if (component_index == total_component_index) {
// // baja_subscribe_device_callback_func(modify_target_device, true);
// // }
// // else {
// // baja_subscribe_device_callback_func(modify_target_device);
// // }
// // }
// sub.subscribe({
// comps: component,
// });
// tolSubList.push(sub);
// subFinish = new Date(Date.now());
// $("#sub-end").html(subFinish.toISOString());
// $("#sub-time").html((subFinish.getTime() - subStart.getTime()) / 1000 + "sec");
// // console.log("訂閱完成時間", (subFinish.getTime() - subStart.getTime()) / 1000 + "sec");
// });
// },
// after: function () {
// tableFinish = new Date(Date.now());
// // $("#table-finish-timestamp").html(tableFinish.toISOString());
// // $("#table-time").html((tableFinish.getTime() - tableStart.getTime()) / 1000 + "sec");
// //取得component當下就更新設備點位
// if (baja_subscribe_end_device_callback_func != undefined && baja_subscribe_end_device_callback_func != null) {
// baja_subscribe_end_device_callback_func(totalTargetDevice);
// }
// endPageLoading ? endPageLoading() : ""
// console.log("表格完成時間", (tableFinish.getTime() - tableStart.getTime()) / 1000 + "sec");
// },
// limit: -1,
// offset: 0
// });
// });
// })
//}
/**
* 使用者透過BQL指定路徑去訂閱Alarm
*/
function BajaSubscribeAlarmsByBql(ordPathForAlarm) {
require(['baja!'], function (baja) {
console.log("進入Function 準備執行BQL訂閱");
var init_start = new Date(Date.now());
var sub = new baja.Subscriber();
startPageLoading ? startPageLoading() : ""
sub.attach('changed', function (prop) {
if (prop.getName() === 'out') {
var sourceState = (this.$map.$map.in10.$val.$map.$map.value.$display) == 'true' ? "Offnormal" : "Normal";
var modify_target_device = {
"system": ordPathForAlarm.area_tag + "_" + ordPathForAlarm.building_tag + "_" + ordPathForAlarm.system_tag + "_" + ordPathForAlarm.name_tag,
"sourceState": sourceState ? sourceState : null
}
if (baja_subscribe_alarm_callback_func != undefined && baja_subscribe_alarm_callback_func != null) {
baja_subscribe_alarm_callback_func(modify_target_device);
}
}
});
//使用bql語法
// console.log(`local:|foxs:|alarm:|bql:select top 1 timestamp, sourceState, normalTime where alarmData.sourceName like '%${ordPathForAlarm.area_tag}_${ordPathForAlarm.building_tag}_${ordPathForAlarm.system_tag}_${ordPathForAlarm.name_tag}_%' order by timestamp desc`);
baja.Ord.make(`local:|foxs:|alarm:|bql:select top 1 timestamp, sourceState, alarmData, alarmData.sourceName, normalTime where alarmData.sourceName like '%${ordPathForAlarm.area_tag}_${ordPathForAlarm.building_tag}_${ordPathForAlarm.system_tag}_${ordPathForAlarm.name_tag}_%' order by timestamp desc`)
.get(
function (table) {
var tableStart, tableFinish;
var subStart, subFinish;
var totalTargetDevice = [];
var component_index = 0;
var total_component_index = 0;
var readBqlFinish = new Date(Date.now());
console.log("讀取路徑完成-花費時間", (readBqlFinish.getTime() - init_start.getTime()) / 1000 + "sec");
table.cursor({
before: function () {
totalTargetDevice = [];
tableStart = new Date(Date.now());
render_start = new Date(Date.now());
},
each: function (item, index) {
if (index < 1) {
subStart = new Date(Date.now());
}
total_component_index = index;
var sourceState = this.getDisplay("sourceState");
//var sourceName = (item.$map.$map.alarmData$2esourceName.$display).replace('_', '/');
var sourceNameArray = (item.$map.$map.alarmData$2esourceName.$display).split('_');
var slotPath = sourceNameArray[0] + "/" + sourceNameArray[1] + "/" + sourceNameArray[2] + "/" + sourceNameArray[3] + "/" + sourceNameArray[4] + "/" + sourceNameArray[5] + "/" + sourceNameArray[6] + "/" + sourceNameArray[7] + "/" + sourceNameArray[8];
var normalTime = this.getDisplay("normalTime");
var modify_target_device = {
"system": ordPathForAlarm.area_tag + "_" + ordPathForAlarm.building_tag + "_" + ordPathForAlarm.system_tag + "_" + ordPathForAlarm.name_tag,
"sourceState": sourceState ? sourceState : null
}
totalTargetDevice.push(modify_target_device);
//取得component當下就更新設備點位
if (baja_subscribe_alarm_callback_func != undefined && baja_subscribe_alarm_callback_func != null) {
baja_subscribe_alarm_callback_func(modify_target_device);
}
baja.Ord.make("local:|foxs:|station:|slot:/" + slotPath)
.get()
.then(function (component) {
component_index++;
sub.subscribe({
comps: component,
});
subFinish = new Date(Date.now());
console.log("訂閱完成時間", (subFinish.getTime() - subStart.getTime()) / 1000 + "sec");
});
},
after: function () {
tableFinish = new Date(Date.now());
if (baja_subscribe_end_alarm_callback_func != undefined && baja_subscribe_end_alarm_callback_func != null) {
baja_subscribe_end_alarm_callback_func(totalTargetDevice);
}
endPageLoading ? endPageLoading() : ""
console.log("表格完成時間", (tableFinish.getTime() - tableStart.getTime()) / 1000 + "sec");
},
limit: -1,
offset: 0
});
});
});
}
/**
* 使用者透過BQL指定路徑去訂閱 electricmeter
*/
function BajaSubscribeElectricmeterByBql(ordPathForElectricmeter) {
require(['baja!'], function (baja) {
//console.log("進入Function 準備執行BQL訂閱");
startPageLoading ? startPageLoading() : ""
var init_start = new Date(Date.now());
var sub = new baja.Subscriber();
sub.attach('changed', function (prop) {
if (prop.getName() === 'out') {
var out_value = this.getOutDisplay();
var target_device_number = this.$parent.getDisplayName().split('_').slice(0, 5).join('_');
var point_name = this.getDisplayName();
//依據Facets判斷回傳的內容值為何
var facets_split = this.getFacets1().$cEncStr.split('|');
var facets_arr = [];
facets_split.forEach(function (item, index) {
facets_arr.push(item.split('=s:'));
});
var facets = facets_arr.reduce((obj, cur) => ({ ...obj, [cur[0]]: cur[1] }), {})
var point_out_split = this.getOutDisplay().split(' ');
let key = Object.keys(facets).find(k => facets[k] === point_out_split[0]);
if (key == undefined) {
key = point_out_split[0];
}
var modify_target_device = {
"device_number": target_device_number ? target_device_number : null,
//"device_number_full": this.$parent.getSlotPath().$names.join("_"),
"point_name": point_name ? point_name : null,
"value": key
}
if (baja_subscribe_electricmeter_callback_func != undefined && baja_subscribe_electricmeter_callback_func != null) {
baja_subscribe_electricmeter_callback_func(modify_target_device, true); //第2參數用在平面圖刷新畫面
}
}
}, function (err) {
console.log(err)
});
//使用bql語法
// console.log(`local:|foxs:|station:|slot:/${ordPathForElectricmeter.devicePath}|bql:select name, out, out.value, slotPath, facets from control:ControlPoint`);
baja.Ord.make(`local:|foxs:|station:|slot:/${ordPathForElectricmeter.devicePath}|bql:select name, out, out.value, slotPath, facets from control:ControlPoint`)
.get(
function (table) {
var tableStart, tableFinish;
var subStart, subFinish;
var component_index = 0;
var total_component_index = 0;
var totalTargetDevice = [];
var readBqlFinish = new Date(Date.now());
//console.log("讀取路徑完成-花費時間", (readBqlFinish.getTime() - init_start.getTime()) / 1000 + "sec");
table.cursor({
before: function () {
totalTargetDevice = [];
tableStart = new Date(Date.now());
$("#table-start-timestamp").html(tableStart.toISOString());
render_start = new Date(Date.now());
},
each: function (item, index) {
if (index < 1) {
subStart = new Date(Date.now());
$("#sub-start").html(subStart.toISOString());
}
$("#sub-number").html(index + 1);
total_component_index = index;
var target_device_number_split = this.getDisplay("slotPath").split('/');
var target_device_number = target_device_number_split[8];
//console.log(target_device_number);
var point_name = this.getDisplay("name");
var facets = this.getDisplay("facets");
//依據Facets判斷回傳的內容值為何
var facets_split = facets.split(',');
var facets_arr = [];
facets_split.forEach(function (item, index) {
facets_arr.push(item.split('='));
});
facets = facets_arr.reduce((obj, cur) => ({ ...obj, [cur[0]]: cur[1] }), {})
var point_out_split = this.getDisplay("out").split(' ');
let key = Object.keys(facets).find(k => facets[k] === point_out_split[0]);
if (key == undefined) {
key = point_out_split[0];
}
var modify_target_device = {
"device_number": target_device_number ? target_device_number : null,
//"device_number_full": this.getDisplay("slotPath").split("slot:")[1].split('/').slice(1, -1).join("_"),
"point_name": point_name ? point_name : null,
"value": key
}
totalTargetDevice.push(modify_target_device);
//取得component當下就更新設備點位
if (baja_subscribe_electricmeter_callback_func != undefined && baja_subscribe_electricmeter_callback_func != null) {
baja_subscribe_electricmeter_callback_func(modify_target_device);
}
baja.Ord.make("local:|foxs:|station:|" + this.getDisplay("slotPath"))
.get()
.then(function (component) {
component_index++;
//var target_device_number = component.$parent.getDisplayName().split('_').slice(0, 5).join('_');
//var point_name = component.getDisplayName();
sub.subscribe({
comps: component,
});
tolSubList.push(sub);
subFinish = new Date(Date.now());
$("#sub-end").html(subFinish.toISOString());
$("#sub-time").html((subFinish.getTime() - subStart.getTime()) / 1000 + "sec");
// console.log("訂閱完成時間", (subFinish.getTime() - subStart.getTime()) / 1000 + "sec");
});
},
after: function () {
tableFinish = new Date(Date.now());
if (baja_subscribe_end_electricmeter_callback_func != undefined && baja_subscribe_end_electricmeter_callback_func != null) {
baja_subscribe_end_electricmeter_callback_func(totalTargetDevice);
}
endPageLoading ? endPageLoading() : ""
//console.log("表格完成時間", (tableFinish.getTime() - tableStart.getTime()) / 1000 + "sec");
},
limit: -1,
offset: 0
});
});
})
}
// function getAlarmCountByBaja(callback) {
// var _result = "";
// var _index = 0;
// require(['baja!'], function (baja) {
// baja.Ord.make("local:|foxs:|alarm:|bql:select timestamp, ackState, alarmData, alarmData.sourceName, sourceState, uuid, alarmData.msgText, normalTime where sourceState = 'offnormal' order by timestamp desc").get()
// .then(function (table) {
// return table.cursor({
// each: function (record) {
// _index++;
// },
// after: function () {
// _result += '{' + '"count": ' + _index;
// _result += '}';
// if (typeof callback === 'function') {
// callback(_result);
// }
// },
// limit: -1,
// offset: 0
// });
// });
// });
// }
// /**
// * [首頁] 查詢復歸數量
// * @param {any} callback
// */
// function getRecoverCountByBaja(callback) {
// var _result = "";
// var _index = 0;
// require(['baja!'], function (baja) {
// baja.Ord.make("local:|foxs:|alarm:|bql:select timestamp, ackState, alarmData, alarmData.sourceName, sourceState, uuid, alarmData.msgText, normalTime where normalTime != null order by timestamp desc").get()
// .then(function (table) {
// return table.cursor({
// each: function (record) {
// _index++;
// },
// after: function () {
// _result += '{' + '"count": ' + _index;
// _result += '}';
// if (typeof callback === 'function') {
// callback(_result);
// }
// },
// limit: -1,
// offset: 0
// });
// });
// });
// }
// function getCheckedAckedCountByBaja(callback) {
// var _result = "";
// var _index = 0;
// require(['baja!'], function (baja) {
// baja.Ord.make("local:|foxs:|alarm:|bql:select timestamp, ackState, alarmClass, alarmClassDisplayName, alarmValue, alarmData, alarmData.sourceName, uuid, alarmData.msgText, alarmData.numericValue, alarmData.presentValue, alarmData.status, alarmData.toState, normalTime from openAlarms where ackState ='acked' order by timestamp asc").get()
// .then(function (table) {
// return table.cursor({
// each: function (record) {
// _index++;
// },
// after: function () {
// _result += '{' + '"count": ' + _index;
// _result += '}';
// if (typeof callback === 'function') {
// callback(_result);
// }
// },
// limit: -1,
// offset: 0
// });
// });
// });
// }
// function getUnCheckedAckedCountByBaja(callback) {
// var _result = "";
// var _index = 0;
// require(['baja!'], function (baja) {
// baja.Ord.make("local:|foxs:|alarm:|bql:select timestamp, ackState, alarmClass, alarmClassDisplayName, alarmValue, alarmData, alarmData.sourceName, uuid, alarmData.msgText, alarmData.numericValue, alarmData.presentValue, alarmData.status, alarmData.toState, normalTime from openAlarms where ackState ='unacked' order by timestamp asc").get()
// .then(function (table) {
// return table.cursor({
// each: function (record) {
// _index++;
// },
// after: function () {
// _result += '{' + '"count": ' + _index;
// _result += '}';
// if (typeof callback === 'function') {
// callback(_result);
// }
// },
// limit: -1,
// offset: 0
// });
// });
// });
// }