From 7c5ced0604e2ad52e67466ce612aa9fe92203c39 Mon Sep 17 00:00:00 2001 From: ko1234 Date: Fri, 25 Apr 2025 17:38:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=B3=E6=99=82=E5=8A=9F=E7=8E=87=E3=80=81?= =?UTF-8?q?=E5=8D=B3=E6=99=82=E5=A5=91=E7=B4=84=E5=AE=B9=E9=87=8F=E5=8D=A0?= =?UTF-8?q?=E6=AF=94=20=E9=A1=AF=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- js/n4js/bajatest.js | 221 ++++++++++++++++++++++---------------------- 1 file changed, 113 insertions(+), 108 deletions(-) diff --git a/js/n4js/bajatest.js b/js/n4js/bajatest.js index 72b80d9..f2c3e82 100644 --- a/js/n4js/bajatest.js +++ b/js/n4js/bajatest.js @@ -205,7 +205,7 @@ class subscriptionDevices { _this.changeCallback(modify_target_device, true); //第2參數用在平面圖,刷新畫面 baja.Ord.make( `local:|foxs:${port}|station:|` + - this.getDisplay("slotPath") + this.getDisplay("slotPath") ) .get() .then(function (component) { @@ -340,7 +340,7 @@ class subscriptionDevices { $("#sub-end").html(subFinish.toISOString()); $("#sub-time").html( (subFinish.getTime() - subStart.getTime()) / 1000 + - "sec" + "sec" ); // console.log("訂閱完成時間", (subFinish.getTime() - subStart.getTime()) / 1000 + "sec"); }); @@ -945,10 +945,11 @@ function BajaSubscribeElectricmeterByBql( if (prop.getName() === "out") { var out_value = this.getOutDisplay(); var target_device_number = this.$parent - .getDisplayName() + .getName() .split("_") .slice(0, 5) .join("_"); + var point_name = this.getDisplayName(); //依據Facets判斷回傳的內容值為何 @@ -1001,117 +1002,121 @@ function BajaSubscribeElectricmeterByBql( ); //使用bql語法 - console.log( - `local:|foxs:${port}|station:|slot:/${ordPathForElectricmeter.devicePath}|bql:select name, out, out.value, slotPath, facets from control:ControlPoint` - ); + console.log( + `local:|foxs:${port}|station:|slot:/${ordPathForElectricmeter.devicePath}|bql:select name, out, out.value, slotPath, facets from control:ControlPoint` + ); baja.Ord.make( `local:|foxs:${port}|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; + ) + .get() + .then(function (table) { + console.log('table',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"); + 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:${port}|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"); + //依據Facets判斷回傳的內容值為何 + var facets_split = facets.split(","); + var facets_arr = []; + facets_split.forEach(function (item, index) { + facets_arr.push(item.split("=")); }); - }, - after: function () { - tableFinish = new Date(Date.now()); - if (callback !== null) { - callback(totalTargetDevice); - } - 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, + + 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:${port}|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 (callback !== null) { + callback(totalTargetDevice); + } + 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, + }); }); - }); }); }