From 2a6f915dfe04b87e1d079cad48f5305a69c61955 Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Fri, 24 Nov 2017 13:44:56 -0500 Subject: [PATCH] px4io delete old v1 battery current and voltage --- src/drivers/px4io/px4io.cpp | 83 +-------------------- src/modules/px4iofirmware/protocol.h | 3 - src/modules/px4iofirmware/registers.c | 6 -- src/modules/sensors/sensor_params_battery.c | 9 --- 4 files changed, 3 insertions(+), 98 deletions(-) diff --git a/src/drivers/px4io/px4io.cpp b/src/drivers/px4io/px4io.cpp index f505f271fb..89a3126f70 100644 --- a/src/drivers/px4io/px4io.cpp +++ b/src/drivers/px4io/px4io.cpp @@ -74,7 +74,6 @@ #include #include #include -#include #include #include @@ -83,7 +82,6 @@ #include #include #include -#include #include #include #include @@ -183,14 +181,6 @@ public: */ int set_update_rate(int rate); - /** - * Set the battery current scaling and bias - * - * @param[in] amp_per_volt - * @param[in] amp_bias - */ - void set_battery_current_scaling(float amp_per_volt, float amp_bias); - /** * Push failsafe values to IO. * @@ -275,7 +265,6 @@ private: /* advertised topics */ orb_advert_t _to_input_rc; ///< rc inputs from io orb_advert_t _to_outputs; ///< mixed servo outputs topic - orb_advert_t _to_battery; ///< battery status / voltage orb_advert_t _to_servorail; ///< servorail status orb_advert_t _to_safety; ///< status of safety orb_advert_t _to_mixer_status; ///< mixer status flags @@ -287,15 +276,9 @@ private: bool _lockdown_override; ///< allow to override the safety lockdown bool _armed; ///< wether the system is armed - float _battery_amp_per_volt; ///< current sensor amps/volt - float _battery_amp_bias; ///< current sensor bias - float _battery_mamphour_total;///< amp hours consumed so far - uint64_t _battery_last_timestamp;///< last amp hour calculation timestamp bool _cb_flighttermination; ///< true if the flight termination circuit breaker is enabled bool _in_esc_calibration_mode; ///< do not send control outputs to IO (used for esc calibration) - Battery _battery; - int32_t _rssi_pwm_chan; ///< RSSI PWM input channel int32_t _rssi_pwm_max; ///< max RSSI input on PWM channel int32_t _rssi_pwm_min; ///< min RSSI input on PWM channel @@ -303,7 +286,6 @@ private: bool _analog_rc_rssi_stable; ///< true when analog RSSI input is stable float _analog_rc_rssi_volt; ///< analog RSSI voltage - float _last_throttle; ///< last throttle value for battery calculation bool _test_fmu_fail; ///< To test what happens if IO looses FMU /** @@ -504,7 +486,6 @@ PX4IO::PX4IO(device::Device *interface) : _t_vehicle_command(-1), _to_input_rc(nullptr), _to_outputs(nullptr), - _to_battery(nullptr), _to_servorail(nullptr), _to_safety(nullptr), _to_mixer_status(nullptr), @@ -513,20 +494,14 @@ PX4IO::PX4IO(device::Device *interface) : _primary_pwm_device(false), _lockdown_override(false), _armed(false), - _battery_amp_per_volt(90.0f / 5.0f), // this matches the 3DR current sensor - _battery_amp_bias(0), - _battery_mamphour_total(0), - _battery_last_timestamp(0), _cb_flighttermination(true), _in_esc_calibration_mode(false), - _battery{}, _rssi_pwm_chan(0), _rssi_pwm_max(0), _rssi_pwm_min(0), _thermal_control(-1), _analog_rc_rssi_stable(false), _analog_rc_rssi_volt(-1.0f), - _last_throttle(0.0f), _test_fmu_fail(false) { /* we need this potentially before it could be set in task_main */ @@ -1054,21 +1029,6 @@ PX4IO::task_main() io_set_rc_config(); } - /* re-set the battery scaling */ - int32_t voltage_scaling_val = 10000; - param_t voltage_scaling_param; - - /* set battery voltage scaling */ - param_get(voltage_scaling_param = param_find("BAT_V_SCALE_IO"), &voltage_scaling_val); - - /* send scaling voltage to IO */ - uint16_t scaling = voltage_scaling_val; - int pret = io_reg_set(PX4IO_PAGE_SETUP, PX4IO_P_SETUP_VBATT_SCALE, &scaling, 1); - - if (pret != OK) { - mavlink_log_critical(&_mavlink_log_pub, "IO vscale upload failed"); - } - /* send RC throttle failsafe value to IO */ int32_t failsafe_param_val; param_t failsafe_param = param_find("RC_FAILS_THR"); @@ -1080,7 +1040,7 @@ PX4IO::task_main() if (failsafe_param_val > 0) { uint16_t failsafe_thr = failsafe_param_val; - pret = io_reg_set(PX4IO_PAGE_SETUP, PX4IO_P_SETUP_RC_THR_FAILSAFE_US, &failsafe_thr, 1); + int pret = io_reg_set(PX4IO_PAGE_SETUP, PX4IO_P_SETUP_RC_THR_FAILSAFE_US, &failsafe_thr, 1); if (pret != OK) { mavlink_log_critical(&_mavlink_log_pub, "failsafe upload failed, FS: %d us", (int)failsafe_thr); @@ -1259,9 +1219,6 @@ PX4IO::task_main() param_get(parm_handle, ¶m_val); (void)io_reg_set(PX4IO_PAGE_SETUP, PX4IO_P_SETUP_MOTOR_SLEW_MAX, FLOAT_TO_REG(param_val)); } - - // Also trigger param update in Battery instance. - _battery.updateParams(); } } @@ -1371,11 +1328,6 @@ PX4IO::io_set_control_state(unsigned group) regs[i] = FLOAT_TO_REG(ctrl); } - // save last throttle for battery calculation - if (group == 0) { - _last_throttle = controls.control[3]; - } - if (!_test_fmu_fail) { /* copy values to registers in IO */ return io_reg_set(PX4IO_PAGE_CONTROLS, group * PX4IO_PROTOCOL_MAX_CONTROL_COUNT, regs, _max_controls); @@ -2255,17 +2207,7 @@ PX4IO::print_status(bool extended_status) /* now clear alarms */ io_reg_set(PX4IO_PAGE_STATUS, PX4IO_P_STATUS_ALARMS, 0xFFFF); - if (_hardware == 1) { - printf("vbatt mV %u ibatt mV %u vbatt scale %u\n", - io_reg_get(PX4IO_PAGE_STATUS, PX4IO_P_STATUS_VBATT), - io_reg_get(PX4IO_PAGE_STATUS, PX4IO_P_STATUS_IBATT), - io_reg_get(PX4IO_PAGE_SETUP, PX4IO_P_SETUP_VBATT_SCALE)); - printf("amp_per_volt %.3f amp_offset %.3f mAh discharged %.3f\n", - (double)_battery_amp_per_volt, - (double)_battery_amp_bias, - (double)_battery_mamphour_total); - - } else if (_hardware == 2) { + if (_hardware == 2) { printf("vservo %u mV vservo scale %u\n", io_reg_get(PX4IO_PAGE_STATUS, PX4IO_P_STATUS_VSERVO), io_reg_get(PX4IO_PAGE_SETUP, PX4IO_P_SETUP_VSERVO_SCALE)); @@ -3041,13 +2983,6 @@ PX4IO::set_update_rate(int rate) return 0; } -void -PX4IO::set_battery_current_scaling(float amp_per_volt, float amp_bias) -{ - _battery_amp_per_volt = amp_per_volt; - _battery_amp_bias = amp_bias; -} - extern "C" __EXPORT int px4io_main(int argc, char *argv[]); namespace @@ -3634,18 +3569,6 @@ px4io_main(int argc, char *argv[]) exit(0); } - if (!strcmp(argv[1], "current")) { - if ((argc > 3)) { - g_dev->set_battery_current_scaling(atof(argv[2]), atof(argv[3])); - - } else { - errx(1, "missing argument (apm_per_volt, amp_offset)"); - return 1; - } - - exit(0); - } - if (!strcmp(argv[1], "safety_off")) { int ret = g_dev->ioctl(NULL, PWM_SERVO_SET_FORCE_SAFETY_OFF, 0); @@ -3822,7 +3745,7 @@ px4io_main(int argc, char *argv[]) out: errx(1, "need a command, try 'start', 'stop', 'status', 'test', 'monitor', 'debug ',\n" - "'recovery', 'limit ', 'current', 'bind', 'checkcrc', 'safety_on', 'safety_off',\n" + "'recovery', 'limit ', 'bind', 'checkcrc', 'safety_on', 'safety_off',\n" "'forceupdate', 'update', 'sbus1_out', 'sbus2_out', 'rssi_analog' or 'rssi_pwm',\n" "'test_fmu_fail', 'test_fmu_ok'"); } diff --git a/src/modules/px4iofirmware/protocol.h b/src/modules/px4iofirmware/protocol.h index 76faac1271..50ef2faa51 100644 --- a/src/modules/px4iofirmware/protocol.h +++ b/src/modules/px4iofirmware/protocol.h @@ -127,8 +127,6 @@ #define PX4IO_P_STATUS_ALARMS_PWM_ERROR (1 << 6) /* PWM configuration or output was bad */ #define PX4IO_P_STATUS_ALARMS_VSERVO_FAULT (1 << 7) /* [2] VServo was out of the valid range (2.5 - 5.5 V) */ -#define PX4IO_P_STATUS_VBATT 4 /* [1] battery voltage in mV */ -#define PX4IO_P_STATUS_IBATT 5 /* [1] battery current (raw ADC) */ #define PX4IO_P_STATUS_VSERVO 6 /* [2] servo rail voltage in mV */ #define PX4IO_P_STATUS_VRSSI 7 /* [2] RSSI voltage */ #define PX4IO_P_STATUS_PRSSI 8 /* [2] RSSI PWM value */ @@ -195,7 +193,6 @@ #define PX4IO_P_SETUP_PWM_ALTRATE 4 /* 'high' PWM frame output rate in Hz */ #define PX4IO_P_SETUP_RELAYS_PAD 5 -#define PX4IO_P_SETUP_VBATT_SCALE 6 /* hardware rev [1] battery voltage correction factor (float) */ #define PX4IO_P_SETUP_VSERVO_SCALE 6 /* hardware rev [2] servo voltage correction factor (float) */ #define PX4IO_P_SETUP_DSM 7 /* DSM bind state */ enum { /* DSM bind states */ diff --git a/src/modules/px4iofirmware/registers.c b/src/modules/px4iofirmware/registers.c index afc47f3973..d68e85f4e9 100644 --- a/src/modules/px4iofirmware/registers.c +++ b/src/modules/px4iofirmware/registers.c @@ -84,8 +84,6 @@ volatile uint16_t r_page_status[] = { [PX4IO_P_STATUS_CPULOAD] = 0, [PX4IO_P_STATUS_FLAGS] = 0, [PX4IO_P_STATUS_ALARMS] = 0, - [PX4IO_P_STATUS_VBATT] = 0, - [PX4IO_P_STATUS_IBATT] = 0, [PX4IO_P_STATUS_VSERVO] = 0, [PX4IO_P_STATUS_VRSSI] = 0, [PX4IO_P_STATUS_PRSSI] = 0, @@ -635,10 +633,6 @@ registers_set_one(uint8_t page, uint8_t offset, uint16_t value) pwm_configure_rates(r_setup_pwm_rates, r_setup_pwm_defaultrate, value); break; - case PX4IO_P_SETUP_VBATT_SCALE: - r_page_setup[PX4IO_P_SETUP_VBATT_SCALE] = value; - break; - case PX4IO_P_SETUP_SET_DEBUG: r_page_setup[PX4IO_P_SETUP_SET_DEBUG] = value; isr_debug(0, "set debug %u\n", (unsigned)r_page_setup[PX4IO_P_SETUP_SET_DEBUG]); diff --git a/src/modules/sensors/sensor_params_battery.c b/src/modules/sensors/sensor_params_battery.c index 85318b8770..d863ba27ee 100644 --- a/src/modules/sensors/sensor_params_battery.c +++ b/src/modules/sensors/sensor_params_battery.c @@ -31,15 +31,6 @@ * ****************************************************************************/ -/** - * Scaling factor for battery voltage sensor on PX4IO. - * - * @min 1 - * @max 100000 - * @group Battery Calibration - */ -PARAM_DEFINE_INT32(BAT_V_SCALE_IO, 10000); - /** * Scaling from ADC counts to volt on the ADC input (battery voltage) *