smart-bus 0.6.0 → 0.8.0

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/.travis.yml CHANGED
@@ -1,9 +1,7 @@
1
1
  language: node_js
2
- script:
2
+ script:
3
3
  - npm run lint
4
4
  - npm run coverage
5
5
  node_js:
6
6
  - "stable"
7
- - "4.1"
8
- - "4.0"
9
- - "0.12"
7
+ - "6"
package/CHANGELOG.md CHANGED
@@ -1,3 +1,19 @@
1
+ ## 0.8.0
2
+
3
+ * Update for Node.js v22 compatibility
4
+ * Replace deprecated `new Buffer()` constructors with modern APIs
5
+ * Update minimum Node.js version from >=0.12 to >=12.0.0
6
+ * Update development dependencies (mocha, eslint, should, simple-mock)
7
+ * Replace istanbul with nyc for test coverage
8
+
9
+ **BREAKING:**
10
+
11
+ - Node.js version requirement increased from >=0.12 to >=12.0.0
12
+
13
+ ## 0.7.0
14
+
15
+ * Add Read Dry Contact Status commaands (`0x15CE`, `0x15CF`)
16
+
1
17
  ## 0.6.0
2
18
 
3
19
  * Allow to reuse same UDP address
package/README.md CHANGED
@@ -242,7 +242,7 @@ bus.send({
242
242
  target: dimmer,
243
243
 
244
244
  command: 0x0031,
245
- payload: new Buffer('04640190', 'hex')
245
+ payload: Buffer.from('04640190', 'hex')
246
246
  }, function(err) { /* ... */ });
