lib/rc: Fix DSM2/DSMX guessing routine and DSM range checking (#18270)

* Add Orangerx test case

Co-authored-by: Chris Seto <chris.seto@bossanova.com>
This commit is contained in:
chris1seto
2022-04-13 14:29:08 -07:00
committed by GitHub
parent 93268a285d
commit 912962f109
4 changed files with 43875 additions and 159 deletions
+215 -155
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -50,7 +50,7 @@ __BEGIN_DECLS
#define DSM_FRAME_SIZE 16 /**< DSM frame size in bytes */
#define DSM_FRAME_CHANNELS 7 /**< Max supported DSM channels per frame */
#define DSM_MAX_CHANNEL_COUNT 18 /**< Max channel count of any DSM RC */
#define DSM_MAX_CHANNEL_COUNT 20 /**< Max channel count of any DSM RC */
#define DSM_BUFFER_SIZE (DSM_FRAME_SIZE + DSM_FRAME_SIZE / 2)
+10 -3
View File
@@ -36,6 +36,7 @@ private:
bool dsmTest10Ch();
bool dsmTest16Ch();
bool dsmTest22msDSMX16Ch();
bool dsmTestOrangeDsmx();
bool sbus2Test();
bool st24Test();
bool sumdTest();
@@ -48,6 +49,7 @@ bool RCTest::run_tests()
ut_run_test(dsmTest10Ch);
ut_run_test(dsmTest16Ch);
ut_run_test(dsmTest22msDSMX16Ch);
ut_run_test(dsmTestOrangeDsmx);
ut_run_test(sbus2Test);
ut_run_test(st24Test);
ut_run_test(sumdTest);
@@ -231,17 +233,22 @@ bool RCTest::ghstTest()
bool RCTest::dsmTest10Ch()
{
return dsmTest(TEST_DATA_PATH "dsm_x_data.txt", 10, 17, 1500);
return dsmTest(TEST_DATA_PATH "dsm_x_data.txt", 10, 2, 1500);
}
bool RCTest::dsmTest16Ch()
{
return dsmTest(TEST_DATA_PATH "dsm_x_dx9_data.txt", 16, 6, 1500);
return dsmTest(TEST_DATA_PATH "dsm_x_dx9_data.txt", 16, 1, 1500);
}
bool RCTest::dsmTest22msDSMX16Ch()
{
return dsmTest(TEST_DATA_PATH "dsm_x_dx9_px4_binding_data.txt", 16, 11, 1499);
return dsmTest(TEST_DATA_PATH "dsm_x_dx9_px4_binding_data.txt", 16, 1, 1499);
}
bool RCTest::dsmTestOrangeDsmx()
{
return dsmTest(TEST_DATA_PATH "orangerx_dsmx_12.txt", 12, 1, 1499);
}
bool RCTest::dsmTest(const char *filepath, unsigned expected_chancount, unsigned expected_dropcount, unsigned chan0)
File diff suppressed because it is too large Load Diff