diff options
author | Albert Kharisov <ah@bright-box.com> | 2021-09-15 20:22:58 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-15 20:22:58 +0300 |
commit | 4f233ff0a31f30ac03328040d756b79ccfe53ab0 (patch) | |
tree | 71558ddd34f49a168c561985c0bb41b3873d1891 /applications/tests | |
parent | 4768177cf5f84905e41bc1a73556a036281fe584 (diff) |
[FL-1800] IRDA: enc/decoder refactoring, Add NEC42 (#705)
* WIP: IRDA: multilen protocol refactoring, NEC42
* IRDA: Refactoring encoder/decoder
Co-authored-by: あく <alleteam@gmail.com>
Diffstat (limited to 'applications/tests')
4 files changed, 241 insertions, 156 deletions
diff --git a/applications/tests/irda_decoder_encoder/irda_decoder_encoder_test.c b/applications/tests/irda_decoder_encoder/irda_decoder_encoder_test.c index 55403b95..01bca32d 100644 --- a/applications/tests/irda_decoder_encoder/irda_decoder_encoder_test.c +++ b/applications/tests/irda_decoder_encoder/irda_decoder_encoder_test.c @@ -129,10 +129,7 @@ static void run_encoder_decoder(const IrdaMessage input_messages[], uint32_t inp for(int i = 0; i < timings_len; ++i) { message_decoded = irda_decode(decoder_handler, level, timings[i]); if((i == timings_len - 2) && level && message_decoded) { - /* In case we end with space timing - message can be decoded at last mark. - * Exception - SIRC protocol, which has variable message length (12/15/20), - * and decoder recognizes protocol by silence time before next message - * or by timeout (irda_check_decoder_ready()). */ + /* In case we end with space timing - message can be decoded at last mark */ break; } else if(i < timings_len - 1) { mu_check(!message_decoded); @@ -225,17 +222,16 @@ MU_TEST(test_mix) { RUN_DECODER(test_decoder_rc6_input1, test_decoder_rc6_expected1); RUN_DECODER(test_decoder_necext_input1, test_decoder_necext_expected1); RUN_DECODER(test_decoder_sirc_input5, test_decoder_sirc_expected5); + RUN_DECODER(test_decoder_nec_input3, test_decoder_nec_expected3); RUN_DECODER(test_decoder_rc5_input5, test_decoder_rc5_expected5); RUN_DECODER(test_decoder_samsung32_input1, test_decoder_samsung32_expected1); RUN_DECODER(test_decoder_sirc_input3, test_decoder_sirc_expected3); } -MU_TEST(test_decoder_nec1) { +MU_TEST(test_decoder_nec) { RUN_DECODER(test_decoder_nec_input1, test_decoder_nec_expected1); -} - -MU_TEST(test_decoder_nec2) { RUN_DECODER(test_decoder_nec_input2, test_decoder_nec_expected2); + RUN_DECODER(test_decoder_nec_input3, test_decoder_nec_expected3); } MU_TEST(test_decoder_unexpected_end_in_sequence) { @@ -295,6 +291,8 @@ MU_TEST(test_encoder_rc6) { MU_TEST(test_encoder_decoder_all) { RUN_ENCODER_DECODER(test_nec); RUN_ENCODER_DECODER(test_necext); + RUN_ENCODER_DECODER(test_nec42); + RUN_ENCODER_DECODER(test_nec42ext); RUN_ENCODER_DECODER(test_samsung32); RUN_ENCODER_DECODER(test_rc6); RUN_ENCODER_DECODER(test_rc5); @@ -312,8 +310,7 @@ MU_TEST_SUITE(test_irda_decoder_encoder) { MU_RUN_TEST(test_decoder_rc6); MU_RUN_TEST(test_encoder_rc6); MU_RUN_TEST(test_decoder_unexpected_end_in_sequence); - MU_RUN_TEST(test_decoder_nec1); - MU_RUN_TEST(test_decoder_nec2); + MU_RUN_TEST(test_decoder_nec); MU_RUN_TEST(test_decoder_samsung32); MU_RUN_TEST(test_decoder_necext1); MU_RUN_TEST(test_mix); diff --git a/applications/tests/irda_decoder_encoder/test_data/irda_nec_test_data.srcdata b/applications/tests/irda_decoder_encoder/test_data/irda_nec_test_data.srcdata index 9b4dae7e..f97f31ca 100644 --- a/applications/tests/irda_decoder_encoder/test_data/irda_nec_test_data.srcdata +++ b/applications/tests/irda_decoder_encoder/test_data/irda_nec_test_data.srcdata @@ -178,6 +178,45 @@ const IrdaMessage test_decoder_nec_expected2[] = { {IrdaProtocolNEC, 0x00, 0x0A, true}, }; +const uint32_t test_decoder_nec_input3[] = { +200000, 8862, 4452, 562, 563, 559, 1681, 563, 1646, 567, 586, 556, 569, 563, 583, 559, 571, 561, 1675, 559, 565, 567, 1673, 561, 561, 561, 592, 561, 565, 567, 579, 563, 567, 565, 584, 558, 1652, 561, 592, 561, 561, 561, 1679, 565, 560, 562, 584, 558, 1659, 564, 585, 557, 566, 566, 1675, 559, 1649, 564, 589, 564, 1649, 564, 1668, 566, 565, 567, 1669, 565, + 43470, 8896, 4432, 561, 561, 561, 1679, 565, 1648, 565, 581, 561, 568, 564, 586, 567, 558, 564, 1676, 558, 564, 558, 1681, 563, 563, 559, 587, 566, 565, 567, 582, 561, 564, 558, 595, 558, 1650, 563, 590, 563, 563, 559, 1674, 560, 570, 562, 587, 566, 1645, 568, 586, 556, 565, 567, 1672, 562, 1651, 562, 584, 558, 1658, 566, 1671, 563, 561, 561, 1679, 565, +200000, 8881, 4383, 569, 549, 573, 548, 574, 541, 571, 550, 572, 547, 575, 539, 573, 551, 571, 1651, 573, 545, 567, 554, 568, 548, 574, 1652, 572, 547, 575, 1645, 568, 1661, 573, 545, 567, 1657, 567, 554, 568, 547, 575, 1652, 572, 547, 575, 539, 573, 1657, 567, 550, 572, 545, 577, 1651, 573, 1648, 576, 545, 567, 1659, 575, 1645, 568, 555, 567, 1657, 567, + 38995, 8883, 4369, 573, 543, 569, 552, 570, 549, 573, 541, 571, 553, 569, 548, 574, 543, 569, 1658, 566, 550, 572, 548, 574, 546, 566, 1653, 571, 553, 569, 1654, 570, 1654, 570, 551, 571, 1651, 573, 547, 575, 545, 567, 1653, 571, 552, 570, 547, 575, 1649, 564, 556, 566, 550, 572, 1655, 569, 1656, 568, 546, 566, 1664, 570, 1653, 571, 547, 565, 1663, 571, +200000, 8987, 4504, 561, 593, 539, 589, 533, 596, 515, 586, 536, 592, 540, 588, 534, 595, 517, 1713, 541, 1664, 570, 1686, 558, 596, 515, 587, 535, 593, 539, 1691, 543, 1689, 565, 588, 513, 1691, 563, 1668, 617, 1613, 641, 1615, 567, 587, 535, 593, 519, 610, 512, 590, 542, 1714, 510, 593, 539, 1691, 563, 591, 510, 1720, 535, 594, 518, 584, 538, 591, 541, + 39546, 8990, 4501, 565, 590, 542, 586, 536, 593, 508, 593, 539, 589, 543, 585, 537, 592, 509, 1720, 545, 1660, 615, 1642, 561, 567, 534, 594, 538, 590, 542, 1688, 535, 1696, 558, 595, 517, 1687, 567, 1664, 621, 1635, 619, 1611, 561, 594, 538, 590, 511, 617, 515, 586, 536, 1721, 513, 589, 543, 1687, 568, 587, 514, 1691, 563, 590, 511, 591, 541, 587, 535, +200000, 8986, 4505, 560, 594, 538, 590, 542, 586, 515, 586, 536, 593, 539, 589, 533, 595, 517, 1714, 540, 587, 535, 594, 518, 1713, 542, 586, 515, 587, 535, 1722, 543, 1662, 562, 592, 540, 1664, 570, 585, 537, 591, 541, 1689, 545, 584, 538, 590, 542, 1688, 536, 593, 539, 589, 512, 590, 542, 586, 536, 1720, 514, 588, 544, 585, 537, 591, 541, 587, 514, + 40671, 8986, 4505, 560, 594, 538, 590, 542, 586, 515, 587, 535, 593, 539, 589, 533, 595, 516, 1714, 541, 587, 535, 594, 518, 1712, 542, 586, 515, 587, 535, 1722, 543, 1662, 561, 592, 540, 1664, 570, 585, 537, 591, 541, 1689, 545, 584, 538, 590, 542, 1688, 536, 593, 539, 589, 512, 590, 542, 586, 536, 1720, 514, 588, 544, 585, 537, 591, 541, 587, 514, +200000, 8990, 4500, 566, 1692, 562, 1668, 566, 588, 534, 594, 518, 584, 538, 591, 541, 587, 535, 1669, 565, 589, 543, 1688, 536, 592, 540, 1691, 563, 1667, 567, 1664, 621, 1635, 568, 586, 515, 587, 535, 593, 539, 589, 543, 1662, 562, 592, 540, 588, 534, 594, 518, 585, 537, 591, 541, 587, 514, 587, 535, 594, 538, 590, 542, 586, 515, 586, 536, 593, 539, + 39544, 8993, 4498, 567, 1690, 564, 1666, 568, 586, 536, 593, 508, 593, 539, 589, 543, 585, 537, 1668, 566, 588, 544, 1687, 537, 591, 541, 1690, 564, 1666, 568, 1663, 561, 1696, 569, 585, 516, 586, 536, 593, 539, 589, 543, 1661, 562, 592, 540, 588, 534, 594, 517, 584, 538, 591, 541, 587, 514, 587, 535, 593, 539, 589, 543, 585, 516, 586, 536, 592, 540, +200000, 8894, 4456, 589, 1676, 589, 571, 582, 574, 589, 571, 582, 1683, 582, 1677, 588, 1682, 583, 574, 589, 568, 585, 1682, 583, 1678, 587, 1680, 585, 574, 589, 565, 588, 575, 588, 1675, 590, 567, 586, 1681, 584, 571, 582, 1685, 590, 568, 585, 569, 584, 1685, 590, 567, 586, 1678, 587, 574, 589, 1672, 582, 578, 585, 1679, 586, 1674, 591, 572, 591, 1672, 582, + 39632, 8912, 4464, 560, 1703, 562, 598, 565, 594, 559, 594, 559, 1711, 564, 1698, 567, 1697, 568, 593, 560, 595, 568, 1698, 567, 1698, 567, 1693, 561, 602, 561, 596, 567, 590, 563, 1704, 561, 594, 559, 1707, 568, 591, 562, 1697, 568, 596, 567, 590, 563, 1700, 565, 596, 567, 1693, 561, 599, 564, 1701, 564, 589, 564, 1706, 559, 1704, 561, 597, 566, 1700, 565, +200000, 9018, 4500, 565, 1666, 568, 1689, 565, 588, 513, 1691, 615, 1616, 618, 1639, 564, 1667, 567, 587, 535, 594, 538, 563, 538, 590, 542, 586, 536, 593, 508, 593, 539, 589, 543, 1688, 535, 592, 540, 588, 544, 585, 537, 591, 510, 1694, 560, 1670, 564, 1693, 562, 1669, 565, 1692, 542, 1689, 565, 588, 534, 595, 517, 585, 537, 591, 541, 587, 535, 568, 544, 584, 538, 591, 541, 1663, 560, 1696, 569, 1662, 562, 1695, 539, 1692, 614, 1616, 566, 1691, 563, 1667, 567, + 23184, 9012, 4505, 560, 1697, 537, 1693, 561, 593, 508, 1696, 569, 1662, 562, 1695, 560, 1671, 563, 591, 541, 587, 535, 594, 518, 584, 538, 590, 542, 586, 515, 613, 509, 593, 539, 1692, 542, 585, 537, 592, 540, 588, 534, 594, 518, 1687, 567, 1663, 560, 1697, 568, 1662, 562, 1695, 539, 1692, 563, 591, 541, 587, 514, 588, 544, 584, 538, 590, 542, 586, 515, 587, 535, 593, 539, 1666, 568, 1689, 565, 1665, 569, 1688, 536, 1695, 570, 1661, 562, 1694, 561, 1670, 564, +200000, 8835, 4446, 537, 562, 539, 562, 539, 1663, 540, 1667, 536, 1669, 534, 560, 531, 573, 539, 559, 532, 1672, 531, 570, 531, 564, 537, 563, 538, 561, 540, 1660, 533, 1677, 536, 561, 540, 557, 534, 567, 534, 1668, 535, 1672, 531, 1675, 538, 555, 536, 1674, 539, 1665, 538, 1666, 537, 1671, 532, 563, 538, 1669, 534, 566, 535, 558, 533, 1677, 536, 562, 539, 558, 533, 568, 533, 1668, 535, 566, 535, 1670, 533, 1667, 536, 568, 533, 1671, 532, 1672, 531, 1676, 537, + 22779, 8870, 4437, 535, + 92592, 8861, 4414, 538, +}; + +const IrdaMessage test_decoder_nec_expected3[] = { + {IrdaProtocolNECext, 0x286, 0xB649, false}, + {IrdaProtocolNECext, 0x286, 0xB649, false}, + {IrdaProtocolNECext, 0x6880, 0xB649, false}, + {IrdaProtocolNECext, 0x6880, 0xB649, false}, + {IrdaProtocolNECext, 0x6380, 0x150F, false}, + {IrdaProtocolNECext, 0x6380, 0x150F, false}, + {IrdaProtocolNECext, 0x6480, 0x849, false}, + {IrdaProtocolNECext, 0x6480, 0x849, false}, + {IrdaProtocolNECext, 0x7A83, 0x8, false}, + {IrdaProtocolNECext, 0x7A83, 0x8, false}, + {IrdaProtocolNEC, 0x71, 0x4A, false}, + {IrdaProtocolNEC, 0x71, 0x4A, false}, + {IrdaProtocolNEC42, 0x7B, 0x0, false}, + {IrdaProtocolNEC42, 0x7B, 0x0, false}, + {IrdaProtocolNEC42, 0x11C, 0x12, false}, +}; + + const IrdaMessage test_nec[] = { {IrdaProtocolNEC, 0x00, 0x00, false}, {IrdaProtocolNEC, 0x01, 0x00, false}, @@ -209,4 +248,61 @@ const IrdaMessage test_nec[] = { {IrdaProtocolNEC, 0x55, 0x55, true}, }; +const IrdaMessage test_nec42[] = { + {IrdaProtocolNEC42, 0x0000, 0x00, false}, + {IrdaProtocolNEC42, 0x0001, 0x00, false}, + {IrdaProtocolNEC42, 0x0001, 0x80, false}, + {IrdaProtocolNEC42, 0x0000, 0x80, false}, + {IrdaProtocolNEC42, 0x0000, 0x00, false}, + {IrdaProtocolNEC42, 0x0000, 0x00, true}, + {IrdaProtocolNEC42, 0x0000, 0x00, false}, + {IrdaProtocolNEC42, 0x0000, 0x00, true}, + {IrdaProtocolNEC42, 0x1FFF, 0xFF, false}, + {IrdaProtocolNEC42, 0x1FFE, 0xFF, false}, + {IrdaProtocolNEC42, 0x1FFE, 0x7F, false}, + {IrdaProtocolNEC42, 0x1FFF, 0x7F, false}, + {IrdaProtocolNEC42, 0x1FFF, 0xFF, false}, + {IrdaProtocolNEC42, 0x1FFF, 0xFF, true}, + {IrdaProtocolNEC42, 0x0AAA, 0x55, false}, + {IrdaProtocolNEC42, 0x1555, 0xAA, false}, + {IrdaProtocolNEC42, 0x1555, 0x55, false}, + {IrdaProtocolNEC42, 0x0AAA, 0xAA, false}, + {IrdaProtocolNEC42, 0x0AAA, 0xAA, true}, + {IrdaProtocolNEC42, 0x0AAA, 0xAA, false}, + {IrdaProtocolNEC42, 0x0AAA, 0xAA, true}, + {IrdaProtocolNEC42, 0x0AAA, 0xAA, true}, + {IrdaProtocolNEC42, 0x1555, 0x55, false}, + {IrdaProtocolNEC42, 0x1555, 0x55, true}, + {IrdaProtocolNEC42, 0x1555, 0x55, true}, + {IrdaProtocolNEC42, 0x1555, 0x55, true}, +}; + +const IrdaMessage test_nec42ext[] = { + {IrdaProtocolNEC42ext, 0x0000000, 0x0000, false}, + {IrdaProtocolNEC42ext, 0x0000001, 0x0000, false}, + {IrdaProtocolNEC42ext, 0x0000001, 0x8000, false}, + {IrdaProtocolNEC42ext, 0x0000000, 0x8000, false}, + {IrdaProtocolNEC42ext, 0x0000000, 0x0000, false}, + {IrdaProtocolNEC42ext, 0x0000000, 0x0000, true}, + {IrdaProtocolNEC42ext, 0x0000000, 0x0000, false}, + {IrdaProtocolNEC42ext, 0x0000000, 0x0000, true}, + {IrdaProtocolNEC42ext, 0x3F000FF, 0xF00F, false}, + {IrdaProtocolNEC42ext, 0x3F000FE, 0xF00F, false}, + {IrdaProtocolNEC42ext, 0x3F000FE, 0x700F, false}, + {IrdaProtocolNEC42ext, 0x3F000FF, 0x700F, false}, + {IrdaProtocolNEC42ext, 0x3F000FF, 0xF00F, false}, + {IrdaProtocolNEC42ext, 0x3F000FF, 0xF00F, true}, + {IrdaProtocolNEC42ext, 0x2AAAAAA, 0x5555, false}, + {IrdaProtocolNEC42ext, 0x1555555, 0xAAAA, false}, + {IrdaProtocolNEC42ext, 0x1555555, 0x5555, false}, + {IrdaProtocolNEC42ext, 0x2AAAAAA, 0xAAAA, false}, + {IrdaProtocolNEC42ext, 0x2AAAAAA, 0xAAAA, true}, + {IrdaProtocolNEC42ext, 0x2AAAAAA, 0xAAAA, false}, + {IrdaProtocolNEC42ext, 0x2AAAAAA, 0xAAAA, true}, + {IrdaProtocolNEC42ext, 0x2AAAAAA, 0xAAAA, true}, + {IrdaProtocolNEC42ext, 0x1555555, 0x5555, false}, + {IrdaProtocolNEC42ext, 0x1555555, 0x5555, true}, + {IrdaProtocolNEC42ext, 0x1555555, 0x5555, true}, + {IrdaProtocolNEC42ext, 0x1555555, 0x5555, true}, +}; diff --git a/applications/tests/irda_decoder_encoder/test_data/irda_necext_test_data.srcdata b/applications/tests/irda_decoder_encoder/test_data/irda_necext_test_data.srcdata index 66c4f947..edd60768 100644 --- a/applications/tests/irda_decoder_encoder/test_data/irda_necext_test_data.srcdata +++ b/applications/tests/irda_decoder_encoder/test_data/irda_necext_test_data.srcdata @@ -111,147 +111,145 @@ const uint32_t test_decoder_necext_input1[] = { }; const IrdaMessage test_decoder_necext_expected1[] = { - {IrdaProtocolNECext, 0x7984, 0x12, false}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, false}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, false}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, false}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, false}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, false}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, false}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, false}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, false}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, false}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, false}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, false}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, false}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, false}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, false}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, false}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, false}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, false}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, false}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, false}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, false}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, false}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, false}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, false}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, - {IrdaProtocolNECext, 0x7984, 0x12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, false}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, false}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, false}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, false}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, false}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, false}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, false}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, false}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, false}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, false}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, false}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, false}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, false}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, false}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, false}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, false}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, false}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, false}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, false}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, false}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, false}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, false}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, false}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, false}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, + {IrdaProtocolNECext, 0x7984, 0xed12, true}, }; - - const IrdaMessage test_necext[] = { - {IrdaProtocolNECext, 0x0000, 0x00, false}, - {IrdaProtocolNECext, 0x0001, 0x00, false}, - {IrdaProtocolNECext, 0x0001, 0x80, false}, - {IrdaProtocolNECext, 0x0000, 0x80, false}, - {IrdaProtocolNECext, 0x0000, 0x00, false}, - {IrdaProtocolNECext, 0x0000, 0x00, true}, - {IrdaProtocolNECext, 0x0000, 0x00, false}, - {IrdaProtocolNECext, 0x0000, 0x00, true}, - {IrdaProtocolNECext, 0xFFFF, 0xFF, false}, - {IrdaProtocolNECext, 0xFFFE, 0xFF, false}, - {IrdaProtocolNECext, 0xFFFE, 0x7F, false}, - {IrdaProtocolNECext, 0xFFFF, 0x7F, false}, - {IrdaProtocolNECext, 0xFFFF, 0xFF, false}, - {IrdaProtocolNECext, 0xFFFF, 0xFF, true}, - {IrdaProtocolNECext, 0xAAAA, 0x55, false}, - {IrdaProtocolNECext, 0x5555, 0xAA, false}, - {IrdaProtocolNECext, 0x5555, 0x55, false}, - {IrdaProtocolNECext, 0xAAAA, 0xAA, false}, - {IrdaProtocolNECext, 0xAAAA, 0xAA, true}, + {IrdaProtocolNECext, 0x0000, 0x0000, false}, + {IrdaProtocolNECext, 0x0001, 0x0000, false}, + {IrdaProtocolNECext, 0x0001, 0x8000, false}, + {IrdaProtocolNECext, 0x0000, 0x8000, false}, + {IrdaProtocolNECext, 0x0000, 0x0000, false}, + {IrdaProtocolNECext, 0x0000, 0x0000, true}, + {IrdaProtocolNECext, 0x0000, 0x0000, false}, + {IrdaProtocolNECext, 0x0000, 0x0000, true}, + {IrdaProtocolNECext, 0xFFFF, 0xFFFF, false}, + {IrdaProtocolNECext, 0xFFFE, 0xFFFF, false}, + {IrdaProtocolNECext, 0xFFFE, 0x7FFF, false}, + {IrdaProtocolNECext, 0xFFFF, 0x7FFF, false}, + {IrdaProtocolNECext, 0xFFFF, 0xFFFF, false}, + {IrdaProtocolNECext, 0xFFFF, 0xFFFF, true}, + {IrdaProtocolNECext, 0xAAAA, 0x5555, false}, + {IrdaProtocolNECext, 0x5555, 0xAAAA, false}, + {IrdaProtocolNECext, 0x5555, 0x5555, false}, + {IrdaProtocolNECext, 0xAAAA, 0xAAAA, false}, + {IrdaProtocolNECext, 0xAAAA, 0xAAAA, true}, - {IrdaProtocolNECext, 0xAAAA, 0xAA, false}, - {IrdaProtocolNECext, 0xAAAA, 0xAA, true}, - {IrdaProtocolNECext, 0xAAAA, 0xAA, true}, + {IrdaProtocolNECext, 0xAAAA, 0xAAAA, false}, + {IrdaProtocolNECext, 0xAAAA, 0xAAAA, true}, + {IrdaProtocolNECext, 0xAAAA, 0xAAAA, true}, - {IrdaProtocolNECext, 0x5555, 0x55, false}, - {IrdaProtocolNECext, 0x5555, 0x55, true}, - {IrdaProtocolNECext, 0x5555, 0x55, true}, - {IrdaProtocolNECext, 0x5555, 0x55, true}, + {IrdaProtocolNECext, 0x5555, 0x5555, false}, + {IrdaProtocolNECext, 0x5555, 0x5555, true}, + {IrdaProtocolNECext, 0x5555, 0x5555, true}, + {IrdaProtocolNECext, 0x5555, 0x5555, true}, }; diff --git a/applications/tests/irda_decoder_encoder/test_data/irda_sirc_test_data.srcdata b/applications/tests/irda_decoder_encoder/test_data/irda_sirc_test_data.srcdata index 2968aaca..bacf4be5 100644 --- a/applications/tests/irda_decoder_encoder/test_data/irda_sirc_test_data.srcdata +++ b/applications/tests/irda_decoder_encoder/test_data/irda_sirc_test_data.srcdata @@ -426,20 +426,14 @@ const IrdaMessage test_decoder_sirc_expected5[] = { {IrdaProtocolSIRC20, 0xFB5, 0x53, false}, }; - - - const IrdaMessage test_encoder_sirc_input1[] = { {IrdaProtocolSIRC, 0xA, 0x55, false}, }; const uint32_t test_encoder_sirc_expected1[] = { -10000, 2400, 600, 1200, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 600, 600, +10000, 2400, 600, 1200, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 600, }; - - - const IrdaMessage test_encoder_sirc_input2[] = { {IrdaProtocolSIRC15, 0x7D, 0x53, false}, {IrdaProtocolSIRC15, 0x7D, 0x53, true}, @@ -447,9 +441,9 @@ const IrdaMessage test_encoder_sirc_input2[] = { }; const uint32_t test_encoder_sirc_expected2[] = { - 10000, 2400, 600, 1200, 600, 1200, 600, 600, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 600, 600, /* 2 low levels in row */ - 18000, 2400, 600, 1200, 600, 1200, 600, 600, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 600, 600, /* 2 low levels in row */ - 18000, 2400, 600, 1200, 600, 1200, 600, 600, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 600, 600, + 10000, 2400, 600, 1200, 600, 1200, 600, 600, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 600, + 18600, 2400, 600, 1200, 600, 1200, 600, 600, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 600, + 18600, 2400, 600, 1200, 600, 1200, 600, 600, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 600, }; const IrdaMessage test_sirc[] = { |