Skip to content

Commit 9037100

Browse files
committed
Report positions only when at least 1 encoder is attached
1 parent f643b34 commit 9037100

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

utility/EncoderFirmata.cpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ EncoderFirmata::EncoderFirmata()
3131
encoders[encoder]=NULL;
3232
}
3333
autoReport = false;
34+
numEncoders = 0;
3435
}
3536

3637
void EncoderFirmata::attachEncoder(byte encoderNum, byte pinANum, byte pinBNum)
@@ -48,6 +49,7 @@ void EncoderFirmata::attachEncoder(byte encoderNum, byte pinANum, byte pinBNum)
4849
Firmata.setPinMode(pinANum, ENCODER);
4950
Firmata.setPinMode(pinBNum, ENCODER);
5051
encoders[encoderNum] = new Encoder(pinANum, pinBNum);
52+
numEncoders++;
5153
}
5254

5355
void EncoderFirmata::detachEncoder(byte encoderNum)
@@ -56,6 +58,7 @@ void EncoderFirmata::detachEncoder(byte encoderNum)
5658
{
5759
free(encoders[encoderNum]);
5860
encoders[encoderNum] = NULL;
61+
numEncoders--;
5962
}
6063
}
6164

@@ -152,11 +155,12 @@ void EncoderFirmata::reset()
152155
detachEncoder(encoder);
153156
}
154157
autoReport = false;
158+
numEncoders= 0;
155159
}
156160

157161
void EncoderFirmata::report()
158162
{
159-
if (autoReport)
163+
if (autoReport && numEncoders>0)
160164
{
161165
reportPositions();
162166
}
@@ -203,6 +207,9 @@ void EncoderFirmata::reportPosition(byte encoder)
203207
// Report all attached encoders positions (one message for all encoders)
204208
void EncoderFirmata::reportPositions()
205209
{
210+
for(encoder=0; encoder<MAX_ENCODERS; encoder++)
211+
{
212+
}
206213
Firmata.write(START_SYSEX);
207214
Firmata.write(ENCODER_DATA);
208215
byte encoder;

utility/EncoderFirmata.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ class EncoderFirmata:public FirmataFeature
6969
Encoder *encoders[MAX_ENCODERS];
7070
void _reportEncoderPosition(byte encoder);
7171
volatile bool autoReport;
72+
byte numEncoders;
7273
};
7374

7475
#endif

0 commit comments

Comments
 (0)