VirtualBattery
This is a ROS message definition.
Source
# Inventus Virtual Battery
# All PDO produced by the batteries refer to the multi-battery system.
# Therefore, this message must only be published by the master node.
# Header
std_msgs/Header header
# TPDO1
uint8 number_of_batteries # Number of batteries in parallel.
float32 soc # Average SOC of all non-faulted batteries.
float32 sum_capacity # Sum of the remaining capacity of all non-faulted batteries.
float32 remaining_runtime # Remaining run time of all non-faulted batteries.
float32 remaining_chargetime # Remaining time to full charge of all non-faulted batteries.
# TPDO2
float32 avg_voltage # Average voltage of all non-faulted battery packs.
float32 sum_current # Combined current value of all non-faulted battery packs.
# Charge/regen current (+), Discharge current (-).
float32 discharge_current_limit # Combined discharge current limit of all non-faulted battery packs.
float32 charge_cutoff_current # Combined taper current of all non-faulted battery packs when nearing charge cutoff voltage.
uint8 fully_charged # 0 – All non-faulted battery packs not at charge termination voltage.
# 1 – All non-faulted battery packs at charge termination voltage.
# TPDO3
float32 avg_temp # Average temperature of all non-faulted battery packs.
float32 discharge_cutoff_voltage # Voltage at which a battery pack will open FETs to stop discharging.
float32 charge_current_limit # Combined charge current limit of all non-faulted battery packs.
float32 max_voltage_allowed # Maximum allowed charging voltage.
# TPDO4
float32 avg_health # Average state of health of all non-faulted battery packs.
uint8 num_faulted_batteries # Number of batteries in the system that are faulted.
uint8 num_active_batteries # Number of batteries in the system that are not faulted.
uint8 op_mode # Operational mode of all non-faulted battery packs.
# This value will only show “fault mode” if all battery packs in the system are faulted.
uint16 charge_fault # Combined charge fault of all battery packs.
uint16 discharge_fault # Combined discharge fault of all battery packs.
# TPD05
float32 regen_current_limit # Combined regen current limit of all non-faulted battery packs.
float32 min_cell_voltage # Min cell voltage of all non-faulted battery packs.
float32 max_cell_voltage # Max cell voltage of all non-faulted battery packs.
uint8 cell_balance_status # Cell balance status of all battery packs.
# Each bit will represent one battery, nth bit will represent nth battery pack.
# Bit = 1 means cell balance of this battery pack is enabling.
# Bit = 0 means cell balance of this battery pack is Idle.
# TPD06
float32 all_avg_voltage # Average pack voltage of all battery packs
float32 all_soc # Average SOC value of all battery packs
float32 all_avg_temp # Average temperature of all battery packs
uint8 master_node_id # The node ID of master pack
# Operational Model Enum
uint16 OP_MODE_MODULE_BALANCING = 1
uint16 OP_MODE_SHIP = 2
uint16 OP_MODE_PRE_DISCHARGE = 3
uint16 OP_MODE_STANDBY = 4
uint16 OP_MODE_DISCHARGE = 5
uint16 OP_MODE_CHARGE = 6
uint16 OP_MODE_FAULT = 7
uint16 OP_MODE_PRE_CHARGE = 8
uint16 avail_op_modes
# Charge Fault Bit Masks
uint16 CHARGE_FAULT_HIGH_TEMP = 1
uint16 CHARGE_FAULT_LOW_TEMP = 2
uint16 CHARGE_FAULT_OVER_CURRENT = 4
uint16 CHARGE_FAULT_OVER_VOLTAGE = 8
uint16 CHARGE_FAULT_SHORT_CIRCUIT = 16
uint16 CHARGE_FAULT_OTHER = 32
uint16 CHARGE_FAULT_MOSFET_TEMP = 64
uint16 CHARGE_FAULT_SEVERE_UNDER_VOLTAGE = 128
uint16 CHARGE_FAULT_COM_AFE_FAILED = 256
uint16 CHARGE_FAULT_HW_SECOND_OVP = 512 # Marked as reserved as of SW guide 1.4
uint16 CHARGE_FAULT_RESERVED = 1024
uint16 CHARGE_FAULT_PRECHARGE_FAILED = 2048 # Marked as reserved as of SW guide 1.4
uint16 CHARGE_FAULT_PACK_PARALLEL_ERROR = 4096 # Marked as reserved as of SW guide 1.4
uint16 CHARGE_FAULT_SIGNAL_ERROR = 8192 # Marked as reserved as of SW guide 1.4
uint16 CHARGE_FAULT_PREDISCHARGE_FAILED = 16384 # Marked as reserved as of SW guide 1.4
uint16 CHARGE_FAULT_INTERNAL_COMM_FAILURE = 32768
uint16 avail_charge_faults
# Discharge Fault Bit Masks
uint16 DISCHARGE_FAULT_HIGH_TEMP = 1
uint16 DISCHARGE_FAULT_LOW_TEMP = 2
uint16 DISCHARGE_FAULT_OVER_CURRENT = 4
uint16 DISCHARGE_FAULT_UNDER_VOLTAGE = 8
uint16 DISCHARGE_FAULT_SHORT_CIRCUIT = 16
uint16 DISCHARGE_FAULT_OTHER = 32
uint16 DISCHARGE_FAULT_MOSFET_TEMP = 64
uint16 DISCHARGE_FAULT_SEVERE_UNDER_VOLTAGE = 128
uint16 DISCHARGE_FAULT_COM_AFE_FAILED = 256
uint16 DISCHARGE_FAULT_HW_SECOND_OVP = 512 # Marked as reserved as of SW guide 1.4
uint16 DISCHARGE_FAULT_RESERVED = 1024
uint16 DISCHARGE_FAULT_RESERVED_2 = 2048
uint16 DISCHARGE_FAULT_PACK_PARALLEL_ERROR = 4096 # Marked as reserved as of SW guide 1.4
uint16 DISCHARGE_FAULT_SIGNAL_ERROR = 8192 # Marked as reserved as of SW guide 1.4
uint16 DISCHARGE_FAULT_PREDISCHARGE_FAILED = 16384 # Marked as reserved as of SW guide 1.4
uint16 DISCHARGE_FAULT_INTERNAL_COMM_FAILURE = 32768
uint16 avail_discharge_faults