diff options
author | NosDE <marco@wtns.de> | 2015-02-28 20:29:03 +0100 |
---|---|---|
committer | NosDE <marco@wtns.de> | 2015-02-28 20:29:03 +0100 |
commit | 3de63dee6c3eac5fec7959ececf012abe12ab3a4 (patch) | |
tree | 13aedafa01764db6530f59ab8fb951b980b3934a /src/drivers/mkblctrl/mkblctrl.cpp | |
parent | e4ad2f8e48cd52e81018bded9d76534f0af6212a (diff) | |
download | px4-firmware-3de63dee6c3eac5fec7959ececf012abe12ab3a4.tar.gz px4-firmware-3de63dee6c3eac5fec7959ececf012abe12ab3a4.tar.bz2 px4-firmware-3de63dee6c3eac5fec7959ececf012abe12ab3a4.zip |
interface for min and max rc added
Diffstat (limited to 'src/drivers/mkblctrl/mkblctrl.cpp')
-rw-r--r-- | src/drivers/mkblctrl/mkblctrl.cpp | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/src/drivers/mkblctrl/mkblctrl.cpp b/src/drivers/mkblctrl/mkblctrl.cpp index 23a98d18d..cb463eb59 100644 --- a/src/drivers/mkblctrl/mkblctrl.cpp +++ b/src/drivers/mkblctrl/mkblctrl.cpp @@ -99,6 +99,7 @@ #define RC_MIN_VALUE 1010 #define RC_MAX_VALUE 2100 + struct MotorData_t { unsigned int Version; // the version of the BL (0 = old) unsigned int SetPoint; // written by attitude controller @@ -304,7 +305,7 @@ MK::init(unsigned motors) _task = task_spawn_cmd("mkblctrl", SCHED_DEFAULT, SCHED_PRIORITY_MAX - 20, - 2048, + 1500, (main_t)&MK::task_main_trampoline, nullptr); @@ -1085,6 +1086,37 @@ MK::pwm_ioctl(file *filp, int cmd, unsigned long arg) break; } + case PWM_SERVO_SET_MIN_PWM: { + struct pwm_output_values* pwm = (struct pwm_output_values*)arg; + if (pwm->channel_count > _max_actuators) + /* fail with error */ + return -E2BIG; + + set_rc_min_value((unsigned)pwm->values[0]); + ret = OK; + break; + } + + case PWM_SERVO_GET_MIN_PWM: + ret = OK; + break; + + case PWM_SERVO_SET_MAX_PWM: { + struct pwm_output_values* pwm = (struct pwm_output_values*)arg; + if (pwm->channel_count > _max_actuators) + /* fail with error */ + return -E2BIG; + + set_rc_max_value((unsigned)pwm->values[0]); + ret = OK; + break; + } + + case PWM_SERVO_GET_MAX_PWM: + ret = OK; + break; + + default: ret = -ENOTTY; break; |