From 80629de01ecc6cee5a811ba647479117f17b8374 Mon Sep 17 00:00:00 2001 From: Georgii Surkov <37121527+gsurkov@users.noreply.github.com> Date: Sun, 17 Jul 2022 12:21:56 +0300 Subject: [PATCH] [FL-2601] Move Infrared unit test data to assets (#1396) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Move samsung raw data to assets * Add more assets and fix bugs * Clean up code * Implement all raw data as assets * Remove input data from old test files * Better signal names * Better file opening logic * Implement loading parsed data from files * Move most of RC5 tests into assets * Add more test cases * Add more test cases * Eliminate RUN_DECODER macro * Better code structure * Implement run_encoder function * More encoder tests * Move all encoder tests to assets * Move all test data to assets * Normalise function names * Rename code files * Uncomment other tests * Swich test order to avoid weird memory leaks * UnitTests: cleanup output and redirect it into stdout * UnitTests: selectable tests and better reporting Co-authored-by: あく --- .../unit_tests/{ => furi}/furi_memmgr_test.c | 2 +- .../unit_tests/{ => furi}/furi_pubsub_test.c | 2 +- .../unit_tests/{ => furi}/furi_record_test.c | 2 +- .../{minunit_test.c => furi/furi_test.c} | 5 +- .../{ => furi}/furi_valuemutex_test.c | 2 +- .../unit_tests/infrared/infrared_test.c | 520 ++++++++ .../infrared_decoder_encoder_test.c | 331 ----- .../test_data/infrared_nec_test_data.srcdata | 341 ------ .../infrared_necext_test_data.srcdata | 255 ---- .../test_data/infrared_rc5_test_data.srcdata | 160 --- .../test_data/infrared_rc6_test_data.srcdata | 162 --- .../infrared_samsung_test_data.srcdata | 254 ---- .../test_data/infrared_sirc_test_data.srcdata | 479 -------- applications/unit_tests/test_index.c | 88 +- assets/unit_tests/infrared/test_nec.irtest | 511 ++++++++ assets/unit_tests/infrared/test_nec42.irtest | 137 +++ .../unit_tests/infrared/test_nec42ext.irtest | 163 +++ assets/unit_tests/infrared/test_necext.irtest | 684 +++++++++++ assets/unit_tests/infrared/test_rc5.irtest | 341 ++++++ assets/unit_tests/infrared/test_rc5x.irtest | 29 + assets/unit_tests/infrared/test_rc6.irtest | 341 ++++++ .../unit_tests/infrared/test_samsung32.irtest | 535 +++++++++ assets/unit_tests/infrared/test_sirc.irtest | 1060 +++++++++++++++++ 23 files changed, 4385 insertions(+), 2019 deletions(-) rename applications/unit_tests/{ => furi}/furi_memmgr_test.c (99%) rename applications/unit_tests/{ => furi}/furi_pubsub_test.c (98%) rename applications/unit_tests/{ => furi}/furi_record_test.c (94%) rename applications/unit_tests/{minunit_test.c => furi/furi_test.c} (93%) rename applications/unit_tests/{ => furi}/furi_valuemutex_test.c (97%) create mode 100644 applications/unit_tests/infrared/infrared_test.c delete mode 100644 applications/unit_tests/infrared_decoder_encoder/infrared_decoder_encoder_test.c delete mode 100644 applications/unit_tests/infrared_decoder_encoder/test_data/infrared_nec_test_data.srcdata delete mode 100644 applications/unit_tests/infrared_decoder_encoder/test_data/infrared_necext_test_data.srcdata delete mode 100644 applications/unit_tests/infrared_decoder_encoder/test_data/infrared_rc5_test_data.srcdata delete mode 100644 applications/unit_tests/infrared_decoder_encoder/test_data/infrared_rc6_test_data.srcdata delete mode 100644 applications/unit_tests/infrared_decoder_encoder/test_data/infrared_samsung_test_data.srcdata delete mode 100644 applications/unit_tests/infrared_decoder_encoder/test_data/infrared_sirc_test_data.srcdata create mode 100644 assets/unit_tests/infrared/test_nec.irtest create mode 100644 assets/unit_tests/infrared/test_nec42.irtest create mode 100644 assets/unit_tests/infrared/test_nec42ext.irtest create mode 100644 assets/unit_tests/infrared/test_necext.irtest create mode 100644 assets/unit_tests/infrared/test_rc5.irtest create mode 100644 assets/unit_tests/infrared/test_rc5x.irtest create mode 100644 assets/unit_tests/infrared/test_rc6.irtest create mode 100644 assets/unit_tests/infrared/test_samsung32.irtest create mode 100644 assets/unit_tests/infrared/test_sirc.irtest diff --git a/applications/unit_tests/furi_memmgr_test.c b/applications/unit_tests/furi/furi_memmgr_test.c similarity index 99% rename from applications/unit_tests/furi_memmgr_test.c rename to applications/unit_tests/furi/furi_memmgr_test.c index 732856ec..b0fd060c 100644 --- a/applications/unit_tests/furi_memmgr_test.c +++ b/applications/unit_tests/furi/furi_memmgr_test.c @@ -1,4 +1,4 @@ -#include "minunit.h" +#include "../minunit.h" #include #include #include diff --git a/applications/unit_tests/furi_pubsub_test.c b/applications/unit_tests/furi/furi_pubsub_test.c similarity index 98% rename from applications/unit_tests/furi_pubsub_test.c rename to applications/unit_tests/furi/furi_pubsub_test.c index 57c970b8..ddaeb746 100644 --- a/applications/unit_tests/furi_pubsub_test.c +++ b/applications/unit_tests/furi/furi_pubsub_test.c @@ -1,7 +1,7 @@ #include #include #include -#include "minunit.h" +#include "../minunit.h" const uint32_t context_value = 0xdeadbeef; const uint32_t notify_value_0 = 0x12345678; diff --git a/applications/unit_tests/furi_record_test.c b/applications/unit_tests/furi/furi_record_test.c similarity index 94% rename from applications/unit_tests/furi_record_test.c rename to applications/unit_tests/furi/furi_record_test.c index e7eebe4b..512ddfdc 100644 --- a/applications/unit_tests/furi_record_test.c +++ b/applications/unit_tests/furi/furi_record_test.c @@ -1,7 +1,7 @@ #include #include #include -#include "minunit.h" +#include "../minunit.h" void test_furi_create_open() { // 1. Create record diff --git a/applications/unit_tests/minunit_test.c b/applications/unit_tests/furi/furi_test.c similarity index 93% rename from applications/unit_tests/minunit_test.c rename to applications/unit_tests/furi/furi_test.c index 9d564df6..eed9e420 100644 --- a/applications/unit_tests/minunit_test.c +++ b/applications/unit_tests/furi/furi_test.c @@ -1,6 +1,7 @@ #include #include -#include "minunit.h" +#include +#include "../minunit.h" // v2 tests void test_furi_create_open(); @@ -55,7 +56,7 @@ MU_TEST_SUITE(test_suite) { MU_RUN_TEST(mu_test_furi_memmgr); } -int run_minunit() { +int run_minunit_test_furi() { MU_RUN_SUITE(test_suite); return MU_EXIT_CODE; diff --git a/applications/unit_tests/furi_valuemutex_test.c b/applications/unit_tests/furi/furi_valuemutex_test.c similarity index 97% rename from applications/unit_tests/furi_valuemutex_test.c rename to applications/unit_tests/furi/furi_valuemutex_test.c index 12613239..ed98be32 100644 --- a/applications/unit_tests/furi_valuemutex_test.c +++ b/applications/unit_tests/furi/furi_valuemutex_test.c @@ -3,7 +3,7 @@ #include #include "furi_hal_delay.h" -#include "minunit.h" +#include "../minunit.h" void test_furi_valuemutex() { const int init_value = 0xdeadbeef; diff --git a/applications/unit_tests/infrared/infrared_test.c b/applications/unit_tests/infrared/infrared_test.c new file mode 100644 index 00000000..312305b6 --- /dev/null +++ b/applications/unit_tests/infrared/infrared_test.c @@ -0,0 +1,520 @@ +#include +#include +#include +#include +#include "../minunit.h" + +#define IR_TEST_FILES_DIR "/ext/unit_tests/infrared/" +#define IR_TEST_FILE_PREFIX "test_" +#define IR_TEST_FILE_SUFFIX ".irtest" + +typedef struct { + InfraredDecoderHandler* decoder_handler; + InfraredEncoderHandler* encoder_handler; + string_t file_path; + FlipperFormat* ff; +} InfraredTest; + +static InfraredTest* test; + +static void infrared_test_alloc() { + Storage* storage = furi_record_open("storage"); + test = malloc(sizeof(InfraredTest)); + test->decoder_handler = infrared_alloc_decoder(); + test->encoder_handler = infrared_alloc_encoder(); + test->ff = flipper_format_file_alloc(storage); + string_init(test->file_path); +} + +static void infrared_test_free() { + furi_assert(test); + infrared_free_decoder(test->decoder_handler); + infrared_free_encoder(test->encoder_handler); + flipper_format_free(test->ff); + string_clear(test->file_path); + furi_record_close("storage"); + free(test); + test = NULL; +} + +static bool infrared_test_prepare_file(const char* protocol_name) { + string_t file_type; + string_init(file_type); + bool success = false; + + string_printf( + test->file_path, + "%s%s%s%s", + IR_TEST_FILES_DIR, + IR_TEST_FILE_PREFIX, + protocol_name, + IR_TEST_FILE_SUFFIX); + + do { + uint32_t format_version; + if(!flipper_format_file_open_existing(test->ff, string_get_cstr(test->file_path))) break; + if(!flipper_format_read_header(test->ff, file_type, &format_version)) break; + if(string_cmp_str(file_type, "IR tests file") || format_version != 1) break; + success = true; + } while(false); + + string_clear(file_type); + return success; +} + +static bool infrared_test_load_raw_signal( + FlipperFormat* ff, + const char* signal_name, + uint32_t** timings, + uint32_t* timings_count) { + string_t buf; + string_init(buf); + bool success = false; + + do { + bool is_name_found = false; + for(; !is_name_found && flipper_format_read_string(ff, "name", buf); + is_name_found = !string_cmp_str(buf, signal_name)) + ; + + if(!is_name_found) break; + if(!flipper_format_read_string(ff, "type", buf) || string_cmp_str(buf, "raw")) break; + if(!flipper_format_get_value_count(ff, "data", timings_count)) break; + if(!*timings_count) break; + + *timings = malloc(*timings_count * sizeof(uint32_t*)); + if(!flipper_format_read_uint32(ff, "data", *timings, *timings_count)) { + free(*timings); + break; + } + success = true; + } while(false); + + string_clear(buf); + return success; +} + +static bool infrared_test_read_message(FlipperFormat* ff, InfraredMessage* message) { + string_t buf; + string_init(buf); + bool success = false; + + do { + if(!flipper_format_read_string(ff, "protocol", buf)) break; + message->protocol = infrared_get_protocol_by_name(string_get_cstr(buf)); + if(!infrared_is_protocol_valid(message->protocol)) break; + if(!flipper_format_read_hex(ff, "address", (uint8_t*)&message->address, sizeof(uint32_t))) + break; + if(!flipper_format_read_hex(ff, "command", (uint8_t*)&message->command, sizeof(uint32_t))) + break; + if(!flipper_format_read_bool(ff, "repeat", &message->repeat, 1)) break; + success = true; + } while(false); + + string_clear(buf); + return success; +} + +static bool infrared_test_load_messages( + FlipperFormat* ff, + const char* signal_name, + InfraredMessage** messages, + uint32_t* messages_count) { + string_t buf; + string_init(buf); + bool success = false; + + do { + bool is_name_found = false; + for(; !is_name_found && flipper_format_read_string(ff, "name", buf); + is_name_found = !string_cmp_str(buf, signal_name)) + ; + + if(!is_name_found) break; + if(!flipper_format_read_string(ff, "type", buf) || string_cmp_str(buf, "parsed_array")) + break; + if(!flipper_format_read_uint32(ff, "count", messages_count, 1)) break; + if(!*messages_count) break; + + *messages = malloc(*messages_count * sizeof(InfraredMessage)); + uint32_t i; + for(i = 0; i < *messages_count; ++i) { + if(!infrared_test_read_message(ff, (*messages) + i)) { + break; + } + } + if(*messages_count != i) { + free(*messages); + break; + } + success = true; + } while(false); + + string_clear(buf); + return success; +} + +static void infrared_test_compare_message_results( + const InfraredMessage* message_decoded, + const InfraredMessage* message_expected) { + mu_check(message_decoded->protocol == message_expected->protocol); + mu_check(message_decoded->command == message_expected->command); + mu_check(message_decoded->address == message_expected->address); + if((message_expected->protocol == InfraredProtocolSIRC) || + (message_expected->protocol == InfraredProtocolSIRC15) || + (message_expected->protocol == InfraredProtocolSIRC20)) { + mu_check(message_decoded->repeat == false); + } else { + mu_check(message_decoded->repeat == message_expected->repeat); + } +} + +/* Encodes signal and merges same levels (high+high, low+low) */ +static void infrared_test_run_encoder_fill_array( + InfraredEncoderHandler* handler, + uint32_t* timings, + uint32_t* timings_len, + bool* start_level) { + uint32_t duration = 0; + bool level = false; + bool level_read; + InfraredStatus status = InfraredStatusError; + size_t i = 0; + bool first = true; + + while(1) { + status = infrared_encode(handler, &duration, &level_read); + if(first) { + if(start_level) *start_level = level_read; + first = false; + timings[0] = 0; + } else if(level_read != level) { + ++i; + furi_check(i < *timings_len); + timings[i] = 0; + } + level = level_read; + timings[i] += duration; + + furi_check((status == InfraredStatusOk) || (status == InfraredStatusDone)); + if(status == InfraredStatusDone) break; + } + + *timings_len = i + 1; +} + +// messages in input array for encoder should have one protocol +static void infrared_test_run_encoder(InfraredProtocol protocol, uint32_t test_index) { + uint32_t* timings; + uint32_t timings_count = 200; + uint32_t* expected_timings; + uint32_t expected_timings_count; + InfraredMessage* input_messages; + uint32_t input_messages_count; + + string_t buf; + string_init(buf); + + const char* protocol_name = infrared_get_protocol_name(protocol); + mu_assert(infrared_test_prepare_file(protocol_name), "Failed to prepare test file"); + + string_printf(buf, "encoder_input%d", test_index); + mu_assert( + infrared_test_load_messages( + test->ff, string_get_cstr(buf), &input_messages, &input_messages_count), + "Failed to load messages from file"); + + string_printf(buf, "encoder_expected%d", test_index); + mu_assert( + infrared_test_load_raw_signal( + test->ff, string_get_cstr(buf), &expected_timings, &expected_timings_count), + "Failed to load raw signal from file"); + + flipper_format_file_close(test->ff); + string_clear(buf); + + uint32_t j = 0; + timings = malloc(sizeof(uint32_t) * timings_count); + + for(uint32_t message_counter = 0; message_counter < input_messages_count; ++message_counter) { + const InfraredMessage* message = &input_messages[message_counter]; + if(!message->repeat) { + infrared_reset_encoder(test->encoder_handler, message); + } + + timings_count = 200; + infrared_test_run_encoder_fill_array(test->encoder_handler, timings, &timings_count, NULL); + furi_check(timings_count <= 200); + + for(size_t i = 0; i < timings_count; ++i, ++j) { + mu_check(MATCH_TIMING(timings[i], expected_timings[j], 120)); + mu_assert(j < expected_timings_count, "encoded more timings than expected"); + } + } + + free(input_messages); + free(expected_timings); + free(timings); + + mu_assert(j == expected_timings_count, "encoded less timings than expected"); +} + +static void infrared_test_run_encoder_decoder(InfraredProtocol protocol, uint32_t test_index) { + uint32_t* timings = 0; + uint32_t timings_count = 200; + InfraredMessage* input_messages; + uint32_t input_messages_count; + bool level = false; + + string_t buf; + string_init(buf); + + timings = malloc(sizeof(uint32_t) * timings_count); + + const char* protocol_name = infrared_get_protocol_name(protocol); + mu_assert(infrared_test_prepare_file(protocol_name), "Failed to prepare test file"); + + string_printf(buf, "encoder_decoder_input%d", test_index); + mu_assert( + infrared_test_load_messages( + test->ff, string_get_cstr(buf), &input_messages, &input_messages_count), + "Failed to load messages from file"); + + flipper_format_file_close(test->ff); + string_clear(buf); + + for(uint32_t message_counter = 0; message_counter < input_messages_count; ++message_counter) { + const InfraredMessage* message_encoded = &input_messages[message_counter]; + if(!message_encoded->repeat) { + infrared_reset_encoder(test->encoder_handler, message_encoded); + } + + timings_count = 200; + infrared_test_run_encoder_fill_array( + test->encoder_handler, timings, &timings_count, &level); + furi_check(timings_count <= 200); + + const InfraredMessage* message_decoded = 0; + for(size_t i = 0; i < timings_count; ++i) { + message_decoded = infrared_decode(test->decoder_handler, level, timings[i]); + if((i == timings_count - 2) && level && message_decoded) { + /* In case we end with space timing - message can be decoded at last mark */ + break; + } else if(i < timings_count - 1) { + mu_check(!message_decoded); + } else { + if(!message_decoded) { + message_decoded = infrared_check_decoder_ready(test->decoder_handler); + } + mu_check(message_decoded); + } + level = !level; + } + if(message_decoded) { + infrared_test_compare_message_results(message_decoded, message_encoded); + } else { + mu_check(0); + } + } + free(input_messages); + free(timings); +} + +static void infrared_test_run_decoder(InfraredProtocol protocol, uint32_t test_index) { + uint32_t* timings; + uint32_t timings_count; + InfraredMessage* messages; + uint32_t messages_count; + + string_t buf; + string_init(buf); + + mu_assert( + infrared_test_prepare_file(infrared_get_protocol_name(protocol)), + "Failed to prepare test file"); + + string_printf(buf, "decoder_input%d", test_index); + mu_assert( + infrared_test_load_raw_signal(test->ff, string_get_cstr(buf), &timings, &timings_count), + "Failed to load raw signal from file"); + + string_printf(buf, "decoder_expected%d", test_index); + mu_assert( + infrared_test_load_messages(test->ff, string_get_cstr(buf), &messages, &messages_count), + "Failed to load messages from file"); + + flipper_format_file_close(test->ff); + string_clear(buf); + + InfraredMessage message_decoded_check_local; + bool level = 0; + uint32_t message_counter = 0; + const InfraredMessage* message_decoded = 0; + + for(uint32_t i = 0; i < timings_count; ++i) { + const InfraredMessage* message_decoded_check = 0; + + if(timings[i] > INFRARED_RAW_RX_TIMING_DELAY_US) { + message_decoded_check = infrared_check_decoder_ready(test->decoder_handler); + if(message_decoded_check) { + /* infrared_decode() can reset message, but we have to call infrared_decode() to perform real + * simulation: infrared_check() by timeout, then infrared_decode() when meet edge */ + message_decoded_check_local = *message_decoded_check; + message_decoded_check = &message_decoded_check_local; + } + } + + message_decoded = infrared_decode(test->decoder_handler, level, timings[i]); + + if(message_decoded_check || message_decoded) { + mu_assert( + !(message_decoded_check && message_decoded), + "both messages decoded: check_ready() and infrared_decode()"); + + if(message_decoded_check) { + message_decoded = message_decoded_check; + } + + mu_assert(message_counter < messages_count, "decoded more than expected"); + infrared_test_compare_message_results(message_decoded, &messages[message_counter]); + + ++message_counter; + } + level = !level; + } + + message_decoded = infrared_check_decoder_ready(test->decoder_handler); + if(message_decoded) { + infrared_test_compare_message_results(message_decoded, &messages[message_counter]); + ++message_counter; + } + + free(timings); + free(messages); + + mu_assert(message_counter == messages_count, "decoded less than expected"); +} + +MU_TEST(infrared_test_decoder_samsung32) { + infrared_test_run_decoder(InfraredProtocolSamsung32, 1); +} + +MU_TEST(infrared_test_decoder_mixed) { + infrared_test_run_decoder(InfraredProtocolRC5, 2); + infrared_test_run_decoder(InfraredProtocolSIRC, 1); + infrared_test_run_decoder(InfraredProtocolNECext, 1); + infrared_test_run_decoder(InfraredProtocolRC6, 2); + infrared_test_run_decoder(InfraredProtocolSamsung32, 1); + infrared_test_run_decoder(InfraredProtocolRC6, 1); + infrared_test_run_decoder(InfraredProtocolSamsung32, 1); + infrared_test_run_decoder(InfraredProtocolRC5, 1); + infrared_test_run_decoder(InfraredProtocolSIRC, 2); + infrared_test_run_decoder(InfraredProtocolNECext, 1); + infrared_test_run_decoder(InfraredProtocolSIRC, 4); + infrared_test_run_decoder(InfraredProtocolNEC, 2); + infrared_test_run_decoder(InfraredProtocolRC6, 1); + infrared_test_run_decoder(InfraredProtocolNECext, 1); + infrared_test_run_decoder(InfraredProtocolSIRC, 5); + infrared_test_run_decoder(InfraredProtocolNEC, 3); + infrared_test_run_decoder(InfraredProtocolRC5, 5); + infrared_test_run_decoder(InfraredProtocolSamsung32, 1); + infrared_test_run_decoder(InfraredProtocolSIRC, 3); +} + +MU_TEST(infrared_test_decoder_nec) { + infrared_test_run_decoder(InfraredProtocolNEC, 1); + infrared_test_run_decoder(InfraredProtocolNEC, 2); + infrared_test_run_decoder(InfraredProtocolNEC, 3); +} + +MU_TEST(infrared_test_decoder_unexpected_end_in_sequence) { + infrared_test_run_decoder(InfraredProtocolNEC, 1); + infrared_test_run_decoder(InfraredProtocolNEC, 1); + infrared_test_run_decoder(InfraredProtocolNEC, 2); + infrared_test_run_decoder(InfraredProtocolNEC, 2); +} + +MU_TEST(infrared_test_decoder_necext1) { + infrared_test_run_decoder(InfraredProtocolNECext, 1); + infrared_test_run_decoder(InfraredProtocolNECext, 1); +} + +MU_TEST(infrared_test_decoder_long_packets_with_nec_start) { + infrared_test_run_decoder(InfraredProtocolNEC42ext, 1); + infrared_test_run_decoder(InfraredProtocolNEC42ext, 2); +} + +MU_TEST(infrared_test_encoder_sirc) { + infrared_test_run_encoder(InfraredProtocolSIRC, 1); + infrared_test_run_encoder(InfraredProtocolSIRC, 2); +} + +MU_TEST(infrared_test_decoder_sirc) { + infrared_test_run_decoder(InfraredProtocolSIRC, 3); + infrared_test_run_decoder(InfraredProtocolSIRC, 1); + infrared_test_run_decoder(InfraredProtocolSIRC, 2); + infrared_test_run_decoder(InfraredProtocolSIRC, 4); + infrared_test_run_decoder(InfraredProtocolSIRC, 5); +} + +MU_TEST(infrared_test_decoder_rc5) { + infrared_test_run_decoder(InfraredProtocolRC5X, 1); + infrared_test_run_decoder(InfraredProtocolRC5, 1); + infrared_test_run_decoder(InfraredProtocolRC5, 2); + infrared_test_run_decoder(InfraredProtocolRC5, 3); + infrared_test_run_decoder(InfraredProtocolRC5, 4); + infrared_test_run_decoder(InfraredProtocolRC5, 5); + infrared_test_run_decoder(InfraredProtocolRC5, 6); + infrared_test_run_decoder(InfraredProtocolRC5, 7); +} + +MU_TEST(infrared_test_encoder_rc5x) { + infrared_test_run_encoder(InfraredProtocolRC5X, 1); +} + +MU_TEST(infrared_test_encoder_rc5) { + infrared_test_run_encoder(InfraredProtocolRC5, 1); +} + +MU_TEST(infrared_test_decoder_rc6) { + infrared_test_run_decoder(InfraredProtocolRC6, 1); +} + +MU_TEST(infrared_test_encoder_rc6) { + infrared_test_run_encoder(InfraredProtocolRC6, 1); +} + +MU_TEST(infrared_test_encoder_decoder_all) { + infrared_test_run_encoder_decoder(InfraredProtocolNEC, 1); + infrared_test_run_encoder_decoder(InfraredProtocolNECext, 1); + infrared_test_run_encoder_decoder(InfraredProtocolNEC42, 1); + infrared_test_run_encoder_decoder(InfraredProtocolNEC42ext, 1); + infrared_test_run_encoder_decoder(InfraredProtocolSamsung32, 1); + infrared_test_run_encoder_decoder(InfraredProtocolRC6, 1); + infrared_test_run_encoder_decoder(InfraredProtocolRC5, 1); + infrared_test_run_encoder_decoder(InfraredProtocolSIRC, 1); +} + +MU_TEST_SUITE(infrared_test) { + MU_SUITE_CONFIGURE(&infrared_test_alloc, &infrared_test_free); + + MU_RUN_TEST(infrared_test_encoder_sirc); + MU_RUN_TEST(infrared_test_decoder_sirc); + MU_RUN_TEST(infrared_test_encoder_rc5x); + MU_RUN_TEST(infrared_test_encoder_rc5); + MU_RUN_TEST(infrared_test_decoder_rc5); + MU_RUN_TEST(infrared_test_decoder_rc6); + MU_RUN_TEST(infrared_test_encoder_rc6); + MU_RUN_TEST(infrared_test_decoder_unexpected_end_in_sequence); + MU_RUN_TEST(infrared_test_decoder_long_packets_with_nec_start); + MU_RUN_TEST(infrared_test_decoder_nec); + MU_RUN_TEST(infrared_test_decoder_samsung32); + MU_RUN_TEST(infrared_test_decoder_necext1); + MU_RUN_TEST(infrared_test_decoder_mixed); + MU_RUN_TEST(infrared_test_encoder_decoder_all); +} + +int run_minunit_test_infrared() { + MU_RUN_SUITE(infrared_test); + return MU_EXIT_CODE; +} diff --git a/applications/unit_tests/infrared_decoder_encoder/infrared_decoder_encoder_test.c b/applications/unit_tests/infrared_decoder_encoder/infrared_decoder_encoder_test.c deleted file mode 100644 index 0c3e685d..00000000 --- a/applications/unit_tests/infrared_decoder_encoder/infrared_decoder_encoder_test.c +++ /dev/null @@ -1,331 +0,0 @@ -#include -#include "../minunit.h" -#include "infrared.h" -#include "common/infrared_common_i.h" -#include "test_data/infrared_nec_test_data.srcdata" -#include "test_data/infrared_necext_test_data.srcdata" -#include "test_data/infrared_samsung_test_data.srcdata" -#include "test_data/infrared_rc6_test_data.srcdata" -#include "test_data/infrared_rc5_test_data.srcdata" -#include "test_data/infrared_sirc_test_data.srcdata" - -#define RUN_ENCODER(data, expected) \ - run_encoder((data), COUNT_OF(data), (expected), COUNT_OF(expected)) - -#define RUN_DECODER(data, expected) \ - run_decoder((data), COUNT_OF(data), (expected), COUNT_OF(expected)) - -#define RUN_ENCODER_DECODER(data) run_encoder_decoder((data), COUNT_OF(data)) - -static InfraredDecoderHandler* decoder_handler; -static InfraredEncoderHandler* encoder_handler; - -static void test_setup(void) { - decoder_handler = infrared_alloc_decoder(); - encoder_handler = infrared_alloc_encoder(); -} - -static void test_teardown(void) { - infrared_free_decoder(decoder_handler); - infrared_free_encoder(encoder_handler); -} - -static void compare_message_results( - const InfraredMessage* message_decoded, - const InfraredMessage* message_expected) { - mu_check(message_decoded->protocol == message_expected->protocol); - mu_check(message_decoded->command == message_expected->command); - mu_check(message_decoded->address == message_expected->address); - if((message_expected->protocol == InfraredProtocolSIRC) || - (message_expected->protocol == InfraredProtocolSIRC15) || - (message_expected->protocol == InfraredProtocolSIRC20)) { - mu_check(message_decoded->repeat == false); - } else { - mu_check(message_decoded->repeat == message_expected->repeat); - } -} - -/* Encodes signal and merges same levels (high+high, low+low) */ -static void run_encoder_fill_array( - InfraredEncoderHandler* handler, - uint32_t* timings, - uint32_t* timings_len, - bool* start_level) { - uint32_t duration = 0; - bool level = false; - bool level_read; - InfraredStatus status = InfraredStatusError; - size_t i = 0; - bool first = true; - - while(1) { - status = infrared_encode(handler, &duration, &level_read); - if(first) { - if(start_level) *start_level = level_read; - first = false; - timings[0] = 0; - } else if(level_read != level) { - ++i; - furi_check(i < *timings_len); - timings[i] = 0; - } - level = level_read; - timings[i] += duration; - - furi_check((status == InfraredStatusOk) || (status == InfraredStatusDone)); - if(status == InfraredStatusDone) break; - } - - *timings_len = i + 1; -} - -// messages in input array for encoder should have one protocol -static void run_encoder( - const InfraredMessage input_messages[], - uint32_t input_messages_len, - const uint32_t expected_timings[], - uint32_t expected_timings_len) { - uint32_t* timings = 0; - uint32_t timings_len = 200; - uint32_t j = 0; - timings = malloc(sizeof(uint32_t) * timings_len); - - for(uint32_t message_counter = 0; message_counter < input_messages_len; ++message_counter) { - const InfraredMessage* message = &input_messages[message_counter]; - if(!message->repeat) { - infrared_reset_encoder(encoder_handler, message); - } - - timings_len = 200; - run_encoder_fill_array(encoder_handler, timings, &timings_len, NULL); - furi_check(timings_len <= 200); - - for(size_t i = 0; i < timings_len; ++i, ++j) { - mu_check(MATCH_TIMING(timings[i], expected_timings[j], 120)); - mu_assert(j < expected_timings_len, "encoded more timings than expected"); - } - } - free(timings); - mu_assert(j == expected_timings_len, "encoded less timings than expected"); -} - -static void - run_encoder_decoder(const InfraredMessage input_messages[], uint32_t input_messages_len) { - uint32_t* timings = 0; - uint32_t timings_len = 200; - bool level = false; - timings = malloc(sizeof(uint32_t) * timings_len); - - for(uint32_t message_counter = 0; message_counter < input_messages_len; ++message_counter) { - const InfraredMessage* message_encoded = &input_messages[message_counter]; - if(!message_encoded->repeat) { - infrared_reset_encoder(encoder_handler, message_encoded); - } - - timings_len = 200; - run_encoder_fill_array(encoder_handler, timings, &timings_len, &level); - furi_check(timings_len <= 200); - - const InfraredMessage* message_decoded = 0; - for(size_t i = 0; i < timings_len; ++i) { - message_decoded = infrared_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 */ - break; - } else if(i < timings_len - 1) { - mu_check(!message_decoded); - } else { - if(!message_decoded) { - message_decoded = infrared_check_decoder_ready(decoder_handler); - } - mu_check(message_decoded); - } - level = !level; - } - if(message_decoded) { - compare_message_results(message_decoded, message_encoded); - } else { - mu_check(0); - } - } - free(timings); -} - -static void run_decoder( - const uint32_t* input_delays, - uint32_t input_delays_len, - const InfraredMessage* message_expected, - uint32_t message_expected_len) { - InfraredMessage message_decoded_check_local; - bool level = 0; - uint32_t message_counter = 0; - const InfraredMessage* message_decoded = 0; - - for(uint32_t i = 0; i < input_delays_len; ++i) { - const InfraredMessage* message_decoded_check = 0; - - if(input_delays[i] > INFRARED_RAW_RX_TIMING_DELAY_US) { - message_decoded_check = infrared_check_decoder_ready(decoder_handler); - if(message_decoded_check) { - /* infrared_decode() can reset message, but we have to call infrared_decode() to perform real - * simulation: infrared_check() by timeout, then infrared_decode() when meet edge */ - message_decoded_check_local = *message_decoded_check; - message_decoded_check = &message_decoded_check_local; - } - } - - message_decoded = infrared_decode(decoder_handler, level, input_delays[i]); - - if(message_decoded_check || message_decoded) { - mu_assert( - !(message_decoded_check && message_decoded), - "both messages decoded: check_ready() and infrared_decode()"); - - if(message_decoded_check) { - message_decoded = message_decoded_check; - } - - mu_assert(message_counter < message_expected_len, "decoded more than expected"); - compare_message_results(message_decoded, &message_expected[message_counter]); - - ++message_counter; - } - level = !level; - } - - message_decoded = infrared_check_decoder_ready(decoder_handler); - if(message_decoded) { - compare_message_results(message_decoded, &message_expected[message_counter]); - ++message_counter; - } - - mu_assert(message_counter == message_expected_len, "decoded less than expected"); -} - -MU_TEST(test_decoder_samsung32) { - RUN_DECODER(test_decoder_samsung32_input1, test_decoder_samsung32_expected1); -} - -MU_TEST(test_mix) { - RUN_DECODER(test_decoder_rc5_input2, test_decoder_rc5_expected2); - RUN_DECODER(test_decoder_sirc_input1, test_decoder_sirc_expected1); - RUN_DECODER(test_decoder_necext_input1, test_decoder_necext_expected1); - // can use encoder data for decoding, but can't do opposite - RUN_DECODER(test_encoder_rc6_expected1, test_encoder_rc6_input1); - RUN_DECODER(test_decoder_samsung32_input1, test_decoder_samsung32_expected1); - RUN_DECODER(test_decoder_rc6_input1, test_decoder_rc6_expected1); - RUN_DECODER(test_decoder_samsung32_input1, test_decoder_samsung32_expected1); - RUN_DECODER(test_decoder_rc5_input1, test_decoder_rc5_expected1); - RUN_DECODER(test_decoder_sirc_input2, test_decoder_sirc_expected2); - RUN_DECODER(test_decoder_necext_input1, test_decoder_necext_expected1); - RUN_DECODER(test_decoder_sirc_input4, test_decoder_sirc_expected4); - RUN_DECODER(test_decoder_nec_input2, test_decoder_nec_expected2); - 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_nec) { - RUN_DECODER(test_decoder_nec_input1, test_decoder_nec_expected1); - 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) { - // test_decoder_nec_input1 and test_decoder_nec_input2 shuts unexpected - RUN_DECODER(test_decoder_nec_input1, test_decoder_nec_expected1); - RUN_DECODER(test_decoder_nec_input1, test_decoder_nec_expected1); - RUN_DECODER(test_decoder_nec_input2, test_decoder_nec_expected2); - RUN_DECODER(test_decoder_nec_input2, test_decoder_nec_expected2); -} - -MU_TEST(test_decoder_necext1) { - RUN_DECODER(test_decoder_necext_input1, test_decoder_necext_expected1); - RUN_DECODER(test_decoder_necext_input1, test_decoder_necext_expected1); -} - -MU_TEST(test_decoder_long_packets_with_nec_start) { - RUN_DECODER(test_decoder_nec42ext_input1, test_decoder_nec42ext_expected1); - RUN_DECODER(test_decoder_nec42ext_input2, test_decoder_nec42ext_expected2); -} - -MU_TEST(test_encoder_sirc) { - RUN_ENCODER(test_encoder_sirc_input1, test_encoder_sirc_expected1); - RUN_ENCODER(test_encoder_sirc_input2, test_encoder_sirc_expected2); -} - -MU_TEST(test_decoder_sirc) { - RUN_DECODER(test_decoder_sirc_input3, test_decoder_sirc_expected3); - RUN_DECODER(test_decoder_sirc_input1, test_decoder_sirc_expected1); - RUN_DECODER(test_decoder_sirc_input2, test_decoder_sirc_expected2); - RUN_DECODER(test_decoder_sirc_input4, test_decoder_sirc_expected4); - RUN_DECODER(test_decoder_sirc_input5, test_decoder_sirc_expected5); - RUN_ENCODER_DECODER(test_sirc); -} - -MU_TEST(test_decoder_rc5) { - RUN_DECODER(test_decoder_rc5x_input1, test_decoder_rc5x_expected1); - RUN_DECODER(test_decoder_rc5_input1, test_decoder_rc5_expected1); - RUN_DECODER(test_decoder_rc5_input2, test_decoder_rc5_expected2); - RUN_DECODER(test_decoder_rc5_input3, test_decoder_rc5_expected3); - RUN_DECODER(test_decoder_rc5_input4, test_decoder_rc5_expected4); - RUN_DECODER(test_decoder_rc5_input5, test_decoder_rc5_expected5); - RUN_DECODER(test_decoder_rc5_input6, test_decoder_rc5_expected6); - RUN_DECODER(test_decoder_rc5_input_all_repeats, test_decoder_rc5_expected_all_repeats); -} - -MU_TEST(test_encoder_rc5x) { - RUN_ENCODER(test_decoder_rc5x_expected1, test_decoder_rc5x_input1); -} - -MU_TEST(test_encoder_rc5) { - RUN_ENCODER(test_decoder_rc5_expected_all_repeats, test_decoder_rc5_input_all_repeats); -} - -MU_TEST(test_decoder_rc6) { - RUN_DECODER(test_decoder_rc6_input1, test_decoder_rc6_expected1); -} - -MU_TEST(test_encoder_rc6) { - RUN_ENCODER(test_encoder_rc6_input1, test_encoder_rc6_expected1); -} - -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); - RUN_ENCODER_DECODER(test_sirc); -} - -MU_TEST_SUITE(test_infrared_decoder_encoder) { - MU_SUITE_CONFIGURE(&test_setup, &test_teardown); - - MU_RUN_TEST(test_encoder_sirc); - MU_RUN_TEST(test_decoder_sirc); - MU_RUN_TEST(test_encoder_rc5x); - MU_RUN_TEST(test_encoder_rc5); - MU_RUN_TEST(test_decoder_rc5); - 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_long_packets_with_nec_start); - MU_RUN_TEST(test_decoder_nec); - MU_RUN_TEST(test_decoder_samsung32); - MU_RUN_TEST(test_decoder_necext1); - MU_RUN_TEST(test_mix); - MU_RUN_TEST(test_encoder_decoder_all); -} - -int run_minunit_test_infrared_decoder_encoder() { - MU_RUN_SUITE(test_infrared_decoder_encoder); - - return MU_EXIT_CODE; -} diff --git a/applications/unit_tests/infrared_decoder_encoder/test_data/infrared_nec_test_data.srcdata b/applications/unit_tests/infrared_decoder_encoder/test_data/infrared_nec_test_data.srcdata deleted file mode 100644 index ec9a86a6..00000000 --- a/applications/unit_tests/infrared_decoder_encoder/test_data/infrared_nec_test_data.srcdata +++ /dev/null @@ -1,341 +0,0 @@ -const uint32_t test_decoder_nec_input1[] = { -/* message */ -2640671, 9071, 4445, 601, 497, 578, 500, 604, 501, 603, 502, 581, 496, 615, 498, 606, 499, 584, 493, 610, 1630, 576, 1640, 601, 1615, 605, 1638, 581, 1634, 606, 1610, 610, 1633, 577, 1639, 601, 504, 580, 498, 604, 501, 603, 500, 582, 496, 607, 498, 606, 499, 585, 485, 610, 1633, 576, 1640, 596, 1615, 605, 1638, 582, 1634, 605, 1610, 609, 1634, 586, 1630, 600, -/* repeat */ -40015, 9077, 2208, 593, - -/* message */ -1457713, 9076, 4440, 607, 508, 585, 493, 610, 494, 598, 506, 577, 501, 603, 502, 601, 504, 580, 498, 605, 1638, 582, 1634, 606, 1610, 610, 1633, 577, 1639, 600, 1616, 605, 1638, 582, 1634, 606, 499, 585, 493, 609, 495, 608, 496, 586, 502, 612, 493, 601, 504, 579, 498, 605, 1638, 582, 1633, 606, 1610, 610, 1633, 577, 1639, 602, 1614, 574, 1668, 582, 1634, 606, - -/* message */ -1415838, 9080, 4436, 611, 494, 600, 505, 578, 500, 608, 501, 602, 502, 580, 498, 606, 508, 605, 500, 583, 1633, 608, 1608, 611, 1631, 578, 1638, 602, 1614, 606, 1637, 583, 1633, 607, 1609, 611, 494, 600, 505, 570, 500, 604, 501, 602, 502, 581, 497, 606, 499, 605, 499, 583, 1633, 617, 1608, 611, 1631, 579, 1638, 602}; - -const InfraredMessage test_decoder_nec_expected1[] = { - {InfraredProtocolNEC, 0x00, 0, false}, - {InfraredProtocolNEC, 0x00, 0, true}, - {InfraredProtocolNEC, 0x00, 0, false}, -}; - -const uint32_t test_decoder_nec_input2[] = { -18372093,9030,4495,559,524,585,526,613,496,560,522,595,524,605,504,553,530,578,524,608,1614,581,1668,557,1665,581,1641,585,1664,551,1671,605,1616,578,1670,555,528,581,1668,553,526,582,528,612,498,559,524,585,526,604,507,552,1670,597,504,553,1667,608,1613,582,1667,559,1663,613,1608,586,1662,552, -40067,9026,2219,579, - - -3060767,9079,4445,606,505,554,530,578,532,608,502,555,528,581,530,610,500,588,495,614,1635,580,1641,604,1617,618,1621,584,1637,608,1612,612,1636,589,1637,602,507,581,1641,605,505,582,501,609,502,607,503,585,498,611,499,609,1612,613,498,612,1610,615,1633,561,1661,606,1615,609,1639,585,1636,610, -40011,9072,2200,588, -96480,9075,2198,560, -96509,9047,2226,552, -96517,9049,2224,555, -96514,9042,2222,556, -96512,9053,2220,558, -96511,9045,2227,561, -96507,9048,2225,554, -96515,9061,2231,565, -96522,9053,2219,559, -96510,9044,2229,560, -96508,9046,2226,562, -96506,9027,2245,553, -96511,9030,2243,555, -96513,9031,2237,557, -96512,9054,2219,559, - - -570349,9027,4495,608,476,583,529,580,529,558,525,584,527,582,528,560,523,596,524,584,1636,578,1669,555,1667,578,1643,581,1666,558,1663,582,1639,586,1662,552,531,577,1670,554,1667,578,532,563,527,582,528,580,529,558,525,584,1665,561,523,586,525,584,1637,577,1670,554,1668,578,1642,582,1667,558, -40062,9021,2233,585, - - -172411,9020,4502,559,524,585,526,583,527,551,532,586,523,575,535,553,530,579,532,577,1643,581,1668,557,1664,581,1639,585,1664,552,1670,575,1637,579,1669,556,527,581,529,580,1642,584,536,581,528,560,523,585,524,584,526,552,1670,576,1645,579,530,578,1643,582,1667,558,1663,582,1639,586,1662,545, -40068,9026,2220,578, - - -226896,9054,4468,578,500,608,502,607,503,585,498,611,500,610,501,588,496,612,497,602,1610,615,1633,581,1640,606,1616,609,1639,585,1635,610,1612,614,1635,580,504,615,495,604,506,582,1639,606,503,585,499,610,501,609,502,587,1635,610,1610,614,1634,581,502,616,1632,582,1648,606,1615,610,1638,587, -40033,9050,2195,614, - -249594,9020,4502,560,524,594,525,603,506,552,532,587,521,606,504,554,529,579,532,609,1612,582,1667,557,1654,612,1608,585,1663,552,1670,606,1615,579,1669,554,527,582,529,611,500,558,1663,612,497,560,523,585,524,598,505,552,1670,606,1614,580,1668,557,526,582,1665,558,1662,603,1618,587,1661,553, -40067,9058,2187,621, - - -97567,9054,4467,584,500,609,501,601,502,586,497,611,499,610,501,588,496,614,497,612,1609,615,1632,582,1640,606,1615,609,1639,586,1636,611,1611,614,1634,581,503,608,493,605,505,583,1639,607,503,586,498,611,500,609,501,588,1634,611,1609,615,1634,582,502,608,1641,553,1668,608,1613,581,1668,558, - -112307,9078,4443,608,502,606,504,584,498,610,501,608,502,587,497,612,498,610,499,589,1633,603,1619,607,1642,583,1638,607,1614,611,1638,597,1634,611,1610,615,495,603,506,581,502,607,1642,584,500,609,501,607,503,585,498,611,1637,588,1634,611,1610,615,495,603,1618,607,1641,584,1638,607,1605,611, - - -112281,9076,4445,606,505,584,499,610,501,608,502,586,497,612,498,610,500,581,494,614,1635,581,1641,604,1617,608,1640,585,1637,609,1610,613,1636,589,1632,603,507,581,503,607,504,604,1617,608,502,607,503,585,498,611,500,609,1613,613,1636,590,1632,603,507,581,1641,605,1616,609,1640,585,1636,609, - - -94207,9075,4446,605,506,582,501,607,502,606,504,584,500,610,501,608,502,587,497,611,1636,588,1633,612,1610,616,1633,583,1639,604,1615,610,1638,587,1635,610,500,588,495,606,496,602,1619,616,495,605,506,583,501,609,502,606,1614,610,1638,587,1635,611,499,590,1632,603,1618,607,1641,583,1638,608, - - -103762,9076,4446,605,505,553,531,579,532,607,503,555,528,580,530,609,500,557,527,583,1666,559,1662,603,1609,587,1661,553,1669,608,1614,580,1659,557,1665,612,498,580,504,585,526,604,1617,607,503,606,504,584,499,610,500,609,1613,612,1636,588,1633,602,507,573,1641,605,1617,608,1640,585,1636,619, - - -76134,9056,4466,585,525,604,506,552,532,577,533,606,504,553,529,579,531,608,501,556,1665,611,1611,584,1665,561,1661,605,1616,578,1671,555,1667,609,1612,582,528,611,499,559,525,584,1664,551,533,586,524,605,505,553,530,578,1670,555,1667,610,1612,582,528,611,1610,584,1664,551,1671,606,1616,578, - - -112997,9073,4447,603,507,560,523,586,524,605,505,552,531,578,533,607,503,555,529,580,1668,548,1665,611,1611,584,1665,551,1671,615,1616,578,1670,555,1667,610,501,556,527,582,528,611,1609,584,518,604,506,551,533,586,524,606,1615,579,1669,555,1666,610,500,558,1664,612,1609,585,1663,551,1670,606, - - -84870,9053,4470,582,529,611,500,559,525,583,526,602,507,560,523,586,525,574,536,543,1669,608,1614,580,1668,556,1665,620,1610,585,1664,550,1671,605,1616,578,533,608,503,555,529,580,1677,557,526,582,528,612,498,559,525,585,1664,551,1671,605,1615,578,531,608,1614,581,1668,558,1664,611,1609,585, - - -76184,9025,4496,555,529,579,531,609,502,556,528,582,529,610,500,559,525,583,526,603,1619,586,1663,552,1669,606,1614,580,1668,556,1665,611,1610,584,1664,550,533,586,524,605,504,553,1669,608,503,555,529,580,530,609,501,557,1664,605,1609,585,1664,551,532,586,1661,553,1668,608,1614,581,1666,558, - - -96145,9073,4449,612,499,559,524,584,526,603,506,552,532,587,523,606,504,584,499,570,1669,556,1666,610,1611,614,1634,580,1641,605,1617,608,1640,584,1636,609,501,587,497,612,498,611,1611,615,496,602,508,580,503,595,535,614,1627,617,1650,594,1646,604,502,586,1635,611,1618,614,1634,581,1641,604, - - -86183,9080,4442,610,501,607,502,586,498,611,499,610,501,588,496,613,497,611,498,579,1642,604,1617,608,1641,583,1637,608,1613,611,1637,588,1634,611,1608,615,494,604,506,582,501,617,1641,584,499,610,493,608,502,586,497,612,1636,588,1633,602,1619,615,494,604,1617,608,1640,585,1637,608,1613,613, - - -234570,9078,4437,607,503,606,505,584,500,608,501,614,502,585,497,611,499,610,509,588,1634,612,1609,616,1633,582,1639,606,1616,610,1639,587,1635,610,1611,614,1634,581,503,606,504,604,1617,608,502,607,503,585,498,611,500,609,501,597,1634,611,1610,615,495,603,1618,607,1642,584,1638,607,1614,611, - - -112281,9076,4446,605,505,583,501,609,493,606,503,585,498,610,500,609,501,587,497,613,1636,579,1643,602,1618,606,1641,583,1639,607,1614,610,1638,554,1665,611,1611,584,526,603,507,551,1671,597,504,583,500,578,532,607,502,555,528,581,1668,556,1664,611,498,559,1663,604,1618,587,1662,553,1668,608, - - -130332,9076,4446,615,496,605,507,582,502,608,503,605,512,584,499,609,501,608,502,586,1636,610,1611,613,1635,579,1641,604,1617,608,1641,584,1637,608,1613,611,1636,588,495,614,497,613,1609,616,494,604,506,590,500,608,502,607,503,585,1635,609,1613,612,498,610,1610,614,1634,581,1641,604,1617,608, - - -886079,9020,4501,560,523,585,525,583,527,552,532,587,523,576,534,554,529,580,531,577,1644,582,1667,559,1663,582,1639,586,1663,553,1669,576,1645,581,1668,557,521,582,529,581,530,559,1663,582,527,551,532,587,523,575,535,553,1669,577,1644,581,1667,557,526,584,1665,560,1662,582,1637,588,1661,554, - - -76188,9053,4469,583,528,560,523,586,524,585,525,552,531,578,533,576,534,554,528,581,1668,557,1665,581,1631,585,1664,551,1670,575,1646,579,1678,555,1666,579,531,558,1664,581,528,559,1662,584,527,552,532,588,523,575,535,553,1668,578,532,556,1666,580,531,567,1663,582,1639,585,1662,552,1670,575, - - -76165,9054,4468,583,527,581,529,559,524,585,525,583,526,547,531,587,524,576,535,554,1668,577,1644,581,1667,558,1664,582,1640,586,1663,551,1670,576,1645,579,531,578,533,556,527,582,1666,559,525,583,526,582,528,560,523,586,1663,553,1669,576,1645,580,522,578,1642,582,1666,559,1663,582,1639,586, -40034,9049,2224,585, - - -114557,9051,4471,581,529,558,525,584,527,582,528,561,522,586,524,585,525,552,531,578,1670,555,1667,579,1643,577,1666,559,1662,583,1638,587,1662,563,1678,587,543,565,537,591,539,589,1651,592,537,591,539,569,533,595,535,593,1647,597,1670,563,1678,587,542,565,1675,589,1651,593,1675,569,1671,593, -40045,9047,2225,553, - - -114589,9029,4492,559,525,585,526,582,528,550,533,586,524,575,535,553,530,578,532,577,1645,581,1668,557,1664,581,1640,585,1664,552,1670,575,1646,579,1669,556,527,582,529,580,531,557,1663,582,528,560,523,586,524,585,525,552,1669,576,1645,580,1668,556,526,582,1667,559,1663,582,1639,593,1662,553, - - -40067,9026,4495,556,528,581,529,579,531,557,526,575,527,581,528,561,523,585,525,584,1638,588,1661,554,1667,578,1644,582,1667,559,1663,582,1639,586,1663,552,530,578,1671,555,529,581,1668,556,526,582,529,581,529,559,524,584,1664,550,533,587,1662,553,530,578,1669,555,1667,578,1642,582,1668,559, - - -58109,9049,4473,578,533,576,534,555,529,580,531,578,532,556,527,582,528,580,529,559,1663,583,1639,586,1662,553,1669,580,1644,581,1668,558,1664,581,1640,582,525,584,527,552,531,588,1670,554,529,579,531,578,532,556,527,582,1666,558,1663,582,1639,587,524,584,1636,578,1671,564,1676,588,1652,592, - - -263241,9028,4503,557,526,582,528,581,529,559,523,594,526,584,527,552,532,588,527,575,1646,579,1670,556,1666,579,1642,583,1665,560,1662,584,1638,578,1671,554,529,580,1669,559,527,582,1667,559,525,584,526,582,528,560,523,586,1662,552,530,578,1671,555,529,580,1668,556,1665,581,1640,584,1664,551, -40069,9025,2221,588 -}; - -const InfraredMessage test_decoder_nec_expected2[] = { - {InfraredProtocolNEC, 0x00, 0x02, false}, - {InfraredProtocolNEC, 0x00, 0x02, true}, - {InfraredProtocolNEC, 0x00, 0x02, false}, - {InfraredProtocolNEC, 0x00, 0x02, true}, - {InfraredProtocolNEC, 0x00, 0x02, true}, - {InfraredProtocolNEC, 0x00, 0x02, true}, - {InfraredProtocolNEC, 0x00, 0x02, true}, - {InfraredProtocolNEC, 0x00, 0x02, true}, - {InfraredProtocolNEC, 0x00, 0x02, true}, - {InfraredProtocolNEC, 0x00, 0x02, true}, - {InfraredProtocolNEC, 0x00, 0x02, true}, - {InfraredProtocolNEC, 0x00, 0x02, true}, - {InfraredProtocolNEC, 0x00, 0x02, true}, - {InfraredProtocolNEC, 0x00, 0x02, true}, - {InfraredProtocolNEC, 0x00, 0x02, true}, - {InfraredProtocolNEC, 0x00, 0x02, true}, - {InfraredProtocolNEC, 0x00, 0x02, true}, - {InfraredProtocolNEC, 0x00, 0x02, true}, - {InfraredProtocolNEC, 0x00, 0x02, true}, - {InfraredProtocolNEC, 0x00, 0x06, false}, - {InfraredProtocolNEC, 0x00, 0x06, true}, - {InfraredProtocolNEC, 0x00, 0x04, false}, - {InfraredProtocolNEC, 0x00, 0x04, true}, - {InfraredProtocolNEC, 0x00, 0x08, false}, - {InfraredProtocolNEC, 0x00, 0x08, true}, - {InfraredProtocolNEC, 0x00, 0x08, false}, - {InfraredProtocolNEC, 0x00, 0x08, true}, - {InfraredProtocolNEC, 0x00, 0x08, false}, - {InfraredProtocolNEC, 0x00, 0x08, false}, - {InfraredProtocolNEC, 0x00, 0x08, false}, - {InfraredProtocolNEC, 0x00, 0x08, false}, - {InfraredProtocolNEC, 0x00, 0x08, false}, - {InfraredProtocolNEC, 0x00, 0x08, false}, - {InfraredProtocolNEC, 0x00, 0x08, false}, - {InfraredProtocolNEC, 0x00, 0x08, false}, - {InfraredProtocolNEC, 0x00, 0x08, false}, - {InfraredProtocolNEC, 0x00, 0x08, false}, - {InfraredProtocolNEC, 0x00, 0x08, false}, - {InfraredProtocolNEC, 0x00, 0x09, false}, - {InfraredProtocolNEC, 0x00, 0x09, false}, - {InfraredProtocolNEC, 0x00, 0x09, false}, - {InfraredProtocolNEC, 0x00, 0x08, false}, - {InfraredProtocolNEC, 0x00, 0x0A, false}, - {InfraredProtocolNEC, 0x00, 0x08, false}, - {InfraredProtocolNEC, 0x00, 0x08, true}, - {InfraredProtocolNEC, 0x00, 0x08, false}, - {InfraredProtocolNEC, 0x00, 0x08, true}, - {InfraredProtocolNEC, 0x00, 0x08, false}, - {InfraredProtocolNEC, 0x00, 0x0A, false}, - {InfraredProtocolNEC, 0x00, 0x08, false}, - {InfraredProtocolNEC, 0x00, 0x0A, false}, - {InfraredProtocolNEC, 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 InfraredMessage test_decoder_nec_expected3[] = { - {InfraredProtocolNECext, 0x286, 0xB649, false}, - {InfraredProtocolNECext, 0x286, 0xB649, false}, - {InfraredProtocolNECext, 0x6880, 0xB649, false}, - {InfraredProtocolNECext, 0x6880, 0xB649, false}, - {InfraredProtocolNECext, 0x6380, 0x150F, false}, - {InfraredProtocolNECext, 0x6380, 0x150F, false}, - {InfraredProtocolNECext, 0x6480, 0x849, false}, - {InfraredProtocolNECext, 0x6480, 0x849, false}, - {InfraredProtocolNECext, 0x7A83, 0x8, false}, - {InfraredProtocolNECext, 0x7A83, 0x8, false}, - {InfraredProtocolNEC, 0x71, 0x4A, false}, - {InfraredProtocolNEC, 0x71, 0x4A, false}, - {InfraredProtocolNEC42, 0x7B, 0x0, false}, - {InfraredProtocolNEC42, 0x7B, 0x0, false}, - {InfraredProtocolNEC42, 0x11C, 0x12, false}, -}; - - -const InfraredMessage test_nec[] = { - {InfraredProtocolNEC, 0x00, 0x00, false}, - {InfraredProtocolNEC, 0x01, 0x00, false}, - {InfraredProtocolNEC, 0x01, 0x80, false}, - {InfraredProtocolNEC, 0x00, 0x80, false}, - {InfraredProtocolNEC, 0x00, 0x00, false}, - {InfraredProtocolNEC, 0x00, 0x00, true}, - {InfraredProtocolNEC, 0x00, 0x00, false}, - {InfraredProtocolNEC, 0x00, 0x00, true}, - {InfraredProtocolNEC, 0xFF, 0xFF, false}, - {InfraredProtocolNEC, 0xFE, 0xFF, false}, - {InfraredProtocolNEC, 0xFE, 0x7F, false}, - {InfraredProtocolNEC, 0xFF, 0x7F, false}, - {InfraredProtocolNEC, 0xFF, 0xFF, false}, - {InfraredProtocolNEC, 0xFF, 0xFF, true}, - {InfraredProtocolNEC, 0xAA, 0x55, false}, - {InfraredProtocolNEC, 0x55, 0xAA, false}, - {InfraredProtocolNEC, 0x55, 0x55, false}, - {InfraredProtocolNEC, 0xAA, 0xAA, false}, - {InfraredProtocolNEC, 0xAA, 0xAA, true}, - - {InfraredProtocolNEC, 0xAA, 0xAA, false}, - {InfraredProtocolNEC, 0xAA, 0xAA, true}, - {InfraredProtocolNEC, 0xAA, 0xAA, true}, - - {InfraredProtocolNEC, 0x55, 0x55, false}, - {InfraredProtocolNEC, 0x55, 0x55, true}, - {InfraredProtocolNEC, 0x55, 0x55, true}, - {InfraredProtocolNEC, 0x55, 0x55, true}, -}; - -const InfraredMessage test_nec42[] = { - {InfraredProtocolNEC42, 0x0000, 0x00, false}, - {InfraredProtocolNEC42, 0x0001, 0x00, false}, - {InfraredProtocolNEC42, 0x0001, 0x80, false}, - {InfraredProtocolNEC42, 0x0000, 0x80, false}, - {InfraredProtocolNEC42, 0x0000, 0x00, false}, - {InfraredProtocolNEC42, 0x0000, 0x00, true}, - {InfraredProtocolNEC42, 0x0000, 0x00, false}, - {InfraredProtocolNEC42, 0x0000, 0x00, true}, - {InfraredProtocolNEC42, 0x1FFF, 0xFF, false}, - {InfraredProtocolNEC42, 0x1FFE, 0xFF, false}, - {InfraredProtocolNEC42, 0x1FFE, 0x7F, false}, - {InfraredProtocolNEC42, 0x1FFF, 0x7F, false}, - {InfraredProtocolNEC42, 0x1FFF, 0xFF, false}, - {InfraredProtocolNEC42, 0x1FFF, 0xFF, true}, - {InfraredProtocolNEC42, 0x0AAA, 0x55, false}, - {InfraredProtocolNEC42, 0x1555, 0xAA, false}, - {InfraredProtocolNEC42, 0x1555, 0x55, false}, - {InfraredProtocolNEC42, 0x0AAA, 0xAA, false}, - {InfraredProtocolNEC42, 0x0AAA, 0xAA, true}, - {InfraredProtocolNEC42, 0x0AAA, 0xAA, false}, - {InfraredProtocolNEC42, 0x0AAA, 0xAA, true}, - {InfraredProtocolNEC42, 0x0AAA, 0xAA, true}, - {InfraredProtocolNEC42, 0x1555, 0x55, false}, - {InfraredProtocolNEC42, 0x1555, 0x55, true}, - {InfraredProtocolNEC42, 0x1555, 0x55, true}, - {InfraredProtocolNEC42, 0x1555, 0x55, true}, -}; - -const InfraredMessage test_nec42ext[] = { - {InfraredProtocolNEC42ext, 0x0000000, 0x0000, false}, - {InfraredProtocolNEC42ext, 0x0000001, 0x0000, false}, - {InfraredProtocolNEC42ext, 0x0000001, 0x8000, false}, - {InfraredProtocolNEC42ext, 0x0000000, 0x8000, false}, - {InfraredProtocolNEC42ext, 0x0000000, 0x0000, false}, - {InfraredProtocolNEC42ext, 0x0000000, 0x0000, true}, - {InfraredProtocolNEC42ext, 0x0000000, 0x0000, false}, - {InfraredProtocolNEC42ext, 0x0000000, 0x0000, true}, - {InfraredProtocolNEC42ext, 0x3F000FF, 0xF00F, false}, - {InfraredProtocolNEC42ext, 0x3F000FE, 0xF00F, false}, - {InfraredProtocolNEC42ext, 0x3F000FE, 0x700F, false}, - {InfraredProtocolNEC42ext, 0x3F000FF, 0x700F, false}, - {InfraredProtocolNEC42ext, 0x3F000FF, 0xF00F, false}, - {InfraredProtocolNEC42ext, 0x3F000FF, 0xF00F, true}, - {InfraredProtocolNEC42ext, 0x2AAAAAA, 0x5555, false}, - {InfraredProtocolNEC42ext, 0x1555555, 0xAAAA, false}, - {InfraredProtocolNEC42ext, 0x1555555, 0x5555, false}, - {InfraredProtocolNEC42ext, 0x2AAAAAA, 0xAAAA, false}, - {InfraredProtocolNEC42ext, 0x2AAAAAA, 0xAAAA, true}, - {InfraredProtocolNEC42ext, 0x2AAAAAA, 0xAAAA, false}, - {InfraredProtocolNEC42ext, 0x2AAAAAA, 0xAAAA, true}, - {InfraredProtocolNEC42ext, 0x2AAAAAA, 0xAAAA, true}, - {InfraredProtocolNEC42ext, 0x1555555, 0x5555, false}, - {InfraredProtocolNEC42ext, 0x1555555, 0x5555, true}, - {InfraredProtocolNEC42ext, 0x1555555, 0x5555, true}, - {InfraredProtocolNEC42ext, 0x1555555, 0x5555, true}, -}; - -const uint32_t test_decoder_nec42ext_input1[] = { -2000000, 9000, 4500, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, // 8 - 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, // 16 - 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, // 24 - 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, // 32 - 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, // 40 - 560, 560, 560, 560, 560, // 42 -}; - -const uint32_t test_decoder_nec42ext_input2[] = { -2000000, 9000, 4500, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, // 8 - 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, // 16 - 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, // 24 - 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, // 32 - 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, // 40 - 560, 560, 560, 560, 560, 560, 560, // 43 - failed - -2000000, 9000, 4500, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, // 8 - 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, // 16 - 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, // 24 - 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, // 32 - 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, // 40 - 560, 560, 560, 560, 560, 10000, 560, // 42 OK + 1 failed -}; - -const InfraredMessage test_decoder_nec42ext_expected1[] = { - {InfraredProtocolNEC42ext, 0x00, 0, false}, -}; - -const InfraredMessage test_decoder_nec42ext_expected2[] = { - {InfraredProtocolNEC42ext, 0x00, 0, false}, -}; - diff --git a/applications/unit_tests/infrared_decoder_encoder/test_data/infrared_necext_test_data.srcdata b/applications/unit_tests/infrared_decoder_encoder/test_data/infrared_necext_test_data.srcdata deleted file mode 100644 index 22ccf40b..00000000 --- a/applications/unit_tests/infrared_decoder_encoder/test_data/infrared_necext_test_data.srcdata +++ /dev/null @@ -1,255 +0,0 @@ -const uint32_t test_decoder_necext_input1[] = { -1915384, 8967, 4463, 587, 527, 590, 524, 584, 1647, 590, 524, 583, 531, 586, 527, 590, 524, 583, 1646, 589, 1640, 586, 527, 590, 524, 583, 1647, 590, 1640, 587, 1644, 582, 1647, 589, 524, 583, 531, 586, 1644, 593, 521, 586, 527, 589, 1641, 586, 528, 589, 525, 592, 521, 585, 1644, 592, 522, 585, 1645, 592, 1638, 589, 524, 592, 1637, 588, 1641, 585, 1645, 592, -41082, 8965, 2220, 591, -409594, 8972, 4458, 591, 523, 584, 530, 587, 1642, 584, 529, 588, 526, 591, 522, 583, 530, 587, 1643, 584, 1646, 590, 523, 584, 530, 587, 1643, 584, 1647, 590, 1640, 586, 1643, 583, 531, 586, 527, 589, 1641, 586, 528, 589, 524, 593, 1637, 589, 524, 593, 521, 586, 529, 589, 1641, 585, 528, 589, 1640, 586, 1644, 592, 521, 585, 1645, 592, 1638, 588, 1641, 585, -41088, 8968, 2218, 582, -95791, 8971, 2214, 587, -95787, 8965, 2220, 591, -95783, 8971, 2215, 585, -95787, 8964, 2221, 590, -95783, 8971, 2215, 586, -95788, 8965, 2220, 591, -95783, 8969, 2216, 585, -95789, 8965, 2220, 590, -95782, 8970, 2215, 586, -95788, 9047, 2139, 591, -95782, 8970, 2216, 585, -95788, 8966, 2220, 591, -95782, 8972, 2214, 588, -95786, 8964, 2222, 590, -95784, 8971, 2214, 586, -95787, 8967, 2218, 583, -95791, 8964, 2222, 588, -95785, 8969, 2217, 584, -333740, 8967, 4464, 586, 528, 590, 524, 592, 1637, 589, 525, 592, 521, 586, 528, 589, 525, 593, 1637, 588, 1640, 585, 528, 589, 525, 592, 1638, 589, 1641, 586, 1644, 592, 1638, 588, 525, 592, 522, 585, 1644, 592, 522, 585, 528, 588, 1642, 585, 529, 588, 526, 591, 522, 585, 1645, 591, 522, 584, 1646, 591, 1639, 587, 526, 591, 1639, 588, 1642, 583, 1646, 590, -41082, 8963, 2223, 588, -95785, 8967, 2219, 591, -95782, 8968, 2217, 584, -246369, 8972, 4459, 591, 523, 583, 530, 587, 1643, 583, 530, 587, 527, 590, 523, 584, 530, 586, 1643, 583, 1647, 590, 524, 583, 530, 586, 1643, 583, 1646, 589, 1641, 586, 1644, 583, 531, 586, 528, 589, 1640, 585, 528, 588, 525, 592, 1638, 588, 525, 592, 522, 585, 529, 589, 1641, 584, 529, 588, 1642, 585, 1645, 591, 522, 585, 1645, 590, 1639, 587, 1642, 584, -41090, 8966, 2220, 591, -95782, 8966, 2220, 592, -95782, 8967, 2218, 583, -165604, 9017, 4413, 586, 527, 590, 524, 583, 1647, 589, 523, 582, 531, 586, 528, 589, 525, 593, 1637, 589, 1640, 585, 527, 588, 525, 592, 1638, 589, 1641, 585, 1644, 592, 1638, 588, 525, 591, 523, 585, 1645, 591, 522, 584, 529, 588, 1642, 584, 530, 587, 527, 591, 523, 584, 1646, 591, 523, 584, 1646, 591, 1640, 586, 527, 590, 1640, 586, 1643, 583, 1646, 589, -41084, 8972, 2214, 587, -95787, 8967, 2219, 581, -95792, 8971, 2215, 586, -208929, 9016, 4414, 584, 529, 588, 526, 591, 1638, 588, 525, 591, 522, 584, 529, 587, 526, 591, 1639, 587, 1642, 584, 529, 588, 526, 591, 1638, 587, 1643, 584, 1646, 591, 1639, 587, 526, 590, 523, 584, 1646, 590, 524, 583, 530, 587, 1643, 583, 530, 587, 527, 590, 524, 583, 1647, 590, 524, 583, 1647, 590, 1640, 586, 527, 589, 1640, 586, 1644, 592, 1637, 589, -41085, 8972, 2214, 587, -95787, 8964, 2221, 590, -95784, 8965, 2221, 590, -167378, 8969, 4460, 589, 525, 582, 532, 586, 1644, 592, 521, 586, 528, 589, 524, 592, 522, 585, 1645, 592, 1638, 589, 525, 592, 522, 585, 1644, 591, 1639, 588, 1642, 585, 1645, 591, 522, 585, 529, 587, 1641, 584, 530, 587, 526, 591, 1639, 588, 526, 591, 522, 584, 530, 587, 1643, 584, 530, 587, 1642, 584, 1646, 591, 523, 584, 1647, 590, 1640, 587, 1643, 583, -41090, 9017, 2169, 591, -95781, 8969, 2216, 585, -95788, 8964, 2223, 588, -192781, 8969, 4461, 589, 525, 592, 522, 586, 1644, 592, 521, 586, 528, 589, 525, 592, 522, 585, 1644, 592, 1638, 589, 524, 592, 521, 586, 1645, 591, 1638, 588, 1642, 585, 1645, 590, 522, 584, 530, 587, 1642, 584, 530, 587, 526, 591, 1639, 588, 526, 590, 524, 583, 530, 587, 1643, 584, 530, 587, 1643, 584, 1646, 590, 524, 583, 1646, 590, 1640, 587, 1643, 583, -41090, 8967, 2219, 591, -95782, 8970, 2215, 586, -95788, 8963, 2222, 589, -179978, 8967, 4464, 586, 528, 589, 524, 593, 1637, 588, 525, 592, 522, 585, 529, 589, 525, 592, 1638, 589, 1641, 585, 529, 588, 526, 591, 1638, 588, 1641, 585, 1645, 590, 1639, 587, 527, 590, 523, 584, 1646, 591, 523, 584, 530, 587, 1643, 583, 530, 586, 527, 590, 524, 583, 1646, 590, 523, 584, 1646, 589, 1640, 586, 528, 589, 1640, 586, 1644, 593, 1638, 589, -41084, 8971, 2214, 587, -95787, 8964, 2221, 589, -95785, 8966, 2219, 592, -196616, 8967, 4463, 585, 527, 590, 525, 592, 1637, 589, 525, 592, 521, 586, 528, 589, 524, 592, 1638, 588, 1641, 585, 528, 589, 525, 592, 1637, 589, 1641, 585, 1645, 591, 1638, 588, 526, 591, 522, 585, 1645, 591, 522, 584, 530, 587, 1642, 584, 529, 588, 526, 591, 523, 583, 1645, 590, 523, 584, 1646, 590, 1639, 587, 527, 590, 1639, 586, 1644, 583, 1647, 589, -41084, 8971, 2214, 587, -95787, 8964, 2222, 589, -2112164, 8969, 4462, 588, 525, 592, 522, 585, 1645, 591, 523, 584, 529, 588, 526, 591, 523, 584, 1645, 591, 1639, 587, 527, 590, 524, 583, 1646, 590, 1639, 587, 1643, 584, 1673, 563, 524, 583, 531, 586, 1643, 593, 521, 586, 528, 589, 1641, 585, 528, 589, 525, 592, 521, 585, 1644, 592, 522, 584, 1645, 591, 1639, 588, 526, 591, 1639, 588, 1642, 583, 1646, 590, -41082, 8962, 2223, 588, -95785, 8965, 2220, 591, -95783, 8968, 2217, 583, -164778, 8969, 4462, 588, 525, 591, 522, 585, 1645, 591, 522, 585, 530, 587, 527, 591, 523, 584, 1646, 591, 1639, 588, 526, 591, 523, 583, 1646, 590, 1639, 587, 1643, 584, 1672, 564, 523, 584, 531, 586, 1643, 583, 530, 587, 527, 590, 1639, 587, 527, 589, 524, 583, 531, 586, 1644, 583, 531, 586, 1643, 583, 1647, 590, 525, 582, 1647, 589, 1639, 586, 1644, 593, -41081, 8965, 2220, 590, -95784, 8968, 2217, 583, -95790, 8970, 2215, 586, -161053, 8963, 4468, 592, 521, 586, 528, 589, 1641, 585, 529, 588, 526, 591, 522, 585, 529, 588, 1642, 585, 1645, 591, 523, 584, 530, 587, 1642, 584, 1646, 591, 1639, 586, 1669, 557, 531, 586, 527, 590, 1640, 586, 527, 590, 525, 592, 1638, 589, 525, 592, 522, 585, 528, 588, 1641, 585, 528, 588, 1642, 584, 1645, 591, 523, 584, 1645, 591, 1639, 587, 1643, 583, -41090, 8964, 2221, 590, -95784, 8963, 2222, 589, -95785, 8965, 2220, 590, -139334, 8968, 4463, 587, 527, 590, 523, 584, 1646, 590, 523, 583, 531, 586, 527, 589, 524, 583, 1647, 590, 1640, 586, 527, 590, 525, 592, 1637, 589, 1641, 585, 1644, 592, 1665, 562, 524, 591, 522, 584, 1645, 591, 523, 584, 529, 588, 1642, 584, 529, 587, 527, 590, 523, 584, 1646, 590, 523, 584, 1646, 590, 1639, 587, 527, 589, 1640, 586, 1644, 592, 1637, 589, -41085, 8970, 2217, 584, -95789, 8972, 2213, 586, -95787, 8965, 2221, 590, -141444, 8969, 4461, 589, 525, 592, 522, 584, 1644, 591, 522, 585, 529, 588, 526, 591, 522, 585, 1645, 592, 1638, 587, 526, 591, 523, 584, 1646, 591, 1639, 588, 1642, 583, 1672, 564, 523, 584, 530, 587, 1643, 584, 530, 587, 527, 590, 1640, 587, 527, 590, 524, 584, 530, 587, 1643, 584, 530, 586, 1644, 583, 1647, 589, 524, 583, 1647, 590, 1640, 586, 1645, 592, -41081, 8964, 2222, 589, -95784, 8968, 2218, 583, -95790, 8971, 2214, 586, -154119, 8969, 4462, 588, 526, 591, 522, 585, 1645, 592, 522, 585, 529, 589, 526, 591, 522, 584, 1646, 591, 1639, 588, 526, 591, 523, 583, 1645, 590, 1639, 587, 1642, 584, 1671, 564, 523, 584, 529, 587, 1643, 583, 530, 587, 527, 590, 1639, 587, 526, 590, 523, 583, 530, 586, 1643, 583, 529, 586, 1643, 583, 1646, 590, 524, 583, 1648, 589, 1641, 586, 1644, 592, -41081, 8965, 2220, 590, -95784, 8969, 2216, 585, -95790, 8964, 2221, 590, -147134, 8966, 4464, 586, 528, 589, 525, 593, 1637, 589, 524, 593, 522, 585, 529, 589, 525, 592, 1638, 589, 1641, 586, 528, 589, 525, 591, 1638, 588, 1641, 585, 1645, 592, 1664, 561, 525, 592, 523, 584, 1646, 591, 523, 584, 530, 588, 1642, 585, 526, 587, 527, 590, 523, 584, 1646, 591, 523, 584, 1646, 591, 1639, 586, 526, 590, 1640, 587, 1643, 583, 1646, 590, -41083, 8963, 2223, 587, -95786, 8965, 2221, 590, -95784, 8968, 2217, 584, -158330, 8965, 4465, 585, 529, 588, 526, 590, 1639, 587, 526, 590, 523, 584, 530, 586, 526, 590, 1639, 587, 1643, 583, 530, 587, 527, 590, 1639, 587, 1643, 584, 1647, 590, 1666, 561, 527, 589, 523, 583, 1646, 590, 523, 583, 531, 586, 1643, 583, 530, 586, 527, 590, 524, 582, 1646, 590, 525, 582, 1647, 589, 1640, 586, 528, 589, 1640, 586, 1644, 592, 1638, 589, -41085, 8971, 2214, 586, -95787, 8962, 2223, 588, -95786, 8965, 2222, 589, -206063, 8962, 4467, 591, 521, 585, 529, 588, 1642, 585, 529, 588, 525, 591, 522, 584, 530, 587, 1642, 584, 1646, 591, 523, 584, 529, 588, 1642, 583, 1646, 590, 1640, 587, 1668, 558, 530, 587, 526, 589, 1639, 586, 528, 589, 524, 583, 1647, 589, 524, 593, 521, 585, 528, 589, 1641, 585, 529, 589, 1641, 585, 1645, 592, 522, 585, 1644, 591, 1639, 587, 1642, 584, -41090, 8965, 2221, 590, -95784, 8963, 2223, 588, -95785, 8964, 2222, 589, -183026, 8970, 4460, 590, 524, 583, 531, 586, 1643, 583, 530, 587, 528, 589, 525, 592, 522, 586, 1644, 592, 1637, 588, 525, 591, 522, 585, 1645, 592, 1638, 588, 1641, 585, 1672, 565, 522, 584, 530, 588, 1642, 584, 529, 588, 526, 591, 1639, 587, 527, 590, 523, 584, 530, 587, 1642, 584, 530, 587, 1642, 583, 1647, 590, 524, 583, 1647, 590, 1640, 587, 1643, 582, -41090, 8965, 2221, 590, -95783, 8970, 2216, 584, -95789, 8962, 2223, 587, -184104, 8964, 4467, 583, 530, 587, 527, 590, 1640, 587, 527, 590, 523, 582, 531, 586, 528, 589, 1640, 586, 1644, 593, 521, 586, 528, 589, 1640, 585, 1644, 592, 1638, 589, 1667, 558, 528, 589, 526, 591, 1638, 588, 526, 591, 522, 585, 1645, 591, 522, 585, 530, 587, 527, 591, 1639, 587, 526, 591, 1639, 587, 1642, 584, 530, 587, 1643, 583, 1646, 590, 1639, 587, -41087, 9020, 2166, 584, -95790, 8972, 2213, 587, -95787, 8963, 2222, 589, -169833, 8964, 4465, 583, 529, 587, 527, 590, 1639, 587, 527, 591, 523, 584, 530, 586, 527, 590, 1640, 587, 1643, 583, 531, 587, 527, 590, 1640, 586, 1644, 583, 1647, 590, 1666, 560, 527, 590, 524, 582, 1647, 589, 525, 592, 521, 586, 1644, 592, 521, 586, 528, 589, 526, 592, 1638, 588, 525, 592, 1638, 589, 1641, 585, 528, 589, 1641, 585, 1645, 591, 1638, 588, -41086, 8971, 2215, 585, -95789, 8964, 2222, 588, -95785, 8967, 2218, 583, -185701, 8971, 4460, 590, 523, 584, 530, 587, 1642, 584, 530, 587, 527, 590, 524, 583, 531, 586, 1644, 583, 1647, 590, 524, 592, 521, 585, 1644, 592, 1638, 589, 1641, 585, 1671, 565, 522, 586, 529, 588, 1642, 585, 529, 588, 526, 591, 1638, 588, 525, 590, 523, 584, 530, 587, 1642, 584, 530, 587, 1642, 584, 1646, 590, 524, 583, 1646, 590, 1640, 586, 1643, 583, -41091, 8965, 2222, 589, -95784, 8965, 2221, 589, -95784, 8968, 2217, 583, -146332, 8969, 4461, 669, 445, 591, 522, 584, 1644, 591, 523, 584, 529, 588, 526, 591, 522, 585, 1645, 591, 1638, 587, 527, 590, 524, 584, 1646, 590, 1639, 587, 1642, 583, 1673, 564, 524, 583, 531, 586, 1643, 583, 531, 586, 528, 589, 1641, 585, 528, 589, 525, 592, 522, 585, 1644, 591, 521, 585, 1645, 592, 1638, 588, 525, 592, 1638, 588, 1641, 584, 1646, 591, -41083, 8963, 2222, 589, -95785, 8966, 2220, 592, -261924, 8965, 4465, 585, 529, 588, 525, 592, 1638, 588, 525, 592, 523, 584, 530, 587, 526, 591, 1639, 587, 1642, 583, 529, 587, 527, 590, 1639, 587, 1643, 584, 1646, 590, -}; - -const InfraredMessage test_decoder_necext_expected1[] = { - {InfraredProtocolNECext, 0x7984, 0xed12, false}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, false}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, false}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, false}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, false}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, false}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, false}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, false}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, false}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, false}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, false}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, false}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, false}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, false}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, false}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, false}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, false}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, false}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, false}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, false}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, false}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, false}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, false}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, false}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, - {InfraredProtocolNECext, 0x7984, 0xed12, true}, -}; - -const InfraredMessage test_necext[] = { - {InfraredProtocolNECext, 0x0000, 0x0000, false}, - {InfraredProtocolNECext, 0x0001, 0x0000, false}, - {InfraredProtocolNECext, 0x0001, 0x8000, false}, - {InfraredProtocolNECext, 0x0000, 0x8000, false}, - {InfraredProtocolNECext, 0x0000, 0x0000, false}, - {InfraredProtocolNECext, 0x0000, 0x0000, true}, - {InfraredProtocolNECext, 0x0000, 0x0000, false}, - {InfraredProtocolNECext, 0x0000, 0x0000, true}, - {InfraredProtocolNECext, 0xFFFF, 0xFFFF, false}, - {InfraredProtocolNECext, 0xFFFE, 0xFFFF, false}, - {InfraredProtocolNECext, 0xFFFE, 0x7FFF, false}, - {InfraredProtocolNECext, 0xFFFF, 0x7FFF, false}, - {InfraredProtocolNECext, 0xFFFF, 0xFFFF, false}, - {InfraredProtocolNECext, 0xFFFF, 0xFFFF, true}, - {InfraredProtocolNECext, 0xAAAA, 0x5555, false}, - {InfraredProtocolNECext, 0x5555, 0xAAAA, false}, - {InfraredProtocolNECext, 0x5555, 0x5555, false}, - {InfraredProtocolNECext, 0xAAAA, 0xAAAA, false}, - {InfraredProtocolNECext, 0xAAAA, 0xAAAA, true}, - - {InfraredProtocolNECext, 0xAAAA, 0xAAAA, false}, - {InfraredProtocolNECext, 0xAAAA, 0xAAAA, true}, - {InfraredProtocolNECext, 0xAAAA, 0xAAAA, true}, - - {InfraredProtocolNECext, 0x5555, 0x5555, false}, - {InfraredProtocolNECext, 0x5555, 0x5555, true}, - {InfraredProtocolNECext, 0x5555, 0x5555, true}, - {InfraredProtocolNECext, 0x5555, 0x5555, true}, -}; - - diff --git a/applications/unit_tests/infrared_decoder_encoder/test_data/infrared_rc5_test_data.srcdata b/applications/unit_tests/infrared_decoder_encoder/test_data/infrared_rc5_test_data.srcdata deleted file mode 100644 index 07241555..00000000 --- a/applications/unit_tests/infrared_decoder_encoder/test_data/infrared_rc5_test_data.srcdata +++ /dev/null @@ -1,160 +0,0 @@ -/* -_______----__--____----__--____--__----____----__--__--__--__ - | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | - s1 s2 t | address | command | -*/ - -const uint32_t test_decoder_rc5x_input1[] = { -27000 + 888, 1776, 888, 888, 1776, 1776, 888, 888, 1776, 888, 888, 1776, 1776, 1776, 888, 888, 888, 888, 888, 888, -}; - -const InfraredMessage test_decoder_rc5x_expected1[] = { - {InfraredProtocolRC5X, 0x13, 0x10, false}, // toggle 0 -}; - -/* -_______--__----____----__--____--__----____----__--__--__--__ - | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | - s1 s2 t | address | command | -*/ - -const uint32_t test_decoder_rc5_input1[] = { -27000 + 888, 888, 888, 1776, 1776, 1776, 888, 888, 1776, 888, 888, 1776, 1776, 1776, 888, 888, 888, 888, 888, 888, -}; - -const InfraredMessage test_decoder_rc5_expected1[] = { - {InfraredProtocolRC5, 0x13, 0x10, false}, // toggle 0 -}; - - -/* -_______--__--__--__----__--____--__----____----__--__--__--__ - | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | - s1 s2 t | address | command | -*/ - -const uint32_t test_decoder_rc5_input2[] = { -27000 + 888, 888, 888, 888, 888, 888, 888, 1776, 888, 888, 1776, 888, 888, 1776, 1776, 1776, 888, 888, 888, 888, 888, 888, -}; - -const InfraredMessage test_decoder_rc5_expected2[] = { - {InfraredProtocolRC5, 0x13, 0x10, false}, // toggle 1 -}; - -/* -_______--__----____----__--____--__----____----__--__--____-- - | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | - s1 s2 t | address | command | -*/ - -const uint32_t test_decoder_rc5_input3[] = { -27000 + 888, 888, 888, 1776, 1776, 1776, 888, 888, 1776, 888, 888, 1776, 1776, 1776, 888, 888, 888, 888, 1776, 888, -}; - -const InfraredMessage test_decoder_rc5_expected3[] = { - {InfraredProtocolRC5, 0x13, 0x11, false}, // toggle 0 -}; - - -/* -_______--__--__--__----__--____--__----____----__--__--____-- - | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | - s1 s2 t | address | command | -*/ - -const uint32_t test_decoder_rc5_input4[] = { -27000 + 888, 888, 888, 888, 888, 888, 888, 1776, 888, 888, 1776, 888, 888, 1776, 1776, 1776, 888, 888, 888, 888, 1776, 888, -}; - -const InfraredMessage test_decoder_rc5_expected4[] = { - {InfraredProtocolRC5, 0x13, 0x11, false}, // toggle 1 -}; - -/* -_______--__----____--__--__--__--__--__--__--__--__--__--__-- - | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | - s1 s2 t | address | command | -*/ - -const uint32_t test_decoder_rc5_input5[] = { -27000 + 888, 888, 888, 1776, 1776, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, -}; - -const InfraredMessage test_decoder_rc5_expected5[] = { - {InfraredProtocolRC5, 0x1F, 0x3F, false}, // toggle 0 -}; - -/* -_______--__--__--__--__--__--__--__--__--__--__--__--__--__-- - | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | - s1 s2 t | address | command | -*/ - -const uint32_t test_decoder_rc5_input6[] = { -27000 + 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, -}; - -const InfraredMessage test_decoder_rc5_expected6[] = { - {InfraredProtocolRC5, 0x1F, 0x3F, false}, // toggle 1 -}; - - -const uint32_t test_decoder_rc5_input_all_repeats[] = { -27000 + 888, 888, 888, 1776, 1776, 1776, 888, 888, 1776, 888, 888, 1776, 1776, 1776, 888, 888, 888, 888, 1776, 888, -27000 + 888, 888, 888, 888, 888, 888, 888, 1776, 888, 888, 1776, 888, 888, 1776, 1776, 1776, 888, 888, 888, 888, 1776, 888, -27000 + 888, 888, 888, 888, 888, 888, 888, 1776, 888, 888, 1776, 888, 888, 1776, 1776, 1776, 888, 888, 888, 888, 1776, 888, -27000 + 888, 888, 888, 888, 888, 888, 888, 1776, 888, 888, 1776, 888, 888, 1776, 1776, 1776, 888, 888, 888, 888, 1776, 888, -27000 + 888, 888, 888, 1776, 1776, 1776, 888, 888, 1776, 888, 888, 1776, 1776, 1776, 888, 888, 888, 888, 1776, 888, -27000 + 888, 888, 888, 888, 888, 888, 888, 1776, 888, 888, 1776, 888, 888, 1776, 1776, 1776, 888, 888, 888, 888, 888, 888, -27000 + 888, 888, 888, 1776, 1776, 1776, 888, 888, 1776, 888, 888, 1776, 1776, 1776, 888, 888, 888, 888, 888, 888, -27000 + 888, 888, 888, 1776, 1776, 1776, 888, 888, 1776, 888, 888, 1776, 1776, 1776, 888, 888, 888, 888, 888, 888, -27000 + 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, -27000 + 888, 888, 888, 1776, 1776, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, -27000 + 888, 888, 888, 1776, 1776, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, 888, -}; - -const InfraredMessage test_decoder_rc5_expected_all_repeats[] = { - {InfraredProtocolRC5, 0x13, 0x11, false}, // toggle 0 - {InfraredProtocolRC5, 0x13, 0x11, false}, // toggle 1 - {InfraredProtocolRC5, 0x13, 0x11, true}, // toggle 1 - {InfraredProtocolRC5, 0x13, 0x11, true}, // toggle 1 - {InfraredProtocolRC5, 0x13, 0x11, false}, // toggle 0 - {InfraredProtocolRC5, 0x13, 0x10, false}, // toggle 1 - {InfraredProtocolRC5, 0x13, 0x10, false}, // toggle 0 - {InfraredProtocolRC5, 0x13, 0x10, true}, // toggle 0 - {InfraredProtocolRC5, 0x1F, 0x3F, false}, // toggle 1 - {InfraredProtocolRC5, 0x1F, 0x3F, false}, // toggle 0 - {InfraredProtocolRC5, 0x1F, 0x3F, true}, // toggle 0 -}; - - -const InfraredMessage test_rc5[] = { - {InfraredProtocolRC5, 0x1F, 0x3F, false}, - {InfraredProtocolRC5, 0x00, 0x00, false}, - {InfraredProtocolRC5, 0x10, 0x01, false}, - {InfraredProtocolRC5, 0x01, 0x20, false}, - {InfraredProtocolRC5, 0x01, 0x20, false}, - {InfraredProtocolRC5, 0x01, 0x20, true}, - {InfraredProtocolRC5, 0x01, 0x20, true}, - {InfraredProtocolRC5, 0x01, 0x20, true}, - {InfraredProtocolRC5, 0x01, 0x20, true}, - {InfraredProtocolRC5, 0x1F, 0x3F, false}, - {InfraredProtocolRC5, 0x0A, 0x2A, false}, - {InfraredProtocolRC5, 0x15, 0x15, false}, - {InfraredProtocolRC5, 0x15, 0x15, true}, - - {InfraredProtocolRC5X, 0x1F, 0x3F, false}, - {InfraredProtocolRC5X, 0x00, 0x00, false}, - {InfraredProtocolRC5X, 0x10, 0x01, false}, - {InfraredProtocolRC5X, 0x01, 0x20, false}, - {InfraredProtocolRC5X, 0x01, 0x20, false}, - {InfraredProtocolRC5X, 0x01, 0x20, true}, - {InfraredProtocolRC5X, 0x01, 0x20, true}, - {InfraredProtocolRC5X, 0x01, 0x20, true}, - {InfraredProtocolRC5X, 0x01, 0x20, true}, - {InfraredProtocolRC5X, 0x1F, 0x3F, false}, - {InfraredProtocolRC5X, 0x0A, 0x2A, false}, - {InfraredProtocolRC5X, 0x15, 0x15, false}, - {InfraredProtocolRC5X, 0x15, 0x15, true}, -}; - diff --git a/applications/unit_tests/infrared_decoder_encoder/test_data/infrared_rc6_test_data.srcdata b/applications/unit_tests/infrared_decoder_encoder/test_data/infrared_rc6_test_data.srcdata deleted file mode 100644 index 94b9be5a..00000000 --- a/applications/unit_tests/infrared_decoder_encoder/test_data/infrared_rc6_test_data.srcdata +++ /dev/null @@ -1,162 +0,0 @@ -/* -_____---------______--____--__--__--____------____--__----____--__----__--__--____----____--__--__--__--__--___________ - | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 93 A0 0 - s m2 m1 m0 T | address | command | -// 93 A0 0 -27000, 2666, 889, 444, 888, 444, 444, 444, 444, 444, 444 + 444, 888 + 444, 888, 444, 444, 888, 888, 444, 444, 888, 444, 444, 444, 444, 888, 888, 888, 444, 444, 444, 444, 444, 444, 444, 444, 444, -//27000, 2666, 889, 444, 888, 444, 444, 444, 444, 444, 444 + 444, 888 + 444, 888, 444, 444, 888, 888, -// --__----__--__-- -// 0 | 0 | 1 | 1 | 1 -//444, 444, 888, 444, 444, 444, 444, -//888, 888, 888, 444, 444, 444, 444, 444, 444, 444, 444, 444, - -_____---------______--____--__--__------____--____--__----____--__----__--__--____----____--__--__--__--__--___________ - | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 93 A0 1 -// 93 A0 1 -27000, 2666, 889, 444, 888, 444, 444, 444, 444, 444 + 888, 888, 444, 888, 444, 444, 888, 888, 444, 444, 888, 444, 444, 444, 444, 888, 888, 888, 444, 444, 444, 444, 444, 444, 444, 444, 444, -//27000, 2666, 889, 444, 888, 444, 444, 444, 444, 444 + 888, 888, 444, 888, 444, 444, 888, 888, -//444, 444, 888, 444, 444, 444, 444, -//888, 888, 888, 444, 444, 444, 444, 444, 444, 444, 444, 444, - -_____---------______--____--__--__--____------____--__----____----____--__----____----____--__--__--__--__--___________ - | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 94 A0 0 -// 94 A0 0 -27000, 2666, 889, 444, 888, 444, 444, 444, 444, 444, 444 + 444, 888 + 444, 888, 444, 444, 888, 888, 888, 888, 444, 444, 888, 888, 888, 888, 444, 444, 444, 444, 444, 444, 444, 444, 444, -//27000, 2666, 889, 444, 888, 444, 444, 444, 444, 444, 444 + 444, 888 + 444, 888, 444, 444, 888, 888, -//----____--__---- -//0 | 1 | 0 | 0 | 1 -//888, 888, 444, 444, 888, -//888, 888, 888, 444, 444, 444, 444, 444, 444, 444, 444, 444, - -_____---------______--____--__--__------____--____--__----____----____--__----____----____--__--__--__--__--___________ - | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 94 A0 1 -// 94 A0 1 -27000, 2666, 889, 444, 888, 444, 444, 444, 444, 444 + 888, 888, 444, 888, 444, 444, 888, 888, 888, 888, 444, 444, 888, 888, 888, 888, 444, 444, 444, 444, 444, 444, 444, 444, 444, -//27000, 2666, 889, 444, 888, 444, 444, 444, 444, 444 + 888, 888, 444, 888, 444, 444, 888, 888, -//888, 888, 444, 444, 888, -//888, 888, 888, 444, 444, 444, 444, 444, 444, 444, 444, 444, - -_____---------______--____--__--__--____------____--__----____----____----__--____----____--__--__--__--__--___________ - | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 95 A0 0 -// 95 A0 0 -27000, 2666, 889, 444, 888, 444, 444, 444, 444, 444, 444 + 444, 888 + 444, 888, 444, 444, 888, 888, 888, 888, 888, 444, 444, 888, 888, 888, 444, 444, 444, 444, 444, 444, 444, 444, 444, -//27000, 2666, 889, 444, 888, 444, 444, 444, 444, 444, 444 + 444, 888 + 444, 888, 444, 444, 888, 888, -//----____----__-- -//0 | 1 | 0 | 1 | 1 -//888, 888, 888, 444, 444, -//888, 888, 888, 444, 444, 444, 444, 444, 444, 444, 444, 444, - -_____---------______--____--__--__------____--____--__----____----____----__--____----____--__--__--__--__--___________ - | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 95 A0 1 -// 95 A0 1 -27000, 2666, 889, 444, 888, 444, 444, 444, 444, 444 + 888, 888, 444, 888, 444, 444, 888, 888, 888, 888, 888, 444, 444, 888, 888, 888, 444, 444, 444, 444, 444, 444, 444, 444, 444, -//27000, 2666, 889, 444, 888, 444, 444, 444, 444, 444 + 888, 888, 444, 888, 444, 444, 888, 888, -//888, 888, 888, 444, 444, -//888, 888, 888, 444, 444, 444, 444, 444, 444, 444, 444, 444, - -*/ - -const uint32_t test_decoder_rc6_input1[] = { -// 94 A0 0 -27000, 2666, 889, 444, 888, 444, 444, 444, 444, 444, 444 + 444, 888 + 444, 888, 444, 444, 888, 888, 888, 888, 444, 444, 888, 888, 888, 888, 444, 444, 444, 444, 444, 444, 444, 444, 444, -// 93 A0 1 -27000, 2666, 889, 444, 888, 444, 444, 444, 444, 444 + 888, 888, 444, 888, 444, 444, 888, 888, 444, 444, 888, 444, 444, 444, 444, 888, 888, 888, 444, 444, 444, 444, 444, 444, 444, 444, 444, - // failed 95 - 27000, 2666, 889, 444, 888, 444, 444, 444, 444, 444 + 888, 888, 444, 888, 444, 444, 888, 888, 888, 888, 888, 444, 444, 888, 888, 888, 444, 444, 444, 444, 444, 444, 444, 444, 888, -// 93 A0 0 -27000, 2666, 889, 444, 888, 444, 444, 444, 444, 444, 444 + 444, 888 + 444, 888, 444, 444, 888, 888, 444, 444, 888, 444, 444, 444, 444, 888, 888, 888, 444, 444, 444, 444, 444, 444, 444, 444, 444, -// 94 A0 1 -27000, 2666, 889, 444, 888, 444, 444, 444, 444, 444 + 888, 888, 444, 888, 444, 444, 888, 888, 888, 888, 444, 444, 888, 888, 888, 888, 444, 444, 444, 444, 444, 444, 444, 444, 444, -// 95 A0 0 -27000, 2666, 889, 444, 888, 444, 444, 444, 444, 444, 444 + 444, 888 + 444, 888, 444, 444, 888, 888, 888, 888, 888, 444, 444, 888, 888, 888, 444, 444, 444, 444, 444, 444, 444, 444, 444, - // failed 93 + 1 sample - 27000, 2666, 889, 444, 888, 444, 444, 444, 444, 444 + 888, 888, 444, 888, 444, 444, 888, 888, 444, 444, 888, 444, 444, 444, 444, 888, 888, 888, 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, - // failed 93 - 27000, 2666, 889, 444, 888, 444, 444, 444, 444, 444 + 888, 888, 444, 888, 444, 444, 888, 888, 444, 444, 888, 444, 444, 444, 444, 888, 888, 888, 444, 444, 444, 444, 444, 444, 444, 444, 888, 444, 444, - // failed 93 - 27000, 2666, 889, 444, 888, 444, 444, 444, 444, 444 + 888, 888, 444, 888, 444, 444, 888, 888, 444, 444, 888, 444, 444, 444, 444, 888, 888, 888, 444, 444, 444, 444, 444, 444, 444, 444, 888, -// 95 A0 1 -27000, 2666, 889, 444, 888, 444, 444, 444, 444, 444 + 888, 888, 444, 888, 444, 444, 888, 888, 888, 888, 888, 444, 444, 888, 888, 888, 444, 444, 444, 444, 444, 444, 444, 444, 444, -}; - -const InfraredMessage test_decoder_rc6_expected1[] = { - {InfraredProtocolRC6, 0x94, 0xA0, false}, // toggle 0 - {InfraredProtocolRC6, 0x93, 0xA0, false}, // toggle 1 -// {InfraredProtocolRC6, 0x95, 0xA0, false}, failed - {InfraredProtocolRC6, 0x93, 0xA0, false}, // toggle 0 - {InfraredProtocolRC6, 0x94, 0xA0, false}, // toggle 1 - {InfraredProtocolRC6, 0x95, 0xA0, false}, // toggle 0 -// {InfraredProtocolRC6, 0x93, 0xA0, false}, failed -// {InfraredProtocolRC6, 0x93, 0xA0, false}, failed -// {InfraredProtocolRC6, 0x93, 0xA0, false}, failed - {InfraredProtocolRC6, 0x95, 0xA0, false}, // toggle 1 -}; - -const InfraredMessage test_encoder_rc6_input1[] = { - {InfraredProtocolRC6, 0x93, 0xA0, false}, // Toggle 0 - {InfraredProtocolRC6, 0x93, 0xA0, true}, // Toggle 0 - {InfraredProtocolRC6, 0x93, 0xA1, false}, // Toggle 1 - {InfraredProtocolRC6, 0x93, 0xA1, true}, // Toggle 1 - {InfraredProtocolRC6, 0x93, 0xA1, true}, // Toggle 1 - {InfraredProtocolRC6, 0x93, 0xA0, false}, // Toggle 0 - {InfraredProtocolRC6, 0x93, 0xA0, false}, // Toggle 1 - {InfraredProtocolRC6, 0x93, 0xA0, true}, // Toggle 1 -}; - -const uint32_t test_encoder_rc6_expected1[] = { -27000, 2666, 889, 444, 888, 444, 444, 444, 444, 444, 888, 888+444, 888, 444, 444, 888, 888, 444, 444, 888, 444, 444, 444, 444, 888, 888, 888, 444, 444, 444, 444, 444, 444, 444, 444, 444, -27000, 2666, 889, 444, 888, 444, 444, 444, 444, 444, 888, 888+444, 888, 444, 444, 888, 888, 444, 444, 888, 444, 444, 444, 444, 888, 888, 888, 444, 444, 444, 444, 444, 444, 444, 444, 444, -27000, 2666, 889, 444, 888, 444, 444, 444, 444, 444+888, 888, 444, 888, 444, 444, 888, 888, 444, 444, 888, 444, 444, 444, 444, 888, 888, 888, 444, 444, 444, 444, 444, 444, 888, -27000, 2666, 889, 444, 888, 444, 444, 444, 444, 444+888, 888, 444, 888, 444, 444, 888, 888, 444, 444, 888, 444, 444, 444, 444, 888, 888, 888, 444, 444, 444, 444, 444, 444, 888, -27000, 2666, 889, 444, 888, 444, 444, 444, 444, 444+888, 888, 444, 888, 444, 444, 888, 888, 444, 444, 888, 444, 444, 444, 444, 888, 888, 888, 444, 444, 444, 444, 444, 444, 888, -27000, 2666, 889, 444, 888, 444, 444, 444, 444, 444, 888, 888+444, 888, 444, 444, 888, 888, 444, 444, 888, 444, 444, 444, 444, 888, 888, 888, 444, 444, 444, 444, 444, 444, 444, 444, 444, -27000, 2666, 889, 444, 888, 444, 444, 444, 444, 444+888, 888, 444, 888, 444, 444, 888, 888, 444, 444, 888, 444, 444, 444, 444, 888, 888, 888, 444, 444, 444, 444, 444, 444, 444, 444, 444, -27000, 2666, 889, 444, 888, 444, 444, 444, 444, 444+888, 888, 444, 888, 444, 444, 888, 888, 444, 444, 888, 444, 444, 444, 444, 888, 888, 888, 444, 444, 444, 444, 444, 444, 444, 444, 444, -}; - - -const InfraredMessage test_rc6[] = { - {InfraredProtocolRC6, 0x00, 0x00, false}, // t 0 - {InfraredProtocolRC6, 0x80, 0x00, false}, // t 1 - {InfraredProtocolRC6, 0x80, 0x01, false}, // t 0 - {InfraredProtocolRC6, 0x00, 0x01, false}, // t 1 - {InfraredProtocolRC6, 0x00, 0x00, false}, // t 0 - {InfraredProtocolRC6, 0x00, 0x00, true}, // t 0 - {InfraredProtocolRC6, 0x00, 0x00, false}, // t 1 - {InfraredProtocolRC6, 0x00, 0x00, true}, // t 1 - {InfraredProtocolRC6, 0xFF, 0xFF, false}, // t 0 - {InfraredProtocolRC6, 0x7F, 0xFF, false}, // t 1 - {InfraredProtocolRC6, 0x7F, 0xFE, false}, // t 0 - {InfraredProtocolRC6, 0xFF, 0xFE, false}, // t 1 - {InfraredProtocolRC6, 0xFF, 0xFF, false}, // t 0 - {InfraredProtocolRC6, 0xFF, 0xFF, true}, // t 0 - {InfraredProtocolRC6, 0xAA, 0x55, false}, // t 1 - {InfraredProtocolRC6, 0x55, 0xAA, false}, // t 0 - {InfraredProtocolRC6, 0x55, 0x55, false}, // t 1 - {InfraredProtocolRC6, 0xAA, 0xAA, false}, // t 0 - {InfraredProtocolRC6, 0xAA, 0xAA, true}, // t 0 -// same with inverted toggle bit - {InfraredProtocolRC6, 0x00, 0x00, false}, // t 1 - {InfraredProtocolRC6, 0x80, 0x00, false}, // t 0 - {InfraredProtocolRC6, 0x80, 0x01, false}, // t 1 - {InfraredProtocolRC6, 0x00, 0x01, false}, // t 0 - {InfraredProtocolRC6, 0x00, 0x00, false}, // t 1 - {InfraredProtocolRC6, 0x00, 0x00, true}, // t 1 - {InfraredProtocolRC6, 0x00, 0x00, false}, // t 0 - {InfraredProtocolRC6, 0x00, 0x00, true}, // t 0 - {InfraredProtocolRC6, 0xFF, 0xFF, false}, // t 1 - {InfraredProtocolRC6, 0x7F, 0xFF, false}, // t 0 - {InfraredProtocolRC6, 0x7F, 0xFE, false}, // t 1 - {InfraredProtocolRC6, 0xFF, 0xFE, false}, // t 0 - {InfraredProtocolRC6, 0xFF, 0xFF, false}, // t 1 - {InfraredProtocolRC6, 0xFF, 0xFF, true}, // t 1 - {InfraredProtocolRC6, 0xAA, 0x55, false}, // t 0 - {InfraredProtocolRC6, 0x55, 0xAA, false}, // t 1 - {InfraredProtocolRC6, 0x55, 0x55, false}, // t 0 - {InfraredProtocolRC6, 0xAA, 0xAA, false}, // t 1 - {InfraredProtocolRC6, 0xAA, 0xAA, true}, // t 1 - - {InfraredProtocolRC6, 0x93, 0xA0, false}, // t 0 - {InfraredProtocolRC6, 0x93, 0xA1, false}, // t 1 -}; - diff --git a/applications/unit_tests/infrared_decoder_encoder/test_data/infrared_samsung_test_data.srcdata b/applications/unit_tests/infrared_decoder_encoder/test_data/infrared_samsung_test_data.srcdata deleted file mode 100644 index aea867b9..00000000 --- a/applications/unit_tests/infrared_decoder_encoder/test_data/infrared_samsung_test_data.srcdata +++ /dev/null @@ -1,254 +0,0 @@ -const uint32_t test_decoder_samsung32_input1[] = { - 3129767, 4513, 4483, 565, 530, 586, 1670, 563, 1664, 588, 1666, 566, 530, 586, - 535, 560, 535, 591, 531, 565, 531, 585, 1669, 563, 1666, 587, 1640, 593, - 531, 566, 530, 587, 536, 559, 562, 564, 531, 585, 537, 558, 1670, 562, - 1665, 587, 534, 561, 534, 592, 530, 566, 529, 587, 1668, 564, 1664, 589, - 533, 563, 533, 594, 1661, 560, 1667, 565, 1661, 591, 1664, 558, 46325, 4517, - 4480, 558, 1668, 595, - - 679127, 4511, 4485, 562, 532, 584, 1671, 561, 1666, 587, 1668, 564, 532, 585, - 537, 559, 537, 589, 533, 562, 533, 593, 1661, 561, 1667, 586, 1642, 590, - 532, 563, 531, 585, 537, 559, 564, 563, 1666, 567, 528, 588, 535, 613, - 483, 593, 530, 586, 536, 559, 536, 590, 1637, 584, 537, 558, 1669, 594, - 1661, 561, 1667, 586, 1642, 591, 1664, 559, 1670, 583, 534, 567, 46429, 4515, - 4480, 558, 1671, 593, - - 618571, 4508, 4488, 560, 561, 566, 1663, 559, 1667, 583, 1670, 562, 534, 582, - 540, 565, 531, 587, 536, 560, 536, 590, 1664, 558, 1670, 583, 1644, 588, - 535, 561, 534, 592, 530, 566, 557, 610, 1616, 616, 479, 585, 537, 558, - 537, 589, 534, 584, 539, 567, 529, 587, 534, 561, 534, 592, 1663, 559, - 1668, 564, 1664, 588, 1666, 566, 1661, 581, 1646, 585, 1669, 563, 46106, 4511, - 4485, 563, 1664, 589, - - 514897, 4514, 4482, 556, 564, 614, 1616, 565, 1664, 589, 1666, 557, 538, 588, - 534, 562, 534, 592, 529, 566, 529, 587, 1667, 565, 1663, 590, 1638, 584, - 538, 568, 527, 590, 534, 562, 562, 566, 530, 587, 1642, 590, 532, 563, - 530, 586, 537, 589, 533, 563, 533, 583, 539, 566, 1661, 561, 561, 566, - 1663, 559, 1668, 584, 1671, 563, 1666, 556, 1671, 591, 1663, 559, 46210, 4508, - 4488, 560, 1668, 585, - - 683922, 4509, 4487, 561, 560, 565, 1662, 559, 1669, 585, 1670, 562, 534, 583, - 540, 566, 529, 586, 535, 560, 535, 591, 1663, 559, 1669, 584, 1644, 588, - 534, 561, 533, 593, 529, 556, 567, 561, 1668, 564, 1664, 590, 534, 563, - 532, 584, 538, 557, 537, 589, 534, 562, 534, 593, 530, 566, 555, 561, - 1667, 564, 1662, 589, 1665, 557, 1671, 581, 1647, 586, 1669, 564, 46686, 4514, - 4481, 556, 1672, 592, - - 1088255, 4514, 4481, 557, 564, 562, 1667, 565, 1663, 591, 1665, 558, 538, 590, - 533, 564, 532, 583, 539, 567, 528, 588, 1666, 566, 1663, 580, 1648, 585, - 537, 559, 537, 589, 533, 562, 560, 618, 478, 589, 535, 562, 1667, 565, - 1662, 588, 531, 565, 531, 585, 537, 558, 536, 590, 1666, 566, 1661, 592, - 530, 566, 530, 586, 1669, 564, 1664, 558, 1669, 594, 1662, 560, 46291, 4510, - 4485, 563, 1663, 589, 97349, 4510, 4487, 561, 1666, 586, 97560, 4513, 4482, 566, - 1662, 591, 97123, 4510, 4485, 563, 1664, 588, 97605, 4508, 4487, 561, 1666, 586, - 97371, 4518, 4478, 560, 1668, 595, 97514, 4518, 4478, 560, 1667, 586, 97014, 4515, - 4480, 568, 1660, 593, 96719, 4516, 4481, 567, 1660, 593, 97528, 4515, 4480, 568, - 1659, 593, 97453, 4510, 4485, 563, 1665, 587, 97351, 4518, 4477, 561, 1668, 585, - 97216, 4511, 4484, 564, 1664, 589, 97708, 4518, 4477, 561, 1667, 586, 96718, 4516, - 4479, 559, 1669, 594, 97070, 4515, 4480, 568, 1660, 593, 97500, 4511, 4484, 564, - 1662, 590, 97425, 4515, 4481, 567, 1660, 593, 97025, 4515, 4482, 566, 1660, 592, - 96796, 4509, 4487, 561, 1666, 587, 97399, 4512, 4484, 565, 1662, 591, 97486, 4516, - 4480, 567, 1658, 594, 97425, 4515, 4481, 567, 1659, 593, 97511, 4510, 4485, 563, - 1664, 650, 96969, 4511, 4485, 562, 1665, 588, 97243, 4512, 4484, 564, 1663, 590, - 97031, 4519, 4478, 560, 1666, 586, 97548, 4514, 4482, 566, 1661, 591, 97302, 4515, - 4480, 568, 1659, 593, 97726, 4510, 4486, 562, 1665, 588, 97396, 4514, 4482, 566, - 1661, 592, 97301, 4515, 4480, 568, 1661, 593, 97453, 4518, 4477, 560, 1667, 585, - 97430, 4518, 4477, 561, 1665, 587, 97521, 4511, 4484, 564, 1664, 589, 97182, 4512, - 4484, 564, 1663, 590, 97760, 4516, 4479, 559, 1668, 595, 97268, 4516, 4479, 559, - 1668, 595, 97243, 4512, 4485, 563, 1663, 589, 97695, 4510, 4486, 562, 1664, 588, - 374205, 4513, 4483, 565, 530, 586, 1669, 564, 1665, 589, 1667, 567, 529, 587, - 535, 560, 535, 591, 531, 565, 530, 585, 1669, 563, 1664, 588, 1639, 593, - 529, 566, 529, 587, 536, 560, 563, 565, 532, 585, 537, 560, 1669, 563, - 1664, 587, 534, 561, 534, 592, 529, 566, 529, 586, 1668, 564, 1663, 589, - 532, 563, 534, 593, 1661, 562, 1666, 566, 1662, 591, 1664, 558, - - 149343, 4512, 4483, 565, 530, 586, 1669, 563, 1664, 588, 1667, 565, 530, 586, - 536, 560, 536, 590, 532, 563, 531, 586, 1670, 563, 1666, 567, 1660, 592, - 530, 565, 529, 586, 537, 558, 563, 563, 532, 584, 538, 568, 1661, 561, - 1665, 587, 535, 560, 535, 592, 532, 565, 531, 587, 1669, 563, 1665, 587, - 534, 561, 534, 592, 1663, 559, 1668, 564, 1662, 590, 1666, 566, - - 116399, 4514, 4482, 566, 531, 587, 1669, 564, 1664, 589, 1666, 566, 529, 587, - 535, 561, 535, 592, 531, 565, 529, 587, 1668, 564, 1664, 558, 1670, 595, - 529, 566, 528, 589, 535, 560, 562, 565, 531, 585, 536, 559, 1668, 564, - 1664, 589, 534, 561, 533, 593, 530, 565, 528, 588, 1668, 564, 1665, 590, - 533, 564, 532, 594, 1661, 561, 1666, 566, 1661, 592, 1663, 558, - - 121946, 4517, 4478, 559, 537, 590, 1664, 568, 1660, 593, 1661, 560, 536, 590, - 531, 564, 531, 585, 537, 559, 536, 590, 1665, 568, 1661, 561, 1666, 587, - 537, 559, 529, 591, 531, 564, 558, 558, 537, 588, 533, 562, 1665, 567, - 1659, 593, 530, 565, 529, 587, 536, 561, 535, 592, 1664, 559, 1671, 593, - 530, 566, 528, 587, 1667, 565, 1662, 558, 1668, 595, 1660, 561, 46509, 4516, - 4479, 558, 1668, 594, - - 88785, 4512, 4484, 564, 530, 585, 1669, 563, 1664, 588, 1666, 566, 530, 587, - 536, 560, 535, 592, 532, 565, 531, 585, 1669, 563, 1665, 557, 1669, 594, - 530, 566, 530, 586, 535, 560, 562, 564, 530, 585, 537, 558, 1669, 563, - 1664, 589, 535, 561, 534, 593, 529, 566, 529, 586, 1668, 564, 1664, 589, - 533, 562, 532, 594, 1661, 561, 1666, 565, 1662, 591, 1665, 558, - - 289651, 4512, 4483, 564, 531, 586, 1669, 563, 1665, 588, 1667, 565, 529, 587, - 536, 560, 536, 590, 531, 563, 531, 584, 1670, 562, 1666, 556, 1671, 592, - 529, 566, 531, 586, 536, 561, 562, 564, 532, 585, 537, 558, 1669, 563, - 1665, 588, 535, 561, 536, 590, 530, 565, 531, 585, 1669, 563, 1664, 587, - 534, 561, 533, 593, 1662, 561, 1669, 564, 1663, 590, 1665, 567, 46302, 4509, - 4487, 561, 1667, 585, - - 97097, 4513, 4483, 565, 529, 587, 1668, 564, 1663, 589, 1666, 567, 529, 587, - 536, 560, 535, 591, 530, 565, 529, 587, 1669, 563, 1664, 558, 1669, 594, - 529, 566, 527, 587, 535, 561, 561, 563, 530, 586, 537, 560, 1669, 563, - 1663, 589, 534, 561, 532, 594, 529, 566, 528, 587, 1668, 564, 1663, 589, - 532, 563, 532, 594, 1660, 561, 1667, 566, 1661, 592, 1663, 558, 46311, 4510, - 4485, 562, 1665, 589, - - 99001, 4514, 4481, 566, 528, 587, 1667, 565, 1662, 589, 1664, 568, 528, 588, - 535, 561, 535, 593, 529, 567, 528, 589, 1668, 564, 1663, 559, 1668, 595, - 528, 567, 527, 589, 534, 562, 561, 565, 530, 586, 536, 560, 1668, 564, - 1663, 590, 533, 563, 532, 595, 524, 567, 527, 588, 1667, 565, 1662, 590, - 532, 563, 531, 595, 1659, 562, 1666, 566, 1661, 593, 1664, 559, - - 300259, 4514, 4482, 556, 565, 561, 1668, 564, 1663, 589, 1664, 556, 539, 588, - 535, 561, 535, 643, 478, 568, 530, 587, 1668, 564, 1664, 589, 1636, 594, - 529, 567, 528, 588, 534, 561, 561, 565, 1662, 560, 536, 590, 532, 564, - 531, 586, 537, 589, 532, 564, 533, 584, 538, 568, 528, 588, 1667, 565, - 1662, 560, 1669, 584, 1670, 562, 1666, 587, 1641, 591, 1664, 559, 46271, 4561, - 4435, 562, 1666, 586, - - 81421, 4514, 4482, 556, 565, 561, 1667, 565, 1662, 589, 1664, 558, 538, 588, - 534, 562, 534, 593, 530, 567, 530, 587, 1669, 564, 1663, 589, 1637, 594, - 529, 567, 528, 588, 534, 561, 560, 566, 1663, 559, 535, 591, 531, 565, - 530, 587, 538, 589, 533, 563, 533, 583, 539, 567, 529, 587, 1667, 565, - 1662, 560, 1669, 584, 1669, 563, 1666, 587, 1640, 592, 1663, 560, 46296, 4516, - 4480, 558, 1669, 594, - - 80690, 4508, 4489, 560, 561, 565, 1663, 558, 1670, 593, 1660, 561, 534, 592, - 530, 565, 530, 586, 537, 560, 536, 591, 1664, 558, 1670, 583, 1644, 587, - 535, 560, 534, 592, 530, 566, 556, 559, 1669, 563, 532, 584, 538, 558, - 537, 588, 534, 582, 540, 567, 530, 588, 535, 562, 535, 591, 1663, 559, - 1669, 564, 1665, 588, 1666, 566, 1662, 560, 1668, 585, 1669, 563, - - 136483, 4511, 4485, 563, 531, 585, 1671, 561, 1666, 587, 1668, 564, 531, 585, - 536, 559, 537, 589, 532, 563, 532, 584, 1670, 562, 1666, 587, 1642, 591, - 531, 566, 531, 585, 536, 559, 563, 563, 1665, 567, 528, 588, 535, 561, - 534, 593, 529, 567, 556, 560, 535, 591, 530, 565, 531, 585, 1670, 563, - 1665, 568, 1660, 593, 1662, 560, 1668, 564, 1663, 590, 1666, 566, - - 129038, 4511, 4484, 564, 533, 583, 1670, 562, 1666, 587, 1668, 565, 532, 586, - 537, 559, 536, 591, 532, 564, 532, 594, 1660, 562, 1666, 566, 1660, 593, - 531, 565, 530, 586, 537, 558, 563, 563, 1664, 568, 528, 589, 535, 562, - 533, 595, 530, 567, 556, 560, 535, 591, 531, 565, 531, 584, 1669, 563, - 1664, 567, 1661, 592, 1662, 559, 1668, 564, 1663, 590, 1666, 566, 46187, 4511, - 4486, 562, 1665, 589, - - 110663, 4517, 4478, 558, 536, 590, 1665, 568, 1660, 593, 1661, 560, 536, 590, - 531, 564, 531, 584, 537, 558, 536, 590, 1665, 567, 1661, 561, 1666, 587, - 536, 560, 535, 591, 532, 564, 559, 557, 1670, 562, 532, 594, 529, 567, - 528, 649, 473, 561, 561, 565, 531, 585, 536, 559, 536, 589, 1665, 567, - 1660, 562, 1666, 587, 1668, 564, 1663, 558, 1669, 594, 1661, 561, - - 143736, 4517, 4479, 559, 536, 591, 1664, 558, 1670, 593, 1661, 559, 536, 590, - 531, 564, 531, 585, 536, 559, 537, 589, 1665, 567, 1661, 561, 1666, 587, - 536, 560, 536, 590, 530, 564, 557, 558, 1669, 562, 533, 593, 528, 568, - 530, 586, 534, 561, 560, 566, 530, 586, 536, 560, 536, 591, 1664, 558, - 1671, 562, 1666, 587, 1667, 565, 1663, 559, 1668, 594, 1660, 562, 46234, 4514, - 4482, 566, 1661, 591, - - 120661, 4564, 4432, 565, 530, 586, 1669, 563, 1665, 587, 1666, 566, 531, 585, - 536, 559, 536, 591, 532, 564, 532, 586, 1670, 563, 1666, 557, 1666, 592, - 530, 565, 530, 586, 536, 560, 562, 563, 1664, 558, 538, 588, 533, 562, - 533, 593, 528, 558, 565, 561, 534, 582, 541, 566, 530, 586, 1670, 563, - 1664, 567, 1660, 593, 1662, 560, 1668, 564, 1663, 590, 1665, 567, 46472, 4513, - 4484, 564, 1664, 588, - - 125301, 4511, 4484, 564, 532, 584, 1670, 562, 1666, 587, 1668, 565, 531, 586, - 537, 560, 537, 591, 532, 565, 533, 584, 1671, 562, 1666, 566, 1661, 591, - 530, 565, 532, 584, 536, 559, 562, 564, 1665, 567, 529, 587, 534, 563, - 535, 593, 529, 568, 556, 561, 535, 592, 531, 565, 531, 585, 1669, 563, - 1665, 567, 1660, 593, 1663, 559, 1668, 564, 1664, 589, 1666, 567, - - 200253, 4517, 4479, 558, 562, 615, 1613, 558, 1670, 592, 1661, 560, 536, 591, - 531, 616, 480, 585, 537, 559, 537, 641, 1613, 568, 1661, 582, 1646, 586, - 536, 559, 535, 591, 532, 564, 558, 558, 1670, 562, 533, 592, 530, 566, - 529, 588, 536, 581, 542, 617, 479, 587, 537, 560, 536, 590, 1665, 557, - 1670, 562, 1666, 587, 1668, 564, 1664, 558, 1669, 593, 1662, 561, 46230, 4570, - 4426, 561, 1667, 586, - - 115418, 4514, 4483, 565, 557, 561, 1669, 563, 1664, 589, 1666, 566, 529, 587, - 534, 561, 534, 592, 530, 566, 530, 586, 1668, 564, 1664, 589, 1639, 594, - 529, 567, 528, 587, 534, 561, 561, 565, 1663, 559, 535, 590, 532, 563, - 532, 584, -}; - -const InfraredMessage test_decoder_samsung32_expected1[] = { - {InfraredProtocolSamsung32, 0x0E, 0x0C, false}, {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, - {InfraredProtocolSamsung32, 0x0E, 0x81, false}, {InfraredProtocolSamsung32, 0x0E, 0x81, true}, - {InfraredProtocolSamsung32, 0x0E, 0x01, false}, {InfraredProtocolSamsung32, 0x0E, 0x01, true}, - {InfraredProtocolSamsung32, 0x0E, 0x02, false}, {InfraredProtocolSamsung32, 0x0E, 0x02, true}, - {InfraredProtocolSamsung32, 0x0E, 0x03, false}, {InfraredProtocolSamsung32, 0x0E, 0x03, true}, - {InfraredProtocolSamsung32, 0x0E, 0x0C, false}, {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, - {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, - {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, - {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, - {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, - {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, - {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, - {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, - {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, - {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, - {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, - {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, - {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, - {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, - {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, - {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, - {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, - {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, - {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, - {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, - {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, {InfraredProtocolSamsung32, 0x0E, 0x0C, false}, - {InfraredProtocolSamsung32, 0x0E, 0x0C, false}, {InfraredProtocolSamsung32, 0x0E, 0x0C, false}, - {InfraredProtocolSamsung32, 0x0E, 0x0C, false}, {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, - {InfraredProtocolSamsung32, 0x0E, 0x0C, false}, {InfraredProtocolSamsung32, 0x0E, 0x0C, false}, - {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, {InfraredProtocolSamsung32, 0x0E, 0x0C, false}, - {InfraredProtocolSamsung32, 0x0E, 0x0C, true}, {InfraredProtocolSamsung32, 0x0E, 0x0C, false}, - {InfraredProtocolSamsung32, 0x0E, 0x01, false}, {InfraredProtocolSamsung32, 0x0E, 0x01, true}, - {InfraredProtocolSamsung32, 0x0E, 0x01, false}, {InfraredProtocolSamsung32, 0x0E, 0x01, true}, - {InfraredProtocolSamsung32, 0x0E, 0x01, false}, {InfraredProtocolSamsung32, 0x0E, 0x01, false}, - {InfraredProtocolSamsung32, 0x0E, 0x01, false}, {InfraredProtocolSamsung32, 0x0E, 0x01, true}, - {InfraredProtocolSamsung32, 0x0E, 0x01, false}, {InfraredProtocolSamsung32, 0x0E, 0x01, false}, - {InfraredProtocolSamsung32, 0x0E, 0x01, true}, {InfraredProtocolSamsung32, 0x0E, 0x01, false}, - {InfraredProtocolSamsung32, 0x0E, 0x01, true}, {InfraredProtocolSamsung32, 0x0E, 0x01, false}, - {InfraredProtocolSamsung32, 0x0E, 0x01, false}, {InfraredProtocolSamsung32, 0x0E, 0x01, true}, -}; - -const InfraredMessage test_samsung32[] = { - {InfraredProtocolSamsung32, 0x00, 0x00, false}, - {InfraredProtocolSamsung32, 0x01, 0x00, false}, - {InfraredProtocolSamsung32, 0x01, 0x80, false}, - {InfraredProtocolSamsung32, 0x00, 0x80, false}, - {InfraredProtocolSamsung32, 0x00, 0x00, false}, - {InfraredProtocolSamsung32, 0x00, 0x00, true}, - {InfraredProtocolSamsung32, 0x00, 0x00, false}, - {InfraredProtocolSamsung32, 0x00, 0x00, true}, - {InfraredProtocolSamsung32, 0xFF, 0xFF, false}, - {InfraredProtocolSamsung32, 0xFE, 0xFF, false}, - {InfraredProtocolSamsung32, 0xFE, 0x7F, false}, - {InfraredProtocolSamsung32, 0xFF, 0x7F, false}, - {InfraredProtocolSamsung32, 0xFF, 0xFF, false}, - {InfraredProtocolSamsung32, 0xFF, 0xFF, true}, - {InfraredProtocolSamsung32, 0xAA, 0x55, false}, - {InfraredProtocolSamsung32, 0x55, 0xAA, false}, - {InfraredProtocolSamsung32, 0x55, 0x55, false}, - {InfraredProtocolSamsung32, 0xAA, 0xAA, false}, - {InfraredProtocolSamsung32, 0xAA, 0xAA, true}, - - {InfraredProtocolSamsung32, 0xAA, 0xAA, false}, - {InfraredProtocolSamsung32, 0xAA, 0xAA, true}, - {InfraredProtocolSamsung32, 0xAA, 0xAA, true}, - - {InfraredProtocolSamsung32, 0x55, 0x55, false}, - {InfraredProtocolSamsung32, 0x55, 0x55, true}, - {InfraredProtocolSamsung32, 0x55, 0x55, true}, - {InfraredProtocolSamsung32, 0x55, 0x55, true}, -}; - diff --git a/applications/unit_tests/infrared_decoder_encoder/test_data/infrared_sirc_test_data.srcdata b/applications/unit_tests/infrared_decoder_encoder/test_data/infrared_sirc_test_data.srcdata deleted file mode 100644 index 52cc1533..00000000 --- a/applications/unit_tests/infrared_decoder_encoder/test_data/infrared_sirc_test_data.srcdata +++ /dev/null @@ -1,479 +0,0 @@ -const uint32_t test_decoder_sirc_input1[] = { /* 121 timings */ -1000000, 2420, 608, 1194, 608, 596, 604, 1198, 603, 591, 610, 1192, 609, 596, 605, 599, 601, 593, 607, 597, 604, 590, 610, 594, 606, 1196, - 25957, 2426, 603, 1199, 603, 591, 610, 1192, 610, 594, 606, 1196, 606, 599, 603, 591, 609, 595, 606, 598, 602, 592, 609, 596, 605, 1197, - 25960, 2423, 606, 1196, 606, 599, 602, 1200, 602, 592, 609, 1193, 609, 596, 606, 599, 602, 592, 609, 595, 605, 600, 601, 593, 608, 1194, -1000000, 2422, 607, 1195, 607, 598, 603, 1199, 604, 590, 610, 1192, 610, 594, 606, 598, 603, 591, 609, 595, 605, 600, 601, 593, 607, 1195, - 25955, 2418, 610, 1192, 610, 594, 606, 1196, 606, 599, 602, 1200, 602, 592, 608, 596, 604, 590, 611, 594, 607, 597, 603, 591, 609, 1193, - 25959, 2424, 604, 1198, 604, 590, 610, 1192, 610, 594, 606, 1196, 605, 600, 601, 593, 608, 597, 603, 591, 610, 595, 606, 598, 602, 1200, -1000000, 2424, 605, 599, 601, 593, 607, 597, 603, 591, 610, 594, 606, 1196, 606, 1196, 605, 600, 601, 593, 608, 597, 604, 590, 611, 1191, - 26586, 2425, 604, 590, 611, 593, 607, 598, 603, 591, 610, 595, 606, 1196, 606, 1196, 606, 599, 602, 592, 608, 596, 604, 590, 611, 1191, - 26586, 2424, 604, 590, 611, 593, 607, 598, 603, 591, 609, 595, 605, 1197, 605, 1197, 604, 590, 611, 593, 607, 597, 603, 591, 610, 1192, -1000000, 2424, 604, 1198, 604, 590, 611, 1191, 610, 594, 606, 598, 603, 1199, 602, 1200, 602, 592, 609, 595, 605, 600, 601, 593, 608, 1194, - 25386, 2419, 610, 1192, 610, 594, 606, 1196, 607, 597, 603, 591, 610, 1192, 609, 1193, 610, 594, 606, 598, 602, 592, 609, 595, 605, 1197, - 25385, 2421, 608, 1194, 608, 596, 605, 1197, 605, 599, 601, 593, 608, 1194, 608, 1194, 608, 596, 605, 589, 611, 594, 607, 597, 604, 1198, -1000000, 2426, 603, 1199, 602, 1200, 602, 1200, 602, 592, 608, 1194, 608, 596, 604, 590, 611, 594, 607, 597, 603, 591, 610, 594, 606, 1196, 605, 600, 601, 593, 608, 596, 604, 590, 610, 594, 607, 1195, 606, 598, 603, 591, - 15078, 2419, 610, 1192, 610, 1192, 610, 1192, 610, 594, 606, 1196, 605, 600, 601, 593, 608, 597, 604, 590, 610, 595, 606, 598, 602, 1200, 602, 592, 608, 597, 604, 590, 611, 594, 607, 597, 603, 1199, 603, 591, 609, 595, - 15075, 2422, 607, 1195, 607, 1195, 607, 1195, 607, 597, 604, 1198, 603, 591, 610, 594, 606, 598, 603, 591, 609, 595, 605, 600, 601, 1191, 611, 594, 607, 597, 603, 591, 610, 594, 606, 598, 602, 1200, 602, 592, 608, 596, -1000000, 2422, 607, 1195, 606, 599, 602, 592, 608, 596, 604, 590, 610, 1192, 610, 594, 606, 599, 602, 592, 608, 596, 604, 590, 610, 1192, - 26585, 2426, 602, 1200, 602, 592, 608, 596, 604, 590, 611, 594, 607, 1195, 607, 598, 603, 591, 610, 594, 606, 598, 603, 591, 609, 1193, - 26586, 2425, 604, 1198, 603, 591, 610, 594, 606, 598, 602, 592, 609, 1193, 608, 597, 605, 600, 601, 593, 607, 597, 604, 590, 610, 1192, -1000000, 2418, 610, 594, 606, 598, 603, 1199, 603, 1199, 603, 1199, 603, 1199, 603, 1199, 603, 591, 610, 1192, 610, 594, 606, 1196, 606, 1196, 606, 1196, 606, 598, 602, 592, 609, 1193, 609, 1193, 609, 1193, 609, 595, 605, 599, - 11557, 2418, 611, 594, 607, 598, 603, 1199, 603, 1199, 603, 1199, 602, 1200, 602, 1200, 601, 593, 608, 1194, 607, 597, 604, 1198, 603, 1199, 603, 1199, 602, 592, 608, 596, 604, 1198, 603, 1199, 603, 1199, 603, 591, 609, 595, - 11561, 2424, 604, 590, 610, 594, 607, 1195, 606, 1196, 606, 1196, 606, 1196, 606, 1196, 605, 600, 601, 1191, 611, 594, 607, 1195, 607, 1195, 607, 1195, 607, 597, 603, 591, 610, 1192, 610, 1192, 610, 1192, 610, 594, 606, 598, -1000000, 2424, 604, 590, 611, 594, 607, 1195, 607, 1195, 607, 1195, 607, 1195, 607, 1195, 606, 598, 603, 1199, 602, 592, 609, 1193, 608, 1194, 608, 1194, 608, 596, 604, 590, 611, 1191, 611, 1191, 611, 1191, 611, 594, 607, 598, - 11559, 2427, 602, 592, 608, 596, 605, 1197, 604, 1198, 604, 1198, 604, 1198, 604, 1198, 604, 590, 610, 1192, 610, 595, 606, 1196, 606, 1196, 606, 1196, 606, 599, 603, 591, 609, 1193, 609, 1193, 609, 1193, 608, 597, 605, 589, - 11567, 2418, 610, 595, 607, 597, 603, 1199, 603, 1199, 602, 1200, 602, 1200, 601, 1201, 601, 593, 608, 1194, 607, 598, 603, 1199, 603, 1199, 603, 1199, 603, 591, 609, 595, 605, 1197, 605, 1197, 605, 1197, 604, 590, 611, 594, -1000000, 2421, 608, 597, 604, 590, 610, 1192, 610, 1192, 609, 1193, 609, 1193, 609, 1193, 608, 596, 605, 1197, 604, 590, 610, 1192, 611, 1191, 610, 1192, 610, 594, 606, 598, 603, 1199, 603, 1199, 602, 1200, 602, 592, 608, 596, - 11561, 2424, 604, 590, 610, 594, 606, 1196, 606, 1196, 606, 1196, 606, 1196, 605, 1197, 605, 600, 601, 1201, 601, 593, 607, 1195, 607, 1195, 606, 1196, 606, 598, 602, 592, 608, 1194, 608, 1194, 607, 1195, 607, 597, 603, 591, - 11564, 2421, 607, 597, 604, 590, 610, 1192, 610, 1192, 610, 1192, 610, 1192, 610, 1192, 609, 595, 606, 1196, 606, 598, 602, 1200, 601, 1201, 601, 1201, 601, 593, 607, 598, 603, 1199, 603, 1199, 602, 1200, 602, 592, 608, 596, -1000000, 2420, 609, 595, 606, 598, 602, 1200, 602, 1200, 602, 1200, 602, 1200, 602, 1200, 602, 592, 608, 1194, 608, 596, 604, 1198, 603, 1199, 603, 1199, 603, 591, 610, 594, 606, 1196, 606, 1196, 606, 1196, 606, 598, 602, 592, - 11565, 2420, 609, 595, 605, 600, 601, 1201, 601, 1201, 601, 1201, 601, 1201, 601, 1201, 601, 593, 607, 1195, 607, 597, 603, 1199, 603, 1199, 603, 1199, 603, 591, 609, 595, 605, 1197, 605, 1197, 605, 1197, 605, 599, 601, 593, - 11563, 2422, 607, 597, 603, 591, 609, 1193, 609, 1193, 608, 1194, 608, 1194, 608, 1194, 582, 623, 603, 1199, 603, 591, 610, 1202, 599, 1203, 599, 1203, 599, 595, 581, 623, 577, 1225, 601, 1201, 601, 1201, 601, 593, 582, 623, -1000000, 2425, 602, 1200, 602, 1200, 602, 592, 608, 1194, 608, 1194, 607, 1195, 607, 1195, 607, 597, 603, 1199, 602, 592, 609, 1193, 608, 1194, 608, 1194, 607, 597, 603, 601, 575, 1227, 599, 1203, 599, 1203, 573, 621, 580, 625, - 10931, 2426, 578, 1224, 578, 1224, 578, 616, 585, 1217, 585, 1217, 585, 1217, 585, 1217, 585, 620, 580, 1222, 580, 624, 577, 1225, 577, 1225, 577, 1225, 577, 617, 583, 622, 580, 1222, 580, 1222, 579, 1223, 579, 625, 576, 618, - 10936, 2421, 583, 1219, 583, 1219, 582, 622, 579, 1223, 578, 1224, 578, 1224, 578, 1224, 578, 616, 584, 1218, 584, 621, 580, 1222, 579, 1223, 579, 1223, 579, 625, 576, 618, 583, 1219, 582, 1220, 582, 1220, 582, 622, 578, 616, -1000000, 2419, 584, 620, 580, 1222, 580, 624, 576, 1226, 576, 1226, 576, 1226, 576, 1226, 576, 618, 582, 1220, 582, 622, 579, 1223, 578, 1224, 579, 1223, 578, 616, 585, 619, 581, 1221, 581, 1221, 581, 1221, 580, 624, 576, 618, - 11563, 2422, 582, 622, 579, 1223, 578, 616, 585, 1217, 585, 1217, 584, 1218, 584, 1218, 583, 622, 579, 1223, 579, 625, 575, 1216, 585, 1217, 585, 1217, 585, 619, 581, 623, 577, 1225, 577, 1225, 577, 1225, 576, 618, 583, 621, - 11558, 2427, 577, 617, 584, 1218, 583, 621, 579, 1223, 579, 1223, 578, 1224, 578, 1224, 578, 647, 553, 1249, 553, 651, 549, 1253, 548, 1254, 549, 1253, 549, 645, 555, 649, 551, 1251, 551, 1251, 551, 1251, 550, 654, 546, 648, -1000000, 2456, 548, 646, 554, 650, 551, 653, 547, 1255, 547, 1255, 547, 1255, 547, 1255, 547, 647, 554, 1248, 554, 650, 551, 1251, 551, 1251, 551, 1251, 551, 653, 547, 647, 554, 1248, 554, 1248, 554, 1248, 553, 651, 550, 644, - 12112, 2449, 555, 649, 551, 654, 547, 647, 554, 1248, 554, 1248, 553, 1249, 553, 1249, 553, 651, 549, 1253, 549, 645, 555, 1247, 555, 1247, 555, 1247, 554, 650, 550, 655, 547, 1244, 557, 1224, 578, 1224, 579, 615, 585, 619, - 12139, 2423, 580, 624, 576, 618, 582, 622, 578, 1224, 578, 1224, 578, 1224, 578, 1224, 578, 616, 584, 1218, 584, 620, 580, 1222, 580, 1222, 581, 1221, 580, 624, 577, 617, 584, 1218, 584, 1218, 584, 1218, 584, 620, 581, 623, -1000000, 2422, 582, 1220, 581, 623, 578, 616, 584, 1218, 584, 1218, 584, 1218, 584, 1218, 584, 620, 580, 1222, 580, 624, 576, 1226, 577, 1225, 576, 1226, 576, 618, 583, 622, 579, 1223, 578, 1224, 577, 1225, 577, 617, 585, 619, - 11559, 2426, 577, 1225, 577, 617, 583, 621, 579, 1223, 579, 1223, 578, 1224, 578, 1224, 578, 616, 584, 1218, 584, 620, 580, 1222, 580, 1222, 579, 1223, 579, 625, 575, 650, 550, 1252, 550, 1252, 549, 1253, 549, 645, 556, 648, - 11531, 2453, 549, 1253, 548, 646, 555, 649, 551, 1251, 551, 1251, 550, 1252, 549, 1253, 549, 645, 556, 1246, 555, 649, 552, 1219, 582, 1220, 582, 1220, 582, 622, 578, 616, 585, 1217, 584, 1218, 584, 1218, 584, 620, 581, 623, -1000000, 2428, 576, 618, 582, 1220, 583, 622, 579, 1223, 578, 1224, 578, 1224, 578, 1224, 578, 616, 585, 1217, 585, 619, 582, 1220, 582, 1220, 582, 1220, 582, 622, 578, 616, 585, 1217, 585, 1217, 584, 1218, 584, 620, 581, 623, - 11557, 2427, 577, 617, 584, 1218, 583, 621, 580, 1222, 580, 1222, 580, 1222, 580, 1222, 580, 624, 576, 1246, 555, 649, 552, 1250, 552, 1250, 551, 1251, 551, 653, 548, 646, 554, 1248, 555, 1247, 555, 1247, 555, 649, 551, 653, - 11528, 2447, 556, 648, 552, 1250, 552, 653, 548, 1254, 548, 1254, 547, 1245, 557, 1245, 557, 647, 553, 1249, 552, 652, 549, 1253, 548, 1254, 548, 1254, 548, 646, 555, 649, 551, 1251, 551, 1251, 551, 1251, 551, 643, 557, 647, -1000000, 2418, 610, 594, 606, 598, 603, 1199, 603, 1199, 602, 1200, 602, 1200, 602, 1200, 602, 592, 608, 1194, 608, 596, 604, 1198, 604, 1198, 604, 1198, 603, 591, 610, 594, 606, 1196, 606, 1196, 605, 1197, 605, 599, 601, 593, - 11563, 2422, 606, 598, 602, 592, 608, 1194, 608, 1194, 608, 1194, 607, 1195, 607, 1195, 607, 597, 603, 1199, 603, 591, 609, 1193, 609, 1193, 609, 1193, 608, 596, 605, 599, 601, 1201, 600, 1191, 611, 1191, 611, 593, 606, 598, - 11558, 2427, 601, 593, 607, 597, 603, 1199, 603, 1199, 603, 1199, 602, 1200, 602, 1200, 601, 593, 607, 1195, 607, 597, 603, 1199, 603, 1199, 602, 1200, 602, 592, 608, 596, 604, 1198, 604, 1198, 604, 1198, 603, 591, 609, 595, -1000000, 2424, 605, 1197, 604, 600, 600, 1191, 610, 1192, 610, 1192, 610, 1192, 609, 1193, 609, 595, 605, 1197, 606, 598, 602, 1200, 602, 1200, 601, 1201, 601, 593, 607, 597, 603, 1199, 603, 1199, 603, 1199, 603, 591, 609, 595, - 10937, 2420, 609, 1193, 609, 595, 605, 1197, 605, 1197, 605, 1197, 605, 1197, 605, 1197, 605, 600, 601, 1201, 601, 593, 608, 1194, 608, 1194, 608, 1194, 609, 595, 605, 599, 601, 1201, 601, 1201, 601, 1201, 601, 593, 608, 596, - 10936, 2420, 608, 1194, 608, 596, 604, 1198, 605, 1197, 605, 1197, 605, 1197, 605, 1197, 605, 600, 601, 1201, 601, 593, 607, 1195, 608, 1194, 608, 1194, 608, 596, 604, 600, 600, 1202, 601, 1201, 601, 1201, 601, 593, 607, 597, -1000000, 2420, 609, 1193, 608, 1194, 608, 596, 579, 625, 600, 1202, 600, 1202, 600, 1202, 600, 594, 607, 1195, 607, 597, 603, 1199, 603, 1199, 602, 1200, 602, 592, 609, 595, 605, 1197, 605, 1197, 605, 1197, 604, 600, 600, 594, - 11561, 2423, 605, 1197, 605, 1197, 605, 599, 601, 593, 607, 1195, 607, 1195, 607, 1195, 607, 597, 604, 1198, 603, 591, 610, 1192, 610, 1192, 610, 1192, 610, 594, 607, 597, 603, 1199, 603, 1199, 603, 1199, 603, 591, 610, 594, - 11563, 2421, 608, 1194, 608, 1194, 608, 596, 605, 599, 601, 1201, 602, 1200, 602, 1200, 602, 592, 609, 1193, 609, 595, 605, 1197, 606, 1196, 606, 1196, 606, 598, 602, 592, 609, 1193, 609, 1193, 610, 1192, 610, 594, 607, 597, -1000000, 2428, 576, 1226, 600, 1192, 610, 594, 606, 598, 602, 1200, 602, 592, 609, 595, 605, 600, 601, 593, 607, 597, 603, 591, 609, 1193, - 25955, 2427, 601, 1190, 610, 1192, 610, 594, 606, 598, 602, 1200, 601, 593, 607, 597, 603, 591, 610, 594, 606, 598, 602, 592, 608, 1194, - 25957, 2425, 604, 1198, 603, 1199, 603, 591, 609, 595, 605, 1197, 605, 599, 601, 593, 607, 598, 603, 591, 610, 594, 606, 598, 602, 1200, - 25952, 2420, 608, 1194, 608, 1194, 608, 596, 604, 601, 600, 1191, 610, 594, 606, 598, 603, 591, 609, 595, 605, 599, 601, 593, 608, 1194, -1000000, 2421, 607, 597, 603, 1199, 603, 591, 610, 594, 606, 1196, 605, 600, 576, 618, 583, 621, 604, 601, 575, 619, 606, 598, 603, 1199, - 26576, 2424, 605, 600, 576, 1226, 601, 593, 608, 596, 604, 1198, 604, 600, 600, 594, 607, 597, 603, 591, 609, 595, 606, 598, 602, 1200, - 26579, 2420, 583, 621, 605, 1197, 604, 600, 601, 593, 607, 1195, 607, 597, 604, 590, 610, 594, 607, 597, 603, 591, 610, 594, 606, 1196, - 26584, 2426, 603, 591, 609, 1193, 609, 595, 605, 599, 601, 1201, 601, 593, 607, 597, 603, 591, 610, 594, 606, 598, 603, 591, 609, 1193, -1000000, 2418, 610, 594, 606, 598, 602, 592, 609, 595, 605, 1197, 605, 1197, 605, 600, 602, 592, 608, 1194, 608, 596, 605, 1197, 605, 1197, 604, 1198, 604, 600, 601, 593, 607, 1195, 607, 1195, 607, 1195, 607, 597, 603, 591, - 13368, 2419, 610, 594, 606, 598, 602, 592, 608, 596, 605, 1197, 604, 1198, 604, 600, 601, 593, 607, 1195, 607, 597, 603, 1199, 603, 1199, 603, 1199, 603, 591, 609, 595, 605, 1197, 605, 1197, 605, 1197, 604, 601, 600, 594, - 13362, 2425, 604, 601, 600, 594, 607, 597, 603, 591, 610, 1192, 610, 1192, 610, 594, 606, 598, 603, 1199, 602, 592, 609, 1193, 609, 1193, 608, 1194, 608, 596, 604, 601, 600, 1191, 610, 1192, 610, 1192, 610, 594, 607, 597, -1000000, 2427, 601, 1201, 601, 593, 582, 623, 603, 1199, 578, 1224, 603, 1199, 577, 617, 584, 620, 605, 1197, 605, 600, 601, 1201, 601, 1201, 601, 1201, 601, 593, 582, 622, 603, 1199, 603, 1199, 578, 1224, 603, 591, 610, 594, - 12139, 2423, 605, 1197, 605, 600, 601, 593, 608, 1194, 608, 1194, 607, 1195, 607, 597, 604, 600, 601, 1201, 601, 593, 607, 1195, 608, 1194, 608, 1194, 583, 622, 604, 601, 600, 1202, 575, 1227, 601, 1201, 576, 618, 607, 597, - 12137, 2424, 604, 1198, 604, 590, 610, 594, 607, 1195, 607, 1195, 607, 1195, 607, 597, 604, 601, 600, 1202, 600, 594, 607, 1195, 606, 1196, 581, 1221, 607, 597, 603, 591, 610, 1202, 600, 1202, 576, 1226, 602, 592, 609, 595, -1000000, 2422, 607, 1195, 607, 597, 603, 591, 585, 619, 606, 1196, 606, 1196, 581, 624, 577, 617, 609, 1193, 584, 621, 605, 1197, 604, 1198, 604, 1198, 604, 590, 610, 595, 581, 1221, 605, 1197, 605, 1197, 605, 599, 601, 593, - 12763, 2427, 603, 1199, 603, 591, 609, 595, 605, 599, 577, 1225, 602, 1200, 601, 593, 583, 622, 604, 1198, 604, 590, 610, 1192, 610, 1192, 610, 1192, 610, 594, 606, 598, 603, 1199, 603, 1199, 603, 1199, 603, 591, 610, 594, - 12763, 2427, 602, 1200, 601, 593, 608, 596, 604, 600, 600, 1202, 601, 1201, 601, 593, 607, 597, 604, 1198, 604, 590, 610, 1192, 610, 1192, 611, 1191, 610, 594, 607, 598, 578, 1224, 603, 1199, 603, 1199, 603, 591, 610, 594, -1000000, 2422, 607, 597, 603, 591, 610, 1192, 610, 594, 606, 1196, 580, 1222, 605, 600, 601, 593, 583, 1219, 608, 596, 579, 1223, 604, 1198, 604, 1198, 604, 590, 610, 594, 606, 1196, 606, 1196, 606, 1196, 606, 599, 602, 592, - 12765, 2425, 603, 591, 610, 594, 606, 1196, 606, 598, 602, 1200, 601, 1201, 601, 593, 582, 623, 604, 1198, 604, 590, 610, 1192, 610, 1192, 609, 1193, 609, 596, 605, 599, 601, 1201, 601, 1201, 601, 1201, 600, 594, 607, 597, - 12758, 2421, 607, 597, 603, 591, 609, 1193, 609, 595, 605, 1197, 605, 1197, 605, 599, 601, 593, 607, 1195, 607, 597, 603, 1199, 603, 1199, 603, 1199, 603, 591, 609, 595, 580, 1222, 605, 1197, 605, 1197, 605, 600, 600, 594, -1000000, 2422, 580, 625, 601, 1201, 601, 593, 608, 596, 604, 1198, 604, 1198, 604, 600, 600, 594, 607, 1195, 607, 597, 603, 1199, 603, 1199, 603, 1199, 578, 616, 609, 595, 606, 1196, 606, 1196, 606, 1196, 581, 624, 602, 592, - 12766, 2424, 605, 599, 601, 1201, 601, 593, 608, 596, 604, 1198, 604, 1198, 579, 625, 601, 593, 608, 1194, 608, 596, 604, 1198, 580, 1222, 605, 1197, 605, 599, 602, 592, 608, 1194, 609, 1193, 609, 1193, 609, 596, 605, 599, - 12759, 2420, 608, 597, 604, 1198, 604, 590, 610, 594, 606, 1196, 606, 1196, 606, 598, 602, 592, 608, 1194, 607, 597, 604, 1198, 603, 1199, 603, 1199, 602, 592, 609, 595, 605, 1197, 605, 1197, 605, 1197, 604, 600, 601, 593, -1000000, 2429, 600, 1202, 575, 1227, 599, 595, 606, 598, 602, 1200, 602, 1200, 602, 592, 609, 595, 605, 1197, 605, 599, 601, 1201, 601, 1201, 601, 1201, 601, 593, 607, 597, 603, 1199, 603, 1199, 603, 1199, 603, 591, 609, 595, - 12136, 2425, 603, 1199, 603, 1199, 603, 591, 609, 595, 605, 1197, 605, 1197, 605, 599, 601, 593, 608, 1194, 608, 596, 604, 1198, 604, 1198, 603, 1199, 603, 591, 609, 595, 606, 1196, 606, 1196, 605, 1197, 605, 599, 601, 593, - 12137, 2424, 604, 1198, 603, 1199, 603, 591, 609, 595, 606, 1196, 605, 1197, 605, 599, 601, 593, 607, 1195, 607, 597, 603, 1199, 603, 1199, 603, 1199, 602, 592, 609, 595, 605, 1197, 605, 1197, 604, 1198, 604, 600, 600, 594, -1000000, 2429, 574, 1228, 573, 1229, 573, 1229, 573, 1229, 573, 621, 581, 624, 577, 617, 583, 622, 580, 1222, 579, 625, 576, 1226, 577, 1225, 576, 1226, 577, 617, 584, 620, 581, 1221, 580, 1222, 579, 1223, 579, 625, 577, 617, - 12142, 2419, 584, 1218, 584, 1218, 583, 1219, 583, 1219, 582, 623, 578, 616, 585, 619, 581, 623, 578, 1224, 577, 617, 584, 1218, 584, 1218, 584, 1218, 584, 620, 580, 624, 576, 1226, 575, 1227, 500, 1353, 523, 620, 582, 622, /* failed, noise pollution 500, 1353 timings */ - 12134, 2427, 576, 1226, 576, 1226, 576, 1226, 576, 1226, 576, 618, 583, 622, 579, 625, 576, 618, 583, 1219, 583, 673, 527, 1223, 579, 1223, 579, 1223, 579, 625, 576, 618, 582, 1220, 582, 1220, 582, 1220, 582, 622, 578, 616, - 12140, 2421, 582, 1220, 581, 1221, 581, 1221, 580, 1222, 580, 624, 576, 618, 582, 622, 578, 616, 585, 1217, 584, 620, 581, 1221, 580, 1222, 580, 1222, 580, 624, 576, 618, 582, 1220, 582, 1220, 582, 1220, 582, 623, 578, 616, -1000000, 2419, 584, 672, 528, 625, 577, 617, 583, 1219, 582, 1220, 581, 1221, 582, 622, 578, 616, 585, 1217, 583, 621, 580, 1222, 580, 1222, 580, 1222, 580, 624, 576, 618, 583, 1219, 583, 1219, 582, 1220, 583, 621, 580, 624, - 12732, 2427, 577, 617, 584, 672, 528, 676, 524, 1226, 576, 1226, 576, 1226, 576, 618, 583, 621, 579, 1223, 579, 625, 575, 1227, 575, 1227, 575, 1227, 575, 671, 529, 675, 526, 1224, 578, 1224, 578, 1224, 578, 616, 585, 619, - 12738, 2421, 583, 621, 580, 624, 576, 618, 582, 1220, 582, 1220, 583, 1219, 583, 621, 579, 625, 576, 1226, 576, 670, 530, 1220, 582, 1220, 582, 1220, 581, 624, 577, 617, 584, 1218, 583, 1219, 583, 1219, 583, 622, 580, 624, -1000000, 2430, 599, 1192, 609, 595, 605, 1197, 580, 624, 601, 1201, 601, 593, 607, 597, 603, 591, 610, 594, 606, 598, 602, 592, 608, 1194, - 25958, 2423, 605, 1197, 604, 600, 575, 1227, 600, 594, 606, 1196, 606, 598, 602, 592, 608, 596, 604, 601, 600, 594, 607, 597, 603, 1199, - 25949, 2422, 607, 1195, 606, 598, 603, 1199, 602, 592, 608, 1194, 608, 596, 604, 600, 601, 593, 607, 597, 604, 600, 600, 594, 607, 1195, - 25958, 2423, 606, 1196, 606, 598, 602, 1200, 602, 592, 608, 1194, 608, 596, 605, 600, 601, 593, 607, 597, 603, 591, 610, 594, 606, 1196, - 25957, 2425, 604, 1198, 603, 591, 610, 1192, 610, 594, 606, 1196, 606, 598, 602, 592, 609, 595, 605, 599, 602, 592, 608, 596, 604, 1198, - 25956, 2426, 604, 1198, 603, 591, 610, 1192, 610, 594, 606, 1196, 606, 598, 602, 592, 608, 597, 605, 599, 601, 593, 607, 597, 603, 1199, - 25952, 2420, 609, 1193, 608, 596, 604, 1198, 604, 590, 610, 1192, 610, 594, 606, 598, 602, 592, 608, 596, 605, 599, 601, 593, 607, 1195, -1000000, 2422, 583, 1219, 608, 596, 605, 1197, 580, 624, 601, 1201, 601, 593, 608, 596, 604, 600, 601, 593, 607, 597, 604, 590, 610, 1202, - 25955, 2427, 603, 1199, 603, 591, 609, 1193, 610, 594, 606, 1196, 607, 597, 603, 591, 609, 595, 606, 598, 602, 592, 609, 595, 605, 1197, - 25957, 2425, 604, 1198, 604, 590, 610, 1192, 610, 594, 581, 1221, 606, 598, 602, 592, 608, 596, 605, 599, 601, 593, 607, 597, 604, 1198, - 25954, 2418, 610, 1192, 610, 594, 606, 1196, 605, 599, 601, 1201, 601, 593, 608, 596, 604, 590, 610, 594, 606, 598, 603, 591, 609, 1193, - 25958, 2424, 604, 1198, 604, 590, 610, 1192, 610, 594, 606, 1196, 606, 598, 602, 592, 609, 595, 605, 600, 601, 593, 607, 597, 603, 1199, - 25953, 2419, 610, 1192, 609, 595, 605, 1197, 605, 600, 601, 1201, 600, 594, 607, 597, 603, 591, 609, 595, 605, 599, 601, 593, 608, 1194, - 25954, 2418, 611, 1191, 610, 594, 606, 1196, 606, 598, 602, 1200, 602, 592, 608, 596, 604, 601, 600, 594, 607, 597, 603, 591, 609, 1193, - 25958, 2424, 605, 1197, 605, 599, 601, 1201, 600, 594, 607, 1195, 607, 597, 603, 591, 609, 596, 605, 599, 602, 592, 608, 596, 605, 1197, - 25954, 2428, 601, 1190, 610, 594, 607, 1195, 606, 598, 602, 1200, 602, 592, 608, 596, 604, 590, 610, 594, 606, 598, 603, 591, 609, 1193, - 25960, 2422, 607, 1195, 606, 598, 602, 1200, 602, 592, 609, 1193, 609, 595, 605, 599, 601, 593, 607, 597, 604, 590, 610, 594, 606, 1196, - 25957, 2424, 605, 1197, 604, 600, 600, 1202, 601, 593, 607, 1195, 607, 597, 603, 591, 610, 594, 606, 598, 603, 591, 609, 595, 606, 1196, -1000000, 2421, 608, 1194, 608, 596, 604, 1198, 604, 601, 575, 1227, 601, 593, 607, 598, 604, 600, 600, 594, 607, 598, 604, 601, 600, 1202, - 25953, 2419, 609, 1193, 609, 596, 605, 1197, 605, 600, 601, 1201, 601, 593, 607, 597, 603, 591, 610, 594, 606, 599, 602, 592, 608, 1194, - 25958, 2424, 605, 1197, 605, 600, 601, 1201, 600, 594, 607, 1195, 606, 598, 602, 592, 609, 595, 605, 600, 601, 593, 608, 596, 604, 1198, -1000000, 2423, 606, 1196, 606, 598, 602, 1200, 602, 592, 608, 1194, 608, 597, 604, 590, 610, 594, 607, 597, 603, 591, 610, 594, 606, 1196, - 25958, 2424, 605, 1197, 604, 600, 601, 1201, 601, 593, 607, 1195, 607, 597, 604, 590, 610, 595, 607, 597, 603, 591, 610, 594, 607, 1195, - 25961, 2421, 608, 1194, 608, 596, 605, 1197, 605, 600, 601, 1201, 601, 593, 607, 597, 603, 591, 610, 594, 606, 598, 602, 592, 609, 1193, -1000000, 2429, 601, 1201, 601, 593, 607, 1195, 608, 596, 604, 1198, 604, 600, 601, 593, 607, 597, 604, 590, 611, 593, 607, 597, 604, 1198, - 25959, 2422, 607, 1195, 607, 597, 603, 1199, 603, 591, 609, 1193, 610, 594, 606, 598, 602, 592, 609, 595, 605, 599, 602, 592, 608, 1194, - 25959, 2421, 608, 1194, 607, 597, 603, 1199, 603, 591, 610, 1192, 610, 594, 606, 598, 603, 591, 609, 595, 605, 599, 602, 592, 608, 1194, - 25959, 2422, 608, 1194, 608, 596, 604, 1198, 604, 590, 611, 1201, 601, 593, 607, 597, 604, 590, 610, 594, 607, 597, 603, 591, 609, 1193, - 25962, 2418, 610, 1192, 610, 594, 606, 1196, 607, 597, 603, 1199, 603, 591, 609, 595, 605, 599, 602, 592, 608, 596, 605, 599, 601, 1201, - -1000000, 2357, 610, 1183, 592, 1191, 614, 1179, 595, 1188, 618, 584, 613, 1180, 593, 588, 613, 1190, 612, 590, 605, 587, 613, 589, 605, 587, - 25398, 2355, 623, 1180, 591, 1181, 627, 1186, 589, 1183, 618, 584, 616, 1187, 587, 584, 614, 1189, 615, 587, 605, 587, 615, 587, 609, 593, -1000000, 2383, 609, 1214, 600, 612, 580, 1213, 608, 614, 583, 1210, 605, 607, 586, 616, 611, 1192, 599, 613, 608, 614, 579, 613, 615, 607, - 26670, 2387, 601, 1212, 600, 612, 589, 1214, 603, 609, 586, 1217, 595, 607, 594, 618, 606, 1187, 602, 610, 609, 613, 588, 614, 610, 612, -1000000, 2445, 582, 1221, 603, 548, 602, 1191, 609, 572, 602, 1191, 609, 542, 607, 544, 631, 1172, 603, 568, 606, 545, 605, 566, 608, 543, - 26263, 2414, 611, 1192, 607, 544, 606, 1197, 602, 569, 606, 1197, 602, 539, 611, 540, 635, 1168, 606, 565, 610, 541, 608, 563, 587, 564, -}; - -const InfraredMessage test_decoder_sirc_expected1[] = { - {InfraredProtocolSIRC, 0x10, 0x15, false}, - {InfraredProtocolSIRC, 0x10, 0x15, false}, - {InfraredProtocolSIRC, 0x10, 0x15, false}, - {InfraredProtocolSIRC, 0x10, 0x15, false}, - {InfraredProtocolSIRC, 0x10, 0x15, false}, - {InfraredProtocolSIRC, 0x10, 0x15, false}, - {InfraredProtocolSIRC, 0x10, 0x60, false}, - {InfraredProtocolSIRC, 0x10, 0x60, false}, - {InfraredProtocolSIRC, 0x10, 0x60, false}, - {InfraredProtocolSIRC, 0x10, 0x65, false}, - {InfraredProtocolSIRC, 0x10, 0x65, false}, - {InfraredProtocolSIRC, 0x10, 0x65, false}, - {InfraredProtocolSIRC20, 0x410, 0x17, false}, - {InfraredProtocolSIRC20, 0x410, 0x17, false}, - {InfraredProtocolSIRC20, 0x410, 0x17, false}, - {InfraredProtocolSIRC, 0x10, 0x21, false}, - {InfraredProtocolSIRC, 0x10, 0x21, false}, - {InfraredProtocolSIRC, 0x10, 0x21, false}, - {InfraredProtocolSIRC20, 0x73A, 0x7C, false}, - {InfraredProtocolSIRC20, 0x73A, 0x7C, false}, - {InfraredProtocolSIRC20, 0x73A, 0x7C, false}, - {InfraredProtocolSIRC20, 0x73A, 0x7C, false}, - {InfraredProtocolSIRC20, 0x73A, 0x7C, false}, - {InfraredProtocolSIRC20, 0x73A, 0x7C, false}, - {InfraredProtocolSIRC20, 0x73A, 0x7C, false}, - {InfraredProtocolSIRC20, 0x73A, 0x7C, false}, - {InfraredProtocolSIRC20, 0x73A, 0x7C, false}, - {InfraredProtocolSIRC20, 0x73A, 0x7C, false}, - {InfraredProtocolSIRC20, 0x73A, 0x7C, false}, - {InfraredProtocolSIRC20, 0x73A, 0x7C, false}, - {InfraredProtocolSIRC20, 0x73A, 0x7B, false}, - {InfraredProtocolSIRC20, 0x73A, 0x7B, false}, - {InfraredProtocolSIRC20, 0x73A, 0x7B, false}, - {InfraredProtocolSIRC20, 0x73A, 0x7A, false}, - {InfraredProtocolSIRC20, 0x73A, 0x7A, false}, - {InfraredProtocolSIRC20, 0x73A, 0x7A, false}, - {InfraredProtocolSIRC20, 0x73A, 0x78, false}, - {InfraredProtocolSIRC20, 0x73A, 0x78, false}, - {InfraredProtocolSIRC20, 0x73A, 0x78, false}, - {InfraredProtocolSIRC20, 0x73A, 0x79, false}, - {InfraredProtocolSIRC20, 0x73A, 0x79, false}, - {InfraredProtocolSIRC20, 0x73A, 0x79, false}, - {InfraredProtocolSIRC20, 0x73A, 0x7A, false}, - {InfraredProtocolSIRC20, 0x73A, 0x7A, false}, - {InfraredProtocolSIRC20, 0x73A, 0x7A, false}, - {InfraredProtocolSIRC20, 0x73A, 0x7C, false}, - {InfraredProtocolSIRC20, 0x73A, 0x7C, false}, - {InfraredProtocolSIRC20, 0x73A, 0x7C, false}, - {InfraredProtocolSIRC20, 0x73A, 0x7D, false}, - {InfraredProtocolSIRC20, 0x73A, 0x7D, false}, - {InfraredProtocolSIRC20, 0x73A, 0x7D, false}, - {InfraredProtocolSIRC20, 0x73A, 0x73, false}, - {InfraredProtocolSIRC20, 0x73A, 0x73, false}, - {InfraredProtocolSIRC20, 0x73A, 0x73, false}, - {InfraredProtocolSIRC, 0x10, 0x13, false}, - {InfraredProtocolSIRC, 0x10, 0x13, false}, - {InfraredProtocolSIRC, 0x10, 0x13, false}, - {InfraredProtocolSIRC, 0x10, 0x13, false}, - {InfraredProtocolSIRC, 0x10, 0x12, false}, - {InfraredProtocolSIRC, 0x10, 0x12, false}, - {InfraredProtocolSIRC, 0x10, 0x12, false}, - {InfraredProtocolSIRC, 0x10, 0x12, false}, - {InfraredProtocolSIRC20, 0x73A, 0x30, false}, - {InfraredProtocolSIRC20, 0x73A, 0x30, false}, - {InfraredProtocolSIRC20, 0x73A, 0x30, false}, - {InfraredProtocolSIRC20, 0x73A, 0x39, false}, - {InfraredProtocolSIRC20, 0x73A, 0x39, false}, - {InfraredProtocolSIRC20, 0x73A, 0x39, false}, - {InfraredProtocolSIRC20, 0x73A, 0x31, false}, - {InfraredProtocolSIRC20, 0x73A, 0x31, false}, - {InfraredProtocolSIRC20, 0x73A, 0x31, false}, - {InfraredProtocolSIRC20, 0x73A, 0x34, false}, - {InfraredProtocolSIRC20, 0x73A, 0x34, false}, - {InfraredProtocolSIRC20, 0x73A, 0x34, false}, - {InfraredProtocolSIRC20, 0x73A, 0x32, false}, - {InfraredProtocolSIRC20, 0x73A, 0x32, false}, - {InfraredProtocolSIRC20, 0x73A, 0x32, false}, - {InfraredProtocolSIRC20, 0x73A, 0x33, false}, - {InfraredProtocolSIRC20, 0x73A, 0x33, false}, - {InfraredProtocolSIRC20, 0x73A, 0x33, false}, - {InfraredProtocolSIRC20, 0x73A, 0x0F, false}, - {InfraredProtocolSIRC20, 0x73A, 0x0F, false}, - {InfraredProtocolSIRC20, 0x73A, 0x0F, false}, - {InfraredProtocolSIRC20, 0x73A, 0x38, false}, - {InfraredProtocolSIRC20, 0x73A, 0x38, false}, - {InfraredProtocolSIRC20, 0x73A, 0x38, false}, - {InfraredProtocolSIRC, 0x10, 0x15, false}, - {InfraredProtocolSIRC, 0x10, 0x15, false}, - {InfraredProtocolSIRC, 0x10, 0x15, false}, - {InfraredProtocolSIRC, 0x10, 0x15, false}, - {InfraredProtocolSIRC, 0x10, 0x15, false}, - {InfraredProtocolSIRC, 0x10, 0x15, false}, - {InfraredProtocolSIRC, 0x10, 0x15, false}, - {InfraredProtocolSIRC, 0x10, 0x15, false}, - {InfraredProtocolSIRC, 0x10, 0x15, false}, - {InfraredProtocolSIRC, 0x10, 0x15, false}, - {InfraredProtocolSIRC, 0x10, 0x15, false}, - {InfraredProtocolSIRC, 0x10, 0x15, false}, - {InfraredProtocolSIRC, 0x10, 0x15, false}, - {InfraredProtocolSIRC, 0x10, 0x15, false}, - {InfraredProtocolSIRC, 0x10, 0x15, false}, - {InfraredProtocolSIRC, 0x10, 0x15, false}, - {InfraredProtocolSIRC, 0x10, 0x15, false}, - {InfraredProtocolSIRC, 0x10, 0x15, false}, - {InfraredProtocolSIRC, 0x10, 0x15, false}, - {InfraredProtocolSIRC, 0x10, 0x15, false}, - {InfraredProtocolSIRC, 0x10, 0x15, false}, - {InfraredProtocolSIRC, 0x10, 0x15, false}, - {InfraredProtocolSIRC, 0x10, 0x15, false}, - {InfraredProtocolSIRC, 0x10, 0x15, false}, - {InfraredProtocolSIRC, 0x10, 0x15, false}, - {InfraredProtocolSIRC, 0x10, 0x15, false}, - {InfraredProtocolSIRC, 0x10, 0x15, false}, - {InfraredProtocolSIRC, 0x10, 0x15, false}, - {InfraredProtocolSIRC, 0x10, 0x15, false}, - {InfraredProtocolSIRC, 0x01, 0x2F, false}, - {InfraredProtocolSIRC, 0x01, 0x2F, false}, - {InfraredProtocolSIRC, 0x01, 0x15, false}, - {InfraredProtocolSIRC, 0x01, 0x15, false}, - {InfraredProtocolSIRC, 0x01, 0x15, false}, - {InfraredProtocolSIRC, 0x01, 0x15, false}, -}; - - -// command (0x55) address (0x0A) SIRC -// 1 0 1 0 1 0 1 0 1 0 1 0 -// 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, -// -// command (0x7F) address (0x1F) SIRC -// 1 1 1 1 1 1 1 1 1 1 1 1 -// 2400, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, -// -// command (0x00) address (0x00) SIRC -// 0 0 0 0 0 0 0 0 0 0 0 0 -// 2400, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, -// -// command (0x53) address (0x0D) SIRC -// 1 1 0 0 1 0 1 1 0 1 1 0 -// 2400, 600, 1200, 600, 1200, 600, 600, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 600, 600, - -const uint32_t test_decoder_sirc_input2[] = { -1000000, 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, -1000000, 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, -1000000, 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, -1000000, 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, 600, /* failed - should be skipped */ - -1000000, 2400, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, -1000000, 2400, 600, 1200, 600, 600, /* failed - should be skipped */ -1000000, 2400, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, -1000000, 2400, 600, 1200, 600, /* failed - should be skipped */ - 2400, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, -1000000, 2400, 600, 1200, 600, 600, /* failed - should be skipped */ -1000000, 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, - -1000000, 2400, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, - -1000000, 2400, 600, 1200, 600, 1200, 600, 600, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 600, 600, -}; - -const InfraredMessage test_decoder_sirc_expected2[] = { - {InfraredProtocolSIRC, 0xA, 0x55, false}, - {InfraredProtocolSIRC, 0xA, 0x55, false}, - {InfraredProtocolSIRC, 0xA, 0x55, false}, - /* failed - 13 data bits */ - - {InfraredProtocolSIRC, 0x1F, 0x7F, false}, - /* failed - 2 data bits */ - {InfraredProtocolSIRC, 0x1F, 0x7F, false}, - /* failed - sudden end */ - {InfraredProtocolSIRC, 0x1F, 0x7F, false}, - /* failed */ - {InfraredProtocolSIRC, 0x0A, 0x55, false}, - - {InfraredProtocolSIRC, 0x00, 0x00, false}, - - {InfraredProtocolSIRC, 0x0D, 0x53, false}, -}; - - -// command (0x13) address (0xFD) SIRC15 -// 1 1 0 0 1 0 0 1 0 1 1 1 1 1 1 -// 2400, 600, 1200, 600, 1200, 600, 600, 600, 600, 600, 1200, 600, 600, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, -// -// command (0x53) address (0x7D) SIRC15 -// 1 1 0 0 1 0 1 1 0 1 1 1 1 1 0 -// 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, -// -// command (0x53) address (0x0D) SIRC15 -// 1 1 0 0 1 0 1 1 0 1 1 0 0 0 0 -// 2400, 600, 1200, 600, 1200, 600, 600, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 600, 600, 600, 600, 600, 600, 600, - -const uint32_t test_decoder_sirc_input3[] = { -1000000, 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, - 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, - 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, - -1000000, 2400, 600, 1200, 600, 1200, 600, 600, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 600, 600, 600, 600, 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, 600, 600, 600, 600, 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, 600, 600, 600, 600, 600, 600, 600, - -1000000, 2400, 600, 1200, 600, 1200, 600, 600, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 600, 600, 600, 600, 600, 600, 600, -1000000, 2400, 600, 1200, 600, 1200, 600, 600, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 600, 600, 600, 600, 600, 600, 600, - -1000000, 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, -1000000, 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, - - 10000, 2400, 600, 1200, 600, 1200, 600, 600, 600, 600, 600, 1200, 600, 600, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, -}; - -const InfraredMessage test_decoder_sirc_expected3[] = { - {InfraredProtocolSIRC15, 0x7D, 0x53, false}, - {InfraredProtocolSIRC15, 0x7D, 0x53, false}, - {InfraredProtocolSIRC15, 0x7D, 0x53, false}, - {InfraredProtocolSIRC15, 0x0D, 0x53, false}, - {InfraredProtocolSIRC15, 0x0D, 0x53, false}, - {InfraredProtocolSIRC15, 0x0D, 0x53, false}, - {InfraredProtocolSIRC15, 0x0D, 0x53, false}, - {InfraredProtocolSIRC15, 0x0D, 0x53, false}, - {InfraredProtocolSIRC15, 0x7D, 0x53, false}, - {InfraredProtocolSIRC15, 0x7D, 0x53, false}, - {InfraredProtocolSIRC15, 0xFD, 0x13, false}, -}; - -const uint32_t test_decoder_sirc_input4[] = { -1000000, 2400, 600, 1200, 600, 1200, 600, 600, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 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, 600, 600, 1200, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 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, 600, 600, 1200, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 600, -1000000, 2400, 600, 1200, 600, 1200, 600, 600, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 600, -1000000, 2400, 600, 1200, 600, 1200, 600, 600, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 600, -1000000, 2400, 600, 1200, 600, 1200, 600, 600, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 1200, 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 InfraredMessage test_decoder_sirc_expected4[] = { - {InfraredProtocolSIRC20, 0xFB5, 0x53, false}, // {InfraredProtocolSIRC20, 0x15, 0x3ED3, false}, - {InfraredProtocolSIRC20, 0xFB5, 0x53, false}, - {InfraredProtocolSIRC20, 0xFB5, 0x53, false}, - {InfraredProtocolSIRC20, 0xFB5, 0x53, false}, - {InfraredProtocolSIRC20, 0xFB5, 0x53, false}, - {InfraredProtocolSIRC20, 0xFB5, 0x53, false}, -}; - -const uint32_t test_decoder_sirc_input5[] = { -1000000, 2400, 600, 1200, 600, 1200, 600, 600, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 600, -1000000, 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, -1000000, 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, -1000000, 2400, 600, 1200, 600, 1200, 600, 600, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 600, -1000000, 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, -1000000, 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, - -10000, 2400, 600, 1200, 600, 1200, 600, 600, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 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, -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, -10000, 2400, 600, 1200, 600, 1200, 600, 600, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 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, -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, - -10000, 2400, 600, 1200, 600, 1200, 600, 600, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 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, 600, 600, 1200, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 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, -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, -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, -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, - -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, -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, -10000, 2400, 600, 1200, 600, 1200, 600, 600, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 600, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 600, 1200, 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, -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, -10000, 2400, 600, 1200, 600, 1200, 600, 600, 600, 600, 600, 1200, 600, 600, 600, 1200, 600, 1200, 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 InfraredMessage test_decoder_sirc_expected5[] = { - {InfraredProtocolSIRC20, 0xFB5, 0x53, false}, - {InfraredProtocolSIRC15, 0x7D, 0x53, false}, - {InfraredProtocolSIRC, 0xA, 0x55, false}, - {InfraredProtocolSIRC20, 0xFB5, 0x53, false}, - {InfraredProtocolSIRC15, 0x7D, 0x53, false}, - {InfraredProtocolSIRC, 0xA, 0x55, false}, - - {InfraredProtocolSIRC20, 0xFB5, 0x53, false}, - {InfraredProtocolSIRC15, 0x7D, 0x53, false}, - {InfraredProtocolSIRC, 0xA, 0x55, false}, - {InfraredProtocolSIRC20, 0xFB5, 0x53, false}, - {InfraredProtocolSIRC15, 0x7D, 0x53, false}, - {InfraredProtocolSIRC, 0xA, 0x55, false}, - - {InfraredProtocolSIRC20, 0xFB5, 0x53, false}, - {InfraredProtocolSIRC20, 0xFB5, 0x53, false}, - {InfraredProtocolSIRC15, 0x7D, 0x53, false}, - {InfraredProtocolSIRC15, 0x7D, 0x53, false}, - {InfraredProtocolSIRC, 0xA, 0x55, false}, - {InfraredProtocolSIRC, 0xA, 0x55, false}, - - {InfraredProtocolSIRC, 0xA, 0x55, false}, - {InfraredProtocolSIRC15, 0x7D, 0x53, false}, - {InfraredProtocolSIRC20, 0xFB5, 0x53, false}, - {InfraredProtocolSIRC, 0xA, 0x55, false}, - {InfraredProtocolSIRC15, 0x7D, 0x53, false}, - {InfraredProtocolSIRC20, 0xFB5, 0x53, false}, -}; - -const InfraredMessage test_encoder_sirc_input1[] = { - {InfraredProtocolSIRC, 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, -}; - -const InfraredMessage test_encoder_sirc_input2[] = { - {InfraredProtocolSIRC15, 0x7D, 0x53, false}, - {InfraredProtocolSIRC15, 0x7D, 0x53, true}, - {InfraredProtocolSIRC15, 0x7D, 0x53, true}, -}; - -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, - 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 InfraredMessage test_sirc[] = { - {InfraredProtocolSIRC20, 0x1FFF, 0x7F, false}, - {InfraredProtocolSIRC20, 0x1FFF, 0x7F, true}, - {InfraredProtocolSIRC20, 0x1FFF, 0x7F, true}, - {InfraredProtocolSIRC, 0x00, 0x00, false}, - {InfraredProtocolSIRC, 0x00, 0x00, true}, - {InfraredProtocolSIRC, 0x00, 0x00, true}, - - {InfraredProtocolSIRC, 0x1A, 0x22, false}, - {InfraredProtocolSIRC, 0x1A, 0x22, true}, - {InfraredProtocolSIRC, 0x1A, 0x22, true}, - {InfraredProtocolSIRC, 0x17, 0x0A, false}, - - {InfraredProtocolSIRC15, 0x7D, 0x53, false}, - {InfraredProtocolSIRC15, 0x7D, 0x53, true}, - {InfraredProtocolSIRC15, 0x7D, 0x53, true}, - {InfraredProtocolSIRC15, 0x71, 0x0, false}, - {InfraredProtocolSIRC15, 0x15, 0x01, false}, - {InfraredProtocolSIRC15, 0x01, 0x15, false}, - - {InfraredProtocolSIRC20, 0xAA, 0x55, false}, - {InfraredProtocolSIRC20, 0x331, 0x71, false}, - - {InfraredProtocolSIRC, 0x00, 0x00, false}, - {InfraredProtocolSIRC, 0x1F, 0x7F, false}, - {InfraredProtocolSIRC15, 0x00, 0x00, false}, - {InfraredProtocolSIRC15, 0xFF, 0x7F, false}, - {InfraredProtocolSIRC20, 0x00, 0x00, false}, - {InfraredProtocolSIRC20, 0x1FFF, 0x7F, false}, -}; - diff --git a/applications/unit_tests/test_index.c b/applications/unit_tests/test_index.c index 8ff27b4d..9f12adae 100644 --- a/applications/unit_tests/test_index.c +++ b/applications/unit_tests/test_index.c @@ -10,8 +10,8 @@ #define TAG "UnitTests" -int run_minunit(); -int run_minunit_test_infrared_decoder_encoder(); +int run_minunit_test_furi(); +int run_minunit_test_infrared(); int run_minunit_test_rpc(); int run_minunit_test_flipper_format(); int run_minunit_test_flipper_format_string(); @@ -21,14 +21,35 @@ int run_minunit_test_subghz(); int run_minunit_test_dirwalk(); int run_minunit_test_nfc(); -void minunit_print_progress(void) { - static char progress[] = {'\\', '|', '/', '-'}; +typedef int (*UnitTestEntry)(); + +typedef struct { + const char* name; + const UnitTestEntry entry; +} UnitTest; + +const UnitTest unit_tests[] = { + {.name = "furi", .entry = run_minunit_test_furi}, + {.name = "storage", .entry = run_minunit_test_storage}, + {.name = "stream", .entry = run_minunit_test_stream}, + {.name = "dirwalk", .entry = run_minunit_test_dirwalk}, + {.name = "flipper_format", .entry = run_minunit_test_flipper_format}, + {.name = "flipper_format_string", .entry = run_minunit_test_flipper_format_string}, + {.name = "rpc", .entry = run_minunit_test_rpc}, + {.name = "subghz", .entry = run_minunit_test_subghz}, + {.name = "infrared", .entry = run_minunit_test_infrared}, + {.name = "nfc", .entry = run_minunit_test_nfc}, +}; + +void minunit_print_progress() { + static const char progress[] = {'\\', '|', '/', '-'}; static uint8_t progress_counter = 0; static TickType_t last_tick = 0; TickType_t current_tick = xTaskGetTickCount(); if(current_tick - last_tick > 20) { last_tick = current_tick; printf("[%c]\033[3D", progress[++progress_counter % COUNT_OF(progress)]); + fflush(stdout); } } @@ -40,7 +61,7 @@ void unit_tests_cli(Cli* cli, string_t args, void* context) { UNUSED(cli); UNUSED(args); UNUSED(context); - uint32_t test_result = 0; + uint32_t failed_tests = 0; minunit_run = 0; minunit_assert = 0; minunit_fail = 0; @@ -51,7 +72,7 @@ void unit_tests_cli(Cli* cli, string_t args, void* context) { // TODO: lock device while test running if(loader_is_locked(loader)) { - FURI_LOG_E(TAG, "RPC: stop all applications to run tests"); + printf("RPC: stop all applications to run tests\r\n"); notification_message(notification, &sequence_blink_magenta_100); } else { notification_message_block(notification, &sequence_set_only_blue_255); @@ -59,34 +80,39 @@ void unit_tests_cli(Cli* cli, string_t args, void* context) { uint32_t heap_before = memmgr_get_free_heap(); uint32_t cycle_counter = furi_hal_get_tick(); - test_result |= run_minunit(); - test_result |= run_minunit_test_storage(); - test_result |= run_minunit_test_stream(); - test_result |= run_minunit_test_dirwalk(); - test_result |= run_minunit_test_flipper_format(); - test_result |= run_minunit_test_flipper_format_string(); - test_result |= run_minunit_test_infrared_decoder_encoder(); - test_result |= run_minunit_test_rpc(); - test_result |= run_minunit_test_subghz(); - test_result |= run_minunit_test_nfc(); - - cycle_counter = (furi_hal_get_tick() - cycle_counter); - - FURI_LOG_I(TAG, "Consumed: %u us", cycle_counter); - - if(test_result == 0) { - furi_hal_delay_ms(200); /* wait for tested services and apps to deallocate */ - uint32_t heap_after = memmgr_get_free_heap(); - notification_message(notification, &sequence_success); - if(heap_after != heap_before) { - FURI_LOG_E(TAG, "Leaked: %d", heap_before - heap_after); - } else { - FURI_LOG_I(TAG, "No leaks"); + for(size_t i = 0; i < COUNT_OF(unit_tests); i++) { + if(cli_cmd_interrupt_received(cli)) { + break; } - FURI_LOG_I(TAG, "PASSED"); + + if(string_size(args)) { + if(string_cmp_str(args, unit_tests[i].name) == 0) { + failed_tests += unit_tests[i].entry(); + } else { + printf("Skipping %s\r\n", unit_tests[i].name); + } + } else { + failed_tests += unit_tests[i].entry(); + } + } + printf("\r\nFailed tests: %lu\r\n", failed_tests); + + // Time report + cycle_counter = (furi_hal_get_tick() - cycle_counter); + printf("Consumed: %lu ms\r\n", cycle_counter); + + // Wait for tested services and apps to deallocate memory + furi_hal_delay_ms(200); + uint32_t heap_after = memmgr_get_free_heap(); + printf("Leaked: %ld\r\n", heap_before - heap_after); + + // Final Report + if(failed_tests == 0) { + notification_message(notification, &sequence_success); + printf("Status: PASSED\r\n"); } else { notification_message(notification, &sequence_error); - FURI_LOG_E(TAG, "FAILED"); + printf("Status: FAILED\r\n"); } } diff --git a/assets/unit_tests/infrared/test_nec.irtest b/assets/unit_tests/infrared/test_nec.irtest new file mode 100644 index 00000000..8b1d59e7 --- /dev/null +++ b/assets/unit_tests/infrared/test_nec.irtest @@ -0,0 +1,511 @@ +Filetype: IR tests file +Version: 1 +# +name: decoder_input1 +type: raw +data: 2640671 9071 4445 601 497 578 500 604 501 603 502 581 496 615 498 606 499 584 493 610 1630 576 1640 601 1615 605 1638 581 1634 606 1610 610 1633 577 1639 601 504 580 498 604 501 603 500 582 496 607 498 606 499 585 485 610 1633 576 1640 596 1615 605 1638 582 1634 605 1610 609 1634 586 1630 600 40015 9077 2208 593 1457713 9076 4440 607 508 585 493 610 494 598 506 577 501 603 502 601 504 580 498 605 1638 582 1634 606 1610 610 1633 577 1639 600 1616 605 1638 582 1634 606 499 585 493 609 495 608 496 586 502 612 493 601 504 579 498 605 1638 582 1633 606 1610 610 1633 577 1639 602 1614 574 1668 582 1634 606 1415838 9080 4436 611 494 600 505 578 500 608 501 602 502 580 498 606 508 605 500 583 1633 608 1608 611 1631 578 1638 602 1614 606 1637 583 1633 607 1609 611 494 600 505 570 500 604 501 602 502 581 497 606 499 605 499 583 1633 617 1608 611 1631 579 1638 602 +# +name: decoder_expected1 +type: parsed_array +count: 3 +# +protocol: NEC +address: 00 00 00 00 +command: 00 00 00 00 +repeat: false +# +protocol: NEC +address: 00 00 00 00 +command: 00 00 00 00 +repeat: true +# +protocol: NEC +address: 00 00 00 00 +command: 00 00 00 00 +repeat: false +# +name: decoder_input2 +type: raw +data: 18372093 9030 4495 559 524 585 526 613 496 560 522 595 524 605 504 553 530 578 524 608 1614 581 1668 557 1665 581 1641 585 1664 551 1671 605 1616 578 1670 555 528 581 1668 553 526 582 528 612 498 559 524 585 526 604 507 552 1670 597 504 553 1667 608 1613 582 1667 559 1663 613 1608 586 1662 552 40067 9026 2219 579 3060767 9079 4445 606 505 554 530 578 532 608 502 555 528 581 530 610 500 588 495 614 1635 580 1641 604 1617 618 1621 584 1637 608 1612 612 1636 589 1637 602 507 581 1641 605 505 582 501 609 502 607 503 585 498 611 499 609 1612 613 498 612 1610 615 1633 561 1661 606 1615 609 1639 585 1636 610 40011 9072 2200 588 96480 9075 2198 560 96509 9047 2226 552 96517 9049 2224 555 96514 9042 2222 556 96512 9053 2220 558 96511 9045 2227 561 96507 9048 2225 554 96515 9061 2231 565 96522 9053 2219 559 96510 9044 2229 560 96508 9046 2226 562 96506 9027 2245 553 96511 9030 2243 555 96513 9031 2237 557 96512 9054 2219 559 570349 9027 4495 608 476 583 529 580 529 558 525 584 527 582 528 560 523 596 524 584 1636 578 1669 555 1667 578 1643 581 1666 558 1663 582 1639 586 1662 552 531 577 1670 554 1667 578 532 563 527 582 528 580 529 558 525 584 1665 561 523 586 525 584 1637 577 1670 554 1668 578 1642 582 1667 558 40062 9021 2233 585 172411 9020 4502 559 524 585 526 583 527 551 532 586 523 575 535 553 530 579 532 577 1643 581 1668 557 1664 581 1639 585 1664 552 1670 575 1637 579 1669 556 527 581 529 580 1642 584 536 581 528 560 523 585 524 584 526 552 1670 576 1645 579 530 578 1643 582 1667 558 1663 582 1639 586 1662 545 40068 9026 2220 578 226896 9054 4468 578 500 608 502 607 503 585 498 611 500 610 501 588 496 612 497 602 1610 615 1633 581 1640 606 1616 609 1639 585 1635 610 1612 614 1635 580 504 615 495 604 506 582 1639 606 503 585 499 610 501 609 502 587 1635 610 1610 614 1634 581 502 616 1632 582 1648 606 1615 610 1638 587 40033 9050 2195 614 249594 9020 4502 560 524 594 525 603 506 552 532 587 521 606 504 554 529 579 532 609 1612 582 1667 557 1654 612 1608 585 1663 552 1670 606 1615 579 1669 554 527 582 529 611 500 558 1663 612 497 560 523 585 524 598 505 552 1670 606 1614 580 1668 557 526 582 1665 558 1662 603 1618 587 1661 553 40067 9058 2187 621 97567 9054 4467 584 500 609 501 601 502 586 497 611 499 610 501 588 496 614 497 612 1609 615 1632 582 1640 606 1615 609 1639 586 1636 611 1611 614 1634 581 503 608 493 605 505 583 1639 607 503 586 498 611 500 609 501 588 1634 611 1609 615 1634 582 502 608 1641 553 1668 608 1613 581 1668 558 112307 9078 4443 608 502 606 504 584 498 610 501 608 502 587 497 612 498 610 499 589 1633 603 1619 607 1642 583 1638 607 1614 611 1638 597 1634 611 1610 615 495 603 506 581 502 607 1642 584 500 609 501 607 503 585 498 611 1637 588 1634 611 1610 615 495 603 1618 607 1641 584 1638 607 1605 611 112281 9076 4445 606 505 584 499 610 501 608 502 586 497 612 498 610 500 581 494 614 1635 581 1641 604 1617 608 1640 585 1637 609 1610 613 1636 589 1632 603 507 581 503 607 504 604 1617 608 502 607 503 585 498 611 500 609 1613 613 1636 590 1632 603 507 581 1641 605 1616 609 1640 585 1636 609 94207 9075 4446 605 506 582 501 607 502 606 504 584 500 610 501 608 502 587 497 611 1636 588 1633 612 1610 616 1633 583 1639 604 1615 610 1638 587 1635 610 500 588 495 606 496 602 1619 616 495 605 506 583 501 609 502 606 1614 610 1638 587 1635 611 499 590 1632 603 1618 607 1641 583 1638 608 103762 9076 4446 605 505 553 531 579 532 607 503 555 528 580 530 609 500 557 527 583 1666 559 1662 603 1609 587 1661 553 1669 608 1614 580 1659 557 1665 612 498 580 504 585 526 604 1617 607 503 606 504 584 499 610 500 609 1613 612 1636 588 1633 602 507 573 1641 605 1617 608 1640 585 1636 619 76134 9056 4466 585 525 604 506 552 532 577 533 606 504 553 529 579 531 608 501 556 1665 611 1611 584 1665 561 1661 605 1616 578 1671 555 1667 609 1612 582 528 611 499 559 525 584 1664 551 533 586 524 605 505 553 530 578 1670 555 1667 610 1612 582 528 611 1610 584 1664 551 1671 606 1616 578 112997 9073 4447 603 507 560 523 586 524 605 505 552 531 578 533 607 503 555 529 580 1668 548 1665 611 1611 584 1665 551 1671 615 1616 578 1670 555 1667 610 501 556 527 582 528 611 1609 584 518 604 506 551 533 586 524 606 1615 579 1669 555 1666 610 500 558 1664 612 1609 585 1663 551 1670 606 84870 9053 4470 582 529 611 500 559 525 583 526 602 507 560 523 586 525 574 536 543 1669 608 1614 580 1668 556 1665 620 1610 585 1664 550 1671 605 1616 578 533 608 503 555 529 580 1677 557 526 582 528 612 498 559 525 585 1664 551 1671 605 1615 578 531 608 1614 581 1668 558 1664 611 1609 585 76184 9025 4496 555 529 579 531 609 502 556 528 582 529 610 500 559 525 583 526 603 1619 586 1663 552 1669 606 1614 580 1668 556 1665 611 1610 584 1664 550 533 586 524 605 504 553 1669 608 503 555 529 580 530 609 501 557 1664 605 1609 585 1664 551 532 586 1661 553 1668 608 1614 581 1666 558 96145 9073 4449 612 499 559 524 584 526 603 506 552 532 587 523 606 504 584 499 570 1669 556 1666 610 1611 614 1634 580 1641 605 1617 608 1640 584 1636 609 501 587 497 612 498 611 1611 615 496 602 508 580 503 595 535 614 1627 617 1650 594 1646 604 502 586 1635 611 1618 614 1634 581 1641 604 86183 9080 4442 610 501 607 502 586 498 611 499 610 501 588 496 613 497 611 498 579 1642 604 1617 608 1641 583 1637 608 1613 611 1637 588 1634 611 1608 615 494 604 506 582 501 617 1641 584 499 610 493 608 502 586 497 612 1636 588 1633 602 1619 615 494 604 1617 608 1640 585 1637 608 1613 613 234570 9078 4437 607 503 606 505 584 500 608 501 614 502 585 497 611 499 610 509 588 1634 612 1609 616 1633 582 1639 606 1616 610 1639 587 1635 610 1611 614 1634 581 503 606 504 604 1617 608 502 607 503 585 498 611 500 609 501 597 1634 611 1610 615 495 603 1618 607 1642 584 1638 607 1614 611 112281 9076 4446 605 505 583 501 609 493 606 503 585 498 610 500 609 501 587 497 613 1636 579 1643 602 1618 606 1641 583 1639 607 1614 610 1638 554 1665 611 1611 584 526 603 507 551 1671 597 504 583 500 578 532 607 502 555 528 581 1668 556 1664 611 498 559 1663 604 1618 587 1662 553 1668 608 130332 9076 4446 615 496 605 507 582 502 608 503 605 512 584 499 609 501 608 502 586 1636 610 1611 613 1635 579 1641 604 1617 608 1641 584 1637 608 1613 611 1636 588 495 614 497 613 1609 616 494 604 506 590 500 608 502 607 503 585 1635 609 1613 612 498 610 1610 614 1634 581 1641 604 1617 608 886079 9020 4501 560 523 585 525 583 527 552 532 587 523 576 534 554 529 580 531 577 1644 582 1667 559 1663 582 1639 586 1663 553 1669 576 1645 581 1668 557 521 582 529 581 530 559 1663 582 527 551 532 587 523 575 535 553 1669 577 1644 581 1667 557 526 584 1665 560 1662 582 1637 588 1661 554 76188 9053 4469 583 528 560 523 586 524 585 525 552 531 578 533 576 534 554 528 581 1668 557 1665 581 1631 585 1664 551 1670 575 1646 579 1678 555 1666 579 531 558 1664 581 528 559 1662 584 527 552 532 588 523 575 535 553 1668 578 532 556 1666 580 531 567 1663 582 1639 585 1662 552 1670 575 76165 9054 4468 583 527 581 529 559 524 585 525 583 526 547 531 587 524 576 535 554 1668 577 1644 581 1667 558 1664 582 1640 586 1663 551 1670 576 1645 579 531 578 533 556 527 582 1666 559 525 583 526 582 528 560 523 586 1663 553 1669 576 1645 580 522 578 1642 582 1666 559 1663 582 1639 586 40034 9049 2224 585 114557 9051 4471 581 529 558 525 584 527 582 528 561 522 586 524 585 525 552 531 578 1670 555 1667 579 1643 577 1666 559 1662 583 1638 587 1662 563 1678 587 543 565 537 591 539 589 1651 592 537 591 539 569 533 595 535 593 1647 597 1670 563 1678 587 542 565 1675 589 1651 593 1675 569 1671 593 40045 9047 2225 553 114589 9029 4492 559 525 585 526 582 528 550 533 586 524 575 535 553 530 578 532 577 1645 581 1668 557 1664 581 1640 585 1664 552 1670 575 1646 579 1669 556 527 582 529 580 531 557 1663 582 528 560 523 586 524 585 525 552 1669 576 1645 580 1668 556 526 582 1667 559 1663 582 1639 593 1662 553 40067 9026 4495 556 528 581 529 579 531 557 526 575 527 581 528 561 523 585 525 584 1638 588 1661 554 1667 578 1644 582 1667 559 1663 582 1639 586 1663 552 530 578 1671 555 529 581 1668 556 526 582 529 581 529 559 524 584 1664 550 533 587 1662 553 530 578 1669 555 1667 578 1642 582 1668 559 58109 9049 4473 578 533 576 534 555 529 580 531 578 532 556 527 582 528 580 529 559 1663 583 1639 586 1662 553 1669 580 1644 581 1668 558 1664 581 1640 582 525 584 527 552 531 588 1670 554 529 579 531 578 532 556 527 582 1666 558 1663 582 1639 587 524 584 1636 578 1671 564 1676 588 1652 592 263241 9028 4503 557 526 582 528 581 529 559 523 594 526 584 527 552 532 588 527 575 1646 579 1670 556 1666 579 1642 583 1665 560 1662 584 1638 578 1671 554 529 580 1669 559 527 582 1667 559 525 584 526 582 528 560 523 586 1662 552 530 578 1671 555 529 580 1668 556 1665 581 1640 584 1664 551 40069 9025 2221 588 +# +name: decoder_expected2 +type: parsed_array +count: 52 +# +protocol: NEC +address: 00 00 00 00 +command: 02 00 00 00 +repeat: false +# +protocol: NEC +address: 00 00 00 00 +command: 02 00 00 00 +repeat: true +# +protocol: NEC +address: 00 00 00 00 +command: 02 00 00 00 +repeat: false +# +protocol: NEC +address: 00 00 00 00 +command: 02 00 00 00 +repeat: true +# +protocol: NEC +address: 00 00 00 00 +command: 02 00 00 00 +repeat: true +# +protocol: NEC +address: 00 00 00 00 +command: 02 00 00 00 +repeat: true +# +protocol: NEC +address: 00 00 00 00 +command: 02 00 00 00 +repeat: true +# +protocol: NEC +address: 00 00 00 00 +command: 02 00 00 00 +repeat: true +# +protocol: NEC +address: 00 00 00 00 +command: 02 00 00 00 +repeat: true +# +protocol: NEC +address: 00 00 00 00 +command: 02 00 00 00 +repeat: true +# +protocol: NEC +address: 00 00 00 00 +command: 02 00 00 00 +repeat: true +# +protocol: NEC +address: 00 00 00 00 +command: 02 00 00 00 +repeat: true +# +protocol: NEC +address: 00 00 00 00 +command: 02 00 00 00 +repeat: true +# +protocol: NEC +address: 00 00 00 00 +command: 02 00 00 00 +repeat: true +# +protocol: NEC +address: 00 00 00 00 +command: 02 00 00 00 +repeat: true +# +protocol: NEC +address: 00 00 00 00 +command: 02 00 00 00 +repeat: true +# +protocol: NEC +address: 00 00 00 00 +command: 02 00 00 00 +repeat: true +# +protocol: NEC +address: 00 00 00 00 +command: 02 00 00 00 +repeat: true +# +protocol: NEC +address: 00 00 00 00 +command: 02 00 00 00 +repeat: true +# +protocol: NEC +address: 00 00 00 00 +command: 06 00 00 00 +repeat: false +# +protocol: NEC +address: 00 00 00 00 +command: 06 00 00 00 +repeat: true +# +protocol: NEC +address: 00 00 00 00 +command: 04 00 00 00 +repeat: false +# +protocol: NEC +address: 00 00 00 00 +command: 04 00 00 00 +repeat: true +# +protocol: NEC +address: 00 00 00 00 +command: 08 00 00 00 +repeat: false +# +protocol: NEC +address: 00 00 00 00 +command: 08 00 00 00 +repeat: true +# +protocol: NEC +address: 00 00 00 00 +command: 08 00 00 00 +repeat: false +# +protocol: NEC +address: 00 00 00 00 +command: 08 00 00 00 +repeat: true +# +protocol: NEC +address: 00 00 00 00 +command: 08 00 00 00 +repeat: false +# +protocol: NEC +address: 00 00 00 00 +command: 08 00 00 00 +repeat: false +# +protocol: NEC +address: 00 00 00 00 +command: 08 00 00 00 +repeat: false +# +protocol: NEC +address: 00 00 00 00 +command: 08 00 00 00 +repeat: false +# +protocol: NEC +address: 00 00 00 00 +command: 08 00 00 00 +repeat: false +# +protocol: NEC +address: 00 00 00 00 +command: 08 00 00 00 +repeat: false +# +protocol: NEC +address: 00 00 00 00 +command: 08 00 00 00 +repeat: false +# +protocol: NEC +address: 00 00 00 00 +command: 08 00 00 00 +repeat: false +# +protocol: NEC +address: 00 00 00 00 +command: 08 00 00 00 +repeat: false +# +protocol: NEC +address: 00 00 00 00 +command: 08 00 00 00 +repeat: false +# +protocol: NEC +address: 00 00 00 00 +command: 08 00 00 00 +repeat: false +# +protocol: NEC +address: 00 00 00 00 +command: 09 00 00 00 +repeat: false +# +protocol: NEC +address: 00 00 00 00 +command: 09 00 00 00 +repeat: false +# +protocol: NEC +address: 00 00 00 00 +command: 09 00 00 00 +repeat: false +# +protocol: NEC +address: 00 00 00 00 +command: 08 00 00 00 +repeat: false +# +protocol: NEC +address: 00 00 00 00 +command: 0A 00 00 00 +repeat: false +# +protocol: NEC +address: 00 00 00 00 +command: 08 00 00 00 +repeat: false +# +protocol: NEC +address: 00 00 00 00 +command: 08 00 00 00 +repeat: true +# +protocol: NEC +address: 00 00 00 00 +command: 08 00 00 00 +repeat: false +# +protocol: NEC +address: 00 00 00 00 +command: 08 00 00 00 +repeat: true +# +protocol: NEC +address: 00 00 00 00 +command: 08 00 00 00 +repeat: false +# +protocol: NEC +address: 00 00 00 00 +command: 0A 00 00 00 +repeat: false +# +protocol: NEC +address: 00 00 00 00 +command: 08 00 00 00 +repeat: false +# +protocol: NEC +address: 00 00 00 00 +command: 0A 00 00 00 +repeat: false +# +protocol: NEC +address: 00 00 00 00 +command: 0A 00 00 00 +repeat: true +# +name: decoder_input3 +type: raw +data: 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 +# +name: decoder_expected3 +type: parsed_array +count: 15 +# +protocol: NECext +address: 86 02 00 00 +command: 49 B6 00 00 +repeat: false +# +protocol: NECext +address: 86 02 00 00 +command: 49 B6 00 00 +repeat: false +# +protocol: NECext +address: 80 68 00 00 +command: 49 B6 00 00 +repeat: false +# +protocol: NECext +address: 80 68 00 00 +command: 49 B6 00 00 +repeat: false +# +protocol: NECext +address: 80 63 00 00 +command: 0F 15 00 00 +repeat: false +# +protocol: NECext +address: 80 63 00 00 +command: 0F 15 00 00 +repeat: false +# +protocol: NECext +address: 80 64 00 00 +command: 49 08 00 00 +repeat: false +# +protocol: NECext +address: 80 64 00 00 +command: 49 08 00 00 +repeat: false +# +protocol: NECext +address: 83 7A 00 00 +command: 08 00 00 00 +repeat: false +# +protocol: NECext +address: 83 7A 00 00 +command: 08 00 00 00 +repeat: false +# +protocol: NEC +address: 71 00 00 00 +command: 4A 00 00 00 +repeat: false +# +protocol: NEC +address: 71 00 00 00 +command: 4A 00 00 00 +repeat: false +# +protocol: NEC42 +address: 7B 00 00 00 +command: 00 00 00 00 +repeat: false +# +protocol: NEC42 +address: 7B 00 00 00 +command: 00 00 00 00 +repeat: false +# +protocol: NEC42 +address: 1C 01 00 00 +command: 12 00 00 00 +repeat: false +# +name: encoder_decoder_input1 +type: parsed_array +count: 26 +# +protocol: NEC +address: 00 00 00 00 +command: 00 00 00 00 +repeat: false +# +protocol: NEC +address: 01 00 00 00 +command: 00 00 00 00 +repeat: false +# +protocol: NEC +address: 01 00 00 00 +command: 80 00 00 00 +repeat: false +# +protocol: NEC +address: 00 00 00 00 +command: 80 00 00 00 +repeat: false +# +protocol: NEC +address: 00 00 00 00 +command: 00 00 00 00 +repeat: false +# +protocol: NEC +address: 00 00 00 00 +command: 00 00 00 00 +repeat: true +# +protocol: NEC +address: 00 00 00 00 +command: 00 00 00 00 +repeat: false +# +protocol: NEC +address: 00 00 00 00 +command: 00 00 00 00 +repeat: true +# +protocol: NEC +address: FF 00 00 00 +command: FF 00 00 00 +repeat: false +# +protocol: NEC +address: FE 00 00 00 +command: FF 00 00 00 +repeat: false +# +protocol: NEC +address: FE 00 00 00 +command: 7F 00 00 00 +repeat: false +# +protocol: NEC +address: FF 00 00 00 +command: 7F 00 00 00 +repeat: false +# +protocol: NEC +address: FF 00 00 00 +command: FF 00 00 00 +repeat: false +# +protocol: NEC +address: FF 00 00 00 +command: FF 00 00 00 +repeat: true +# +protocol: NEC +address: AA 00 00 00 +command: 55 00 00 00 +repeat: false +# +protocol: NEC +address: 55 00 00 00 +command: AA 00 00 00 +repeat: false +# +protocol: NEC +address: 55 00 00 00 +command: 55 00 00 00 +repeat: false +# +protocol: NEC +address: AA 00 00 00 +command: AA 00 00 00 +repeat: false +# +protocol: NEC +address: AA 00 00 00 +command: AA 00 00 00 +repeat: true +# +protocol: NEC +address: AA 00 00 00 +command: AA 00 00 00 +repeat: false +# +protocol: NEC +address: AA 00 00 00 +command: AA 00 00 00 +repeat: true +# +protocol: NEC +address: AA 00 00 00 +command: AA 00 00 00 +repeat: true +# +protocol: NEC +address: 55 00 00 00 +command: 55 00 00 00 +repeat: false +# +protocol: NEC +address: 55 00 00 00 +command: 55 00 00 00 +repeat: true +# +protocol: NEC +address: 55 00 00 00 +command: 55 00 00 00 +repeat: true +# +protocol: NEC +address: 55 00 00 00 +command: 55 00 00 00 +repeat: true +# diff --git a/assets/unit_tests/infrared/test_nec42.irtest b/assets/unit_tests/infrared/test_nec42.irtest new file mode 100644 index 00000000..960e60ee --- /dev/null +++ b/assets/unit_tests/infrared/test_nec42.irtest @@ -0,0 +1,137 @@ +Filetype: IR tests file +Version: 1 +# +name: encoder_decoder_input1 +type: parsed_array +count: 26 +# +protocol: NEC42 +address: 00 00 00 00 +command: 00 00 00 00 +repeat: false +# +protocol: NEC42 +address: 01 00 00 00 +command: 00 00 00 00 +repeat: false +# +protocol: NEC42 +address: 01 00 00 00 +command: 80 00 00 00 +repeat: false +# +protocol: NEC42 +address: 00 00 00 00 +command: 80 00 00 00 +repeat: false +# +protocol: NEC42 +address: 00 00 00 00 +command: 00 00 00 00 +repeat: false +# +protocol: NEC42 +address: 00 00 00 00 +command: 00 00 00 00 +repeat: true +# +protocol: NEC42 +address: 00 00 00 00 +command: 00 00 00 00 +repeat: false +# +protocol: NEC42 +address: 00 00 00 00 +command: 00 00 00 00 +repeat: true +# +protocol: NEC42 +address: FF 1F 00 00 +command: FF 00 00 00 +repeat: false +# +protocol: NEC42 +address: FE 1F 00 00 +command: FF 00 00 00 +repeat: false +# +protocol: NEC42 +address: FE 1F 00 00 +command: 7F 00 00 00 +repeat: false +# +protocol: NEC42 +address: FF 1F 00 00 +command: 7F 00 00 00 +repeat: false +# +protocol: NEC42 +address: FF 1F 00 00 +command: FF 00 00 00 +repeat: false +# +protocol: NEC42 +address: FF 1F 00 00 +command: FF 00 00 00 +repeat: true +# +protocol: NEC42 +address: AA 0A 00 00 +command: 55 00 00 00 +repeat: false +# +protocol: NEC42 +address: 55 15 00 00 +command: AA 00 00 00 +repeat: false +# +protocol: NEC42 +address: 55 15 00 00 +command: 55 00 00 00 +repeat: false +# +protocol: NEC42 +address: AA 0A 00 00 +command: AA 00 00 00 +repeat: false +# +protocol: NEC42 +address: AA 0A 00 00 +command: AA 00 00 00 +repeat: true +# +protocol: NEC42 +address: AA 0A 00 00 +command: AA 00 00 00 +repeat: false +# +protocol: NEC42 +address: AA 0A 00 00 +command: AA 00 00 00 +repeat: true +# +protocol: NEC42 +address: AA 0A 00 00 +command: AA 00 00 00 +repeat: true +# +protocol: NEC42 +address: 55 15 00 00 +command: 55 00 00 00 +repeat: false +# +protocol: NEC42 +address: 55 15 00 00 +command: 55 00 00 00 +repeat: true +# +protocol: NEC42 +address: 55 15 00 00 +command: 55 00 00 00 +repeat: true +# +protocol: NEC42 +address: 55 15 00 00 +command: 55 00 00 00 +repeat: true +# diff --git a/assets/unit_tests/infrared/test_nec42ext.irtest b/assets/unit_tests/infrared/test_nec42ext.irtest new file mode 100644 index 00000000..d7271fce --- /dev/null +++ b/assets/unit_tests/infrared/test_nec42ext.irtest @@ -0,0 +1,163 @@ +Filetype: IR tests file +Version: 1 +# +name: decoder_input1 +type: raw +data: 2000000 9000 4500 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 +# +name: decoder_expected1 +type: parsed_array +count: 1 +# +protocol: NEC42ext +address: 00 00 00 00 +command: 00 00 00 00 +repeat: false +# +name: decoder_input2 +type: raw +data: 2000000 9000 4500 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 2000000 9000 4500 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 560 10000 560 +# +name: decoder_expected2 +type: parsed_array +count: 1 +# +protocol: NEC42ext +address: 00 00 00 00 +command: 00 00 00 00 +repeat: false +# +name: encoder_decoder_input1 +type: parsed_array +count: 26 +# +protocol: NEC42ext +address: 00 00 00 00 +command: 00 00 00 00 +repeat: false +# +protocol: NEC42ext +address: 01 00 00 00 +command: 00 00 00 00 +repeat: false +# +protocol: NEC42ext +address: 01 00 00 00 +command: 00 80 00 00 +repeat: false +# +protocol: NEC42ext +address: 00 00 00 00 +command: 00 80 00 00 +repeat: false +# +protocol: NEC42ext +address: 00 00 00 00 +command: 00 00 00 00 +repeat: false +# +protocol: NEC42ext +address: 00 00 00 00 +command: 00 00 00 00 +repeat: true +# +protocol: NEC42ext +address: 00 00 00 00 +command: 00 00 00 00 +repeat: false +# +protocol: NEC42ext +address: 00 00 00 00 +command: 00 00 00 00 +repeat: true +# +protocol: NEC42ext +address: FF 00 F0 03 +command: 0F F0 00 00 +repeat: false +# +protocol: NEC42ext +address: FE 00 F0 03 +command: 0F F0 00 00 +repeat: false +# +protocol: NEC42ext +address: FE 00 F0 03 +command: 0F 70 00 00 +repeat: false +# +protocol: NEC42ext +address: FF 00 F0 03 +command: 0F 70 00 00 +repeat: false +# +protocol: NEC42ext +address: FF 00 F0 03 +command: 0F F0 00 00 +repeat: false +# +protocol: NEC42ext +address: FF 00 F0 03 +command: 0F F0 00 00 +repeat: true +# +protocol: NEC42ext +address: AA AA AA 02 +command: 55 55 00 00 +repeat: false +# +protocol: NEC42ext +address: 55 55 55 01 +command: AA AA 00 00 +repeat: false +# +protocol: NEC42ext +address: 55 55 55 01 +command: 55 55 00 00 +repeat: false +# +protocol: NEC42ext +address: AA AA AA 02 +command: AA AA 00 00 +repeat: false +# +protocol: NEC42ext +address: AA AA AA 02 +command: AA AA 00 00 +repeat: true +# +protocol: NEC42ext +address: AA AA AA 02 +command: AA AA 00 00 +repeat: false +# +protocol: NEC42ext +address: AA AA AA 02 +command: AA AA 00 00 +repeat: true +# +protocol: NEC42ext +address: AA AA AA 02 +command: AA AA 00 00 +repeat: true +# +protocol: NEC42ext +address: 55 55 55 01 +command: 55 55 00 00 +repeat: false +# +protocol: NEC42ext +address: 55 55 55 01 +command: 55 55 00 00 +repeat: true +# +protocol: NEC42ext +address: 55 55 55 01 +command: 55 55 00 00 +repeat: true +# +protocol: NEC42ext +address: 55 55 55 01 +command: 55 55 00 00 +repeat: true +# diff --git a/assets/unit_tests/infrared/test_necext.irtest b/assets/unit_tests/infrared/test_necext.irtest new file mode 100644 index 00000000..ffe663b7 --- /dev/null +++ b/assets/unit_tests/infrared/test_necext.irtest @@ -0,0 +1,684 @@ +Filetype: IR tests file +Version: 1 +# +name: decoder_input1 +type: raw +data: 1915384 8967 4463 587 527 590 524 584 1647 590 524 583 531 586 527 590 524 583 1646 589 1640 586 527 590 524 583 1647 590 1640 587 1644 582 1647 589 524 583 531 586 1644 593 521 586 527 589 1641 586 528 589 525 592 521 585 1644 592 522 585 1645 592 1638 589 524 592 1637 588 1641 585 1645 592 41082 8965 2220 591 409594 8972 4458 591 523 584 530 587 1642 584 529 588 526 591 522 583 530 587 1643 584 1646 590 523 584 530 587 1643 584 1647 590 1640 586 1643 583 531 586 527 589 1641 586 528 589 524 593 1637 589 524 593 521 586 529 589 1641 585 528 589 1640 586 1644 592 521 585 1645 592 1638 588 1641 585 41088 8968 2218 582 95791 8971 2214 587 95787 8965 2220 591 95783 8971 2215 585 95787 8964 2221 590 95783 8971 2215 586 95788 8965 2220 591 95783 8969 2216 585 95789 8965 2220 590 95782 8970 2215 586 95788 9047 2139 591 95782 8970 2216 585 95788 8966 2220 591 95782 8972 2214 588 95786 8964 2222 590 95784 8971 2214 586 95787 8967 2218 583 95791 8964 2222 588 95785 8969 2217 584 333740 8967 4464 586 528 590 524 592 1637 589 525 592 521 586 528 589 525 593 1637 588 1640 585 528 589 525 592 1638 589 1641 586 1644 592 1638 588 525 592 522 585 1644 592 522 585 528 588 1642 585 529 588 526 591 522 585 1645 591 522 584 1646 591 1639 587 526 591 1639 588 1642 583 1646 590 41082 8963 2223 588 95785 8967 2219 591 95782 8968 2217 584 246369 8972 4459 591 523 583 530 587 1643 583 530 587 527 590 523 584 530 586 1643 583 1647 590 524 583 530 586 1643 583 1646 589 1641 586 1644 583 531 586 528 589 1640 585 528 588 525 592 1638 588 525 592 522 585 529 589 1641 584 529 588 1642 585 1645 591 522 585 1645 590 1639 587 1642 584 41090 8966 2220 591 95782 8966 2220 592 95782 8967 2218 583 165604 9017 4413 586 527 590 524 583 1647 589 523 582 531 586 528 589 525 593 1637 589 1640 585 527 588 525 592 1638 589 1641 585 1644 592 1638 588 525 591 523 585 1645 591 522 584 529 588 1642 584 530 587 527 591 523 584 1646 591 523 584 1646 591 1640 586 527 590 1640 586 1643 583 1646 589 41084 8972 2214 587 95787 8967 2219 581 95792 8971 2215 586 208929 9016 4414 584 529 588 526 591 1638 588 525 591 522 584 529 587 526 591 1639 587 1642 584 529 588 526 591 1638 587 1643 584 1646 591 1639 587 526 590 523 584 1646 590 524 583 530 587 1643 583 530 587 527 590 524 583 1647 590 524 583 1647 590 1640 586 527 589 1640 586 1644 592 1637 589 41085 8972 2214 587 95787 8964 2221 590 95784 8965 2221 590 167378 8969 4460 589 525 582 532 586 1644 592 521 586 528 589 524 592 522 585 1645 592 1638 589 525 592 522 585 1644 591 1639 588 1642 585 1645 591 522 585 529 587 1641 584 530 587 526 591 1639 588 526 591 522 584 530 587 1643 584 530 587 1642 584 1646 591 523 584 1647 590 1640 587 1643 583 41090 9017 2169 591 95781 8969 2216 585 95788 8964 2223 588 192781 8969 4461 589 525 592 522 586 1644 592 521 586 528 589 525 592 522 585 1644 592 1638 589 524 592 521 586 1645 591 1638 588 1642 585 1645 590 522 584 530 587 1642 584 530 587 526 591 1639 588 526 590 524 583 530 587 1643 584 530 587 1643 584 1646 590 524 583 1646 590 1640 587 1643 583 41090 8967 2219 591 95782 8970 2215 586 95788 8963 2222 589 179978 8967 4464 586 528 589 524 593 1637 588 525 592 522 585 529 589 525 592 1638 589 1641 585 529 588 526 591 1638 588 1641 585 1645 590 1639 587 527 590 523 584 1646 591 523 584 530 587 1643 583 530 586 527 590 524 583 1646 590 523 584 1646 589 1640 586 528 589 1640 586 1644 593 1638 589 41084 8971 2214 587 95787 8964 2221 589 95785 8966 2219 592 196616 8967 4463 585 527 590 525 592 1637 589 525 592 521 586 528 589 524 592 1638 588 1641 585 528 589 525 592 1637 589 1641 585 1645 591 1638 588 526 591 522 585 1645 591 522 584 530 587 1642 584 529 588 526 591 523 583 1645 590 523 584 1646 590 1639 587 527 590 1639 586 1644 583 1647 589 41084 8971 2214 587 95787 8964 2222 589 2112164 8969 4462 588 525 592 522 585 1645 591 523 584 529 588 526 591 523 584 1645 591 1639 587 527 590 524 583 1646 590 1639 587 1643 584 1673 563 524 583 531 586 1643 593 521 586 528 589 1641 585 528 589 525 592 521 585 1644 592 522 584 1645 591 1639 588 526 591 1639 588 1642 583 1646 590 41082 8962 2223 588 95785 8965 2220 591 95783 8968 2217 583 164778 8969 4462 588 525 591 522 585 1645 591 522 585 530 587 527 591 523 584 1646 591 1639 588 526 591 523 583 1646 590 1639 587 1643 584 1672 564 523 584 531 586 1643 583 530 587 527 590 1639 587 527 589 524 583 531 586 1644 583 531 586 1643 583 1647 590 525 582 1647 589 1639 586 1644 593 41081 8965 2220 590 95784 8968 2217 583 95790 8970 2215 586 161053 8963 4468 592 521 586 528 589 1641 585 529 588 526 591 522 585 529 588 1642 585 1645 591 523 584 530 587 1642 584 1646 591 1639 586 1669 557 531 586 527 590 1640 586 527 590 525 592 1638 589 525 592 522 585 528 588 1641 585 528 588 1642 584 1645 591 523 584 1645 591 1639 587 1643 583 41090 8964 2221 590 95784 8963 2222 589 95785 8965 2220 590 139334 8968 4463 587 527 590 523 584 1646 590 523 583 531 586 527 589 524 583 1647 590 1640 586 527 590 525 592 1637 589 1641 585 1644 592 1665 562 524 591 522 584 1645 591 523 584 529 588 1642 584 529 587 527 590 523 584 1646 590 523 584 1646 590 1639 587 527 589 1640 586 1644 592 1637 589 41085 8970 2217 584 95789 8972 2213 586 95787 8965 2221 590 141444 8969 4461 589 525 592 522 584 1644 591 522 585 529 588 526 591 522 585 1645 592 1638 587 526 591 523 584 1646 591 1639 588 1642 583 1672 564 523 584 530 587 1643 584 530 587 527 590 1640 587 527 590 524 584 530 587 1643 584 530 586 1644 583 1647 589 524 583 1647 590 1640 586 1645 592 41081 8964 2222 589 95784 8968 2218 583 95790 8971 2214 586 154119 8969 4462 588 526 591 522 585 1645 592 522 585 529 589 526 591 522 584 1646 591 1639 588 526 591 523 583 1645 590 1639 587 1642 584 1671 564 523 584 529 587 1643 583 530 587 527 590 1639 587 526 590 523 583 530 586 1643 583 529 586 1643 583 1646 590 524 583 1648 589 1641 586 1644 592 41081 8965 2220 590 95784 8969 2216 585 95790 8964 2221 590 147134 8966 4464 586 528 589 525 593 1637 589 524 593 522 585 529 589 525 592 1638 589 1641 586 528 589 525 591 1638 588 1641 585 1645 592 1664 561 525 592 523 584 1646 591 523 584 530 588 1642 585 526 587 527 590 523 584 1646 591 523 584 1646 591 1639 586 526 590 1640 587 1643 583 1646 590 41083 8963 2223 587 95786 8965 2221 590 95784 8968 2217 584 158330 8965 4465 585 529 588 526 590 1639 587 526 590 523 584 530 586 526 590 1639 587 1643 583 530 587 527 590 1639 587 1643 584 1647 590 1666 561 527 589 523 583 1646 590 523 583 531 586 1643 583 530 586 527 590 524 582 1646 590 525 582 1647 589 1640 586 528 589 1640 586 1644 592 1638 589 41085 8971 2214 586 95787 8962 2223 588 95786 8965 2222 589 206063 8962 4467 591 521 585 529 588 1642 585 529 588 525 591 522 584 530 587 1642 584 1646 591 523 584 529 588 1642 583 1646 590 1640 587 1668 558 530 587 526 589 1639 586 528 589 524 583 1647 589 524 593 521 585 528 589 1641 585 529 589 1641 585 1645 592 522 585 1644 591 1639 587 1642 584 41090 8965 2221 590 95784 8963 2223 588 95785 8964 2222 589 183026 8970 4460 590 524 583 531 586 1643 583 530 587 528 589 525 592 522 586 1644 592 1637 588 525 591 522 585 1645 592 1638 588 1641 585 1672 565 522 584 530 588 1642 584 529 588 526 591 1639 587 527 590 523 584 530 587 1642 584 530 587 1642 583 1647 590 524 583 1647 590 1640 587 1643 582 41090 8965 2221 590 95783 8970 2216 584 95789 8962 2223 587 184104 8964 4467 583 530 587 527 590 1640 587 527 590 523 582 531 586 528 589 1640 586 1644 593 521 586 528 589 1640 585 1644 592 1638 589 1667 558 528 589 526 591 1638 588 526 591 522 585 1645 591 522 585 530 587 527 591 1639 587 526 591 1639 587 1642 584 530 587 1643 583 1646 590 1639 587 41087 9020 2166 584 95790 8972 2213 587 95787 8963 2222 589 169833 8964 4465 583 529 587 527 590 1639 587 527 591 523 584 530 586 527 590 1640 587 1643 583 531 587 527 590 1640 586 1644 583 1647 590 1666 560 527 590 524 582 1647 589 525 592 521 586 1644 592 521 586 528 589 526 592 1638 588 525 592 1638 589 1641 585 528 589 1641 585 1645 591 1638 588 41086 8971 2215 585 95789 8964 2222 588 95785 8967 2218 583 185701 8971 4460 590 523 584 530 587 1642 584 530 587 527 590 524 583 531 586 1644 583 1647 590 524 592 521 585 1644 592 1638 589 1641 585 1671 565 522 586 529 588 1642 585 529 588 526 591 1638 588 525 590 523 584 530 587 1642 584 530 587 1642 584 1646 590 524 583 1646 590 1640 586 1643 583 41091 8965 2222 589 95784 8965 2221 589 95784 8968 2217 583 146332 8969 4461 669 445 591 522 584 1644 591 523 584 529 588 526 591 522 585 1645 591 1638 587 527 590 524 584 1646 590 1639 587 1642 583 1673 564 524 583 531 586 1643 583 531 586 528 589 1641 585 528 589 525 592 522 585 1644 591 521 585 1645 592 1638 588 525 592 1638 588 1641 584 1646 591 41083 8963 2222 589 95785 8966 2220 592 261924 8965 4465 585 529 588 525 592 1638 588 525 592 523 584 530 587 526 591 1639 587 1642 583 529 587 527 590 1639 587 1643 584 1646 590 +# +name: decoder_expected1 +type: parsed_array +count: 108 +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: false +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: false +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: false +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: false +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: false +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: false +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: false +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: false +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: false +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: false +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: false +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: false +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: false +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: false +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: false +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: false +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: false +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: false +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: false +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: false +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: false +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: false +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: false +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: false +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +protocol: NECext +address: 84 79 00 00 +command: 12 ED 00 00 +repeat: true +# +name: encoder_decoder_input1 +type: parsed_array +count: 26 +protocol: NECext +address: 00 00 00 00 +command: 00 00 00 00 +repeat: false +# +protocol: NECext +address: 01 00 00 00 +command: 00 00 00 00 +repeat: false +# +protocol: NECext +address: 01 00 00 00 +command: 00 80 00 00 +repeat: false +# +protocol: NECext +address: 00 00 00 00 +command: 00 80 00 00 +repeat: false +# +protocol: NECext +address: 00 00 00 00 +command: 00 00 00 00 +repeat: false +# +protocol: NECext +address: 00 00 00 00 +command: 00 00 00 00 +repeat: true +# +protocol: NECext +address: 00 00 00 00 +command: 00 00 00 00 +repeat: false +# +protocol: NECext +address: 00 00 00 00 +command: 00 00 00 00 +repeat: true +# +protocol: NECext +address: FF FF 00 00 +command: FF FF 00 00 +repeat: false +# +protocol: NECext +address: FE FF 00 00 +command: FF FF 00 00 +repeat: false +# +protocol: NECext +address: FE FF 00 00 +command: FF 7F 00 00 +repeat: false +# +protocol: NECext +address: FF FF 00 00 +command: FF 7F 00 00 +repeat: false +# +protocol: NECext +address: FF FF 00 00 +command: FF FF 00 00 +repeat: false +# +protocol: NECext +address: FF FF 00 00 +command: FF FF 00 00 +repeat: true +# +protocol: NECext +address: AA AA 00 00 +command: 55 55 00 00 +repeat: false +# +protocol: NECext +address: 55 55 00 00 +command: AA AA 00 00 +repeat: false +# +protocol: NECext +address: 55 55 00 00 +command: 55 55 00 00 +repeat: false +# +protocol: NECext +address: AA AA 00 00 +command: AA AA 00 00 +repeat: false +# +protocol: NECext +address: AA AA 00 00 +command: AA AA 00 00 +repeat: true +# +protocol: NECext +address: AA AA 00 00 +command: AA AA 00 00 +repeat: false +# +protocol: NECext +address: AA AA 00 00 +command: AA AA 00 00 +repeat: true +# +protocol: NECext +address: AA AA 00 00 +command: AA AA 00 00 +repeat: true +# +protocol: NECext +address: 55 55 00 00 +command: 55 55 00 00 +repeat: false +# +protocol: NECext +address: 55 55 00 00 +command: 55 55 00 00 +repeat: true +# +protocol: NECext +address: 55 55 00 00 +command: 55 55 00 00 +repeat: true +# +protocol: NECext +address: 55 55 00 00 +command: 55 55 00 00 +repeat: true +# diff --git a/assets/unit_tests/infrared/test_rc5.irtest b/assets/unit_tests/infrared/test_rc5.irtest new file mode 100644 index 00000000..6935faa6 --- /dev/null +++ b/assets/unit_tests/infrared/test_rc5.irtest @@ -0,0 +1,341 @@ +Filetype: IR tests file +Version: 1 +# +name: decoder_input1 +type: raw +data: 27888 888 888 1776 1776 1776 888 888 1776 888 888 1776 1776 1776 888 888 888 888 888 888 +# +name: decoder_expected1 +type: parsed_array +count: 1 +# +protocol: RC5 +address: 13 00 00 00 +command: 10 00 00 00 +repeat: false +# +name: decoder_input2 +type: raw +data: 27888 888 888 888 888 888 888 1776 888 888 1776 888 888 1776 1776 1776 888 888 888 888 888 888 +# +name: decoder_expected2 +type: parsed_array +count: 1 +# +protocol: RC5 +address: 13 00 00 00 +command: 10 00 00 00 +repeat: false +# +name: decoder_input3 +type: raw +data: 27888 888 888 1776 1776 1776 888 888 1776 888 888 1776 1776 1776 888 888 888 888 1776 888 +# +name: decoder_expected3 +type: parsed_array +count: 1 +# +protocol: RC5 +address: 13 00 00 00 +command: 11 00 00 00 +repeat: false +# +name: decoder_input4 +type: raw +data: 27888 888 888 888 888 888 888 1776 888 888 1776 888 888 1776 1776 1776 888 888 888 888 1776 888 +# +name: decoder_expected4 +type: parsed_array +count: 1 +# +protocol: RC5 +address: 13 00 00 00 +command: 11 00 00 00 +repeat: false +# +name: decoder_input5 +type: raw +data: 27888 888 888 1776 1776 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 +# +name: decoder_expected5 +type: parsed_array +count: 1 +# +protocol: RC5 +address: 1F 00 00 00 +command: 3F 00 00 00 +repeat: false +# +name: decoder_input6 +type: raw +data: 27888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 +# +name: decoder_expected6 +type: parsed_array +count: 1 +# +protocol: RC5 +address: 1F 00 00 00 +command: 3F 00 00 00 +repeat: false +# +name: decoder_input7 +type: raw +data: 27888 888 888 1776 1776 1776 888 888 1776 888 888 1776 1776 1776 888 888 888 888 1776 888 27888 888 888 888 888 888 888 1776 888 888 1776 888 888 1776 1776 1776 888 888 888 888 1776 888 27888 888 888 888 888 888 888 1776 888 888 1776 888 888 1776 1776 1776 888 888 888 888 1776 888 27888 888 888 888 888 888 888 1776 888 888 1776 888 888 1776 1776 1776 888 888 888 888 1776 888 27888 888 888 1776 1776 1776 888 888 1776 888 888 1776 1776 1776 888 888 888 888 1776 888 27888 888 888 888 888 888 888 1776 888 888 1776 888 888 1776 1776 1776 888 888 888 888 888 888 27888 888 888 1776 1776 1776 888 888 1776 888 888 1776 1776 1776 888 888 888 888 888 888 27888 888 888 1776 1776 1776 888 888 1776 888 888 1776 1776 1776 888 888 888 888 888 888 27888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 27888 888 888 1776 1776 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 27888 888 888 1776 1776 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 +# +name: decoder_expected7 +type: parsed_array +count: 11 +# +protocol: RC5 +address: 13 00 00 00 +command: 11 00 00 00 +repeat: false +# +protocol: RC5 +address: 13 00 00 00 +command: 11 00 00 00 +repeat: false +# +protocol: RC5 +address: 13 00 00 00 +command: 11 00 00 00 +repeat: true +# +protocol: RC5 +address: 13 00 00 00 +command: 11 00 00 00 +repeat: true +# +protocol: RC5 +address: 13 00 00 00 +command: 11 00 00 00 +repeat: false +# +protocol: RC5 +address: 13 00 00 00 +command: 10 00 00 00 +repeat: false +# +protocol: RC5 +address: 13 00 00 00 +command: 10 00 00 00 +repeat: false +# +protocol: RC5 +address: 13 00 00 00 +command: 10 00 00 00 +repeat: true +# +protocol: RC5 +address: 1F 00 00 00 +command: 3F 00 00 00 +repeat: false +# +protocol: RC5 +address: 1F 00 00 00 +command: 3F 00 00 00 +repeat: false +# +protocol: RC5 +address: 1F 00 00 00 +command: 3F 00 00 00 +repeat: true +# +name: encoder_input1 +type: parsed_array +count: 11 +# +protocol: RC5 +address: 13 00 00 00 +command: 11 00 00 00 +repeat: false +# +protocol: RC5 +address: 13 00 00 00 +command: 11 00 00 00 +repeat: false +# +protocol: RC5 +address: 13 00 00 00 +command: 11 00 00 00 +repeat: true +# +protocol: RC5 +address: 13 00 00 00 +command: 11 00 00 00 +repeat: true +# +protocol: RC5 +address: 13 00 00 00 +command: 11 00 00 00 +repeat: false +# +protocol: RC5 +address: 13 00 00 00 +command: 10 00 00 00 +repeat: false +# +protocol: RC5 +address: 13 00 00 00 +command: 10 00 00 00 +repeat: false +# +protocol: RC5 +address: 13 00 00 00 +command: 10 00 00 00 +repeat: true +# +protocol: RC5 +address: 1F 00 00 00 +command: 3F 00 00 00 +repeat: false +# +protocol: RC5 +address: 1F 00 00 00 +command: 3F 00 00 00 +repeat: false +# +protocol: RC5 +address: 1F 00 00 00 +command: 3F 00 00 00 +repeat: true +# +name: encoder_expected1 +type: raw +data: 27888 888 888 1776 1776 1776 888 888 1776 888 888 1776 1776 1776 888 888 888 888 1776 888 27888 888 888 888 888 888 888 1776 888 888 1776 888 888 1776 1776 1776 888 888 888 888 1776 888 27888 888 888 888 888 888 888 1776 888 888 1776 888 888 1776 1776 1776 888 888 888 888 1776 888 27888 888 888 888 888 888 888 1776 888 888 1776 888 888 1776 1776 1776 888 888 888 888 1776 888 27888 888 888 1776 1776 1776 888 888 1776 888 888 1776 1776 1776 888 888 888 888 1776 888 27888 888 888 888 888 888 888 1776 888 888 1776 888 888 1776 1776 1776 888 888 888 888 888 888 27888 888 888 1776 1776 1776 888 888 1776 888 888 1776 1776 1776 888 888 888 888 888 888 27888 888 888 1776 1776 1776 888 888 1776 888 888 1776 1776 1776 888 888 888 888 888 888 27888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 27888 888 888 1776 1776 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 27888 888 888 1776 1776 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 +# +name: encoder_decoder_input1 +type: parsed_array +count: 26 +# +protocol: RC5 +address: 1F 00 00 00 +command: 3F 00 00 00 +repeat: false +# +protocol: RC5 +address: 00 00 00 00 +command: 00 00 00 00 +repeat: false +# +protocol: RC5 +address: 10 00 00 00 +command: 01 00 00 00 +repeat: false +# +protocol: RC5 +address: 01 00 00 00 +command: 20 00 00 00 +repeat: false +# +protocol: RC5 +address: 01 00 00 00 +command: 20 00 00 00 +repeat: false +# +protocol: RC5 +address: 01 00 00 00 +command: 20 00 00 00 +repeat: true +# +protocol: RC5 +address: 01 00 00 00 +command: 20 00 00 00 +repeat: true +# +protocol: RC5 +address: 01 00 00 00 +command: 20 00 00 00 +repeat: true +# +protocol: RC5 +address: 01 00 00 00 +command: 20 00 00 00 +repeat: true +# +protocol: RC5 +address: 1F 00 00 00 +command: 3F 00 00 00 +repeat: false +# +protocol: RC5 +address: 0A 00 00 00 +command: 2A 00 00 00 +repeat: false +# +protocol: RC5 +address: 15 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: RC5 +address: 15 00 00 00 +command: 15 00 00 00 +repeat: true +# +protocol: RC5X +address: 1F 00 00 00 +command: 3F 00 00 00 +repeat: false +# +protocol: RC5X +address: 00 00 00 00 +command: 00 00 00 00 +repeat: false +# +protocol: RC5X +address: 10 00 00 00 +command: 01 00 00 00 +repeat: false +# +protocol: RC5X +address: 01 00 00 00 +command: 20 00 00 00 +repeat: false +# +protocol: RC5X +address: 01 00 00 00 +command: 20 00 00 00 +repeat: false +# +protocol: RC5X +address: 01 00 00 00 +command: 20 00 00 00 +repeat: true +# +protocol: RC5X +address: 01 00 00 00 +command: 20 00 00 00 +repeat: true +# +protocol: RC5X +address: 01 00 00 00 +command: 20 00 00 00 +repeat: true +# +protocol: RC5X +address: 01 00 00 00 +command: 20 00 00 00 +repeat: true +# +protocol: RC5X +address: 1F 00 00 00 +command: 3F 00 00 00 +repeat: false +# +protocol: RC5X +address: 0A 00 00 00 +command: 2A 00 00 00 +repeat: false +# +protocol: RC5X +address: 15 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: RC5X +address: 15 00 00 00 +command: 15 00 00 00 +repeat: true +# diff --git a/assets/unit_tests/infrared/test_rc5x.irtest b/assets/unit_tests/infrared/test_rc5x.irtest new file mode 100644 index 00000000..65731eae --- /dev/null +++ b/assets/unit_tests/infrared/test_rc5x.irtest @@ -0,0 +1,29 @@ +Filetype: IR tests file +Version: 1 +# +name: decoder_input1 +type: raw +data: 27888 1776 888 888 1776 1776 888 888 1776 888 888 1776 1776 1776 888 888 888 888 888 888 +# +name: decoder_expected1 +type: parsed_array +count: 1 +# +protocol: RC5X +address: 13 00 00 00 +command: 10 00 00 00 +repeat: false +# +name: encoder_input1 +type: parsed_array +count: 1 +# +protocol: RC5X +address: 13 00 00 00 +command: 10 00 00 00 +repeat: false +# +name: encoder_expected1 +type: raw +data: 27888 1776 888 888 1776 1776 888 888 1776 888 888 1776 1776 1776 888 888 888 888 888 888 +# diff --git a/assets/unit_tests/infrared/test_rc6.irtest b/assets/unit_tests/infrared/test_rc6.irtest new file mode 100644 index 00000000..cb2e4393 --- /dev/null +++ b/assets/unit_tests/infrared/test_rc6.irtest @@ -0,0 +1,341 @@ +Filetype: IR tests file +Version: 1 +# +name: decoder_input1 +type: raw +data: 27000 2666 889 444 888 444 444 444 444 444 888 1332 888 444 444 888 888 888 888 444 444 888 888 888 888 444 444 444 444 444 444 444 444 444 27000 2666 889 444 888 444 444 444 444 1332 888 444 888 444 444 888 888 444 444 888 444 444 444 444 888 888 888 444 444 444 444 444 444 444 444 444 27000 2666 889 444 888 444 444 444 444 1332 888 444 888 444 444 888 888 888 888 888 444 444 888 888 888 444 444 444 444 444 444 444 444 888 27000 2666 889 444 888 444 444 444 444 444 888 1332 888 444 444 888 888 444 444 888 444 444 444 444 888 888 888 444 444 444 444 444 444 444 444 444 27000 2666 889 444 888 444 444 444 444 1332 888 444 888 444 444 888 888 888 888 444 444 888 888 888 888 444 444 444 444 444 444 444 444 444 27000 2666 889 444 888 444 444 444 444 444 888 1332 888 444 444 888 888 888 888 888 444 444 888 888 888 444 444 444 444 444 444 444 444 444 27000 2666 889 444 888 444 444 444 444 1332 888 444 888 444 444 888 888 444 444 888 444 444 444 444 888 888 888 444 444 444 444 444 444 444 444 444 444 444 444 444 27000 2666 889 444 888 444 444 444 444 1332 888 444 888 444 444 888 888 444 444 888 444 444 444 444 888 888 888 444 444 444 444 444 444 444 444 888 444 444 27000 2666 889 444 888 444 444 444 444 1332 888 444 888 444 444 888 888 444 444 888 444 444 444 444 888 888 888 444 444 444 444 444 444 444 444 888 27000 2666 889 444 888 444 444 444 444 1332 888 444 888 444 444 888 888 888 888 888 444 444 888 888 888 444 444 444 444 444 444 444 444 444 +# +name: decoder_expected1 +type: parsed_array +count: 6 +# +protocol: RC6 +address: 94 00 00 00 +command: A0 00 00 00 +repeat: false +# +protocol: RC6 +address: 93 00 00 00 +command: A0 00 00 00 +repeat: false +# +protocol: RC6 +address: 93 00 00 00 +command: A0 00 00 00 +repeat: false +# +protocol: RC6 +address: 94 00 00 00 +command: A0 00 00 00 +repeat: false +# +protocol: RC6 +address: 95 00 00 00 +command: A0 00 00 00 +repeat: false +# +protocol: RC6 +address: 95 00 00 00 +command: A0 00 00 00 +repeat: false +# +name: decoder_input2 +type: raw +data: 27000 2666 889 444 888 444 444 444 444 444 888 1332 888 444 444 888 888 444 444 888 444 444 444 444 888 888 888 444 444 444 444 444 444 444 444 444 27000 2666 889 444 888 444 444 444 444 444 888 1332 888 444 444 888 888 444 444 888 444 444 444 444 888 888 888 444 444 444 444 444 444 444 444 444 27000 2666 889 444 888 444 444 444 444 1332 888 444 888 444 444 888 888 444 444 888 444 444 444 444 888 888 888 444 444 444 444 444 444 888 27000 2666 889 444 888 444 444 444 444 1332 888 444 888 444 444 888 888 444 444 888 444 444 444 444 888 888 888 444 444 444 444 444 444 888 27000 2666 889 444 888 444 444 444 444 1332 888 444 888 444 444 888 888 444 444 888 444 444 444 444 888 888 888 444 444 444 444 444 444 888 27000 2666 889 444 888 444 444 444 444 444 888 1332 888 444 444 888 888 444 444 888 444 444 444 444 888 888 888 444 444 444 444 444 444 444 444 444 27000 2666 889 444 888 444 444 444 444 1332 888 444 888 444 444 888 888 444 444 888 444 444 444 444 888 888 888 444 444 444 444 444 444 444 444 444 27000 2666 889 444 888 444 444 444 444 1332 888 444 888 444 444 888 888 444 444 888 444 444 444 444 888 888 888 444 444 444 444 444 444 444 444 444 +# +name: decoder_expected2 +type: parsed_array +count: 8 +# +protocol: RC6 +address: 93 00 00 00 +command: A0 00 00 00 +repeat: false +# +protocol: RC6 +address: 93 00 00 00 +command: A0 00 00 00 +repeat: true +# +protocol: RC6 +address: 93 00 00 00 +command: A1 00 00 00 +repeat: false +# +protocol: RC6 +address: 93 00 00 00 +command: A1 00 00 00 +repeat: true +# +protocol: RC6 +address: 93 00 00 00 +command: A1 00 00 00 +repeat: true +# +protocol: RC6 +address: 93 00 00 00 +command: A0 00 00 00 +repeat: false +# +protocol: RC6 +address: 93 00 00 00 +command: A0 00 00 00 +repeat: false +# +protocol: RC6 +address: 93 00 00 00 +command: A0 00 00 00 +repeat: true +# +name: encoder_input1 +type: parsed_array +count: 8 +# +protocol: RC6 +address: 93 00 00 00 +command: A0 00 00 00 +repeat: false +# +protocol: RC6 +address: 93 00 00 00 +command: A0 00 00 00 +repeat: true +# +protocol: RC6 +address: 93 00 00 00 +command: A1 00 00 00 +repeat: false +# +protocol: RC6 +address: 93 00 00 00 +command: A1 00 00 00 +repeat: true +# +protocol: RC6 +address: 93 00 00 00 +command: A1 00 00 00 +repeat: true +# +protocol: RC6 +address: 93 00 00 00 +command: A0 00 00 00 +repeat: false +# +protocol: RC6 +address: 93 00 00 00 +command: A0 00 00 00 +repeat: false +# +protocol: RC6 +address: 93 00 00 00 +command: A0 00 00 00 +repeat: true +# +name: encoder_expected1 +type: raw +data: 27000 2666 889 444 888 444 444 444 444 444 888 1332 888 444 444 888 888 444 444 888 444 444 444 444 888 888 888 444 444 444 444 444 444 444 444 444 27000 2666 889 444 888 444 444 444 444 444 888 1332 888 444 444 888 888 444 444 888 444 444 444 444 888 888 888 444 444 444 444 444 444 444 444 444 27000 2666 889 444 888 444 444 444 444 1332 888 444 888 444 444 888 888 444 444 888 444 444 444 444 888 888 888 444 444 444 444 444 444 888 27000 2666 889 444 888 444 444 444 444 1332 888 444 888 444 444 888 888 444 444 888 444 444 444 444 888 888 888 444 444 444 444 444 444 888 27000 2666 889 444 888 444 444 444 444 1332 888 444 888 444 444 888 888 444 444 888 444 444 444 444 888 888 888 444 444 444 444 444 444 888 27000 2666 889 444 888 444 444 444 444 444 888 1332 888 444 444 888 888 444 444 888 444 444 444 444 888 888 888 444 444 444 444 444 444 444 444 444 27000 2666 889 444 888 444 444 444 444 1332 888 444 888 444 444 888 888 444 444 888 444 444 444 444 888 888 888 444 444 444 444 444 444 444 444 444 27000 2666 889 444 888 444 444 444 444 1332 888 444 888 444 444 888 888 444 444 888 444 444 444 444 888 888 888 444 444 444 444 444 444 444 444 444 +# +name: encoder_decoder_input1 +type: parsed_array +count: 40 +# +protocol: RC6 +address: 00 00 00 00 +command: 00 00 00 00 +repeat: false +# +protocol: RC6 +address: 80 00 00 00 +command: 00 00 00 00 +repeat: false +# +protocol: RC6 +address: 80 00 00 00 +command: 01 00 00 00 +repeat: false +# +protocol: RC6 +address: 00 00 00 00 +command: 01 00 00 00 +repeat: false +# +protocol: RC6 +address: 00 00 00 00 +command: 00 00 00 00 +repeat: false +# +protocol: RC6 +address: 00 00 00 00 +command: 00 00 00 00 +repeat: true +# +protocol: RC6 +address: 00 00 00 00 +command: 00 00 00 00 +repeat: false +# +protocol: RC6 +address: 00 00 00 00 +command: 00 00 00 00 +repeat: true +# +protocol: RC6 +address: FF 00 00 00 +command: FF 00 00 00 +repeat: false +# +protocol: RC6 +address: 7F 00 00 00 +command: FF 00 00 00 +repeat: false +# +protocol: RC6 +address: 7F 00 00 00 +command: FE 00 00 00 +repeat: false +# +protocol: RC6 +address: FF 00 00 00 +command: FE 00 00 00 +repeat: false +# +protocol: RC6 +address: FF 00 00 00 +command: FF 00 00 00 +repeat: false +# +protocol: RC6 +address: FF 00 00 00 +command: FF 00 00 00 +repeat: true +# +protocol: RC6 +address: AA 00 00 00 +command: 55 00 00 00 +repeat: false +# +protocol: RC6 +address: 55 00 00 00 +command: AA 00 00 00 +repeat: false +# +protocol: RC6 +address: 55 00 00 00 +command: 55 00 00 00 +repeat: false +# +protocol: RC6 +address: AA 00 00 00 +command: AA 00 00 00 +repeat: false +# +protocol: RC6 +address: AA 00 00 00 +command: AA 00 00 00 +repeat: true +# +protocol: RC6 +address: 00 00 00 00 +command: 00 00 00 00 +repeat: false +# +protocol: RC6 +address: 80 00 00 00 +command: 00 00 00 00 +repeat: false +# +protocol: RC6 +address: 80 00 00 00 +command: 01 00 00 00 +repeat: false +# +protocol: RC6 +address: 00 00 00 00 +command: 01 00 00 00 +repeat: false +# +protocol: RC6 +address: 00 00 00 00 +command: 00 00 00 00 +repeat: false +# +protocol: RC6 +address: 00 00 00 00 +command: 00 00 00 00 +repeat: true +# +protocol: RC6 +address: 00 00 00 00 +command: 00 00 00 00 +repeat: false +# +protocol: RC6 +address: 00 00 00 00 +command: 00 00 00 00 +repeat: true +# +protocol: RC6 +address: FF 00 00 00 +command: FF 00 00 00 +repeat: false +# +protocol: RC6 +address: 7F 00 00 00 +command: FF 00 00 00 +repeat: false +# +protocol: RC6 +address: 7F 00 00 00 +command: FE 00 00 00 +repeat: false +# +protocol: RC6 +address: FF 00 00 00 +command: FE 00 00 00 +repeat: false +# +protocol: RC6 +address: FF 00 00 00 +command: FF 00 00 00 +repeat: false +# +protocol: RC6 +address: FF 00 00 00 +command: FF 00 00 00 +repeat: true +# +protocol: RC6 +address: AA 00 00 00 +command: 55 00 00 00 +repeat: false +# +protocol: RC6 +address: 55 00 00 00 +command: AA 00 00 00 +repeat: false +# +protocol: RC6 +address: 55 00 00 00 +command: 55 00 00 00 +repeat: false +# +protocol: RC6 +address: AA 00 00 00 +command: AA 00 00 00 +repeat: false +# +protocol: RC6 +address: AA 00 00 00 +command: AA 00 00 00 +repeat: true +# +protocol: RC6 +address: 93 00 00 00 +command: A0 00 00 00 +repeat: false +# +protocol: RC6 +address: 93 00 00 00 +command: A1 00 00 00 +repeat: false +# diff --git a/assets/unit_tests/infrared/test_samsung32.irtest b/assets/unit_tests/infrared/test_samsung32.irtest new file mode 100644 index 00000000..2b5536a5 --- /dev/null +++ b/assets/unit_tests/infrared/test_samsung32.irtest @@ -0,0 +1,535 @@ +Filetype: IR tests file +Version: 1 +# +name: decoder_input1 +type: raw +data: 3129767 4513 4483 565 530 586 1670 563 1664 588 1666 566 530 586 535 560 535 591 531 565 531 585 1669 563 1666 587 1640 593 531 566 530 587 536 559 562 564 531 585 537 558 1670 562 1665 587 534 561 534 592 530 566 529 587 1668 564 1664 589 533 563 533 594 1661 560 1667 565 1661 591 1664 558 46325 4517 4480 558 1668 595 679127 4511 4485 562 532 584 1671 561 1666 587 1668 564 532 585 537 559 537 589 533 562 533 593 1661 561 1667 586 1642 590 532 563 531 585 537 559 564 563 1666 567 528 588 535 613 483 593 530 586 536 559 536 590 1637 584 537 558 1669 594 1661 561 1667 586 1642 591 1664 559 1670 583 534 567 46429 4515 4480 558 1671 593 618571 4508 4488 560 561 566 1663 559 1667 583 1670 562 534 582 540 565 531 587 536 560 536 590 1664 558 1670 583 1644 588 535 561 534 592 530 566 557 610 1616 616 479 585 537 558 537 589 534 584 539 567 529 587 534 561 534 592 1663 559 1668 564 1664 588 1666 566 1661 581 1646 585 1669 563 46106 4511 4485 563 1664 589 514897 4514 4482 556 564 614 1616 565 1664 589 1666 557 538 588 534 562 534 592 529 566 529 587 1667 565 1663 590 1638 584 538 568 527 590 534 562 562 566 530 587 1642 590 532 563 530 586 537 589 533 563 533 583 539 566 1661 561 561 566 1663 559 1668 584 1671 563 1666 556 1671 591 1663 559 46210 4508 4488 560 1668 585 683922 4509 4487 561 560 565 1662 559 1669 585 1670 562 534 583 540 566 529 586 535 560 535 591 1663 559 1669 584 1644 588 534 561 533 593 529 556 567 561 1668 564 1664 590 534 563 532 584 538 557 537 589 534 562 534 593 530 566 555 561 1667 564 1662 589 1665 557 1671 581 1647 586 1669 564 46686 4514 4481 556 1672 592 1088255 4514 4481 557 564 562 1667 565 1663 591 1665 558 538 590 533 564 532 583 539 567 528 588 1666 566 1663 580 1648 585 537 559 537 589 533 562 560 618 478 589 535 562 1667 565 1662 588 531 565 531 585 537 558 536 590 1666 566 1661 592 530 566 530 586 1669 564 1664 558 1669 594 1662 560 46291 4510 4485 563 1663 589 97349 4510 4487 561 1666 586 97560 4513 4482 566 1662 591 97123 4510 4485 563 1664 588 97605 4508 4487 561 1666 586 97371 4518 4478 560 1668 595 97514 4518 4478 560 1667 586 97014 4515 4480 568 1660 593 96719 4516 4481 567 1660 593 97528 4515 4480 568 1659 593 97453 4510 4485 563 1665 587 97351 4518 4477 561 1668 585 97216 4511 4484 564 1664 589 97708 4518 4477 561 1667 586 96718 4516 4479 559 1669 594 97070 4515 4480 568 1660 593 97500 4511 4484 564 1662 590 97425 4515 4481 567 1660 593 97025 4515 4482 566 1660 592 96796 4509 4487 561 1666 587 97399 4512 4484 565 1662 591 97486 4516 4480 567 1658 594 97425 4515 4481 567 1659 593 97511 4510 4485 563 1664 650 96969 4511 4485 562 1665 588 97243 4512 4484 564 1663 590 97031 4519 4478 560 1666 586 97548 4514 4482 566 1661 591 97302 4515 4480 568 1659 593 97726 4510 4486 562 1665 588 97396 4514 4482 566 1661 592 97301 4515 4480 568 1661 593 97453 4518 4477 560 1667 585 97430 4518 4477 561 1665 587 97521 4511 4484 564 1664 589 97182 4512 4484 564 1663 590 97760 4516 4479 559 1668 595 97268 4516 4479 559 1668 595 97243 4512 4485 563 1663 589 97695 4510 4486 562 1664 588 374205 4513 4483 565 530 586 1669 564 1665 589 1667 567 529 587 535 560 535 591 531 565 530 585 1669 563 1664 588 1639 593 529 566 529 587 536 560 563 565 532 585 537 560 1669 563 1664 587 534 561 534 592 529 566 529 586 1668 564 1663 589 532 563 534 593 1661 562 1666 566 1662 591 1664 558 149343 4512 4483 565 530 586 1669 563 1664 588 1667 565 530 586 536 560 536 590 532 563 531 586 1670 563 1666 567 1660 592 530 565 529 586 537 558 563 563 532 584 538 568 1661 561 1665 587 535 560 535 592 532 565 531 587 1669 563 1665 587 534 561 534 592 1663 559 1668 564 1662 590 1666 566 116399 4514 4482 566 531 587 1669 564 1664 589 1666 566 529 587 535 561 535 592 531 565 529 587 1668 564 1664 558 1670 595 529 566 528 589 535 560 562 565 531 585 536 559 1668 564 1664 589 534 561 533 593 530 565 528 588 1668 564 1665 590 533 564 532 594 1661 561 1666 566 1661 592 1663 558 121946 4517 4478 559 537 590 1664 568 1660 593 1661 560 536 590 531 564 531 585 537 559 536 590 1665 568 1661 561 1666 587 537 559 529 591 531 564 558 558 537 588 533 562 1665 567 1659 593 530 565 529 587 536 561 535 592 1664 559 1671 593 530 566 528 587 1667 565 1662 558 1668 595 1660 561 46509 4516 4479 558 1668 594 88785 4512 4484 564 530 585 1669 563 1664 588 1666 566 530 587 536 560 535 592 532 565 531 585 1669 563 1665 557 1669 594 530 566 530 586 535 560 562 564 530 585 537 558 1669 563 1664 589 535 561 534 593 529 566 529 586 1668 564 1664 589 533 562 532 594 1661 561 1666 565 1662 591 1665 558 289651 4512 4483 564 531 586 1669 563 1665 588 1667 565 529 587 536 560 536 590 531 563 531 584 1670 562 1666 556 1671 592 529 566 531 586 536 561 562 564 532 585 537 558 1669 563 1665 588 535 561 536 590 530 565 531 585 1669 563 1664 587 534 561 533 593 1662 561 1669 564 1663 590 1665 567 46302 4509 4487 561 1667 585 97097 4513 4483 565 529 587 1668 564 1663 589 1666 567 529 587 536 560 535 591 530 565 529 587 1669 563 1664 558 1669 594 529 566 527 587 535 561 561 563 530 586 537 560 1669 563 1663 589 534 561 532 594 529 566 528 587 1668 564 1663 589 532 563 532 594 1660 561 1667 566 1661 592 1663 558 46311 4510 4485 562 1665 589 99001 4514 4481 566 528 587 1667 565 1662 589 1664 568 528 588 535 561 535 593 529 567 528 589 1668 564 1663 559 1668 595 528 567 527 589 534 562 561 565 530 586 536 560 1668 564 1663 590 533 563 532 595 524 567 527 588 1667 565 1662 590 532 563 531 595 1659 562 1666 566 1661 593 1664 559 300259 4514 4482 556 565 561 1668 564 1663 589 1664 556 539 588 535 561 535 643 478 568 530 587 1668 564 1664 589 1636 594 529 567 528 588 534 561 561 565 1662 560 536 590 532 564 531 586 537 589 532 564 533 584 538 568 528 588 1667 565 1662 560 1669 584 1670 562 1666 587 1641 591 1664 559 46271 4561 4435 562 1666 586 81421 4514 4482 556 565 561 1667 565 1662 589 1664 558 538 588 534 562 534 593 530 567 530 587 1669 564 1663 589 1637 594 529 567 528 588 534 561 560 566 1663 559 535 591 531 565 530 587 538 589 533 563 533 583 539 567 529 587 1667 565 1662 560 1669 584 1669 563 1666 587 1640 592 1663 560 46296 4516 4480 558 1669 594 80690 4508 4489 560 561 565 1663 558 1670 593 1660 561 534 592 530 565 530 586 537 560 536 591 1664 558 1670 583 1644 587 535 560 534 592 530 566 556 559 1669 563 532 584 538 558 537 588 534 582 540 567 530 588 535 562 535 591 1663 559 1669 564 1665 588 1666 566 1662 560 1668 585 1669 563 136483 4511 4485 563 531 585 1671 561 1666 587 1668 564 531 585 536 559 537 589 532 563 532 584 1670 562 1666 587 1642 591 531 566 531 585 536 559 563 563 1665 567 528 588 535 561 534 593 529 567 556 560 535 591 530 565 531 585 1670 563 1665 568 1660 593 1662 560 1668 564 1663 590 1666 566 129038 4511 4484 564 533 583 1670 562 1666 587 1668 565 532 586 537 559 536 591 532 564 532 594 1660 562 1666 566 1660 593 531 565 530 586 537 558 563 563 1664 568 528 589 535 562 533 595 530 567 556 560 535 591 531 565 531 584 1669 563 1664 567 1661 592 1662 559 1668 564 1663 590 1666 566 46187 4511 4486 562 1665 589 110663 4517 4478 558 536 590 1665 568 1660 593 1661 560 536 590 531 564 531 584 537 558 536 590 1665 567 1661 561 1666 587 536 560 535 591 532 564 559 557 1670 562 532 594 529 567 528 649 473 561 561 565 531 585 536 559 536 589 1665 567 1660 562 1666 587 1668 564 1663 558 1669 594 1661 561 143736 4517 4479 559 536 591 1664 558 1670 593 1661 559 536 590 531 564 531 585 536 559 537 589 1665 567 1661 561 1666 587 536 560 536 590 530 564 557 558 1669 562 533 593 528 568 530 586 534 561 560 566 530 586 536 560 536 591 1664 558 1671 562 1666 587 1667 565 1663 559 1668 594 1660 562 46234 4514 4482 566 1661 591 120661 4564 4432 565 530 586 1669 563 1665 587 1666 566 531 585 536 559 536 591 532 564 532 586 1670 563 1666 557 1666 592 530 565 530 586 536 560 562 563 1664 558 538 588 533 562 533 593 528 558 565 561 534 582 541 566 530 586 1670 563 1664 567 1660 593 1662 560 1668 564 1663 590 1665 567 46472 4513 4484 564 1664 588 125301 4511 4484 564 532 584 1670 562 1666 587 1668 565 531 586 537 560 537 591 532 565 533 584 1671 562 1666 566 1661 591 530 565 532 584 536 559 562 564 1665 567 529 587 534 563 535 593 529 568 556 561 535 592 531 565 531 585 1669 563 1665 567 1660 593 1663 559 1668 564 1664 589 1666 567 200253 4517 4479 558 562 615 1613 558 1670 592 1661 560 536 591 531 616 480 585 537 559 537 641 1613 568 1661 582 1646 586 536 559 535 591 532 564 558 558 1670 562 533 592 530 566 529 588 536 581 542 617 479 587 537 560 536 590 1665 557 1670 562 1666 587 1668 564 1664 558 1669 593 1662 561 46230 4570 4426 561 1667 586 115418 4514 4483 565 557 561 1669 563 1664 589 1666 566 529 587 534 561 534 592 530 566 530 586 1668 564 1664 589 1639 594 529 567 528 587 534 561 561 565 1663 559 535 590 532 563 532 584 +# +name: decoder_expected1 +type: parsed_array +count: 78 +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: false +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 81 00 00 00 +repeat: false +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 81 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 01 00 00 00 +repeat: false +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 01 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 02 00 00 00 +repeat: false +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 02 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 03 00 00 00 +repeat: false +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 03 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: false +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: false +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: false +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: false +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: false +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: false +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: false +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: false +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 0C 00 00 00 +repeat: false +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 01 00 00 00 +repeat: false +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 01 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 01 00 00 00 +repeat: false +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 01 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 01 00 00 00 +repeat: false +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 01 00 00 00 +repeat: false +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 01 00 00 00 +repeat: false +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 01 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 01 00 00 00 +repeat: false +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 01 00 00 00 +repeat: false +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 01 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 01 00 00 00 +repeat: false +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 01 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 01 00 00 00 +repeat: false +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 01 00 00 00 +repeat: false +# +protocol: Samsung32 +address: 0E 00 00 00 +command: 01 00 00 00 +repeat: true +# +name: encoder_decoder_input1 +type: parsed_array +count: 26 +# +protocol: Samsung32 +address: 00 00 00 00 +command: 00 00 00 00 +repeat: false +# +protocol: Samsung32 +address: 01 00 00 00 +command: 00 00 00 00 +repeat: false +# +protocol: Samsung32 +address: 01 00 00 00 +command: 80 00 00 00 +repeat: false +# +protocol: Samsung32 +address: 00 00 00 00 +command: 80 00 00 00 +repeat: false +# +protocol: Samsung32 +address: 00 00 00 00 +command: 00 00 00 00 +repeat: false +# +protocol: Samsung32 +address: 00 00 00 00 +command: 00 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 00 00 00 00 +command: 00 00 00 00 +repeat: false +# +protocol: Samsung32 +address: 00 00 00 00 +command: 00 00 00 00 +repeat: true +# +protocol: Samsung32 +address: FF 00 00 00 +command: FF 00 00 00 +repeat: false +# +protocol: Samsung32 +address: FE 00 00 00 +command: FF 00 00 00 +repeat: false +# +protocol: Samsung32 +address: FE 00 00 00 +command: 7F 00 00 00 +repeat: false +# +protocol: Samsung32 +address: FF 00 00 00 +command: 7F 00 00 00 +repeat: false +# +protocol: Samsung32 +address: FF 00 00 00 +command: FF 00 00 00 +repeat: false +# +protocol: Samsung32 +address: FF 00 00 00 +command: FF 00 00 00 +repeat: true +# +protocol: Samsung32 +address: AA 00 00 00 +command: 55 00 00 00 +repeat: false +# +protocol: Samsung32 +address: 55 00 00 00 +command: AA 00 00 00 +repeat: false +# +protocol: Samsung32 +address: 55 00 00 00 +command: 55 00 00 00 +repeat: false +# +protocol: Samsung32 +address: AA 00 00 00 +command: AA 00 00 00 +repeat: false +# +protocol: Samsung32 +address: AA 00 00 00 +command: AA 00 00 00 +repeat: true +# +protocol: Samsung32 +address: AA 00 00 00 +command: AA 00 00 00 +repeat: false +# +protocol: Samsung32 +address: AA 00 00 00 +command: AA 00 00 00 +repeat: true +# +protocol: Samsung32 +address: AA 00 00 00 +command: AA 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 55 00 00 00 +command: 55 00 00 00 +repeat: false +# +protocol: Samsung32 +address: 55 00 00 00 +command: 55 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 55 00 00 00 +command: 55 00 00 00 +repeat: true +# +protocol: Samsung32 +address: 55 00 00 00 +command: 55 00 00 00 +repeat: true +# diff --git a/assets/unit_tests/infrared/test_sirc.irtest b/assets/unit_tests/infrared/test_sirc.irtest new file mode 100644 index 00000000..e3fcf5fc --- /dev/null +++ b/assets/unit_tests/infrared/test_sirc.irtest @@ -0,0 +1,1060 @@ +Filetype: IR tests file +Version: 1 +# +name: decoder_input1 +type: raw +data: 1000000 2420 608 1194 608 596 604 1198 603 591 610 1192 609 596 605 599 601 593 607 597 604 590 610 594 606 1196 25957 2426 603 1199 603 591 610 1192 610 594 606 1196 606 599 603 591 609 595 606 598 602 592 609 596 605 1197 25960 2423 606 1196 606 599 602 1200 602 592 609 1193 609 596 606 599 602 592 609 595 605 600 601 593 608 1194 1000000 2422 607 1195 607 598 603 1199 604 590 610 1192 610 594 606 598 603 591 609 595 605 600 601 593 607 1195 25955 2418 610 1192 610 594 606 1196 606 599 602 1200 602 592 608 596 604 590 611 594 607 597 603 591 609 1193 25959 2424 604 1198 604 590 610 1192 610 594 606 1196 605 600 601 593 608 597 603 591 610 595 606 598 602 1200 1000000 2424 605 599 601 593 607 597 603 591 610 594 606 1196 606 1196 605 600 601 593 608 597 604 590 611 1191 26586 2425 604 590 611 593 607 598 603 591 610 595 606 1196 606 1196 606 599 602 592 608 596 604 590 611 1191 26586 2424 604 590 611 593 607 598 603 591 609 595 605 1197 605 1197 604 590 611 593 607 597 603 591 610 1192 1000000 2424 604 1198 604 590 611 1191 610 594 606 598 603 1199 602 1200 602 592 609 595 605 600 601 593 608 1194 25386 2419 610 1192 610 594 606 1196 607 597 603 591 610 1192 609 1193 610 594 606 598 602 592 609 595 605 1197 25385 2421 608 1194 608 596 605 1197 605 599 601 593 608 1194 608 1194 608 596 605 589 611 594 607 597 604 1198 1000000 2426 603 1199 602 1200 602 1200 602 592 608 1194 608 596 604 590 611 594 607 597 603 591 610 594 606 1196 605 600 601 593 608 596 604 590 610 594 607 1195 606 598 603 591 15078 2419 610 1192 610 1192 610 1192 610 594 606 1196 605 600 601 593 608 597 604 590 610 595 606 598 602 1200 602 592 608 597 604 590 611 594 607 597 603 1199 603 591 609 595 15075 2422 607 1195 607 1195 607 1195 607 597 604 1198 603 591 610 594 606 598 603 591 609 595 605 600 601 1191 611 594 607 597 603 591 610 594 606 598 602 1200 602 592 608 596 1000000 2422 607 1195 606 599 602 592 608 596 604 590 610 1192 610 594 606 599 602 592 608 596 604 590 610 1192 26585 2426 602 1200 602 592 608 596 604 590 611 594 607 1195 607 598 603 591 610 594 606 598 603 591 609 1193 26586 2425 604 1198 603 591 610 594 606 598 602 592 609 1193 608 597 605 600 601 593 607 597 604 590 610 1192 1000000 2418 610 594 606 598 603 1199 603 1199 603 1199 603 1199 603 1199 603 591 610 1192 610 594 606 1196 606 1196 606 1196 606 598 602 592 609 1193 609 1193 609 1193 609 595 605 599 11557 2418 611 594 607 598 603 1199 603 1199 603 1199 602 1200 602 1200 601 593 608 1194 607 597 604 1198 603 1199 603 1199 602 592 608 596 604 1198 603 1199 603 1199 603 591 609 595 11561 2424 604 590 610 594 607 1195 606 1196 606 1196 606 1196 606 1196 605 600 601 1191 611 594 607 1195 607 1195 607 1195 607 597 603 591 610 1192 610 1192 610 1192 610 594 606 598 1000000 2424 604 590 611 594 607 1195 607 1195 607 1195 607 1195 607 1195 606 598 603 1199 602 592 609 1193 608 1194 608 1194 608 596 604 590 611 1191 611 1191 611 1191 611 594 607 598 11559 2427 602 592 608 596 605 1197 604 1198 604 1198 604 1198 604 1198 604 590 610 1192 610 595 606 1196 606 1196 606 1196 606 599 603 591 609 1193 609 1193 609 1193 608 597 605 589 11567 2418 610 595 607 597 603 1199 603 1199 602 1200 602 1200 601 1201 601 593 608 1194 607 598 603 1199 603 1199 603 1199 603 591 609 595 605 1197 605 1197 605 1197 604 590 611 594 1000000 2421 608 597 604 590 610 1192 610 1192 609 1193 609 1193 609 1193 608 596 605 1197 604 590 610 1192 611 1191 610 1192 610 594 606 598 603 1199 603 1199 602 1200 602 592 608 596 11561 2424 604 590 610 594 606 1196 606 1196 606 1196 606 1196 605 1197 605 600 601 1201 601 593 607 1195 607 1195 606 1196 606 598 602 592 608 1194 608 1194 607 1195 607 597 603 591 11564 2421 607 597 604 590 610 1192 610 1192 610 1192 610 1192 610 1192 609 595 606 1196 606 598 602 1200 601 1201 601 1201 601 593 607 598 603 1199 603 1199 602 1200 602 592 608 596 1000000 2420 609 595 606 598 602 1200 602 1200 602 1200 602 1200 602 1200 602 592 608 1194 608 596 604 1198 603 1199 603 1199 603 591 610 594 606 1196 606 1196 606 1196 606 598 602 592 11565 2420 609 595 605 600 601 1201 601 1201 601 1201 601 1201 601 1201 601 593 607 1195 607 597 603 1199 603 1199 603 1199 603 591 609 595 605 1197 605 1197 605 1197 605 599 601 593 11563 2422 607 597 603 591 609 1193 609 1193 608 1194 608 1194 608 1194 582 623 603 1199 603 591 610 1202 599 1203 599 1203 599 595 581 623 577 1225 601 1201 601 1201 601 593 582 623 1000000 2425 602 1200 602 1200 602 592 608 1194 608 1194 607 1195 607 1195 607 597 603 1199 602 592 609 1193 608 1194 608 1194 607 597 603 601 575 1227 599 1203 599 1203 573 621 580 625 10931 2426 578 1224 578 1224 578 616 585 1217 585 1217 585 1217 585 1217 585 620 580 1222 580 624 577 1225 577 1225 577 1225 577 617 583 622 580 1222 580 1222 579 1223 579 625 576 618 10936 2421 583 1219 583 1219 582 622 579 1223 578 1224 578 1224 578 1224 578 616 584 1218 584 621 580 1222 579 1223 579 1223 579 625 576 618 583 1219 582 1220 582 1220 582 622 578 616 1000000 2419 584 620 580 1222 580 624 576 1226 576 1226 576 1226 576 1226 576 618 582 1220 582 622 579 1223 578 1224 579 1223 578 616 585 619 581 1221 581 1221 581 1221 580 624 576 618 11563 2422 582 622 579 1223 578 616 585 1217 585 1217 584 1218 584 1218 583 622 579 1223 579 625 575 1216 585 1217 585 1217 585 619 581 623 577 1225 577 1225 577 1225 576 618 583 621 11558 2427 577 617 584 1218 583 621 579 1223 579 1223 578 1224 578 1224 578 647 553 1249 553 651 549 1253 548 1254 549 1253 549 645 555 649 551 1251 551 1251 551 1251 550 654 546 648 1000000 2456 548 646 554 650 551 653 547 1255 547 1255 547 1255 547 1255 547 647 554 1248 554 650 551 1251 551 1251 551 1251 551 653 547 647 554 1248 554 1248 554 1248 553 651 550 644 12112 2449 555 649 551 654 547 647 554 1248 554 1248 553 1249 553 1249 553 651 549 1253 549 645 555 1247 555 1247 555 1247 554 650 550 655 547 1244 557 1224 578 1224 579 615 585 619 12139 2423 580 624 576 618 582 622 578 1224 578 1224 578 1224 578 1224 578 616 584 1218 584 620 580 1222 580 1222 581 1221 580 624 577 617 584 1218 584 1218 584 1218 584 620 581 623 1000000 2422 582 1220 581 623 578 616 584 1218 584 1218 584 1218 584 1218 584 620 580 1222 580 624 576 1226 577 1225 576 1226 576 618 583 622 579 1223 578 1224 577 1225 577 617 585 619 11559 2426 577 1225 577 617 583 621 579 1223 579 1223 578 1224 578 1224 578 616 584 1218 584 620 580 1222 580 1222 579 1223 579 625 575 650 550 1252 550 1252 549 1253 549 645 556 648 11531 2453 549 1253 548 646 555 649 551 1251 551 1251 550 1252 549 1253 549 645 556 1246 555 649 552 1219 582 1220 582 1220 582 622 578 616 585 1217 584 1218 584 1218 584 620 581 623 1000000 2428 576 618 582 1220 583 622 579 1223 578 1224 578 1224 578 1224 578 616 585 1217 585 619 582 1220 582 1220 582 1220 582 622 578 616 585 1217 585 1217 584 1218 584 620 581 623 11557 2427 577 617 584 1218 583 621 580 1222 580 1222 580 1222 580 1222 580 624 576 1246 555 649 552 1250 552 1250 551 1251 551 653 548 646 554 1248 555 1247 555 1247 555 649 551 653 11528 2447 556 648 552 1250 552 653 548 1254 548 1254 547 1245 557 1245 557 647 553 1249 552 652 549 1253 548 1254 548 1254 548 646 555 649 551 1251 551 1251 551 1251 551 643 557 647 1000000 2418 610 594 606 598 603 1199 603 1199 602 1200 602 1200 602 1200 602 592 608 1194 608 596 604 1198 604 1198 604 1198 603 591 610 594 606 1196 606 1196 605 1197 605 599 601 593 11563 2422 606 598 602 592 608 1194 608 1194 608 1194 607 1195 607 1195 607 597 603 1199 603 591 609 1193 609 1193 609 1193 608 596 605 599 601 1201 600 1191 611 1191 611 593 606 598 11558 2427 601 593 607 597 603 1199 603 1199 603 1199 602 1200 602 1200 601 593 607 1195 607 597 603 1199 603 1199 602 1200 602 592 608 596 604 1198 604 1198 604 1198 603 591 609 595 1000000 2424 605 1197 604 600 600 1191 610 1192 610 1192 610 1192 609 1193 609 595 605 1197 606 598 602 1200 602 1200 601 1201 601 593 607 597 603 1199 603 1199 603 1199 603 591 609 595 10937 2420 609 1193 609 595 605 1197 605 1197 605 1197 605 1197 605 1197 605 600 601 1201 601 593 608 1194 608 1194 608 1194 609 595 605 599 601 1201 601 1201 601 1201 601 593 608 596 10936 2420 608 1194 608 596 604 1198 605 1197 605 1197 605 1197 605 1197 605 600 601 1201 601 593 607 1195 608 1194 608 1194 608 596 604 600 600 1202 601 1201 601 1201 601 593 607 597 1000000 2420 609 1193 608 1194 608 596 579 625 600 1202 600 1202 600 1202 600 594 607 1195 607 597 603 1199 603 1199 602 1200 602 592 609 595 605 1197 605 1197 605 1197 604 600 600 594 11561 2423 605 1197 605 1197 605 599 601 593 607 1195 607 1195 607 1195 607 597 604 1198 603 591 610 1192 610 1192 610 1192 610 594 607 597 603 1199 603 1199 603 1199 603 591 610 594 11563 2421 608 1194 608 1194 608 596 605 599 601 1201 602 1200 602 1200 602 592 609 1193 609 595 605 1197 606 1196 606 1196 606 598 602 592 609 1193 609 1193 610 1192 610 594 607 597 1000000 2428 576 1226 600 1192 610 594 606 598 602 1200 602 592 609 595 605 600 601 593 607 597 603 591 609 1193 25955 2427 601 1190 610 1192 610 594 606 598 602 1200 601 593 607 597 603 591 610 594 606 598 602 592 608 1194 25957 2425 604 1198 603 1199 603 591 609 595 605 1197 605 599 601 593 607 598 603 591 610 594 606 598 602 1200 25952 2420 608 1194 608 1194 608 596 604 601 600 1191 610 594 606 598 603 591 609 595 605 599 601 593 608 1194 1000000 2421 607 597 603 1199 603 591 610 594 606 1196 605 600 576 618 583 621 604 601 575 619 606 598 603 1199 26576 2424 605 600 576 1226 601 593 608 596 604 1198 604 600 600 594 607 597 603 591 609 595 606 598 602 1200 26579 2420 583 621 605 1197 604 600 601 593 607 1195 607 597 604 590 610 594 607 597 603 591 610 594 606 1196 26584 2426 603 591 609 1193 609 595 605 599 601 1201 601 593 607 597 603 591 610 594 606 598 603 591 609 1193 1000000 2418 610 594 606 598 602 592 609 595 605 1197 605 1197 605 600 602 592 608 1194 608 596 605 1197 605 1197 604 1198 604 600 601 593 607 1195 607 1195 607 1195 607 597 603 591 13368 2419 610 594 606 598 602 592 608 596 605 1197 604 1198 604 600 601 593 607 1195 607 597 603 1199 603 1199 603 1199 603 591 609 595 605 1197 605 1197 605 1197 604 601 600 594 13362 2425 604 601 600 594 607 597 603 591 610 1192 610 1192 610 594 606 598 603 1199 602 592 609 1193 609 1193 608 1194 608 596 604 601 600 1191 610 1192 610 1192 610 594 607 597 1000000 2427 601 1201 601 593 582 623 603 1199 578 1224 603 1199 577 617 584 620 605 1197 605 600 601 1201 601 1201 601 1201 601 593 582 622 603 1199 603 1199 578 1224 603 591 610 594 12139 2423 605 1197 605 600 601 593 608 1194 608 1194 607 1195 607 597 604 600 601 1201 601 593 607 1195 608 1194 608 1194 583 622 604 601 600 1202 575 1227 601 1201 576 618 607 597 12137 2424 604 1198 604 590 610 594 607 1195 607 1195 607 1195 607 597 604 601 600 1202 600 594 607 1195 606 1196 581 1221 607 597 603 591 610 1202 600 1202 576 1226 602 592 609 595 1000000 2422 607 1195 607 597 603 591 585 619 606 1196 606 1196 581 624 577 617 609 1193 584 621 605 1197 604 1198 604 1198 604 590 610 595 581 1221 605 1197 605 1197 605 599 601 593 12763 2427 603 1199 603 591 609 595 605 599 577 1225 602 1200 601 593 583 622 604 1198 604 590 610 1192 610 1192 610 1192 610 594 606 598 603 1199 603 1199 603 1199 603 591 610 594 12763 2427 602 1200 601 593 608 596 604 600 600 1202 601 1201 601 593 607 597 604 1198 604 590 610 1192 610 1192 611 1191 610 594 607 598 578 1224 603 1199 603 1199 603 591 610 594 1000000 2422 607 597 603 591 610 1192 610 594 606 1196 580 1222 605 600 601 593 583 1219 608 596 579 1223 604 1198 604 1198 604 590 610 594 606 1196 606 1196 606 1196 606 599 602 592 12765 2425 603 591 610 594 606 1196 606 598 602 1200 601 1201 601 593 582 623 604 1198 604 590 610 1192 610 1192 609 1193 609 596 605 599 601 1201 601 1201 601 1201 600 594 607 597 12758 2421 607 597 603 591 609 1193 609 595 605 1197 605 1197 605 599 601 593 607 1195 607 597 603 1199 603 1199 603 1199 603 591 609 595 580 1222 605 1197 605 1197 605 600 600 594 1000000 2422 580 625 601 1201 601 593 608 596 604 1198 604 1198 604 600 600 594 607 1195 607 597 603 1199 603 1199 603 1199 578 616 609 595 606 1196 606 1196 606 1196 581 624 602 592 12766 2424 605 599 601 1201 601 593 608 596 604 1198 604 1198 579 625 601 593 608 1194 608 596 604 1198 580 1222 605 1197 605 599 602 592 608 1194 609 1193 609 1193 609 596 605 599 12759 2420 608 597 604 1198 604 590 610 594 606 1196 606 1196 606 598 602 592 608 1194 607 597 604 1198 603 1199 603 1199 602 592 609 595 605 1197 605 1197 605 1197 604 600 601 593 1000000 2429 600 1202 575 1227 599 595 606 598 602 1200 602 1200 602 592 609 595 605 1197 605 599 601 1201 601 1201 601 1201 601 593 607 597 603 1199 603 1199 603 1199 603 591 609 595 12136 2425 603 1199 603 1199 603 591 609 595 605 1197 605 1197 605 599 601 593 608 1194 608 596 604 1198 604 1198 603 1199 603 591 609 595 606 1196 606 1196 605 1197 605 599 601 593 12137 2424 604 1198 603 1199 603 591 609 595 606 1196 605 1197 605 599 601 593 607 1195 607 597 603 1199 603 1199 603 1199 602 592 609 595 605 1197 605 1197 604 1198 604 600 600 594 1000000 2429 574 1228 573 1229 573 1229 573 1229 573 621 581 624 577 617 583 622 580 1222 579 625 576 1226 577 1225 576 1226 577 617 584 620 581 1221 580 1222 579 1223 579 625 577 617 12142 2419 584 1218 584 1218 583 1219 583 1219 582 623 578 616 585 619 581 623 578 1224 577 617 584 1218 584 1218 584 1218 584 620 580 624 576 1226 575 1227 500 1353 523 620 582 622 12134 2427 576 1226 576 1226 576 1226 576 1226 576 618 583 622 579 625 576 618 583 1219 583 673 527 1223 579 1223 579 1223 579 625 576 618 582 1220 582 1220 582 1220 582 622 578 616 12140 2421 582 1220 581 1221 581 1221 580 1222 580 624 576 618 582 622 578 616 585 1217 584 620 581 1221 580 1222 580 1222 580 624 576 618 582 1220 582 1220 582 1220 582 623 578 616 1000000 2419 584 672 528 625 577 617 583 1219 582 1220 581 1221 582 622 578 616 585 1217 583 621 580 1222 580 1222 580 1222 580 624 576 618 583 1219 583 1219 582 1220 583 621 580 624 12732 2427 577 617 584 672 528 676 524 1226 576 1226 576 1226 576 618 583 621 579 1223 579 625 575 1227 575 1227 575 1227 575 671 529 675 526 1224 578 1224 578 1224 578 616 585 619 12738 2421 583 621 580 624 576 618 582 1220 582 1220 583 1219 583 621 579 625 576 1226 576 670 530 1220 582 1220 582 1220 581 624 577 617 584 1218 583 1219 583 1219 583 622 580 624 1000000 2430 599 1192 609 595 605 1197 580 624 601 1201 601 593 607 597 603 591 610 594 606 598 602 592 608 1194 25958 2423 605 1197 604 600 575 1227 600 594 606 1196 606 598 602 592 608 596 604 601 600 594 607 597 603 1199 25949 2422 607 1195 606 598 603 1199 602 592 608 1194 608 596 604 600 601 593 607 597 604 600 600 594 607 1195 25958 2423 606 1196 606 598 602 1200 602 592 608 1194 608 596 605 600 601 593 607 597 603 591 610 594 606 1196 25957 2425 604 1198 603 591 610 1192 610 594 606 1196 606 598 602 592 609 595 605 599 602 592 608 596 604 1198 25956 2426 604 1198 603 591 610 1192 610 594 606 1196 606 598 602 592 608 597 605 599 601 593 607 597 603 1199 25952 2420 609 1193 608 596 604 1198 604 590 610 1192 610 594 606 598 602 592 608 596 605 599 601 593 607 1195 1000000 2422 583 1219 608 596 605 1197 580 624 601 1201 601 593 608 596 604 600 601 593 607 597 604 590 610 1202 25955 2427 603 1199 603 591 609 1193 610 594 606 1196 607 597 603 591 609 595 606 598 602 592 609 595 605 1197 25957 2425 604 1198 604 590 610 1192 610 594 581 1221 606 598 602 592 608 596 605 599 601 593 607 597 604 1198 25954 2418 610 1192 610 594 606 1196 605 599 601 1201 601 593 608 596 604 590 610 594 606 598 603 591 609 1193 25958 2424 604 1198 604 590 610 1192 610 594 606 1196 606 598 602 592 609 595 605 600 601 593 607 597 603 1199 25953 2419 610 1192 609 595 605 1197 605 600 601 1201 600 594 607 597 603 591 609 595 605 599 601 593 608 1194 25954 2418 611 1191 610 594 606 1196 606 598 602 1200 602 592 608 596 604 601 600 594 607 597 603 591 609 1193 25958 2424 605 1197 605 599 601 1201 600 594 607 1195 607 597 603 591 609 596 605 599 602 592 608 596 605 1197 25954 2428 601 1190 610 594 607 1195 606 598 602 1200 602 592 608 596 604 590 610 594 606 598 603 591 609 1193 25960 2422 607 1195 606 598 602 1200 602 592 609 1193 609 595 605 599 601 593 607 597 604 590 610 594 606 1196 25957 2424 605 1197 604 600 600 1202 601 593 607 1195 607 597 603 591 610 594 606 598 603 591 609 595 606 1196 1000000 2421 608 1194 608 596 604 1198 604 601 575 1227 601 593 607 598 604 600 600 594 607 598 604 601 600 1202 25953 2419 609 1193 609 596 605 1197 605 600 601 1201 601 593 607 597 603 591 610 594 606 599 602 592 608 1194 25958 2424 605 1197 605 600 601 1201 600 594 607 1195 606 598 602 592 609 595 605 600 601 593 608 596 604 1198 1000000 2423 606 1196 606 598 602 1200 602 592 608 1194 608 597 604 590 610 594 607 597 603 591 610 594 606 1196 25958 2424 605 1197 604 600 601 1201 601 593 607 1195 607 597 604 590 610 595 607 597 603 591 610 594 607 1195 25961 2421 608 1194 608 596 605 1197 605 600 601 1201 601 593 607 597 603 591 610 594 606 598 602 592 609 1193 1000000 2429 601 1201 601 593 607 1195 608 596 604 1198 604 600 601 593 607 597 604 590 611 593 607 597 604 1198 25959 2422 607 1195 607 597 603 1199 603 591 609 1193 610 594 606 598 602 592 609 595 605 599 602 592 608 1194 25959 2421 608 1194 607 597 603 1199 603 591 610 1192 610 594 606 598 603 591 609 595 605 599 602 592 608 1194 25959 2422 608 1194 608 596 604 1198 604 590 611 1201 601 593 607 597 604 590 610 594 607 597 603 591 609 1193 25962 2418 610 1192 610 594 606 1196 607 597 603 1199 603 591 609 595 605 599 602 592 608 596 605 599 601 1201 1000000 2357 610 1183 592 1191 614 1179 595 1188 618 584 613 1180 593 588 613 1190 612 590 605 587 613 589 605 587 25398 2355 623 1180 591 1181 627 1186 589 1183 618 584 616 1187 587 584 614 1189 615 587 605 587 615 587 609 593 1000000 2383 609 1214 600 612 580 1213 608 614 583 1210 605 607 586 616 611 1192 599 613 608 614 579 613 615 607 26670 2387 601 1212 600 612 589 1214 603 609 586 1217 595 607 594 618 606 1187 602 610 609 613 588 614 610 612 1000000 2445 582 1221 603 548 602 1191 609 572 602 1191 609 542 607 544 631 1172 603 568 606 545 605 566 608 543 26263 2414 611 1192 607 544 606 1197 602 569 606 1197 602 539 611 540 635 1168 606 565 610 541 608 563 587 564 +# +name: decoder_expected1 +type: parsed_array +count: 121 +# +protocol: SIRC +address: 10 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 60 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 60 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 60 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 65 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 65 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 65 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 10 04 00 00 +command: 17 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 10 04 00 00 +command: 17 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 10 04 00 00 +command: 17 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 21 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 21 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 21 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 7C 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 7C 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 7C 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 7C 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 7C 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 7C 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 7C 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 7C 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 7C 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 7C 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 7C 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 7C 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 7B 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 7B 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 7B 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 7A 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 7A 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 7A 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 78 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 78 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 78 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 79 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 79 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 79 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 7A 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 7A 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 7A 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 7C 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 7C 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 7C 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 7D 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 7D 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 7D 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 73 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 73 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 73 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 13 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 13 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 13 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 13 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 12 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 12 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 12 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 12 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 30 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 30 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 30 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 39 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 39 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 39 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 31 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 31 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 31 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 34 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 34 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 34 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 32 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 32 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 32 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 33 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 33 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 33 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 0F 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 0F 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 0F 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 38 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 38 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 3A 07 00 00 +command: 38 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: SIRC +address: 10 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: SIRC +address: 01 00 00 00 +command: 2F 00 00 00 +repeat: false +# +protocol: SIRC +address: 01 00 00 00 +command: 2F 00 00 00 +repeat: false +# +protocol: SIRC +address: 01 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: SIRC +address: 01 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: SIRC +address: 01 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: SIRC +address: 01 00 00 00 +command: 15 00 00 00 +repeat: false +# +name: decoder_input2 +type: raw +data: 1000000 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 1000000 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 1000000 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 1000000 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 600 1000000 2400 600 1200 600 1200 600 1200 600 1200 600 1200 600 1200 600 1200 600 1200 600 1200 600 1200 600 1200 600 1200 1000000 2400 600 1200 600 600 1000000 2400 600 1200 600 1200 600 1200 600 1200 600 1200 600 1200 600 1200 600 1200 600 1200 600 1200 600 1200 600 1200 1000000 2400 600 1200 600 2400 600 1200 600 1200 600 1200 600 1200 600 1200 600 1200 600 1200 600 1200 600 1200 600 1200 600 1200 600 1200 1000000 2400 600 1200 600 600 1000000 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 1000000 2400 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 1000000 2400 600 1200 600 1200 600 600 600 600 600 1200 600 600 600 1200 600 1200 600 600 600 1200 600 1200 600 600 600 +# +name: decoder_expected2 +type: parsed_array +count: 9 +# +protocol: SIRC +address: 0A 00 00 00 +command: 55 00 00 00 +repeat: false +# +protocol: SIRC +address: 0A 00 00 00 +command: 55 00 00 00 +repeat: false +# +protocol: SIRC +address: 0A 00 00 00 +command: 55 00 00 00 +repeat: false +# +protocol: SIRC +address: 1F 00 00 00 +command: 7F 00 00 00 +repeat: false +# +protocol: SIRC +address: 1F 00 00 00 +command: 7F 00 00 00 +repeat: false +# +protocol: SIRC +address: 1F 00 00 00 +command: 7F 00 00 00 +repeat: false +# +protocol: SIRC +address: 0A 00 00 00 +command: 55 00 00 00 +repeat: false +# +protocol: SIRC +address: 00 00 00 00 +command: 00 00 00 00 +repeat: false +# +protocol: SIRC +address: 0D 00 00 00 +command: 53 00 00 00 +repeat: false +# +name: decoder_input3 +type: raw +data: 1000000 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 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 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 1000000 2400 600 1200 600 1200 600 600 600 600 600 1200 600 600 600 1200 600 1200 600 600 600 1200 600 1200 600 600 600 600 600 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 600 600 600 600 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 600 600 600 600 600 600 600 1000000 2400 600 1200 600 1200 600 600 600 600 600 1200 600 600 600 1200 600 1200 600 600 600 1200 600 1200 600 600 600 600 600 600 600 600 1000000 2400 600 1200 600 1200 600 600 600 600 600 1200 600 600 600 1200 600 1200 600 600 600 1200 600 1200 600 600 600 600 600 600 600 600 1000000 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 1000000 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 10000 2400 600 1200 600 1200 600 600 600 600 600 1200 600 600 600 600 600 1200 600 600 600 1200 600 1200 600 1200 600 1200 600 1200 600 1200 +# +name: decoder_expected3 +type: parsed_array +count: 11 +# +protocol: SIRC15 +address: 7D 00 00 00 +command: 53 00 00 00 +repeat: false +# +protocol: SIRC15 +address: 7D 00 00 00 +command: 53 00 00 00 +repeat: false +# +protocol: SIRC15 +address: 7D 00 00 00 +command: 53 00 00 00 +repeat: false +# +protocol: SIRC15 +address: 0D 00 00 00 +command: 53 00 00 00 +repeat: false +# +protocol: SIRC15 +address: 0D 00 00 00 +command: 53 00 00 00 +repeat: false +# +protocol: SIRC15 +address: 0D 00 00 00 +command: 53 00 00 00 +repeat: false +# +protocol: SIRC15 +address: 0D 00 00 00 +command: 53 00 00 00 +repeat: false +# +protocol: SIRC15 +address: 0D 00 00 00 +command: 53 00 00 00 +repeat: false +# +protocol: SIRC15 +address: 7D 00 00 00 +command: 53 00 00 00 +repeat: false +# +protocol: SIRC15 +address: 7D 00 00 00 +command: 53 00 00 00 +repeat: false +# +protocol: SIRC15 +address: FD 00 00 00 +command: 13 00 00 00 +repeat: false +# +name: decoder_input4 +type: raw +data: 1000000 2400 600 1200 600 1200 600 600 600 600 600 1200 600 600 600 1200 600 1200 600 600 600 1200 600 600 600 1200 600 1200 600 600 600 1200 600 1200 600 1200 600 1200 600 1200 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 600 600 1200 600 1200 600 600 600 1200 600 1200 600 1200 600 1200 600 1200 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 600 600 1200 600 1200 600 600 600 1200 600 1200 600 1200 600 1200 600 1200 600 600 1000000 2400 600 1200 600 1200 600 600 600 600 600 1200 600 600 600 1200 600 1200 600 600 600 1200 600 600 600 1200 600 1200 600 600 600 1200 600 1200 600 1200 600 1200 600 1200 600 600 1000000 2400 600 1200 600 1200 600 600 600 600 600 1200 600 600 600 1200 600 1200 600 600 600 1200 600 600 600 1200 600 1200 600 600 600 1200 600 1200 600 1200 600 1200 600 1200 600 600 1000000 2400 600 1200 600 1200 600 600 600 600 600 1200 600 600 600 1200 600 1200 600 600 600 1200 600 600 600 1200 600 1200 600 600 600 1200 600 1200 600 1200 600 1200 600 1200 600 600 +# +name: decoder_expected4 +type: parsed_array +count: 6 +# +protocol: SIRC20 +address: B5 0F 00 00 +command: 53 00 00 00 +repeat: false +# +protocol: SIRC20 +address: B5 0F 00 00 +command: 53 00 00 00 +repeat: false +# +protocol: SIRC20 +address: B5 0F 00 00 +command: 53 00 00 00 +repeat: false +# +protocol: SIRC20 +address: B5 0F 00 00 +command: 53 00 00 00 +repeat: false +# +protocol: SIRC20 +address: B5 0F 00 00 +command: 53 00 00 00 +repeat: false +# +protocol: SIRC20 +address: B5 0F 00 00 +command: 53 00 00 00 +repeat: false +# +name: decoder_input5 +type: raw +data: 1000000 2400 600 1200 600 1200 600 600 600 600 600 1200 600 600 600 1200 600 1200 600 600 600 1200 600 600 600 1200 600 1200 600 600 600 1200 600 1200 600 1200 600 1200 600 1200 600 600 1000000 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 1000000 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 1000000 2400 600 1200 600 1200 600 600 600 600 600 1200 600 600 600 1200 600 1200 600 600 600 1200 600 600 600 1200 600 1200 600 600 600 1200 600 1200 600 1200 600 1200 600 1200 600 600 1000000 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 1000000 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 10000 2400 600 1200 600 1200 600 600 600 600 600 1200 600 600 600 1200 600 1200 600 600 600 1200 600 600 600 1200 600 1200 600 600 600 1200 600 1200 600 1200 600 1200 600 1200 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 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 10000 2400 600 1200 600 1200 600 600 600 600 600 1200 600 600 600 1200 600 1200 600 600 600 1200 600 600 600 1200 600 1200 600 600 600 1200 600 1200 600 1200 600 1200 600 1200 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 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 10000 2400 600 1200 600 1200 600 600 600 600 600 1200 600 600 600 1200 600 1200 600 600 600 1200 600 600 600 1200 600 1200 600 600 600 1200 600 1200 600 1200 600 1200 600 1200 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 600 600 1200 600 1200 600 600 600 1200 600 1200 600 1200 600 1200 600 1200 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 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 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 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 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 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 10000 2400 600 1200 600 1200 600 600 600 600 600 1200 600 600 600 1200 600 1200 600 600 600 1200 600 600 600 1200 600 1200 600 600 600 1200 600 1200 600 1200 600 1200 600 1200 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 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 10000 2400 600 1200 600 1200 600 600 600 600 600 1200 600 600 600 1200 600 1200 600 600 600 1200 600 600 600 1200 600 1200 600 600 600 1200 600 1200 600 1200 600 1200 600 1200 600 600 +# +name: decoder_expected5 +type: parsed_array +count: 24 +# +protocol: SIRC20 +address: B5 0F 00 00 +command: 53 00 00 00 +repeat: false +# +protocol: SIRC15 +address: 7D 00 00 00 +command: 53 00 00 00 +repeat: false +# +protocol: SIRC +address: 0A 00 00 00 +command: 55 00 00 00 +repeat: false +# +protocol: SIRC20 +address: B5 0F 00 00 +command: 53 00 00 00 +repeat: false +# +protocol: SIRC15 +address: 7D 00 00 00 +command: 53 00 00 00 +repeat: false +# +protocol: SIRC +address: 0A 00 00 00 +command: 55 00 00 00 +repeat: false +# +protocol: SIRC20 +address: B5 0F 00 00 +command: 53 00 00 00 +repeat: false +# +protocol: SIRC15 +address: 7D 00 00 00 +command: 53 00 00 00 +repeat: false +# +protocol: SIRC +address: 0A 00 00 00 +command: 55 00 00 00 +repeat: false +# +protocol: SIRC20 +address: B5 0F 00 00 +command: 53 00 00 00 +repeat: false +# +protocol: SIRC15 +address: 7D 00 00 00 +command: 53 00 00 00 +repeat: false +# +protocol: SIRC +address: 0A 00 00 00 +command: 55 00 00 00 +repeat: false +# +protocol: SIRC20 +address: B5 0F 00 00 +command: 53 00 00 00 +repeat: false +# +protocol: SIRC20 +address: B5 0F 00 00 +command: 53 00 00 00 +repeat: false +# +protocol: SIRC15 +address: 7D 00 00 00 +command: 53 00 00 00 +repeat: false +# +protocol: SIRC15 +address: 7D 00 00 00 +command: 53 00 00 00 +repeat: false +# +protocol: SIRC +address: 0A 00 00 00 +command: 55 00 00 00 +repeat: false +# +protocol: SIRC +address: 0A 00 00 00 +command: 55 00 00 00 +repeat: false +# +protocol: SIRC +address: 0A 00 00 00 +command: 55 00 00 00 +repeat: false +# +protocol: SIRC15 +address: 7D 00 00 00 +command: 53 00 00 00 +repeat: false +# +protocol: SIRC20 +address: B5 0F 00 00 +command: 53 00 00 00 +repeat: false +# +protocol: SIRC +address: 0A 00 00 00 +command: 55 00 00 00 +repeat: false +# +protocol: SIRC15 +address: 7D 00 00 00 +command: 53 00 00 00 +repeat: false +# +protocol: SIRC20 +address: B5 0F 00 00 +command: 53 00 00 00 +repeat: false +# +name: encoder_input1 +type: parsed_array +count: 1 +# +protocol: SIRC +address: 0A 00 00 00 +command: 55 00 00 00 +repeat: false +# +name: encoder_expected1 +type: raw +data: +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 +# +name: encoder_input2 +type: parsed_array +count: 3 +# +protocol: SIRC15 +address: 7D 00 00 00 +command: 53 00 00 00 +repeat: false +# +protocol: SIRC15 +address: 7D 00 00 00 +command: 53 00 00 00 +repeat: true +# +protocol: SIRC15 +address: 7D 00 00 00 +command: 53 00 00 00 +repeat: true +# +name: encoder_expected2 +type: raw +data: +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 +# +name: encoder_decoder_input1 +type: parsed_array +count: 24 +# +protocol: SIRC20 +address: FF 1F 00 00 +command: 7F 00 00 00 +repeat: false +# +protocol: SIRC20 +address: FF 1F 00 00 +command: 7F 00 00 00 +repeat: true +# +protocol: SIRC20 +address: FF 1F 00 00 +command: 7F 00 00 00 +repeat: true +# +protocol: SIRC +address: 00 00 00 00 +command: 00 00 00 00 +repeat: false +# +protocol: SIRC +address: 00 00 00 00 +command: 00 00 00 00 +repeat: true +# +protocol: SIRC +address: 00 00 00 00 +command: 00 00 00 00 +repeat: true +# +protocol: SIRC +address: 1A 00 00 00 +command: 22 00 00 00 +repeat: false +# +protocol: SIRC +address: 1A 00 00 00 +command: 22 00 00 00 +repeat: true +# +protocol: SIRC +address: 1A 00 00 00 +command: 22 00 00 00 +repeat: true +# +protocol: SIRC +address: 17 00 00 00 +command: 0A 00 00 00 +repeat: false +# +protocol: SIRC15 +address: 7D 00 00 00 +command: 53 00 00 00 +repeat: false +# +protocol: SIRC15 +address: 7D 00 00 00 +command: 53 00 00 00 +repeat: true +# +protocol: SIRC15 +address: 7D 00 00 00 +command: 53 00 00 00 +repeat: true +# +protocol: SIRC15 +address: 71 00 00 00 +command: 00 00 00 00 +repeat: false +# +protocol: SIRC15 +address: 15 00 00 00 +command: 01 00 00 00 +repeat: false +# +protocol: SIRC15 +address: 01 00 00 00 +command: 15 00 00 00 +repeat: false +# +protocol: SIRC20 +address: AA 00 00 00 +command: 55 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 31 03 00 00 +command: 71 00 00 00 +repeat: false +# +protocol: SIRC +address: 00 00 00 00 +command: 00 00 00 00 +repeat: false +# +protocol: SIRC +address: 1F 00 00 00 +command: 7F 00 00 00 +repeat: false +# +protocol: SIRC15 +address: 00 00 00 00 +command: 00 00 00 00 +repeat: false +# +protocol: SIRC15 +address: FF 00 00 00 +command: 7F 00 00 00 +repeat: false +# +protocol: SIRC20 +address: 00 00 00 00 +command: 00 00 00 00 +repeat: false +# +protocol: SIRC20 +address: FF 1F 00 00 +command: 7F 00 00 00 +repeat: false +#