247
247
  ```
248
248
 
package/lib/bus.js CHANGED
@@ -9,16 +9,16 @@ var EventEmitter = require('events');
9
9
 
10
10
  module.exports = Bus;
11
11
 
12
- var Constants = new Buffer(12);
12
+ var Constants = Buffer.allocUnsafe(12);
13
13
 
14
- Constants.write('HDLMIRACLE');
14
+ Constants.write('HDLMIRACLE', 0, 'ascii');
15
15
  Constants.writeUInt16BE(0xAAAA, 10);
16
16
 
17
17
  function Bus(resource) {
18
18
  var config = parse(resource);
19
19
  var port = config.port;
20
20
 
21
- this.address = new Buffer([0, 0, 0, 0]);
21
+ this.address = Buffer.from([0, 0, 0, 0]);
22
22
 
23
23
  this.port = port ? parseInt(port) : 6000;
24
24
  this.gateway = config.gateway;
@@ -113,7 +113,7 @@ Bus.prototype.send = function(options, callback) {
113
113
  return callback(err);
114
114
  }
115
115
 
116
- var checksum = new Buffer(2);
116
+ var checksum = Buffer.allocUnsafe(2);
117
117
 
118
118
  checksum.writeUInt16BE(crc(content), 0);
119
119
 
@@ -227,7 +227,7 @@ function createSocket(bus) {
227
227
  socket.on('listening', function() {
228
228
  var address = socket.address();
229
229
 
230
- bus.address = new Buffer(address.address.split('.'));
230
+ bus.address = Buffer.from(address.address.split('.'));
231
231
 
232
232
  debug('UDP Server is listening on ' + address.address + ':' + address.port);
233
233
 
package/lib/command.js CHANGED
@@ -99,7 +99,7 @@ function encode() {
99
99
  var length = 11;
100
100
  var sender = this.sender;
101
101
  var target = this.target;
102
- var header = new Buffer(9);
102
+ var header = Buffer.allocUnsafe(9);
103
103
  var payload = this.payload;
104
104
 
105
105
  if (payload) length += payload.length;
package/lib/commands.js CHANGED
@@ -89,7 +89,7 @@ var AC = {
89
89
  },
90
90
 
91
91
  encode: function(data) {
92
- var buffer = new Buffer(13);
92
+ var buffer = Buffer.allocUnsafe(13);
93
93
 
94
94
  var temperature = data.temperature || {};
95
95
  var current = data.current || {};
@@ -144,7 +144,7 @@ module.exports = {
144
144
  },
145
145
 
146
146
  encode: function(data) {
147
- return new Buffer([data.area, data.scene]);
147
+ return Buffer.from([data.area, data.scene]);
148
148
  },
149
149
 
150
150
  response: 0x0003
@@ -180,7 +180,7 @@ module.exports = {
180
180
  var channels = data.channels || [];
181
181
  var length = channels.length;
182
182
  var bytes = Math.ceil(length / 8);
183
- var buffer = new Buffer(3 + bytes);
183
+ var buffer = Buffer.allocUnsafe(3 + bytes);
184
184
 
185
185
  buffer.writeUInt8(data.area, 0);
186
186
  buffer.writeUInt8(data.scene, 1);
@@ -210,7 +210,7 @@ module.exports = {
210
210
  },
211
211
 
212
212
  encode: function(data) {
213
- return new Buffer([data.area]);
213
+ return Buffer.from([data.area]);
214
214
  },
215
215
 
216
216
  response: 0x000D
@@ -226,7 +226,7 @@ module.exports = {
226
226
  },
227
227
 
228
228
  encode: function(data) {
229
- return new Buffer([data.area, data.scene]);
229
+ return Buffer.from([data.area, data.scene]);
230
230
  }
231
231
  },
232
232
 
@@ -266,7 +266,7 @@ module.exports = {
266
266
  var channels = data.channels || [];
267
267
  var length = channels.length;
268
268
  var bytes = Math.ceil(length / 8);
269
- var buffer = new Buffer(2 + areas.length + bytes);
269
+ var buffer = Buffer.allocUnsafe(2 + areas.length + bytes);
270
270
 
271
271
  buffer.writeUInt8(areas.length, 0);
272
272
 
@@ -329,7 +329,7 @@ module.exports = {
329
329
  var device = data.device;
330
330
  var channels = data.channels;
331
331
  var length = channels.length;
332
- var buffer = new Buffer(5 + length);
332
+ var buffer = Buffer.allocUnsafe(5 + length);
333
333
 
334
334
  word.encode(buffer, device.type, 0);
335
335
  buffer.writeUInt8(device.subnet, 2);
@@ -360,7 +360,7 @@ module.exports = {
360
360
  },
361
361
 
362
362
  encode: function(data) {
363
- return new Buffer([data.area, data.scene]);
363
+ return Buffer.from([data.area, data.scene]);
364
364
  },
365
365
 
366
366
  response: 0x0001
@@ -391,7 +391,7 @@ module.exports = {
391
391
  encode: function(data) {
392
392
  var channels = data.channels || [];
393
393
  var length = channels.length;
394
- var buffer = new Buffer(4 + length);
394
+ var buffer = Buffer.allocUnsafe(4 + length);
395
395
 
396
396
  buffer.writeUInt8(data.area, 0);
397
397
  buffer.writeUInt8(data.scene, 1);
@@ -420,7 +420,7 @@ module.exports = {
420
420
  },
421
421
 
422
422
  encode: function(data) {
423
- var buffer = new Buffer(1);
423
+ var buffer = Buffer.allocUnsafe(1);
424
424
 
425
425
  status.encode(buffer, data.success, 0);
426
426
 
@@ -440,7 +440,7 @@ module.exports = {
440
440
  },
441
441
 
442
442
  encode: function(data) {
443
- return new Buffer([data.area, data.sequence]);
443
+ return Buffer.from([data.area, data.sequence]);
444
444
  },
445
445
 
446
446
  response: 0x001B
@@ -456,7 +456,7 @@ module.exports = {
456
456
  },
457
457
 
458
458
  encode: function(data) {
459
- return new Buffer([data.area, data.sequence]);
459
+ return Buffer.from([data.area, data.sequence]);
460
460
  }
461
461
  },
462
462
 
@@ -467,7 +467,7 @@ module.exports = {
467
467
  },
468
468
 
469
469
  encode: function(data) {
470
- return new Buffer([data.area]);
470
+ return Buffer.from([data.area]);
471
471
  },
472
472
 
473
473
  response: 0xE015
@@ -483,7 +483,7 @@ module.exports = {
483
483
  },
484
484
 
485
485
  encode: function(data) {
486
- return new Buffer([data.area, data.sequence]);
486
+ return Buffer.from([data.area, data.sequence]);
487
487
  }
488
488
  },
489
489
 
@@ -502,7 +502,7 @@ module.exports = {
502
502
  encode: function(data) {
503
503
  var areas = data.areas || [];
504
504
  var length = areas.length;
505
- var buffer = new Buffer(length);
505
+ var buffer = Buffer.allocUnsafe(length);
506
506
 
507
507
  for (var i = 0; i < length; i++)
508
508
  buffer.writeUInt8(areas[i].sequence, i);
@@ -524,7 +524,7 @@ module.exports = {
524
524
  },
525
525
 
526
526
  encode: function(data) {
527
- var buffer = new Buffer(4);
527
+ var buffer = Buffer.allocUnsafe(4);
528
528
 
529
529
  buffer.writeUInt8(data.channel, 0);
530
530
  buffer.writeUInt8(data.level, 1);
@@ -546,7 +546,7 @@ module.exports = {
546
546
  },
547
547
 
548
548
  encode: function(data) {
549
- var buffer = new Buffer(3);
549
+ var buffer = Buffer.allocUnsafe(3);
550
550
 
551
551
  buffer.writeUInt8(data.channel, 0);
552
552
  status.encode(buffer, data.success, 1);
@@ -576,7 +576,7 @@ module.exports = {
576
576
  encode: function(data) {
577
577
  var channels = data.channels || [];
578
578
  var length = channels.length;
579
- var buffer = new Buffer(length + 1);
579
+ var buffer = Buffer.allocUnsafe(length + 1);
580
580
 
581
581
  buffer.writeUInt8(length, 0);
582
582
 
@@ -608,7 +608,7 @@ module.exports = {
608
608
  encode: function(data) {
609
609
  var channels = data.channels || [];
610
610
  var length = channels.length;
611
- var buffer = new Buffer(length + 1);
611
+ var buffer = Buffer.allocUnsafe(length + 1);
612
612
 
613
613
  buffer.writeUInt8(length, 0);
614
614
 
@@ -631,7 +631,7 @@ module.exports = {
631
631
  },
632
632
 
633
633
  encode: function(data) {
634
- return new Buffer([data.block, data.status ? 1 : 0]);
634
+ return Buffer.from([data.block, data.status ? 1 : 0]);
635
635
  }
636
636
  },
637
637
 
@@ -646,7 +646,7 @@ module.exports = {
646
646
  },
647
647
 
648
648
  encode: function(data) {
649
- return new Buffer([data.block, data.status ? 1 : 0]);
649
+ return Buffer.from([data.block, data.status ? 1 : 0]);
650
650
  }
651
651
  },
652
652
 
@@ -657,7 +657,7 @@ module.exports = {
657
657
  },
658
658
 
659
659
  encode: function(data) {
660
- return new Buffer([data.block]);
660
+ return Buffer.from([data.block]);
661
661
  }
662
662
  },
663
663
 
@@ -673,7 +673,7 @@ module.exports = {
673
673
  },
674
674
 
675
675
  encode: function(data) {
676
- return new Buffer([data.block, data.status ? 1 : 0]);
676
+ return Buffer.from([data.block, data.status ? 1 : 0]);
677
677
  }
678
678
  },
679
679
 
@@ -688,7 +688,7 @@ module.exports = {
688
688
  },
689
689
 
690
690
  encode: function(data) {
691
- return new Buffer([data.block, data.status ? 1 : 0]);
691
+ return Buffer.from([data.block, data.status ? 1 : 0]);
692
692
  }
693
693
  },
694
694
 
@@ -707,7 +707,7 @@ module.exports = {
707
707
  },
708
708
 
709
709
  encode: function(data) {
710
- var buffer = new Buffer(8);
710
+ var buffer = Buffer.allocUnsafe(8);
711
711
 
712
712
  status.encode(buffer, data.success, 0);
713
713
  date.encode(buffer, data.date, 1);
@@ -727,7 +727,7 @@ module.exports = {
727
727
  },
728
728
 
729
729
  encode: function(data) {
730
- var buffer = new Buffer(7);
730
+ var buffer = Buffer.allocUnsafe(7);
731
731
 
732
732
  date.encode(buffer, data.date, 0);
733
733
 
@@ -744,7 +744,7 @@ module.exports = {
744
744
  },
745
745
 
746
746
  encode: function(data) {
747
- var buffer = new Buffer(1);
747
+ var buffer = Buffer.allocUnsafe(1);
748
748
 
749
749
  status.encode(buffer, data.success, 0);
750
750
 
@@ -759,7 +759,7 @@ module.exports = {
759
759
  },
760
760
 
761
761
  encode: function(data) {
762
- var buffer = new Buffer(6);
762
+ var buffer = Buffer.allocUnsafe(6);
763
763
 
764
764
  date.encode(buffer, data.date, 0);
765
765
 
@@ -779,7 +779,7 @@ module.exports = {
779
779
  },
780
780
 
781
781
  encode: function(data) {
782
- var buffer = new Buffer(2);
782
+ var buffer = Buffer.allocUnsafe(2);
783
783
 
784
784
  buffer.writeUInt8(data.switch, 0);
785
785
  buffer.writeUInt8(data.status ? 255 : 0, 1);
@@ -800,7 +800,7 @@ module.exports = {
800
800
  },
801
801
 
802
802
  encode: function(data) {
803
- var buffer = new Buffer(2);
803
+ var buffer = Buffer.allocUnsafe(2);
804
804
 
805
805
  buffer.writeUInt8(data.switch, 0);
806
806
  buffer.writeUInt8(data.status ? 1 : 0, 1);
@@ -816,7 +816,7 @@ module.exports = {
816
816
  },
817
817
 
818
818
  encode: function(data) {
819
- return new Buffer([data.switch]);
819
+ return Buffer.from([data.switch]);
820
820
  },
821
821
 
822
822
  response: 0xE019
@@ -833,7 +833,7 @@ module.exports = {
833
833
  },
834
834
 
835
835
  encode: function(data) {
836
- var buffer = new Buffer(2);
836
+ var buffer = Buffer.allocUnsafe(2);
837
837
 
838
838
  buffer.writeUInt8(data.switch, 0);
839
839
  buffer.writeUInt8(data.status ? 1 : 0, 1);
@@ -860,7 +860,7 @@ module.exports = {
860
860
  encode: function(data) {
861
861
  var switches = data.switches || [];
862
862
  var length = switches.length;
863
- var buffer = new Buffer(length + 1);
863
+ var buffer = Buffer.allocUnsafe(length + 1);
864
864
 
865
865
  buffer.writeUInt8(length, 0);
866
866
 
@@ -883,7 +883,7 @@ module.exports = {
883
883
  },
884
884
 
885
885
  encode: function(data) {
886
- return new Buffer([data.curtain, data.status]);
886
+ return Buffer.from([data.curtain, data.status]);
887
887
  },
888
888
 
889
889
  response: 0xE3E1
@@ -900,7 +900,7 @@ module.exports = {
900
900
  },
901
901
 
902
902
  encode: function(data) {
903
- return new Buffer([data.curtain, data.status]);
903
+ return Buffer.from([data.curtain, data.status]);
904
904
  }
905
905
  },
906
906
 
@@ -911,7 +911,7 @@ module.exports = {
911
911
  },
912
912
 
913
913
  encode: function(data) {
914
- return new Buffer([data.curtain]);
914
+ return Buffer.from([data.curtain]);
915
915
  },
916
916
 
917
917
  response: 0xE3E3
@@ -928,7 +928,7 @@ module.exports = {
928
928
  },
929
929
 
930
930
  encode: function(data) {
931
- return new Buffer([data.curtain, data.status]);
931
+ return Buffer.from([data.curtain, data.status]);
932
932
  }
933
933
  },
934
934
 
@@ -953,7 +953,7 @@ module.exports = {
953
953
  encode: function(data) {
954
954
  var curtains = data.curtains || [];
955
955
  var length = curtains.length;
956
- var buffer = new Buffer(length * 2);
956
+ var buffer = Buffer.allocUnsafe(length * 2);
957
957
 
958
958
  for (var i = 0; i < length; i++) {
959
959
  var curtain = curtains[i];
@@ -986,7 +986,7 @@ module.exports = {
986
986
  },
987
987
 
988
988
  encode: function(data) {
989
- return new Buffer([data.key, data.value]);
989
+ return Buffer.from([data.key, data.value]);
990
990
  },
991
991
 
992
992
  response: 0xE3D9
@@ -1003,7 +1003,7 @@ module.exports = {
1003
1003
  },
1004
1004
 
1005
1005
  encode: function(data) {
1006
- return new Buffer([data.key, data.value]);
1006
+ return Buffer.from([data.key, data.value]);
1007
1007
  }
1008
1008
  },
1009
1009
 
@@ -1014,7 +1014,7 @@ module.exports = {
1014
1014
  },
1015
1015
 
1016
1016
  encode: function(data) {
1017
- return new Buffer([data.key]);
1017
+ return Buffer.from([data.key]);
1018
1018
  },
1019
1019
 
1020
1020
  response: 0xE3DB
@@ -1031,7 +1031,7 @@ module.exports = {
1031
1031
  },
1032
1032
 
1033
1033
  encode: function(data) {
1034
- return new Buffer([data.key, data.value]);
1034
+ return Buffer.from([data.key, data.value]);
1035
1035
  }
1036
1036
  },
1037
1037
 
@@ -1091,7 +1091,7 @@ module.exports = {
1091
1091
 
1092
1092
  encode: function(data) {
1093
1093
  var timerPresent = (data.timer === undefined) ? 0 : 1;
1094
- var buffer = new Buffer(8 + timerPresent);
1094
+ var buffer = Buffer.allocUnsafe(8 + timerPresent);
1095
1095
  var temperature = data.temperature;
1096
1096
 
1097
1097
  buffer.writeUInt8(temperature.type, 0);
@@ -1128,7 +1128,7 @@ module.exports = {
1128
1128
  },
1129
1129
 
1130
1130
  encode: function(data) {
1131
- var buffer = new Buffer(7);
1131
+ var buffer = Buffer.allocUnsafe(7);
1132
1132
  var temperature = data.temperature;
1133
1133
 
1134
1134
  buffer.writeInt8(temperature.type, 0);
@@ -1164,7 +1164,7 @@ module.exports = {
1164
1164
  },
1165
1165
 
1166
1166
  encode: function(data) {
1167
- var buffer = new Buffer(8);
1167
+ var buffer = Buffer.allocUnsafe(8);
1168
1168
  var temperature = data.temperature;
1169
1169
 
1170
1170
  status.encode(buffer, data.success, 0);
@@ -1189,7 +1189,7 @@ module.exports = {
1189
1189
  },
1190
1190
 
1191
1191
  encode: function(data) {
1192
- return new Buffer([data.channel]);
1192
+ return Buffer.from([data.channel]);
1193
1193
  },
1194
1194
 
1195
1195
  response: 0x1C5F
@@ -1227,7 +1227,7 @@ module.exports = {
1227
1227
  },
1228
1228
 
1229
1229
  encode: function(data) {
1230
- var buffer = new Buffer(13);
1230
+ var buffer = Buffer.allocUnsafe(13);
1231
1231
 
1232
1232
  var work = data.work;
1233
1233
  var watering = data.watering;
@@ -1276,7 +1276,7 @@ module.exports = {
1276
1276
  },
1277
1277
 
1278
1278
  encode: function(data) {
1279
- var buffer = new Buffer(10);
1279
+ var buffer = Buffer.allocUnsafe(10);
1280
1280
 
1281
1281
  var work = data.work;
1282
1282
  var temperature = data.temperature;
@@ -1324,7 +1324,7 @@ module.exports = {
1324
1324
  },
1325
1325
 
1326
1326
  encode: function(data) {
1327
- var buffer = new Buffer(10);
1327
+ var buffer = Buffer.allocUnsafe(10);
1328
1328
 
1329
1329
  var work = data.work;
1330
1330
  var temperature = data.temperature;
@@ -1381,7 +1381,7 @@ module.exports = {
1381
1381
  },
1382
1382
 
1383
1383
  encode: function(data) {
1384
- return new Buffer([data.logic]);
1384
+ return Buffer.from([data.logic]);
1385
1385
  },
1386
1386
 
1387
1387
  response: 0xDB01
@@ -1407,7 +1407,7 @@ module.exports = {
1407
1407
  },
1408
1408
 
1409
1409
  encode: function(data) {
1410
- var buffer = new Buffer(8);
1410
+ var buffer = Buffer.allocUnsafe(8);
1411
1411
  var contacts = data.dryContacts || [];
1412
1412
 
1413
1413
  for (var i = 0; i < 2; i++)
@@ -1459,7 +1459,7 @@ module.exports = {
1459
1459
  var contacts = data.dryContacts || [];
1460
1460
  var hasSonic = data.hasOwnProperty('sonic');
1461
1461
 
1462
- var buffer = new Buffer(hasSonic ? 8 : 7);
1462
+ var buffer = Buffer.allocUnsafe(hasSonic ? 8 : 7);
1463
1463
 
1464
1464
  status.encode(buffer, data.success, 0);
1465
1465
  buffer.writeUInt8(data.temperature + 20, 1);
@@ -1505,7 +1505,7 @@ module.exports = {
1505
1505
  },
1506
1506
 
1507
1507
  encode: function(data) {
1508
- var buffer = new Buffer(7);
1508
+ var buffer = Buffer.allocUnsafe(7);
1509
1509
  var contacts = data.dryContacts || [];
1510
1510
 
1511
1511
  buffer.writeUInt8(data.temperature + 20, 0);
@@ -1554,7 +1554,7 @@ module.exports = {
1554
1554
  },
1555
1555
 
1556
1556
  encode: function(data) {
1557
- var buffer = new Buffer(10);
1557
+ var buffer = Buffer.allocUnsafe(10);
1558
1558
  var contacts = data.dryContacts || [];
1559
1559
 
1560
1560
  status.encode(buffer, data.success, 0);
@@ -1599,7 +1599,7 @@ module.exports = {
1599
1599
  },
1600
1600
 
1601
1601
  encode: function(data) {
1602
- var buffer = new Buffer(9);
1602
+ var buffer = Buffer.allocUnsafe(9);
1603
1603
  var contacts = data.dryContacts || [];
1604
1604
 
1605
1605
  status.encode(buffer, data.success, 0);
@@ -1625,7 +1625,7 @@ module.exports = {
1625
1625
  },
1626
1626
 
1627
1627
  encode: function(data) {
1628
- return new Buffer([data.channel]);
1628
+ return Buffer.from([data.channel]);
1629
1629
  },
1630
1630
 
1631
1631
  response: 0xE3E8
@@ -1649,7 +1649,7 @@ module.exports = {
1649
1649
 
1650
1650
  if (temperature < 0) temperature = -temperature;
1651
1651
 
1652
- return new Buffer([data.channel, temperature | sign]);
1652
+ return Buffer.from([data.channel, temperature | sign]);
1653
1653
  }
1654
1654
  },
1655
1655
 
@@ -1676,7 +1676,7 @@ module.exports = {
1676
1676
 
1677
1677
  if (temperature < 0) temperature = -temperature;
1678
1678
 
1679
- return new Buffer([data.channel, temperature | sign]);
1679
+ return Buffer.from([data.channel, temperature | sign]);
1680
1680
  }
1681
1681
  },
1682
1682
 
@@ -1689,7 +1689,7 @@ module.exports = {
1689
1689
  },
1690
1690
 
1691
1691
  encode: function(data) {
1692
- return new Buffer([data.channel]);
1692
+ return Buffer.from([data.channel]);
1693
1693
  },
1694
1694
 
1695
1695
  response: 0x1949
@@ -1705,7 +1705,7 @@ module.exports = {
1705
1705
  },
1706
1706
 
1707
1707
  encode: function(data) {
1708
- var buffer = new Buffer(5);
1708
+ var buffer = Buffer.allocUnsafe(5);
1709
1709
 
1710
1710
  buffer.writeUInt8(data.channel, 0);
1711
1711
  buffer.writeFloatLE(data.temperature, 1);
@@ -1757,10 +1757,46 @@ module.exports = {
1757
1757
  // 0x15D1
1758
1758
 
1759
1759
  // 16.1.3 Read Dry Contact Status
1760
- // 0x15CE
1760
+ 0x15CE: {
1761
+ parse: function(buffer) {
1762
+ return {
1763
+ area: buffer.readUInt8(0),
1764
+ switch: buffer.readUInt8(1)
1765
+ };
1766
+ },
1767
+
1768
+ encode: function(data) {
1769
+ var buffer = Buffer.allocUnsafe(2);
1770
+
1771
+ buffer.writeUInt8(data.area, 0);
1772
+ buffer.writeUInt8(data.switch, 1);
1773
+
1774
+ return buffer;
1775
+ },
1776
+
1777
+ response: 0x15CF
1778
+ },
1761
1779
 
1762
1780
  // 16.1.4 Response Read Dry Contact Status
1763
- // 0x15CF
1781
+ 0x15CF: {
1782
+ parse: function(buffer) {
1783
+ var data = {
1784
+ area: buffer.readUInt8(0),
1785
+ switch: buffer.readUInt8(1),
1786
+ contact: Boolean(buffer.readUInt8(2))
1787
+ };
1788
+ return data;
1789
+ },
1790
+
1791
+ encode: function(data) {
1792
+ var buffer = Buffer.allocUnsafe(3);
1793
+ buffer.writeUInt8(data.area, 0);
1794
+ buffer.writeUInt8(data.switch, 1);
1795
+ buffer.writeUInt8(data.contact ? 1 : 0, 2);
1796
+
1797
+ return buffer;
1798
+ }
1799
+ },
1764
1800
 
1765
1801
  /* 17. DLP Music Play Control Command */
1766
1802
 
@@ -1848,7 +1884,7 @@ module.exports = {
1848
1884
  },
1849
1885
 
1850
1886
  encode: function(data) {
1851
- var buffer = new Buffer(3);
1887
+ var buffer = Buffer.allocUnsafe(3);
1852
1888
 
1853
1889
  buffer.writeUInt8(data.backlight, 0);
1854
1890
  buffer.writeUInt8(data.statusLights, 1);
@@ -1867,7 +1903,7 @@ module.exports = {
1867
1903
  },
1868
1904
 
1869
1905
  encode: function(data) {
1870
- var buffer = new Buffer(1);
1906
+ var buffer = Buffer.allocUnsafe(1);
1871
1907
 
1872
1908
  status.encode(buffer, data.success, 0);
1873
1909
 
@@ -1888,7 +1924,7 @@ module.exports = {
1888
1924
  },
1889
1925
 
1890
1926
  encode: function(data) {
1891
- var buffer = new Buffer(7);
1927
+ var buffer = Buffer.allocUnsafe(7);
1892
1928
 
1893
1929
  buffer.writeUInt8(data.button, 0);
1894
1930
  buffer.writeUInt8(data.color.on[0], 1);
@@ -1911,7 +1947,7 @@ module.exports = {
1911
1947
  },
1912
1948
 
1913
1949
  encode: function(data) {
1914
- return new Buffer([data.button]);
1950
+ return Buffer.from([data.button]);
1915
1951
  }
1916
1952
  }
1917
1953
  };