mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-06-01 02:55:07 +08:00
fmu: remove unused write() interface
This commit is contained in:
@@ -147,7 +147,6 @@ public:
|
|||||||
static int fake(int argc, char *argv[]);
|
static int fake(int argc, char *argv[]);
|
||||||
|
|
||||||
virtual int ioctl(file *filp, int cmd, unsigned long arg);
|
virtual int ioctl(file *filp, int cmd, unsigned long arg);
|
||||||
virtual ssize_t write(file *filp, const char *buffer, size_t len);
|
|
||||||
|
|
||||||
virtual int init();
|
virtual int init();
|
||||||
|
|
||||||
@@ -1805,46 +1804,6 @@ PX4FMU::pwm_ioctl(file *filp, int cmd, unsigned long arg)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
this implements PWM output via a write() method, for compatibility
|
|
||||||
with px4io
|
|
||||||
*/
|
|
||||||
ssize_t
|
|
||||||
PX4FMU::write(file *filp, const char *buffer, size_t len)
|
|
||||||
{
|
|
||||||
unsigned count = len / 2;
|
|
||||||
uint16_t values[MAX_ACTUATORS];
|
|
||||||
|
|
||||||
#if BOARD_HAS_PWM == 0
|
|
||||||
return 0;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (count > BOARD_HAS_PWM) {
|
|
||||||
// we have at most BOARD_HAS_PWM outputs
|
|
||||||
count = BOARD_HAS_PWM;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (count > MAX_ACTUATORS) {
|
|
||||||
count = MAX_ACTUATORS;
|
|
||||||
}
|
|
||||||
|
|
||||||
// allow for misaligned values
|
|
||||||
memcpy(values, buffer, count * 2);
|
|
||||||
|
|
||||||
for (unsigned i = count; i < _num_outputs; ++i) {
|
|
||||||
values[i] = PWM_IGNORE_THIS_CHANNEL;
|
|
||||||
}
|
|
||||||
|
|
||||||
reorder_outputs(values);
|
|
||||||
|
|
||||||
for (unsigned i = 0; i < _num_outputs; i++) {
|
|
||||||
if (values[i] != PWM_IGNORE_THIS_CHANNEL) {
|
|
||||||
up_pwm_servo_set(i, values[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return count * 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
PX4FMU::reorder_outputs(uint16_t values[MAX_ACTUATORS])
|
PX4FMU::reorder_outputs(uint16_t values[MAX_ACTUATORS])
|
||||||
@@ -2274,8 +2233,6 @@ PX4FMU::test()
|
|||||||
servos[i] = pwm_value;
|
servos[i] = pwm_value;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (direction == 1) {
|
|
||||||
// use ioctl interface for one direction
|
|
||||||
for (unsigned i = 0; i < servo_count; i++) {
|
for (unsigned i = 0; i < servo_count; i++) {
|
||||||
if (::ioctl(fd, PWM_SERVO_SET(i), servos[i]) < 0) {
|
if (::ioctl(fd, PWM_SERVO_SET(i), servos[i]) < 0) {
|
||||||
PX4_ERR("servo %u set failed", i);
|
PX4_ERR("servo %u set failed", i);
|
||||||
@@ -2283,16 +2240,6 @@ PX4FMU::test()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
|
||||||
// and use write interface for the other direction
|
|
||||||
ret = ::write(fd, servos, sizeof(servos));
|
|
||||||
|
|
||||||
if (ret != (int)sizeof(servos)) {
|
|
||||||
PX4_ERR("error writing PWM servo data, wrote %u got %d", sizeof(servos), ret);
|
|
||||||
goto err_out;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (direction > 0) {
|
if (direction > 0) {
|
||||||
if (pwm_value < 2000) {
|
if (pwm_value < 2000) {
|
||||||
pwm_value++;
|
pwm_value++;
|
||||||
|
|||||||
Reference in New Issue
Block a user