diff options
author | px4dev <px4@purgatory.org> | 2012-11-29 00:35:21 -0800 |
---|---|---|
committer | px4dev <px4@purgatory.org> | 2012-11-29 00:35:21 -0800 |
commit | d0efd1a419497ec2fadb7b516cd2f9cc5a09ca5d (patch) | |
tree | 306580e8d7665608915cfb3d7ffb9e75dd0119c4 /apps/drivers/px4io/px4io.cpp | |
parent | 3321ca08886fe1030c82094254586c31fcb07b32 (diff) | |
download | px4-firmware-d0efd1a419497ec2fadb7b516cd2f9cc5a09ca5d.tar.gz px4-firmware-d0efd1a419497ec2fadb7b516cd2f9cc5a09ca5d.tar.bz2 px4-firmware-d0efd1a419497ec2fadb7b516cd2f9cc5a09ca5d.zip |
Fix the DSM (spektrum) protocol decoder, and add some format auto-detection to it.
Diffstat (limited to 'apps/drivers/px4io/px4io.cpp')
-rw-r--r-- | apps/drivers/px4io/px4io.cpp | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/apps/drivers/px4io/px4io.cpp b/apps/drivers/px4io/px4io.cpp index f2c87473c..11f2f6f68 100644 --- a/apps/drivers/px4io/px4io.cpp +++ b/apps/drivers/px4io/px4io.cpp @@ -637,10 +637,12 @@ PX4IO::ioctl(file *filep, int cmd, unsigned long arg) void PX4IO::set_rx_mode(unsigned mode) { - if (mode != _rx_mode) { - _rx_mode = mode; - _config_needed = true; - } + /* + * Always (re)set the rx mode; makes testing + * easier after PX4IO has been restarted. + */ + _rx_mode = mode; + _config_needed = true; } extern "C" __EXPORT int px4io_main(int argc, char *argv[]); @@ -744,25 +746,29 @@ px4io_main(int argc, char *argv[]) return ret; } - if (!strcmp(argv[1], "rx_dsm_10bit")) { + if (!strcmp(argv[1], "rx_dsm") || + !strcmp(argv[1], "rx_dsm_10bit") || + !strcmp(argv[1], "rx_dsm_11bit")) { if (g_dev == nullptr) errx(1, "not started"); - g_dev->set_rx_mode(RX_MODE_DSM_10BIT); + g_dev->set_rx_mode(RX_MODE_DSM); + exit(0); } - if (!strcmp(argv[1], "rx_dsm_11bit")) { + if (!strcmp(argv[1], "rx_sbus")) { if (g_dev == nullptr) errx(1, "not started"); - g_dev->set_rx_mode(RX_MODE_DSM_11BIT); + g_dev->set_rx_mode(RX_MODE_FUTABA_SBUS); + exit(0); } - if (!strcmp(argv[1], "rx_sbus")) { + if (!strcmp(argv[1], "rx_ppm")) { if (g_dev == nullptr) errx(1, "not started"); - g_dev->set_rx_mode(RX_MODE_FUTABA_SBUS); + g_dev->set_rx_mode(RX_MODE_PPM_ONLY); + exit(0); } if (!strcmp(argv[1], "test")) test(); - - errx(1, "need a command, try 'start', 'test', 'rx_dsm_10bit', 'rx_dsm_11bit', 'rx_sbus' or 'update'"); + errx(1, "need a command, try 'start', 'test', 'rx_ppm', 'rx_dsm', 'rx_sbus' or 'update'"); } |