mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-18 00:49:19 +02:00
energy meter tweaks
This commit is contained in:
@@ -3680,7 +3680,8 @@ bool TDynamicObject::Update(double dt, double dt1)
|
|||||||
else
|
else
|
||||||
MoverParameters->PantFrontVolt = 0.0;
|
MoverParameters->PantFrontVolt = 0.0;
|
||||||
|
|
||||||
MoverParameters->EnergyConsumed += MoverParameters->PantFrontVolt * fPantCurrent * dt1 / 3600000.0;
|
((fPantCurrent > 0.0) ? MoverParameters->EnergyMeter.first : MoverParameters->EnergyMeter.second) += MoverParameters->PantFrontVolt * fPantCurrent * dt1 / 3600000.0;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
if( ( false == Global.bLiveTraction )
|
if( ( false == Global.bLiveTraction )
|
||||||
@@ -3726,7 +3727,8 @@ bool TDynamicObject::Update(double dt, double dt1)
|
|||||||
MoverParameters->PantRearVolt = 0.0;
|
MoverParameters->PantRearVolt = 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
MoverParameters->EnergyConsumed += MoverParameters->PantRearVolt * fPantCurrent * dt1 / 3600000.0;
|
((fPantCurrent > 0.0) ? MoverParameters->EnergyMeter.first : MoverParameters->EnergyMeter.second) += MoverParameters->PantRearVolt * fPantCurrent * dt1 / 3600000.0;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
} // pozostałe na razie nie obsługiwane
|
} // pozostałe na razie nie obsługiwane
|
||||||
if( MoverParameters->PantPress > (
|
if( MoverParameters->PantPress > (
|
||||||
|
|||||||
@@ -1364,7 +1364,7 @@ public:
|
|||||||
int SoundFlag = 0; /*!o patrz stale sound_ */
|
int SoundFlag = 0; /*!o patrz stale sound_ */
|
||||||
int AIFlag{ 0 }; // HACK: events of interest for consist owner
|
int AIFlag{ 0 }; // HACK: events of interest for consist owner
|
||||||
double DistCounter = 0.0; /*! licznik kilometrow */
|
double DistCounter = 0.0; /*! licznik kilometrow */
|
||||||
double EnergyConsumed = 0.0; // energy consumed from pantographs [kWh]
|
std::pair<double, double> EnergyMeter; // energy <drawn, returned> from grid [kWh]
|
||||||
double V = 0.0; //predkosc w [m/s] względem sprzęgów (dodania gdy jedzie w stronę 0)
|
double V = 0.0; //predkosc w [m/s] względem sprzęgów (dodania gdy jedzie w stronę 0)
|
||||||
double Vel = 0.0; //moduł prędkości w [km/h], używany przez AI
|
double Vel = 0.0; //moduł prędkości w [km/h], używany przez AI
|
||||||
double AccS = 0.0; //efektywne przyspieszenie styczne w [m/s^2] (wszystkie siły)
|
double AccS = 0.0; //efektywne przyspieszenie styczne w [m/s^2] (wszystkie siły)
|
||||||
|
|||||||
@@ -822,7 +822,8 @@ debug_panel::update_section_vehicle( std::vector<text_line> &Output ) {
|
|||||||
Output.emplace_back( m_buffer.data(), Global.UITextColor );
|
Output.emplace_back( m_buffer.data(), Global.UITextColor );
|
||||||
|
|
||||||
if( mover.EnginePowerSource.SourceType == TPowerSource::CurrentCollector ) {
|
if( mover.EnginePowerSource.SourceType == TPowerSource::CurrentCollector ) {
|
||||||
std::snprintf(m_buffer.data(), m_buffer.size(), STR_C("Energy consumed from pantographs: %.1f kWh"), mover.EnergyConsumed);
|
std::snprintf(m_buffer.data(), m_buffer.size(), STR_C("Electricity usage:\n drawn: %.1f kWh\n returned: %.1f kWh\n balance: %.1f kWh"),
|
||||||
|
mover.EnergyMeter.first, -mover.EnergyMeter.second, mover.EnergyMeter.first + mover.EnergyMeter.second);
|
||||||
Output.emplace_back( m_buffer.data(), Global.UITextColor );
|
Output.emplace_back( m_buffer.data(), Global.UITextColor );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -265,7 +265,7 @@ void ui::vehicleparams_panel::render_contents()
|
|||||||
( mover.SlippingWheels ? " (!)" : "" ),
|
( mover.SlippingWheels ? " (!)" : "" ),
|
||||||
// acceleration
|
// acceleration
|
||||||
mover.AccSVBased,
|
mover.AccSVBased,
|
||||||
mover.AccN + 0.001f,
|
mover.AccN + 0.001f,
|
||||||
std::string( std::abs( mover.RunningShape.R ) > 10000.0 ? "~0" : to_string( mover.RunningShape.R, 0 ) ).c_str(),
|
std::string( std::abs( mover.RunningShape.R ) > 10000.0 ? "~0" : to_string( mover.RunningShape.R, 0 ) ).c_str(),
|
||||||
// velocity
|
// velocity
|
||||||
vehicle.GetVelocity(),
|
vehicle.GetVelocity(),
|
||||||
@@ -277,8 +277,26 @@ void ui::vehicleparams_panel::render_contents()
|
|||||||
|
|
||||||
ImGui::TextUnformatted(buffer.data());
|
ImGui::TextUnformatted(buffer.data());
|
||||||
|
|
||||||
if( mover.EnginePowerSource.SourceType == TPowerSource::CurrentCollector ) {
|
std::pair<double, double> TrainsetPowerMeter;
|
||||||
std::snprintf(buffer.data(), buffer.size(), STR_C("Energy consumed from pantographs: %.1f kWh"), mover.EnergyConsumed);
|
|
||||||
|
TDynamicObject *vehicle_iter = vehicle_ptr;
|
||||||
|
while (vehicle_iter) {
|
||||||
|
if (vehicle_iter->Next())
|
||||||
|
vehicle_iter = vehicle_iter->Next();
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
while (vehicle_iter) {
|
||||||
|
TrainsetPowerMeter.first += vehicle_iter->MoverParameters->EnergyMeter.first;
|
||||||
|
TrainsetPowerMeter.second += vehicle_iter->MoverParameters->EnergyMeter.second;
|
||||||
|
vehicle_iter = vehicle_iter->Prev();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (TrainsetPowerMeter.first != 0.0 || TrainsetPowerMeter.second != 0.0) {
|
||||||
|
std::snprintf(buffer.data(), buffer.size(), STR_C("Electricity usage:\n drawn: %.1f kWh\n returned: %.1f kWh\n balance: %.1f kWh"),
|
||||||
|
TrainsetPowerMeter.first, -TrainsetPowerMeter.second, TrainsetPowerMeter.first + TrainsetPowerMeter.second);
|
||||||
|
|
||||||
ImGui::TextUnformatted(buffer.data());
|
ImGui::TextUnformatted(buffer.data());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user