Refactored battery library for multiple instances

This commit is contained in:
Timothy Scott
2019-07-24 10:58:06 +02:00
committed by Julian Oes
parent d7b95870b9
commit bff1df7080
18 changed files with 1039 additions and 277 deletions
@@ -288,7 +288,7 @@ Syslink::task_main()
_memory = new SyslinkMemory(this);
_memory->init();
_battery.reset(&_battery_status);
_battery.reset();
// int ret;
@@ -411,7 +411,7 @@ Syslink::handle_message(syslink_message_t *msg)
memcpy(&vbat, &msg->data[1], sizeof(float));
//memcpy(&iset, &msg->data[5], sizeof(float));
_battery.updateBatteryStatus(t, vbat, -1, true, true, 0, 0, false, &_battery_status);
_battery.updateBatteryStatus(vbat, -1, t, true, 0, 0, false);
// Update battery charge state
@@ -427,9 +427,6 @@ Syslink::handle_message(syslink_message_t *msg)
_bstate = BAT_DISCHARGING;
}
// announce the battery status if needed, just publish else
_battery_pub.publish(_battery_status);
} else if (msg->type == SYSLINK_RADIO_RSSI) {
uint8_t rssi = msg->data[0]; // Between 40 and 100 meaning -40 dBm to -100 dBm
_rssi = 140 - rssi * 100 / (100 - 40);
@@ -135,12 +135,9 @@ private:
hrt_abstime _params_update[3]; // Time at which the parameters were updated
hrt_abstime _params_ack[3]; // Time at which the parameters were acknowledged by the nrf module
uORB::PublicationMulti<battery_status_s> _battery_pub{ORB_ID(battery_status)};
uORB::PublicationMulti<input_rc_s> _rc_pub{ORB_ID(input_rc)};
struct battery_status_s _battery_status;
Battery _battery;
Battery1 _battery;
int32_t _rssi;
battery_state _bstate;