@@ -5,40 +5,23 @@ var EventEmitter = require('events').EventEmitter;
5
5
// Constructor function to instantiate the hardware object
6
6
function Button ( hardware , callback ) {
7
7
var self = this ;
8
-
9
- // Check to ensure proper hardware has been passed in
10
- if ( typeof hardware . pin != 'number' ) {
11
- // Pin not specified
12
- var error = new Error ( "Specify a pin, e.g. tessel.port['GPIO'].pin['G3']" ) ;
13
- self . emit ( 'error' , error ) ;
14
- if ( callback ) {
15
- callback ( error ) ;
16
- }
17
- } else if ( [ 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 34 , 35 , 36 , 37 , 38 , 39 ] . indexOf ( hardware . pin ) < 0 ) {
18
- // Not a digital pin
19
- var error = new Error ( 'Specified pin is not a digital pin: ' + hardware . pin ) ;
20
- self . emit ( 'error' , error ) ;
21
- if ( callback ) {
22
- callback ( error ) ;
23
- }
24
- }
25
8
26
9
// Set hardware connection of the object
27
10
self . hardware = hardware ;
28
-
11
+
29
12
// Object properties
30
13
self . delay = 100 ;
31
14
self . pressed = false ;
32
-
15
+
33
16
// Begin listening for events
34
17
self . hardware . on ( 'fall' , function ( ) {
35
18
self . _press ( ) ;
36
19
} ) ;
37
-
20
+
38
21
self . hardware . on ( 'rise' , function ( ) {
39
22
self . _release ( ) ;
40
23
} ) ;
41
-
24
+
42
25
// Make sure the events get emitted, even if late
43
26
setInterval ( function ( ) {
44
27
if ( ! self . hardware . read ( ) ) {
@@ -47,7 +30,7 @@ function Button (hardware, callback) {
47
30
self . _release ( ) ;
48
31
}
49
32
} , self . delay ) ;
50
-
33
+
51
34
// Emit the ready event when everything is set up
52
35
setImmediate ( function emitReady ( ) {
53
36
self . emit ( 'ready' ) ;
@@ -63,7 +46,7 @@ util.inherits(Button, EventEmitter);
63
46
64
47
Button . prototype . _press = function ( ) {
65
48
var self = this ;
66
-
49
+
67
50
if ( ! self . pressed ) {
68
51
self . emit ( 'press' ) ;
69
52
self . pressed = true ;
@@ -72,7 +55,7 @@ Button.prototype._press = function () {
72
55
73
56
Button . prototype . _release = function ( ) {
74
57
var self = this ;
75
-
58
+
76
59
if ( self . pressed ) {
77
60
self . emit ( 'release' ) ;
78
61
self . pressed = false ;
0 commit comments