From 0ae76aff32c43fda9c2339287837fc4ac4ecabd5 Mon Sep 17 00:00:00 2001 From: Larry Wang <wxiaodong@gmail.com> Date: Thu, 7 Sep 2017 22:09:53 -0700 Subject: [PATCH] updated to use rc driver from PX4, instead of from FC addons (#7798) * updated to use rc driver from PX4, instead of from FC addons * fixed format * update per comments * fix format * fix format * remove duplicated __PX4_QURT --- cmake/configs/qurt_sdflight_legacy.cmake | 3 ++- posix-configs/eagle/200qx/px4.config | 32 +----------------------- posix-configs/eagle/210qc/px4.config | 32 +----------------------- posix-configs/excelsior/px4.config | 2 +- src/drivers/spektrum_rc/spektrum_rc.cpp | 25 +++++++++++++++--- 5 files changed, 26 insertions(+), 68 deletions(-) diff --git a/cmake/configs/qurt_sdflight_legacy.cmake b/cmake/configs/qurt_sdflight_legacy.cmake index 25401b9d13..9a6eeb9aa3 100644 --- a/cmake/configs/qurt_sdflight_legacy.cmake +++ b/cmake/configs/qurt_sdflight_legacy.cmake @@ -70,12 +70,12 @@ set(config_module_list # drivers/gps drivers/pwm_out_rc_in + drivers/spektrum_rc drivers/qshell/qurt # # FC_ADDON drivers # - platforms/qurt/fc_addon/rc_receiver platforms/qurt/fc_addon/uart_esc # @@ -91,6 +91,7 @@ set(config_module_list lib/terrain_estimation lib/runway_takeoff lib/tailsitter_recovery + lib/rc lib/version lib/DriverFramework/framework lib/micro-CDR diff --git a/posix-configs/eagle/200qx/px4.config b/posix-configs/eagle/200qx/px4.config index e267b7f121..53a29d4eef 100644 --- a/posix-configs/eagle/200qx/px4.config +++ b/posix-configs/eagle/200qx/px4.config @@ -14,36 +14,6 @@ param set MC_ROLL_P 7.0 param set MC_ROLLRATE_P 0.08 param set MC_ROLLRATE_I 0.0 param set MC_ROLLRATE_D 0.001 -param set RC_MAP_THROTTLE 1 -param set RC_MAP_ROLL 2 -param set RC_MAP_PITCH 3 -param set RC_MAP_YAW 4 -param set RC_MAP_MODE_SW 5 -param set RC_MAP_POSCTL_SW 6 -param set RC1_MAX 1900 -param set RC1_MIN 1099 -param set RC1_TRIM 1099 -param set RC1_REV 1 -param set RC2_MAX 1900 -param set RC2_MIN 1099 -param set RC2_TRIM 1500 -param set RC2_REV -1 -param set RC3_MAX 1900 -param set RC3_MIN 1099 -param set RC3_TRIM 1500 -param set RC3_REV 1 -param set RC4_MAX 1900 -param set RC4_MIN 1099 -param set RC4_TRIM 1500 -param set RC4_REV -1 -param set RC5_MAX 1900 -param set RC5_MIN 1099 -param set RC5_TRIM 1500 -param set RC5_REV 1 -param set RC6_MAX 1900 -param set RC6_MIN 1099 -param set RC6_TRIM 1099 -param set RC6_REV 1 param set ATT_W_MAG 0.00 param set SENS_BOARD_ROT 0 param set RC_RECEIVER_TYPE 1 @@ -65,7 +35,7 @@ land_detector start multicopter mc_pos_control start mc_att_control start uart_esc start -D /dev/tty-2 -rc_receiver start -D /dev/tty-1 +spektrum_rc start -d /dev/tty-1 sleep 1 list_devices list_files diff --git a/posix-configs/eagle/210qc/px4.config b/posix-configs/eagle/210qc/px4.config index e267b7f121..53a29d4eef 100644 --- a/posix-configs/eagle/210qc/px4.config +++ b/posix-configs/eagle/210qc/px4.config @@ -14,36 +14,6 @@ param set MC_ROLL_P 7.0 param set MC_ROLLRATE_P 0.08 param set MC_ROLLRATE_I 0.0 param set MC_ROLLRATE_D 0.001 -param set RC_MAP_THROTTLE 1 -param set RC_MAP_ROLL 2 -param set RC_MAP_PITCH 3 -param set RC_MAP_YAW 4 -param set RC_MAP_MODE_SW 5 -param set RC_MAP_POSCTL_SW 6 -param set RC1_MAX 1900 -param set RC1_MIN 1099 -param set RC1_TRIM 1099 -param set RC1_REV 1 -param set RC2_MAX 1900 -param set RC2_MIN 1099 -param set RC2_TRIM 1500 -param set RC2_REV -1 -param set RC3_MAX 1900 -param set RC3_MIN 1099 -param set RC3_TRIM 1500 -param set RC3_REV 1 -param set RC4_MAX 1900 -param set RC4_MIN 1099 -param set RC4_TRIM 1500 -param set RC4_REV -1 -param set RC5_MAX 1900 -param set RC5_MIN 1099 -param set RC5_TRIM 1500 -param set RC5_REV 1 -param set RC6_MAX 1900 -param set RC6_MIN 1099 -param set RC6_TRIM 1099 -param set RC6_REV 1 param set ATT_W_MAG 0.00 param set SENS_BOARD_ROT 0 param set RC_RECEIVER_TYPE 1 @@ -65,7 +35,7 @@ land_detector start multicopter mc_pos_control start mc_att_control start uart_esc start -D /dev/tty-2 -rc_receiver start -D /dev/tty-1 +spektrum_rc start -d /dev/tty-1 sleep 1 list_devices list_files diff --git a/posix-configs/excelsior/px4.config b/posix-configs/excelsior/px4.config index 58deeb98ce..bb00bd1997 100644 --- a/posix-configs/excelsior/px4.config +++ b/posix-configs/excelsior/px4.config @@ -84,7 +84,7 @@ land_detector start multicopter mc_pos_control start mc_att_control start uart_esc start -D /dev/tty-1 -rc_receiver start -D /dev/tty-101 +spektrum_rc start -d /dev/tty-101 sleep 1 list_devices list_files diff --git a/src/drivers/spektrum_rc/spektrum_rc.cpp b/src/drivers/spektrum_rc/spektrum_rc.cpp index e6921d06c8..899c31eea6 100644 --- a/src/drivers/spektrum_rc/spektrum_rc.cpp +++ b/src/drivers/spektrum_rc/spektrum_rc.cpp @@ -41,6 +41,7 @@ #include <px4_tasks.h> #include <px4_posix.h> +#include <px4_getopt.h> #include <lib/rc/dsm.h> #include <drivers/drv_rc_input.h> @@ -76,7 +77,23 @@ void fill_input_rc(uint16_t raw_rc_count, uint16_t raw_rc_values[input_rc_s::RC_ void task_main(int argc, char *argv[]) { - int uart_fd = dsm_init(SPEKTRUM_UART_DEVICE_PATH); + const char *device_path = SPEKTRUM_UART_DEVICE_PATH; + int ch; + int myoptind = 1; + const char *myoptarg = NULL; + + while ((ch = px4_getopt(argc, argv, "d:", &myoptind, &myoptarg)) != EOF) { + switch (ch) { + case 'd': + device_path = myoptarg; + break; + + default: + break; + } + } + + int uart_fd = dsm_init(device_path); if (uart_fd < 1) { PX4_ERR("dsm init failed"); @@ -190,7 +207,7 @@ void fill_input_rc(uint16_t raw_rc_count, uint16_t raw_rc_values[input_rc_s::RC_ input_rc.rc_total_frame_count = 0; } -int start() +int start(int argc, char *argv[]) { if (_is_running) { PX4_WARN("already running"); @@ -206,7 +223,7 @@ int start() SCHED_PRIORITY_DEFAULT, 2000, (px4_main_t)&task_main, - nullptr); + (char *const *)argv); if (_task_handle < 0) { PX4_ERR("task start failed"); @@ -263,7 +280,7 @@ int spektrum_rc_main(int argc, char *argv[]) if (!strcmp(verb, "start")) { - return spektrum_rc::start(); + return spektrum_rc::start(argc - 1, argv + 1); } else if (!strcmp(verb, "stop")) { -- GitLab