@bitpoolos/edge-bacnet 1.2.6 → 1.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bacnet_write.js CHANGED
@@ -15,7 +15,7 @@ module.exports = function (RED) {
15
15
 
16
16
  node.on('input', function(msg) {
17
17
 
18
- let value = msg.payload == "null" ? null : parseInt(msg.payload);
18
+ let value = msg.payload == "null" ? null : msg.payload;
19
19
  let priority = node.priority == "null" ? null : parseInt(node.priority);
20
20
 
21
21
  let output = {
package/common.js CHANGED
@@ -91,7 +91,9 @@ class BacnetClientConfig {
91
91
  manual_instance_range_start,
92
92
  manual_instance_range_end,
93
93
  device_read_schedule,
94
- retries
94
+ retries,
95
+ cacheFileEnabled,
96
+ sanitise_device_schedule
95
97
  ) {
96
98
  this.apduTimeout = apduTimeout;
97
99
  this.localIpAdrress = localIpAdrress;
@@ -107,6 +109,8 @@ class BacnetClientConfig {
107
109
  this.manual_instance_range_end = manual_instance_range_end;
108
110
  this.device_read_schedule = device_read_schedule;
109
111
  this.retries = retries;
112
+ this.cacheFileEnabled = cacheFileEnabled;
113
+ this.sanitise_device_schedule = sanitise_device_schedule;
110
114
  }
111
115
  }
112
116
 
@@ -222,7 +226,7 @@ const doNodeRedRestart = function () {
222
226
  // ================================================================================
223
227
  async function Store_Config(data) {
224
228
  try {
225
- await fs.writeFile("edge-bacnet-datastore.cfg", data, (err) => {
229
+ await fs.writeFile("edge-bacnet-datastore.cfg", data, { encoding: "utf8", flag: "w" }, (err) => {
226
230
  if (err) {
227
231
  console.log("Store_Config writeFile error: ", err);
228
232
  }
@@ -240,7 +244,7 @@ function Read_Config_Sync() {
240
244
  try {
241
245
  data = fs.readFileSync("edge-bacnet-datastore.cfg", { encoding: "utf8", flag: "r" });
242
246
  } catch (err) {
243
- //console.log("Read_Config_Sync error:", err);
247
+ console.log("Read_Config_Sync error:", err);
244
248
  data = "{}";
245
249
  Store_Config(data);
246
250
  }
@@ -268,14 +272,19 @@ function Read_Config_Sync_Server() {
268
272
  try {
269
273
  data = fs.readFileSync("edge-bacnet-server-datastore.cfg", { encoding: "utf8", flag: "r" });
270
274
  } catch (err) {
271
- //console.log("Read_Config_Sync_Server error:", err);
272
- if (err.errno == -4058) console.log("Edge-BACnet Server: No save file found, creating new file");
273
- data = "{}";
274
- Store_Config_Server(data);
275
+ if (err.errno == -4058) {
276
+ console.log("Edge-BACnet Server: No save file found, creating new file");
277
+ data = "{}";
278
+ Store_Config_Server(data);
279
+ }
275
280
  }
276
281
  return data;
277
282
  }
278
283
 
284
+ function isNumber(value) {
285
+ return value != null && typeof value === "number" && !isNaN(value);
286
+ }
287
+
279
288
  module.exports = {
280
289
  BacnetConfig,
281
290
  BacnetClientConfig,
@@ -290,4 +299,5 @@ module.exports = {
290
299
  Read_Config_Sync,
291
300
  Store_Config_Server,
292
301
  Read_Config_Sync_Server,
302
+ isNumber,
293
303
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitpoolos/edge-bacnet",
3
- "version": "1.2.6",
3
+ "version": "1.2.8",
4
4
  "description": "A bacnet gateway for node-red",
5
5
  "dependencies": {
6
6
  "@plus4nodered/ts-node-bacnet": "^1.0.0-beta.2",
@@ -0,0 +1,19 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30">
3
+ <defs>
4
+ <style>
5
+ .cls-1 {
6
+ fill: none;
7
+ stroke: #6c757d;
8
+ stroke-linecap: round;
9
+ stroke-linejoin: round;
10
+ stroke-width: 2px;
11
+ }
12
+ </style>
13
+ </defs>
14
+ <circle class="cls-1" cx="15" cy="15" r="14"/>
15
+ <g>
16
+ <path class="cls-1" d="M11.21,22s0-14,0-14h5.13c1.91,0,3.46,1.55,3.46,3.46v.54c0,1.91-1.55,3.46-3.46,3.46h-5.13"/>
17
+ <line class="cls-1" x1="15.51" y1="15.45" x2="20.03" y2="21.94"/>
18
+ </g>
19
+ </svg>
@@ -0,0 +1,16 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30">
3
+ <defs>
4
+ <style>
5
+ .cls-1 {
6
+ fill: none;
7
+ stroke: #6c757d;
8
+ stroke-linecap: round;
9
+ stroke-linejoin: round;
10
+ stroke-width: 2px;
11
+ }
12
+ </style>
13
+ </defs>
14
+ <circle class="cls-1" cx="15" cy="15" r="14"/>
15
+ <polyline class="cls-1" points="22.21 9.75 18.61 21.35 15 9.75 11.39 21.35 7.79 9.75"/>
16
+ </svg>
@@ -616,7 +616,7 @@ class Client extends events_1.EventEmitter {
616
616
  const type = baEnum.PduTypes.CONFIRMED_REQUEST | (settings.maxSegments !== baEnum.MaxSegmentsAccepted.SEGMENTS_0 ? baEnum.PduConReqBits.SEGMENTED_RESPONSE_ACCEPTED : 0);
617
617
  baApdu.encodeConfirmedServiceRequest(buffer, type, baEnum.ConfirmedServiceChoice.READ_PROPERTY, settings.maxSegments, settings.maxApdu, settings.invokeId, 0, 0);
618
618
  baServices.readProperty.encode(buffer, objectId.type, objectId.instance, propertyId, settings.arrayIndex);
619
- //baBvlc.encode(buffer.buffer, baEnum.BvlcResultPurpose.ORIGINAL_UNICAST_NPDU, buffer.offset);
619
+ baBvlc.encode(buffer.buffer, baEnum.BvlcResultPurpose.ORIGINAL_UNICAST_NPDU, buffer.offset);
620
620
  this.sendBvlc(address, buffer);
621
621
  this._addCallback(settings.invokeId, (err, data) => {
622
622
  try{
@@ -672,7 +672,7 @@ class Client extends events_1.EventEmitter {
672
672
  baNpdu.encode(buffer, baEnum.NpduControlPriority.NORMAL_MESSAGE | baEnum.NpduControlBits.EXPECTING_REPLY, address, null, DEFAULT_HOP_COUNT, baEnum.NetworkLayerMessageType.WHO_IS_ROUTER_TO_NETWORK, 0);
673
673
  baApdu.encodeConfirmedServiceRequest(buffer, baEnum.PduTypes.CONFIRMED_REQUEST, baEnum.ConfirmedServiceChoice.WRITE_PROPERTY, settings.maxSegments, settings.maxApdu, settings.invokeId, 0, 0);
674
674
  baServices.writeProperty.encode(buffer, objectId.type, objectId.instance, propertyId, settings.arrayIndex, settings.priority, values);
675
- //baBvlc.encode(buffer.buffer, baEnum.BvlcResultPurpose.ORIGINAL_UNICAST_NPDU, buffer.offset);
675
+ baBvlc.encode(buffer.buffer, baEnum.BvlcResultPurpose.ORIGINAL_UNICAST_NPDU, buffer.offset);
676
676
  this.sendBvlc(address, buffer);
677
677
  this._addCallback(settings.invokeId, (err) => next(err));
678
678
  }
@@ -714,7 +714,7 @@ class Client extends events_1.EventEmitter {
714
714
  const type = baEnum.PduTypes.CONFIRMED_REQUEST | (settings.maxSegments !== baEnum.MaxSegmentsAccepted.SEGMENTS_0 ? baEnum.PduConReqBits.SEGMENTED_RESPONSE_ACCEPTED : 0);
715
715
  baApdu.encodeConfirmedServiceRequest(buffer, type, baEnum.ConfirmedServiceChoice.READ_PROPERTY_MULTIPLE, settings.maxSegments, settings.maxApdu, settings.invokeId, 0, 0);
716
716
  baServices.readPropertyMultiple.encode(buffer, propertiesArray);
717
- //baBvlc.encode(buffer.buffer, baEnum.BvlcResultPurpose.ORIGINAL_UNICAST_NPDU, buffer.offset);
717
+ baBvlc.encode(buffer.buffer, baEnum.BvlcResultPurpose.ORIGINAL_UNICAST_NPDU, buffer.offset);
718
718
  this.sendBvlc(address, buffer);
719
719
  //this.sendBvlc(address, buffer);
720
720
  this._addCallback(settings.invokeId, (err, data) => {
@@ -0,0 +1,11 @@
1
+ .writePointIcon {
2
+ background: url("icons/icon-write.svg") no-repeat !important;
3
+ width: 20px;
4
+ height: 20px;
5
+ }
6
+
7
+ .readPointIcon {
8
+ background: url("icons/icon-read.svg") no-repeat !important;
9
+ width: 20px;
10
+ height: 20px;
11
+ }