@@ -22,137 +22,168 @@ void setup()
2222}
2323
2424test (attachEncoder)
25- {
26- int initial_memory = freeMemory ();
27-
28- EncoderFirmata *encoder = new EncoderFirmata ();
25+ {
26+ EncoderFirmata encoder;
2927 byte encoderNum = 0 , pin1 = 2 , pin2 = 3 ;
3028
31- assertFalse (encoder-> isEncoderAttached (encoderNum));
29+ assertFalse (encoder. isEncoderAttached (encoderNum));
3230
33- encoder->attachEncoder (encoderNum, pin1, pin2);
31+ encoder.attachEncoder (encoderNum, pin1, pin2);
32+
33+ assertTrue (encoder.isEncoderAttached (encoderNum));
34+ }
3435
35- assertTrue (encoder->isEncoderAttached (encoderNum));
36+ test (handleAttachEncoderMessage)
37+ {
38+ assertTestPass (attachEncoder);
39+ EncoderFirmata encoder;
40+ byte encoderNum = 0 , pin1 = 2 , pin2 = 3 ;
3641
37- delete encoder;
38- assertEqual (0 , initialMemory - freeMemory ()); // no memory leak
42+ assertFalse (encoder.isEncoderAttached (encoderNum));
43+ byte message[]={ENCODER_ATTACH, encoderNum, pin1, pin2};
44+ encoder.handleSysex (ENCODER_DATA, 4 , message);
45+
46+ assertTrue (encoder.isEncoderAttached (encoderNum));
3947}
4048
4149test (detachEncoder)
4250{
43- assertTestPass (attachEncoder);
44- int initial_memory = freeMemory ();
45-
46- EncoderFirmata *encoder = new EncoderFirmata ();
51+ EncoderFirmata encoder;
4752 byte encoderNum = 0 , pin1 = 2 , pin2 = 3 ;
48- encoder->attachEncoder (encoderNum, pin1, pin2);
53+ encoder.attachEncoder (encoderNum, pin1, pin2);
54+
55+ encoder.detachEncoder (encoderNum);
56+ assertFalse (encoder.isEncoderAttached (encoderNum));
57+ }
4958
50- encoder-> detachEncoder (encoderNum);
51- assertFalse (encoder-> isEncoderAttached (encoderNum));
59+ test (handeDetachEncoderMessage)
60+ {
5261
53- delete encoder;
54- assertEqual (0 , initialMemory - freeMemory ()); // no memory leak
62+ EncoderFirmata encoder;
63+ byte encoderNum = 0 , pin1 = 2 , pin2 = 3 ;
64+ encoder.attachEncoder (encoderNum, pin1, pin2);
65+
66+ byte message[]={ENCODER_DETACH, encoderNum};
67+ encoder.handleSysex (ENCODER_DATA, 2 , message);
68+ assertFalse (encoder.isEncoderAttached (encoderNum));
5569}
5670
71+
5772test (handlePinModes)
5873{
59- int initial_memory = freeMemory ();
60-
61- EncoderFirmata *encoder = new EncoderFirmata ();
74+ EncoderFirmata encoder;
6275
63- assertTrue (encoder->handlePinMode (2 , INPUT)); // 2 is interrupt
64- assertFalse (encoder->handlePinMode (1 , INPUT)); // 1 is NOT interrupt
65-
66- delete encoder;
67- assertEqual (0 , initialMemory - freeMemory ()); // no memory leak
76+ assertTrue (encoder.handlePinMode (2 , INPUT)); // 2 is interrupt
77+ assertFalse (encoder.handlePinMode (1 , INPUT)); // 1 is NOT interrupt
6878}
6979
7080test (reportEncoderPosition)
7181{
7282 assertTestPass (attachEncoder);
73- int initial_memory = freeMemory ();
7483
75- EncoderFirmata * encoder = new EncoderFirmata () ;
84+ EncoderFirmata encoder;
7685 byte encoderNum = 0 , pin1 = 2 , pin2 = 3 ;
77- encoder-> attachEncoder (encoderNum, pin1, pin2);
86+ encoder. attachEncoder (encoderNum, pin1, pin2);
7887
7988 stream.flush ();
80- encoder-> reportPosition (encoderNum);
89+ encoder. reportPosition (encoderNum);
8190 assertEqual (stream.bytesWritten ().length (), 6 );
91+ }
92+
93+ test (handeReportEncoderPositionMessage)
94+ {
95+ EncoderFirmata encoder;
96+ byte encoderNum = 0 , pin1 = 2 , pin2 = 3 ;
97+ encoder.attachEncoder (encoderNum, pin1, pin2);
8298
83- delete encoder;
84- assertEqual (0 , initialMemory - freeMemory ()); // no memory leak
99+ stream.flush ();
100+ byte message[]={ENCODER_REPORT_POSITION, encoderNum};
101+ encoder.handleSysex (ENCODER_DATA, 2 , message);
102+ assertEqual (stream.bytesWritten ().length (), 6 );
85103}
86104
87105test (reportEncodersPositions)
88106{
89107 assertTestPass (attachEncoder);
90- int initial_memory = freeMemory ();
91108
92- EncoderFirmata * encoder = new EncoderFirmata () ;
109+ EncoderFirmata encoder;
93110 byte encoderNum = 0 , pin1 = 2 , pin2 = 3 ;
94- encoder-> attachEncoder (encoderNum, pin1, pin2);
111+ encoder. attachEncoder (encoderNum, pin1, pin2);
95112
96113 stream.flush ();
97- encoder-> reportPositions ();
114+ encoder. reportPositions ();
98115 assertEqual (stream.bytesWritten ().length (), 9 );
99-
100- delete encoder;
101- assertEqual (0 , initialMemory - freeMemory ()); // no memory leak
102116}
103117
104- test (enableAutomaticReports )
118+ test (handleReportEncodersPositionsMessage )
105119{
106- int initial_memory = freeMemory ();
107120
108- EncoderFirmata *encoder = new EncoderFirmata ();
109- assertFalse (encoder->isReportingEnabled ());
110- encoder->toggleAutoReport (true );
111- assertTrue (encoder->isReportingEnabled ());
112- encoder->toggleAutoReport (false );
113- assertFalse (encoder->isReportingEnabled ());
121+ EncoderFirmata encoder;
122+ byte encoderNum = 0 , pin1 = 2 , pin2 = 3 ;
123+ encoder.attachEncoder (encoderNum, pin1, pin2);
114124
115- delete encoder;
116- assertEqual (0 , initialMemory - freeMemory ()); // no memory leak
125+ stream.flush ();
126+ byte message[]={ENCODER_REPORT_POSITIONS};
127+ encoder.handleSysex (ENCODER_DATA, 1 , message);
128+ assertEqual (stream.bytesWritten ().length (), 9 );
129+ }
130+
131+ test (enableAutomaticReports)
132+ {
133+ EncoderFirmata encoder;
134+ assertFalse (encoder.isReportingEnabled ());
135+ encoder.toggleAutoReport (true );
136+ assertTrue (encoder.isReportingEnabled ());
137+ encoder.toggleAutoReport (false );
138+ assertFalse (encoder.isReportingEnabled ());
139+ }
140+
141+ test (handleEnableAutomaticReportsMessage)
142+ {
143+ EncoderFirmata encoder;
144+ assertFalse (encoder.isReportingEnabled ());
145+
146+ byte enableMessage[]={ENCODER_REPORT_AUTO, 0x01 };
147+ encoder.handleSysex (ENCODER_DATA, 2 , enableMessage);
148+
149+ assertTrue (encoder.isReportingEnabled ());
150+
151+ byte disableMessage[]={ENCODER_REPORT_AUTO, 0x00 };
152+ encoder.handleSysex (ENCODER_DATA, 2 , disableMessage);
153+
154+ assertFalse (encoder.isReportingEnabled ());
117155}
118156
119157test (fullReport)
120158{
121159 assertTestPass (enableAutomaticReports);
122- int initial_memory = freeMemory ();
123160
124- EncoderFirmata * encoder = new EncoderFirmata () ;
161+ EncoderFirmata encoder;
125162
126163 stream.flush ();
127- encoder-> report ();
164+ encoder. report ();
128165 assertEqual (stream.bytesWritten ().length (), 0 ); // reports disable
129166
130- encoder-> toggleAutoReport (true );
167+ encoder. toggleAutoReport (true );
131168
132169 stream.flush ();
133- encoder-> report ();
170+ encoder. report ();
134171 assertEqual (stream.bytesWritten ().length (), 3 ); // reports enable
135-
136- delete encoder;
137- assertEqual (0 , initialMemory - freeMemory ()); // no memory leak
138172}
139173
140174test (resetEncoder)
141175{
142176 assertTestPass (attachEncoder);
143- int initial_memory = freeMemory ();
144177
145- EncoderFirmata * encoder = new EncoderFirmata () ;
178+ EncoderFirmata encoder;
146179 byte encoderNum = 0 , pin1 = 2 , pin2 = 3 ;
147- encoder-> attachEncoder (encoderNum, pin1, pin2);
180+ encoder. attachEncoder (encoderNum, pin1, pin2);
148181
149- encoder->reset ();
150- assertFalse (encoder->isEncoderAttached (encoderNum));
151-
152- delete encoder;
153- assertEqual (0 , initialMemory - freeMemory ()); // no memory leak
182+ encoder.reset ();
183+ assertFalse (encoder.isEncoderAttached (encoderNum));
154184}
155185
186+
156187void loop ()
157188{
158189 Test::run ();
0 commit comments