mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-05-21 04:33:10 +08:00
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:
+215
-155
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -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)
|
||||
|
||||
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user