144 lines
6.7 KiB
JavaScript
144 lines
6.7 KiB
JavaScript
//測試3000點情況
|
|
|
|
require(['baja!'], function (baja) {
|
|
"use strict";
|
|
|
|
var init_start = new Date(Date.now())
|
|
$("#init-timestamp").html(init_start.toISOString());
|
|
|
|
var render_start, render_finish;
|
|
|
|
// A Subscriber is used to listen to Component events in Niagara.
|
|
var sub = new baja.Subscriber();
|
|
var sub2 = new baja.Subscriber();
|
|
|
|
// This shows a dialog. The function passed into 'showOk' is used to generate the dialog
|
|
// box's content.
|
|
|
|
// The 'update' method is called whenever the text needs to be updated.
|
|
function update(ramp) {
|
|
|
|
$("#update-point-name").html(ramp.getDisplayName());
|
|
$("#update-point-value").html(ramp.getOutDisplay());
|
|
|
|
console.log(`#${ramp.getDisplayName()}-value`)
|
|
$(`#${ramp.getDisplayName()}-value`).html(ramp.getOutDisplay());
|
|
}
|
|
|
|
// Called whenever the Ramp changes.
|
|
sub.attach('changed', function (prop) {
|
|
if (prop.getName() === 'out') { update(this); }
|
|
});
|
|
|
|
//使用bql語法
|
|
//baja.Ord.make('ip:greencloud.fic.com.tw|foxs:|station:|slot:/Arena/H/F3|bql:select name, displayname, slotPath, out.value, out from control:ControlPoint')
|
|
//baja.Ord.make('local:|foxs:|station:|slot:/TPE/B1/ME/M10/U1F/NA/TPE_B1_ME_M10_U1F_NA_FCU_N1|bql:select toPathString, name, displayname, slotPath, out.value, out from control:ControlPoint')
|
|
baja.Ord.make('local:|foxs:|station:|slot:/TPE/B1/EE/E4/R2F/NA/WHT/N1|bql:select toPathString, name, displayname, slotPath, out.value, out from control:ControlPoint')
|
|
//baja.Ord.make('local:|foxs:|alarm:|bql:select timestamp, ackState, alarmClass, alarmClassDisplayName, alarmValue, alarmData, alarmData.sourceName, msgText, uuid, alarmData.msgText, alarmData.numericValue, alarmData.presentValue, alarmData.status, alarmData.toState')
|
|
// baja.Ord.make('ip:greencloud.fic.com.tw|foxs:|station:|slot:/Arena/H/E1/B1F/TestData/H_E1_B1F_TestData_Data|bql:select slotPath,out.value from control:NumericWritable')
|
|
.get(
|
|
function (table) {
|
|
var tableStart, tableFinish;
|
|
var subStart, subFinish;
|
|
var readBqlFinish = new Date(Date.now());
|
|
$("#readPath-finish-timestamp").html(readBqlFinish.toISOString());
|
|
$("#readPath-finish-time").html((readBqlFinish.getTime() - init_start.getTime()) / 1000 + "sec");
|
|
|
|
table.cursor({
|
|
before: function () {
|
|
tableStart = new Date(Date.now());
|
|
$("#table-start-timestamp").html(tableStart.toISOString());
|
|
|
|
subStart = new Date(Date.now());
|
|
$("#sub-start-timestamp").html(subStart.toISOString());
|
|
|
|
render_start = new Date(Date.now());
|
|
},
|
|
each: function (item, index) {
|
|
|
|
// console.log("local:|foxs:|station:|" + this.getDisplay("slotPath"));
|
|
baja.Ord.make("local:|foxs:|station:|" + this.getDisplay("slotPath"))
|
|
.get()
|
|
.then(function (component) {
|
|
//紀錄 未render前花費約5秒
|
|
$("#render-points").append(`
|
|
<div>
|
|
<label>${component.getDisplayName()+' - ' +component.getDisplay("toPathString")}</label>
|
|
<div id="${component.getDisplayName()}-value" style="text-align: center;">${component.getOutDisplay()}</div>
|
|
</div>
|
|
`);
|
|
|
|
sub.subscribe({
|
|
comps: component,
|
|
});
|
|
|
|
$("#sub-point-name").html(component.getDisplayName());
|
|
|
|
subFinish = new Date(Date.now());
|
|
$("#sub-finish-timestamp").html(subFinish.toISOString()); $("#sub-finish-timestamp").html(subFinish.toISOString());
|
|
$("#sub-time").html((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");
|
|
},
|
|
limit: -1,
|
|
offset: 0
|
|
});
|
|
})
|
|
|
|
|
|
sub2.attach('changed', function (prop) {
|
|
if (prop.getName() === 'out') { update(this); }
|
|
});
|
|
|
|
var read_folder_start = new Date(Date.now())
|
|
$("#read-folder-start-timestamp").html(read_folder_start.toISOString());
|
|
//讀取單一資料夾
|
|
// baja.Ord.make('local:|foxs:|station:|slot:/Arena/H/E1/B1F/TestData/H_E1_B1F_TestData_Data')
|
|
// .get()
|
|
// .then(function (folder) {
|
|
// var read_folder_finish = new Date(Date.now())
|
|
// $("#read-folder-finish-timestamp").html(read_folder_finish.toISOString());
|
|
// $("#read-folder-time").html((read_folder_finish.getTime() - read_folder_start.getTime()) / 1000 + "sec");
|
|
|
|
// var batch = new baja.comm.Batch();
|
|
|
|
// var sub2Start = new Date(Date.now())
|
|
// $("#folder-sub-start-timestamp").html(sub2Start.toISOString());
|
|
// folder.getSlots().isComponent().eachValue(function (point) {
|
|
// $("#folder-sub-point-name").html(point.getDisplayName());
|
|
// sub2.subscribe({
|
|
// comps: point,
|
|
// batch: batch
|
|
// });
|
|
|
|
// var sub2Finish = new Date(Date.now());
|
|
// $("#folder-sub-finish-timestamp").html(sub2Finish.toISOString());
|
|
// $("#folder-sub-time").html((sub2Finish.getTime() - sub2Start.getTime()) / 1000 + "sec");
|
|
// });
|
|
// });
|
|
|
|
|
|
const sub3 = new baja.Subscriber();
|
|
sub3.attach("changed", (prop, cx)=>{
|
|
console.log("@prop", prop);
|
|
console.log("@cx",cx)
|
|
})
|
|
baja.Ord.make("local:|foxs:|station:|slot:/BajaScriptExamples/Components|bql: select * from control:NumericWritable").get({
|
|
Subscriber: sub3,
|
|
cursor: {
|
|
before: function(){console.log("數據遍歷前", this)},
|
|
each: function(){console.log("數據遍歷", this.get("out"))},
|
|
after: function(){console.log("數據遍歷後", this)},
|
|
|
|
}
|
|
}).then((obj)=>{
|
|
console.log(obj)
|
|
// 改變 out 值
|
|
console.log("改變 out 值")
|
|
obj.setOut(10);
|
|
})
|
|
}); |