@@ -58,7 +58,7 @@ TEST(TestSendPronto, MoreDataThanNeededInNormal) {
5858 uint16_t pronto_test[8 ] = {0x0000 , 0x0067 , 0x0001 , 0x0000 ,
5959 0x0001 , 0x0002 , 0x0003 , 0x0004 };
6060 irsend.sendPronto (pronto_test, 8 );
61- EXPECT_EQ (" f40244d50m25s50 " ,
61+ EXPECT_EQ (" f40244d50m24s49 " ,
6262 irsend.outputStr ()); // Only send the data required.
6363}
6464
@@ -71,7 +71,7 @@ TEST(TestSendPronto, MoreDataThanNeededInRepeat) {
7171 uint16_t pronto_test[8 ] = {0x0000 , 0x0067 , 0x0000 , 0x0001 ,
7272 0x0001 , 0x0002 , 0x0003 , 0x0004 };
7373 irsend.sendPronto (pronto_test, 8 );
74- EXPECT_EQ (" f40244d50m25s50 " ,
74+ EXPECT_EQ (" f40244d50m24s49 " ,
7575 irsend.outputStr ()); // Only send the data required.
7676}
7777
@@ -84,10 +84,10 @@ TEST(TestSendPronto, MoreDataThanNeededInBoth) {
8484 uint16_t pronto_test[10 ] = {0x0000 , 0x0067 , 0x0001 , 0x0001 , 0x0001 ,
8585 0x0002 , 0x0003 , 0x0004 , 0x5 , 0x6 };
8686 irsend.sendPronto (pronto_test, 10 );
87- EXPECT_EQ (" f40244d50m25s50 " ,
87+ EXPECT_EQ (" f40244d50m24s49 " ,
8888 irsend.outputStr ()); // Only send the data required.
8989 irsend.sendPronto (pronto_test, 10 , 1 );
90- EXPECT_EQ (" f40244d50m25s50m75s100 " ,
90+ EXPECT_EQ (" f40244d50m24s49m74s99 " ,
9191 irsend.outputStr ()); // Only the data required.
9292}
9393
@@ -139,18 +139,18 @@ TEST(TestSendPronto, NonRepeatingCode) {
139139 EXPECT_EQ (0x0 , irsend.capture .command );
140140 EXPECT_EQ (
141141 " f40244d50"
142- " m2400s600 "
143- " m600s600m600s600m600s600m600s600m600s600m600s600m600s600m1200s600 "
144- " m600s600m600s600m600s600m600s27650 "
145- " m2400s600 "
146- " m600s600m600s600m600s600m600s600m600s600m600s600m600s600m1200s600 "
147- " m600s600m600s600m600s600m600s27650 "
148- " m2400s600 "
149- " m600s600m600s600m600s600m600s600m600s600m600s600m600s600m1200s600 "
150- " m600s600m600s600m600s600m600s27650 "
151- " m2400s600 "
152- " m600s600m600s600m600s600m600s600m600s600m600s600m600s600m1200s600 "
153- " m600s600m600s600m600s600m600s600 " ,
142+ " m2390s597 "
143+ " m597s597m597s597m597s597m597s597m597s597m597s597m597s597m1195s597 "
144+ " m597s597m597s597m597s597m597s27539 "
145+ " m2390s597 "
146+ " m597s597m597s597m597s597m597s597m597s597m597s597m597s597m1195s597 "
147+ " m597s597m597s597m597s597m597s27539 "
148+ " m2390s597 "
149+ " m597s597m597s597m597s597m597s597m597s597m597s597m597s597m1195s597 "
150+ " m597s597m597s597m597s597m597s27539 "
151+ " m2390s597 "
152+ " m597s597m597s597m597s597m597s597m597s597m597s597m597s597m1195s597 "
153+ " m597s597m597s597m597s597m597s597 " ,
154154 irsend.outputStr ());
155155
156156 // Now try repeating it.
@@ -166,18 +166,18 @@ TEST(TestSendPronto, NonRepeatingCode) {
166166 EXPECT_EQ (0x0 , irsend.capture .command );
167167 EXPECT_EQ (
168168 " f40244d50"
169- " m2400s600 "
170- " m600s600m600s600m600s600m600s600m600s600m600s600m600s600m1200s600 "
171- " m600s600m600s600m600s600m600s27650 "
172- " m2400s600 "
173- " m600s600m600s600m600s600m600s600m600s600m600s600m600s600m1200s600 "
174- " m600s600m600s600m600s600m600s27650 "
175- " m2400s600 "
176- " m600s600m600s600m600s600m600s600m600s600m600s600m600s600m1200s600 "
177- " m600s600m600s600m600s600m600s27650 "
178- " m2400s600 "
179- " m600s600m600s600m600s600m600s600m600s600m600s600m600s600m1200s600 "
180- " m600s600m600s600m600s600m600s600 " ,
169+ " m2390s597 "
170+ " m597s597m597s597m597s597m597s597m597s597m597s597m597s597m1195s597 "
171+ " m597s597m597s597m597s597m597s27539 "
172+ " m2390s597 "
173+ " m597s597m597s597m597s597m597s597m597s597m597s597m597s597m1195s597 "
174+ " m597s597m597s597m597s597m597s27539 "
175+ " m2390s597 "
176+ " m597s597m597s597m597s597m597s597m597s597m597s597m597s597m1195s597 "
177+ " m597s597m597s597m597s597m597s27539 "
178+ " m2390s597 "
179+ " m597s597m597s597m597s597m597s597m597s597m597s597m597s597m1195s597 "
180+ " m597s597m597s597m597s597m597s597 " ,
181181 irsend.outputStr ());
182182}
183183
@@ -208,10 +208,10 @@ TEST(TestSendPronto, RepeatSequenceOnlyForSony) {
208208 EXPECT_EQ (0x24AE , irsend.capture .command );
209209 EXPECT_EQ (
210210 " f40244d50"
211- " m2400s600 "
212- " m600s600m1200s600m1200s600m1200s600m600s600m1200s600m600s600m600s600 "
213- " m1200s600m600s600m1200s600m1200s600m1200s600m600s600m600s600m1200s600 "
214- " m600s600m600s600m1200s600m600s25350 " ,
211+ " m2390s597 "
212+ " m597s597m1195s597m1195s597m1195s597m597s597m1195s597m597s597m597s597 "
213+ " m1195s597m597s597m1195s597m1195s597m1195s597m597s597m597s597m1195s597 "
214+ " m597s597m597s597m1195s597m597s25248 " ,
215215 irsend.outputStr ());
216216
217217 // Send the Pronto code with 2 repeats.
@@ -226,18 +226,18 @@ TEST(TestSendPronto, RepeatSequenceOnlyForSony) {
226226 EXPECT_EQ (0x24AE , irsend.capture .command );
227227 EXPECT_EQ (
228228 " f40244d50"
229- " m2400s600 "
230- " m600s600m1200s600m1200s600m1200s600m600s600m1200s600m600s600m600s600 "
231- " m1200s600m600s600m1200s600m1200s600m1200s600m600s600m600s600m1200s600 "
232- " m600s600m600s600m1200s600m600s25350 "
233- " m2400s600 "
234- " m600s600m1200s600m1200s600m1200s600m600s600m1200s600m600s600m600s600 "
235- " m1200s600m600s600m1200s600m1200s600m1200s600m600s600m600s600m1200s600 "
236- " m600s600m600s600m1200s600m600s25350 "
237- " m2400s600 "
238- " m600s600m1200s600m1200s600m1200s600m600s600m1200s600m600s600m600s600 "
239- " m1200s600m600s600m1200s600m1200s600m1200s600m600s600m600s600m1200s600 "
240- " m600s600m600s600m1200s600m600s25350 " ,
229+ " m2390s597 "
230+ " m597s597m1195s597m1195s597m1195s597m597s597m1195s597m597s597m597s597 "
231+ " m1195s597m597s597m1195s597m1195s597m1195s597m597s597m597s597m1195s597 "
232+ " m597s597m597s597m1195s597m597s25248 "
233+ " m2390s597 "
234+ " m597s597m1195s597m1195s597m1195s597m597s597m1195s597m597s597m597s597 "
235+ " m1195s597m597s597m1195s597m1195s597m1195s597m597s597m597s597m1195s597 "
236+ " m597s597m597s597m1195s597m597s25248 "
237+ " m2390s597 "
238+ " m597s597m1195s597m1195s597m1195s597m597s597m1195s597m597s597m597s597 "
239+ " m1195s597m597s597m1195s597m1195s597m1195s597m597s597m597s597m1195s597 "
240+ " m597s597m597s597m1195s597m597s25248 " ,
241241 irsend.outputStr ());
242242}
243243
@@ -274,14 +274,14 @@ TEST(TestSendPronto, RepeatSequenceOnlyForPanasonic) {
274274 EXPECT_EQ (0x1007C7D , irsend.capture .command );
275275 EXPECT_EQ (
276276 " f36682d50"
277- " m3456s1701 "
278- " m432s432m432s1296m432s432m432s432m432s432m432s432m432s432m432s432 "
279- " m432s432m432s432m432s432m432s432m432s432m432s1296m432s432m432s432 "
280- " m432s432m432s432m432s432m432s432m432s432m432s432m432s432m432s1296 "
281- " m432s432m432s432m432s432m432s432m432s432m432s432m432s432m432s432 "
282- " m432s432m432s1296m432s1296m432s1296m432s1296m432s1296m432s432m432s432 "
283- " m432s432m432s1296m432s1296m432s1296m432s1296m432s1296m432s432m432s1296 "
284- " m432s73224 " ,
277+ " m3494s1719 "
278+ " m436s436m436s1310m436s436m436s436m436s436m436s436m436s436m436s436 "
279+ " m436s436m436s436m436s436m436s436m436s436m436s1310m436s436m436s436 "
280+ " m436s436m436s436m436s436m436s436m436s436m436s436m436s436m436s1310 "
281+ " m436s436m436s436m436s436m436s436m436s436m436s436m436s436m436s436 "
282+ " m436s436m436s1310m436s1310m436s1310m436s1310m436s1310m436s436m436s436 "
283+ " m436s436m436s1310m436s1310m436s1310m436s1310m436s1310m436s436m436s1310 "
284+ " m436s74037 " ,
285285 irsend.outputStr ());
286286}
287287
@@ -315,12 +315,12 @@ TEST(TestSendPronto, NormalPlusRepeatSequence) {
315315 EXPECT_EQ (0x8 , irsend.capture .command );
316316 EXPECT_EQ (
317317 " f38028d50"
318- " m8892s4446 "
319- " m546s546m546s546m546s546m546s1664m546s1664m546s546m546s546m546s546 "
320- " m546s1664m546s1664m546s1664m546s546m546s546m546s1664m546s1664m546s1664 "
321- " m546s546m546s546m546s546m546s1664m546s546m546s546m546s546m546s546 "
322- " m546s1664m546s1664m546s1664m546s546m546s1664m546s1664m546s1664m546s1664 "
323- " m546s39858 " ,
318+ " m8994s4497 "
319+ " m552s552m552s552m552s552m552s1683m552s1683m552s552m552s552m552s552 "
320+ " m552s1683m552s1683m552s1683m552s552m552s552m552s1683m552s1683m552s1683 "
321+ " m552s552m552s552m552s552m552s1683m552s552m552s552m552s552m552s552 "
322+ " m552s1683m552s1683m552s1683m552s552m552s1683m552s1683m552s1683m552s1683 "
323+ " m552s40317 " ,
324324 irsend.outputStr ());
325325
326326 // Send it again with a single repeat.
@@ -335,13 +335,13 @@ TEST(TestSendPronto, NormalPlusRepeatSequence) {
335335 EXPECT_EQ (0x8 , irsend.capture .command );
336336 EXPECT_EQ (
337337 " f38028d50"
338- " m8892s4446 "
339- " m546s546m546s546m546s546m546s1664m546s1664m546s546m546s546m546s546 "
340- " m546s1664m546s1664m546s1664m546s546m546s546m546s1664m546s1664m546s1664 "
341- " m546s546m546s546m546s546m546s1664m546s546m546s546m546s546m546s546 "
342- " m546s1664m546s1664m546s1664m546s546m546s1664m546s1664m546s1664m546s1664 "
343- " m546s39858 "
344- " m8892s2210m546s95212 " ,
338+ " m8994s4497 "
339+ " m552s552m552s552m552s552m552s1683m552s1683m552s552m552s552m552s552 "
340+ " m552s1683m552s1683m552s1683m552s552m552s552m552s1683m552s1683m552s1683 "
341+ " m552s552m552s552m552s552m552s1683m552s552m552s552m552s552m552s552 "
342+ " m552s1683m552s1683m552s1683m552s552m552s1683m552s1683m552s1683m552s1683 "
343+ " m552s40317 "
344+ " m8994s2235m552s96310 " ,
345345 irsend.outputStr ());
346346
347347 // Send it again with a two repeats.
@@ -356,14 +356,14 @@ TEST(TestSendPronto, NormalPlusRepeatSequence) {
356356 EXPECT_EQ (0x8 , irsend.capture .command );
357357 EXPECT_EQ (
358358 " f38028d50"
359- " m8892s4446 "
360- " m546s546m546s546m546s546m546s1664m546s1664m546s546m546s546m546s546 "
361- " m546s1664m546s1664m546s1664m546s546m546s546m546s1664m546s1664m546s1664 "
362- " m546s546m546s546m546s546m546s1664m546s546m546s546m546s546m546s546 "
363- " m546s1664m546s1664m546s1664m546s546m546s1664m546s1664m546s1664m546s1664 "
364- " m546s39858 "
365- " m8892s2210m546s95212 "
366- " m8892s2210m546s95212 " ,
359+ " m8994s4497 "
360+ " m552s552m552s552m552s552m552s1683m552s1683m552s552m552s552m552s552 "
361+ " m552s1683m552s1683m552s1683m552s552m552s552m552s1683m552s1683m552s1683 "
362+ " m552s552m552s552m552s552m552s1683m552s552m552s552m552s552m552s552 "
363+ " m552s1683m552s1683m552s1683m552s552m552s1683m552s1683m552s1683m552s1683 "
364+ " m552s40317 "
365+ " m8994s2235m552s96310 "
366+ " m8994s2235m552s96310 " ,
367367 irsend.outputStr ());
368368}
369369
@@ -391,3 +391,36 @@ TEST(TestSendPronto, Issue1034) {
391391 EXPECT_EQ (0xa3 , irsend.capture .address );
392392 EXPECT_EQ (0x10 , irsend.capture .command );
393393}
394+
395+ // Tests for #1103
396+ TEST (TestSendPronto, Issue1103) {
397+ IRsendTest irsend (0 );
398+ IRrecv irrecv (0 );
399+ irsend.begin ();
400+ // Based on raw data:
401+ // uint16_t rawData[7] = {20100, 20472, 15092, 30704, 20102, 20472, 15086};
402+ // and output from `raw_to_pronto_code.py --hz 38000`:
403+ // Pronto code = '0000 006D 0004 0000 02FB 0309 023D 048E 02FB 0309 023D 0ED8'
404+ uint16_t pronto_test[12 ] = {
405+ 0x0000 , 0x006D , 0x0004 , 0x0000 , 0x02FB , 0x0309 , 0x023D , 0x048E ,
406+ 0x02FB , 0x0309 , 0x023D , 0x0ED8 };
407+ irsend.reset ();
408+ irsend.sendPronto (pronto_test, 12 );
409+ EXPECT_EQ (
410+ " f38028d50m20066s20435m15069s30665m20066s20435m15069s99940" ,
411+ irsend.outputStr ());
412+ // Which pretty much matches the `rawData` above.
413+
414+ // Shorter test.
415+ // uint16_t rawData[4] = {20100, 20472, 15092, 30704};
416+ // and output from `raw_to_pronto_code.py --hz 38000`:
417+ // Pronto code = '0000 006D 0002 0000 02FB 0309 023D 048E'
418+ uint16_t pronto_test2[8 ] = {
419+ 0x0000 , 0x006D , 0x0002 , 0x0000 , 0x02FB , 0x0309 , 0x023D , 0x048E };
420+ irsend.reset ();
421+ irsend.sendPronto (pronto_test2, 8 );
422+ EXPECT_EQ (
423+ " f38028d50m20066s20435m15069s30665" ,
424+ irsend.outputStr ());
425+ // Which pretty much matches the `rawData` above.
426+ }
0 commit comments