UNPKG

node-red-contrib-bacnet

Version:

The BACnet toolbox package for Node-RED from the P4NR B2B Community.

3 lines (2 loc) 4.44 kB
"use strict";function _createForOfIteratorHelper(e,t){var n,a="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!a){if(Array.isArray(e)||(a=_unsupportedIterableToArray(e))||t&&e&&"number"==typeof e.length)return a&&(e=a),n=0,{s:t=function(){},n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:t};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r,i=!0,o=!1;return{s:function(){a=a.call(e)},n:function(){var e=a.next();return i=e.done,e},e:function(e){o=!0,r=e},f:function(){try{i||null==a.return||a.return()}finally{if(o)throw r}}}}function _unsupportedIterableToArray(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Map"===(n="Object"===n&&e.constructor?e.constructor.name:n)||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(e,t):void 0}}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}module.exports=function(t){var r=require("./core/bacnet-core"),s=require("node-bacnet"),d=require("underscore");t.nodes.registerType("BACnet-Command",function(e){t.nodes.createNode(this,e),this.name=e.name,this.commandType=e.commandType,this.timeDuration=parseInt(e.timeDuration)||0,this.enableDisable=e.enableDisable||s.enum.EnableDisable.ENABLE,this.deviceState=e.deviceState||s.enum.ReinitializedState.COLDSTART,this.isUtc=e.isUtc||!0,this.lowLimit=e.lowLimit||null,this.highLimit=e.highLimit||null,this.credentials=e.credentials,this.device=t.nodes.getNode(e.device),this.deviceIPAddress=this.device.deviceAddress||"127.0.0.1",this.connector=t.nodes.getNode(e.server);var a=this;a.status({fill:"green",shape:"dot",text:"active"}),a.on("input",function(n){a.connector||a.error(new Error("Client Not Ready To Read"),n),r.internalDebugLog("Command");var e=n.payload.commandType||a.commandType,t=n.payload.options||null;switch(t?n.payload.options.password||(n.payload.options.password=a.credentials.password):t={maxSegments:s.enum.MaxSegmentsAccepted.SEGMENTS_65,maxAdpu:s.enum.MaxApduLengthAccepted.OCTETS_1476,invokeId:null,password:a.credentials?a.credentials.password:null},e){case"deviceCommunicationControl":a.connector.client.deviceCommunicationControl(n.payload.deviceIPAddress||a.deviceIPAddress,n.payload.timeDuration||a.timeDuration,n.payload.enableDisable||a.enableDisable,t,function(e,t){e?(e=r.translateErrorMessage(e),r.internalDebugLog(e),a.error(e,n)):(r.internalDebugLog("value: ",t),n.input=n.payload,n.payload=t)});break;case"reinitializeDevice":a.connector.client.reinitializeDevice(n.payload.deviceIPAddress||a.deviceIPAddress,n.payload.deviceState||a.deviceState,t,function(e,t){e?(e=r.translateErrorMessage(e),r.internalDebugLog(e),a.error(e,n)):(r.internalDebugLog("value: ",t),n.input=n.payload,n.payload=t)});break;case"timeSync":n.payload.isUtc||a.isUtc?a.connector.client.timeSyncUTC(n.payload.deviceIPAddress||a.deviceIPAddress,n.payload.syncDateTime||new Date):a.connector.client.timeSync(n.payload.deviceIPAddress||a.deviceIPAddress,n.payload.syncDateTime||new Date);break;case"whoIsExplicit":a.connector.whoIsExplicit(n.payload.lowLimit||a.lowLimit,n.payload.highLimit||a.highLimit,n.payload.deviceIPAddress||a.deviceIPAddress,function(){n.input=n.payload,n.payload=a.connector.devices,a.send(n)});break;case"whoIs":a.connector.whoIs(function(){n.input=n.payload,n.payload=a.connector.devices,a.send(n)});break;default:r.internalDebugLog("Unknown Command Type Selected "+e)}n.devices=a.connector.devices,a.send(n)})},{credentials:{password:{type:"password"}}}),t.httpAdmin.get("/bacnet/BacnetEnableDisable",t.auth.needsPermission("bacnet.CMD.read"),function(e,t){var n,a,r=s.enum.EnableDisable,i=[],o=_createForOfIteratorHelper(d.toArray(d.invert(r)));try{for(o.s();!(a=o.n()).done;)n=a.value,i.push({typeValue:r[n],label:n})}catch(e){o.e(e)}finally{o.f()}t.json(i)}),t.httpAdmin.get("/bacnet/BacnetReinitializedStates",t.auth.needsPermission("bacnet.CMD.read"),function(e,t){var n,a,r=s.enum.ReinitializedState,i=[],o=_createForOfIteratorHelper(d.toArray(d.invert(r)));try{for(o.s();!(a=o.n()).done;)n=a.value,i.push({typeValue:r[n],label:n})}catch(e){o.e(e)}finally{o.f()}t.json(i)})}; //# sourceMappingURL=maps/bacnet-command.js.map