Skip to content

Commit dd3e241

Browse files
Tacha-Sahcorde
andauthored
Add parameter for adjust current sign in battery plugin (gazebosim#2696)
Signed-off-by: Tatsuro Sakaguchi <tatsuro.sakaguchi@g.softbank.co.jp> Co-authored-by: Alejandro Hernández Cordero <ahcorde@gmail.com>
1 parent f0cde05 commit dd3e241

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

src/systems/battery_plugin/LinearBatteryPlugin.cc

+11-1
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,9 @@ class gz::sim::systems::LinearBatteryPluginPrivate
178178

179179
/// \brief Initial power load set trough config
180180
public: double initialPowerLoad = 0.0;
181+
182+
/// \brief Flag to invert the current sign
183+
public: bool invertCurrentSign{false};
181184
};
182185

183186
/////////////////////////////////////////////////
@@ -273,6 +276,10 @@ void LinearBatteryPlugin::Configure(const Entity &_entity,
273276
if (_sdf->HasElement("fix_issue_225"))
274277
this->dataPtr->fixIssue225 = _sdf->Get<bool>("fix_issue_225");
275278

279+
if (_sdf->HasElement("invert_current_sign"))
280+
this->dataPtr->invertCurrentSign =
281+
_sdf->Get<bool>("invert_current_sign");
282+
276283
if (_sdf->HasElement("battery_name") && _sdf->HasElement("voltage"))
277284
{
278285
this->dataPtr->batteryName = _sdf->Get<std::string>("battery_name");
@@ -624,7 +631,10 @@ void LinearBatteryPlugin::PostUpdate(const UpdateInfo &_info,
624631
msg.mutable_header()->mutable_stamp()->CopyFrom(
625632
convert<msgs::Time>(_info.simTime));
626633
msg.set_voltage(this->dataPtr->battery->Voltage());
627-
msg.set_current(this->dataPtr->ismooth);
634+
if (this->dataPtr->invertCurrentSign)
635+
msg.set_current(-this->dataPtr->ismooth);
636+
else
637+
msg.set_current(this->dataPtr->ismooth);
628638
msg.set_charge(this->dataPtr->q);
629639
msg.set_capacity(this->dataPtr->c);
630640

0 commit comments

Comments
 (0)