@@ -99,26 +99,28 @@ module.exports = function(RED) {
99
99
var PiGPIO ;
100
100
101
101
function inputlistener ( msg ) {
102
- if ( msg . payload === "true" ) { msg . payload = true ; }
103
- if ( msg . payload === "false" ) { msg . payload = false ; }
104
- var out = Number ( msg . payload ) ;
105
- var limit = 1 ;
106
- if ( node . out !== "out" ) { limit = 100 ; }
107
- if ( ( out >= 0 ) && ( out <= limit ) ) {
108
- if ( RED . settings . verbose ) { node . log ( "out: " + msg . payload ) ; }
109
- if ( node . out === "out" ) {
110
- PiGPIO . write ( node . pin , msg . payload ) ;
111
- }
112
- if ( node . out === "pwm" ) {
113
- PiGPIO . set_PWM_dutycycle ( node . pin , parseInt ( msg . payload * 2.55 ) ) ;
114
- }
115
- if ( node . out === "ser" ) {
116
- var r = ( node . sermax - node . sermin ) * 100 ;
117
- PiGPIO . setServoPulsewidth ( node . pin , parseInt ( 1500 - ( r / 2 ) + ( msg . payload * r / 100 ) ) ) ;
102
+ if ( ! inerror ) {
103
+ if ( msg . payload === "true" ) { msg . payload = true ; }
104
+ if ( msg . payload === "false" ) { msg . payload = false ; }
105
+ var out = Number ( msg . payload ) ;
106
+ var limit = 1 ;
107
+ if ( node . out !== "out" ) { limit = 100 ; }
108
+ if ( ( out >= 0 ) && ( out <= limit ) ) {
109
+ if ( RED . settings . verbose ) { node . log ( "out: " + msg . payload ) ; }
110
+ if ( node . out === "out" ) {
111
+ PiGPIO . write ( node . pin , msg . payload ) ;
112
+ }
113
+ if ( node . out === "pwm" ) {
114
+ PiGPIO . set_PWM_dutycycle ( node . pin , parseInt ( msg . payload * 2.55 ) ) ;
115
+ }
116
+ if ( node . out === "ser" ) {
117
+ var r = ( node . sermax - node . sermin ) * 100 ;
118
+ PiGPIO . setServoPulsewidth ( node . pin , parseInt ( 1500 - ( r / 2 ) + ( msg . payload * r / 100 ) ) ) ;
119
+ }
120
+ node . status ( { fill :"green" , shape :"dot" , text :msg . payload . toString ( ) } ) ;
118
121
}
119
- node . status ( { fill : "green" , shape : "dot" , text : msg . payload . toString ( ) } ) ;
122
+ else { node . warn ( RED . _ ( "pi-gpiod:errors.invalidinput" ) + ": " + out ) ; }
120
123
}
121
- else { node . warn ( RED . _ ( "pi-gpiod:errors.invalidinput" ) + ": " + out ) ; }
122
124
}
123
125
124
126
if ( node . pin !== undefined ) {
@@ -132,6 +134,7 @@ module.exports = function(RED) {
132
134
node . retry = setTimeout ( function ( ) { doit ( ) ; } , 5000 ) ;
133
135
}
134
136
else {
137
+ inerror = false ;
135
138
PiGPIO . set_mode ( node . pin , PiGPIO . OUTPUT ) ;
136
139
if ( node . set ) {
137
140
setTimeout ( function ( ) { PiGPIO . write ( node . pin , node . level ) ; } , 25 ) ;
0 commit comments