//測試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(`
${component.getOutDisplay()}
`); 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); }) });