mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-22 05:49:19 +02:00
Added wheel flats calculation and some small changes to induction motors
This commit is contained in:
@@ -1707,7 +1707,7 @@ void TController::AutoRewident()
|
|||||||
}
|
}
|
||||||
if (mvOccupied->TrainType == dt_EZT)
|
if (mvOccupied->TrainType == dt_EZT)
|
||||||
{
|
{
|
||||||
fAccThreshold = -fBrake_a0[BrakeAccTableSize] - 8 * fBrake_a1[BrakeAccTableSize];
|
fAccThreshold = std::max(-fBrake_a0[BrakeAccTableSize] - 8 * fBrake_a1[BrakeAccTableSize], -0.75);
|
||||||
fBrakeReaction = 0.25;
|
fBrakeReaction = 0.25;
|
||||||
}
|
}
|
||||||
else if (ustaw > 16)
|
else if (ustaw > 16)
|
||||||
|
|||||||
@@ -2784,9 +2784,9 @@ bool TDynamicObject::Update(double dt, double dt1)
|
|||||||
1000; // chwilowy max ED -> do rozdzialu sil
|
1000; // chwilowy max ED -> do rozdzialu sil
|
||||||
FfulED = Min0R(p->MoverParameters->eimv[eimv_Fful], 0) *
|
FfulED = Min0R(p->MoverParameters->eimv[eimv_Fful], 0) *
|
||||||
1000; // chwilowy max ED -> do rozdzialu sil
|
1000; // chwilowy max ED -> do rozdzialu sil
|
||||||
FrED -= Min0R(p->MoverParameters->eimv[eimv_Fr], 0) *
|
FrED -= Min0R(p->MoverParameters->eimv[eimv_Fmax], 0) *
|
||||||
1000; // chwilowo realizowane ED -> do pneumatyki
|
1000; // chwilowo realizowane ED -> do pneumatyki
|
||||||
Frj += Max0R(p->MoverParameters->eimv[eimv_Fr], 0) *
|
Frj += Max0R(p->MoverParameters->eimv[eimv_Fmax], 0) *
|
||||||
1000;// chwilowo realizowany napęd -> do utrzymującego
|
1000;// chwilowo realizowany napęd -> do utrzymującego
|
||||||
masa += p->MoverParameters->TotalMass;
|
masa += p->MoverParameters->TotalMass;
|
||||||
osie += p->MoverParameters->NAxles;
|
osie += p->MoverParameters->NAxles;
|
||||||
@@ -2880,10 +2880,10 @@ bool TDynamicObject::Update(double dt, double dt1)
|
|||||||
if ((FzEP[i] > 0.01) &&
|
if ((FzEP[i] > 0.01) &&
|
||||||
(FzEP[i] >
|
(FzEP[i] >
|
||||||
p->MoverParameters->TotalMass * p->MoverParameters->eimc[eimc_p_eped] +
|
p->MoverParameters->TotalMass * p->MoverParameters->eimc[eimc_p_eped] +
|
||||||
Min0R(p->MoverParameters->eimv[eimv_Fr], 0) * 1000) &&
|
Min0R(p->MoverParameters->eimv[eimv_Fmax], 0) * 1000) &&
|
||||||
(!PrzekrF[i]))
|
(!PrzekrF[i]))
|
||||||
{
|
{
|
||||||
float przek1 = -Min0R(p->MoverParameters->eimv[eimv_Fr], 0) * 1000 +
|
float przek1 = -Min0R(p->MoverParameters->eimv[eimv_Fmax], 0) * 1000 +
|
||||||
FzEP[i] -
|
FzEP[i] -
|
||||||
p->MoverParameters->TotalMass *
|
p->MoverParameters->TotalMass *
|
||||||
p->MoverParameters->eimc[eimc_p_eped] * 0.999;
|
p->MoverParameters->eimc[eimc_p_eped] * 0.999;
|
||||||
|
|||||||
@@ -780,6 +780,7 @@ public:
|
|||||||
double Ftmax = 0.0;
|
double Ftmax = 0.0;
|
||||||
/*- dla lokomotyw z silnikami indukcyjnymi -*/
|
/*- dla lokomotyw z silnikami indukcyjnymi -*/
|
||||||
double eimc[26];
|
double eimc[26];
|
||||||
|
bool EIMCLogForce; //
|
||||||
static std::vector<std::string> const eimc_labels;
|
static std::vector<std::string> const eimc_labels;
|
||||||
/*-dla wagonow*/
|
/*-dla wagonow*/
|
||||||
double MaxLoad = 0.0; /*masa w T lub ilosc w sztukach - ladownosc*/
|
double MaxLoad = 0.0; /*masa w T lub ilosc w sztukach - ladownosc*/
|
||||||
@@ -823,6 +824,7 @@ public:
|
|||||||
double AccN = 0.0; //przyspieszenie normalne w [m/s^2]
|
double AccN = 0.0; //przyspieszenie normalne w [m/s^2]
|
||||||
double AccV = 0.0;
|
double AccV = 0.0;
|
||||||
double nrot = 0.0;
|
double nrot = 0.0;
|
||||||
|
double WheelFlat = 0.0;
|
||||||
/*! rotacja kol [obr/s]*/
|
/*! rotacja kol [obr/s]*/
|
||||||
double EnginePower = 0.0; /*! chwilowa moc silnikow*/
|
double EnginePower = 0.0; /*! chwilowa moc silnikow*/
|
||||||
double dL = 0.0; double Fb = 0.0; double Ff = 0.0; /*przesuniecie, sila hamowania i tarcia*/
|
double dL = 0.0; double Fb = 0.0; double Ff = 0.0; /*przesuniecie, sila hamowania i tarcia*/
|
||||||
|
|||||||
@@ -3734,6 +3734,10 @@ void TMoverParameters::ComputeTotalForce(double dt, double dt1, bool FullVer)
|
|||||||
Fb = -Fwheels*Sign(V);
|
Fb = -Fwheels*Sign(V);
|
||||||
FTrain = 0;
|
FTrain = 0;
|
||||||
}
|
}
|
||||||
|
if (nrot < 0.1)
|
||||||
|
{
|
||||||
|
WheelFlat = sqrt(sqr(WheelFlat) + abs(Fwheels) / NAxles*Vel*0.000002);
|
||||||
|
}
|
||||||
if (Sign(nrot * M_PI * WheelDiameter - V)*Sign(temp_nrot * M_PI * WheelDiameter - V) < 0)
|
if (Sign(nrot * M_PI * WheelDiameter - V)*Sign(temp_nrot * M_PI * WheelDiameter - V) < 0)
|
||||||
{
|
{
|
||||||
SlippingWheels = false;
|
SlippingWheels = false;
|
||||||
@@ -4684,23 +4688,23 @@ double TMoverParameters::TractionForce(double dt)
|
|||||||
if ((abs((PosRatio + 9.66 * dizel_fill) * dmoment * 100) >
|
if ((abs((PosRatio + 9.66 * dizel_fill) * dmoment * 100) >
|
||||||
0.95 * Adhesive(RunningTrack.friction) * TotalMassxg))
|
0.95 * Adhesive(RunningTrack.friction) * TotalMassxg))
|
||||||
{
|
{
|
||||||
PosRatio = 0;
|
//PosRatio = 0;
|
||||||
tmp = 4;
|
//tmp = 4;
|
||||||
Sandbox( true, range::local );
|
//Sandbox( true, range::local );
|
||||||
} // przeciwposlizg
|
} // przeciwposlizg
|
||||||
if ((abs((PosRatio + 9.80 * dizel_fill) * dmoment * 100) >
|
if ((abs((PosRatio + 9.80 * dizel_fill) * dmoment * 100) >
|
||||||
0.95 * Adhesive(RunningTrack.friction) * TotalMassxg))
|
0.95 * Adhesive(RunningTrack.friction) * TotalMassxg))
|
||||||
{
|
{
|
||||||
PosRatio = 0;
|
//PosRatio = 0;
|
||||||
tmp = 9;
|
//tmp = 9;
|
||||||
Sandbox( true, range::local );
|
//Sandbox( true, range::local );
|
||||||
} // przeciwposlizg
|
} // przeciwposlizg
|
||||||
if ((SlippingWheels))
|
if ((SlippingWheels))
|
||||||
{
|
{
|
||||||
// PosRatio = -PosRatio * 0; // serio -0 ???
|
// PosRatio = -PosRatio * 0; // serio -0 ???
|
||||||
PosRatio = 0;
|
PosRatio = 0;
|
||||||
tmp = 9;
|
tmp = 9;
|
||||||
Sandbox( true, range::local );
|
Sandbox( true, range::unit );
|
||||||
} // przeciwposlizg
|
} // przeciwposlizg
|
||||||
|
|
||||||
dizel_fill += Max0R(Min0R(PosRatio - dizel_fill, 0.1), -0.1) * 2 *
|
dizel_fill += Max0R(Min0R(PosRatio - dizel_fill, 0.1), -0.1) * 2 *
|
||||||
@@ -4737,6 +4741,13 @@ double TMoverParameters::TractionForce(double dt)
|
|||||||
-Sign(V) * (DirAbsolute)*std::min(
|
-Sign(V) * (DirAbsolute)*std::min(
|
||||||
eimc[eimc_p_Ph] * 3.6 / (Vel != 0.0 ? Vel : 0.001),
|
eimc[eimc_p_Ph] * 3.6 / (Vel != 0.0 ? Vel : 0.001),
|
||||||
std::min(-eimc[eimc_p_Fh] * dizel_fill, eimv[eimv_FMAXMAX]));
|
std::min(-eimc[eimc_p_Fh] * dizel_fill, eimv[eimv_FMAXMAX]));
|
||||||
|
double pr = dizel_fill;
|
||||||
|
if (EIMCLogForce)
|
||||||
|
pr = -log(1 - 4 * pr) / log(5);
|
||||||
|
eimv[eimv_Fr] =
|
||||||
|
-Sign(V) * (DirAbsolute)*std::min(
|
||||||
|
eimc[eimc_p_Ph] * 3.6 / (Vel != 0.0 ? Vel : 0.001),
|
||||||
|
std::min(-eimc[eimc_p_Fh] * pr, eimv[eimv_FMAXMAX]));
|
||||||
//*Min0R(1,(Vel-eimc[eimc_p_Vh0])/(eimc[eimc_p_Vh1]-eimc[eimc_p_Vh0]))
|
//*Min0R(1,(Vel-eimc[eimc_p_Vh0])/(eimc[eimc_p_Vh1]-eimc[eimc_p_Vh0]))
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -4748,9 +4759,13 @@ double TMoverParameters::TractionForce(double dt)
|
|||||||
eimv[eimv_Fmax] = eimv[eimv_Fful] * dizel_fill;
|
eimv[eimv_Fmax] = eimv[eimv_Fful] * dizel_fill;
|
||||||
// else
|
// else
|
||||||
// eimv[eimv_Fmax]:=Min0R(eimc[eimc_p_F0]*dizel_fill,eimv[eimv_Fful]);
|
// eimv[eimv_Fmax]:=Min0R(eimc[eimc_p_F0]*dizel_fill,eimv[eimv_Fful]);
|
||||||
|
double pr = dizel_fill;
|
||||||
|
if (EIMCLogForce)
|
||||||
|
pr = log(1 + 4 * pr) / log(5);
|
||||||
|
eimv[eimv_Fr] = eimv[eimv_Fful] * pr;
|
||||||
}
|
}
|
||||||
|
|
||||||
eimv[eimv_ks] = eimv[eimv_Fmax] / eimv[eimv_FMAXMAX];
|
eimv[eimv_ks] = eimv[eimv_Fr] / eimv[eimv_FMAXMAX];
|
||||||
eimv[eimv_df] = eimv[eimv_ks] * eimc[eimc_s_dfmax];
|
eimv[eimv_df] = eimv[eimv_ks] * eimc[eimc_s_dfmax];
|
||||||
eimv[eimv_fp] = DirAbsolute * enrot * eimc[eimc_s_p] +
|
eimv[eimv_fp] = DirAbsolute * enrot * eimc[eimc_s_p] +
|
||||||
eimv[eimv_df]; // do przemyslenia dzialanie pp z tmpV
|
eimv[eimv_df]; // do przemyslenia dzialanie pp z tmpV
|
||||||
@@ -4921,7 +4936,7 @@ double TMoverParameters::v2n(void)
|
|||||||
n = V / (M_PI * WheelDiameter); // predkosc obrotowa wynikajaca z liniowej [obr/s]
|
n = V / (M_PI * WheelDiameter); // predkosc obrotowa wynikajaca z liniowej [obr/s]
|
||||||
deltan = n - nrot; //"pochodna" prędkości obrotowej
|
deltan = n - nrot; //"pochodna" prędkości obrotowej
|
||||||
if (SlippingWheels)
|
if (SlippingWheels)
|
||||||
if (std::abs(deltan) < 0.01)
|
if (std::abs(deltan) < 0.001)
|
||||||
SlippingWheels = false; // wygaszenie poslizgu
|
SlippingWheels = false; // wygaszenie poslizgu
|
||||||
if (SlippingWheels) // nie ma zwiazku z predkoscia liniowa V
|
if (SlippingWheels) // nie ma zwiazku z predkoscia liniowa V
|
||||||
{ // McZapkie-221103: uszkodzenia kol podczas poslizgu
|
{ // McZapkie-221103: uszkodzenia kol podczas poslizgu
|
||||||
@@ -7136,6 +7151,7 @@ void TMoverParameters::LoadFIZ_Cntrl( std::string const &line ) {
|
|||||||
|
|
||||||
if( asb == "Manual" ) { ASBType = 1; }
|
if( asb == "Manual" ) { ASBType = 1; }
|
||||||
else if( asb == "Automatic" ) { ASBType = 2; }
|
else if( asb == "Automatic" ) { ASBType = 2; }
|
||||||
|
else if (asb == "Yes") { ASBType = 128; }
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
@@ -7384,6 +7400,7 @@ void TMoverParameters::LoadFIZ_Engine( std::string const &Input ) {
|
|||||||
extract_value( eimc[ eimc_p_Imax ], "Imax", Input, "" );
|
extract_value( eimc[ eimc_p_Imax ], "Imax", Input, "" );
|
||||||
extract_value( eimc[ eimc_p_abed ], "abed", Input, "" );
|
extract_value( eimc[ eimc_p_abed ], "abed", Input, "" );
|
||||||
extract_value( eimc[ eimc_p_eped ], "edep", Input, "" );
|
extract_value( eimc[ eimc_p_eped ], "edep", Input, "" );
|
||||||
|
EIMCLogForce = ( extract_value( "eimclf", Input ) == "Yes" );
|
||||||
|
|
||||||
Flat = ( extract_value( "Flat", Input ) == "1" );
|
Flat = ( extract_value( "Flat", Input ) == "1" );
|
||||||
|
|
||||||
|
|||||||
@@ -1462,9 +1462,15 @@ double TEStED::GetPF( double const PP, double const dt, double const Vel )
|
|||||||
|
|
||||||
// powtarzacz — podwojny zawor zwrotny
|
// powtarzacz — podwojny zawor zwrotny
|
||||||
temp = Max0R(LoadC * BCP / temp * Min0R(Max0R(1 - EDFlag, 0), 1), LBP);
|
temp = Max0R(LoadC * BCP / temp * Min0R(Max0R(1 - EDFlag, 0), 1), LBP);
|
||||||
|
double speed = 1;
|
||||||
|
if ((ASBP < 0.1) && ((BrakeStatus & b_asb) == b_asb))
|
||||||
|
{
|
||||||
|
temp = 0;
|
||||||
|
speed = 3;
|
||||||
|
}
|
||||||
|
|
||||||
if ((BrakeCyl->P() > temp))
|
if ((BrakeCyl->P() > temp))
|
||||||
dv = -PFVd(BrakeCyl->P(), 0, 0.02 * SizeBC, temp) * dt;
|
dv = -PFVd(BrakeCyl->P(), 0, 0.02 * SizeBC * speed, temp) * dt;
|
||||||
else if ((BrakeCyl->P() < temp))
|
else if ((BrakeCyl->P() < temp))
|
||||||
dv = PFVa(BVP, BrakeCyl->P(), 0.02 * SizeBC, temp) * dt;
|
dv = PFVa(BVP, BrakeCyl->P(), 0.02 * SizeBC, temp) * dt;
|
||||||
else
|
else
|
||||||
@@ -1995,7 +2001,8 @@ double TKE::GetPF( double const PP, double const dt, double const Vel )
|
|||||||
// luzowanie CH
|
// luzowanie CH
|
||||||
// temp:=Max0R(BCP,LBP);
|
// temp:=Max0R(BCP,LBP);
|
||||||
IMP = Max0R(IMP / temp, Max0R(LBP, ASBP * int((BrakeStatus & b_asb) == b_asb)));
|
IMP = Max0R(IMP / temp, Max0R(LBP, ASBP * int((BrakeStatus & b_asb) == b_asb)));
|
||||||
|
if ((ASBP < 0.1) && ((BrakeStatus & b_asb) == b_asb))
|
||||||
|
IMP = 0;
|
||||||
// luzowanie CH
|
// luzowanie CH
|
||||||
if ((BCP > IMP + 0.005) || (Max0R(ImplsRes->P(), 8 * LBP) < 0.25))
|
if ((BCP > IMP + 0.005) || (Max0R(ImplsRes->P(), 8 * LBP) < 0.25))
|
||||||
dv = PFVd(BCP, 0, 0.05, IMP) * dt;
|
dv = PFVd(BCP, 0, 0.05, IMP) * dt;
|
||||||
|
|||||||
@@ -478,7 +478,7 @@ PyObject *TTrain::GetTrainState() {
|
|||||||
PyDict_SetItemString( dict, "velocity", PyGetFloat( mover->Vel ) );
|
PyDict_SetItemString( dict, "velocity", PyGetFloat( mover->Vel ) );
|
||||||
PyDict_SetItemString( dict, "tractionforce", PyGetFloat( mover->Ft ) );
|
PyDict_SetItemString( dict, "tractionforce", PyGetFloat( mover->Ft ) );
|
||||||
PyDict_SetItemString( dict, "slipping_wheels", PyGetBool( mover->SlippingWheels ) );
|
PyDict_SetItemString( dict, "slipping_wheels", PyGetBool( mover->SlippingWheels ) );
|
||||||
PyDict_SetItemString( dict, "sanding", PyGetBool( mover->SlippingWheels ));
|
PyDict_SetItemString( dict, "sanding", PyGetBool( mover->SandDose ));
|
||||||
// electric current data
|
// electric current data
|
||||||
PyDict_SetItemString( dict, "traction_voltage", PyGetFloat( mover->RunningTraction.TractionVoltage ) );
|
PyDict_SetItemString( dict, "traction_voltage", PyGetFloat( mover->RunningTraction.TractionVoltage ) );
|
||||||
PyDict_SetItemString( dict, "voltage", PyGetFloat( mover->Voltage ) );
|
PyDict_SetItemString( dict, "voltage", PyGetFloat( mover->Voltage ) );
|
||||||
@@ -4205,10 +4205,10 @@ bool TTrain::Update( double const Deltatime )
|
|||||||
}
|
}
|
||||||
if ((in < 8) && (p->MoverParameters->eimc[eimc_p_Pmax] > 1))
|
if ((in < 8) && (p->MoverParameters->eimc[eimc_p_Pmax] > 1))
|
||||||
{
|
{
|
||||||
fEIMParams[1 + in][0] = p->MoverParameters->eimv[eimv_Fr];
|
fEIMParams[1 + in][0] = p->MoverParameters->eimv[eimv_Fmax];
|
||||||
fEIMParams[1 + in][1] = Max0R(fEIMParams[1 + in][0], 0);
|
fEIMParams[1 + in][1] = Max0R(fEIMParams[1 + in][0], 0);
|
||||||
fEIMParams[1 + in][2] = -Min0R(fEIMParams[1 + in][0], 0);
|
fEIMParams[1 + in][2] = -Min0R(fEIMParams[1 + in][0], 0);
|
||||||
fEIMParams[1 + in][3] = p->MoverParameters->eimv[eimv_Fr] /
|
fEIMParams[1 + in][3] = p->MoverParameters->eimv[eimv_Fmax] /
|
||||||
Max0R(p->MoverParameters->eimv[eimv_Fful], 1);
|
Max0R(p->MoverParameters->eimv[eimv_Fful], 1);
|
||||||
fEIMParams[1 + in][4] = Max0R(fEIMParams[1 + in][3], 0);
|
fEIMParams[1 + in][4] = Max0R(fEIMParams[1 + in][3], 0);
|
||||||
fEIMParams[1 + in][5] = -Min0R(fEIMParams[1 + in][3], 0);
|
fEIMParams[1 + in][5] = -Min0R(fEIMParams[1 + in][3], 0);
|
||||||
|
|||||||
30
World.cpp
30
World.cpp
@@ -1061,12 +1061,12 @@ bool TWorld::Update()
|
|||||||
/*
|
/*
|
||||||
if (DebugModeFlag)
|
if (DebugModeFlag)
|
||||||
if (Global::bActive) // nie przyspieszać, gdy jedzie w tle :)
|
if (Global::bActive) // nie przyspieszać, gdy jedzie w tle :)
|
||||||
if( Console::Pressed( GLFW_KEY_ESCAPE ) ) {
|
if (glfwGetKey(window, GLFW_KEY_PAUSE) == GLFW_PRESS) {
|
||||||
// yB dodał przyspieszacz fizyki
|
// yB dodał przyspieszacz fizyki
|
||||||
Ground.Update(dt, n);
|
Ground.Update(dt / updatecount, updatecount);
|
||||||
Ground.Update(dt, n);
|
Ground.Update(dt / updatecount, updatecount);
|
||||||
Ground.Update(dt, n);
|
Ground.Update(dt / updatecount, updatecount);
|
||||||
Ground.Update(dt, n); // 5 razy
|
Ground.Update(dt / updatecount, updatecount); // 5 razy
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
// secondary fixed step simulation time routines
|
// secondary fixed step simulation time routines
|
||||||
@@ -1481,7 +1481,7 @@ TWorld::Update_UI() {
|
|||||||
uitextline2 +=
|
uitextline2 +=
|
||||||
"; Ft: " + to_string( tmp->MoverParameters->Ft * 0.001f * tmp->MoverParameters->ActiveCab, 1 )
|
"; Ft: " + to_string( tmp->MoverParameters->Ft * 0.001f * tmp->MoverParameters->ActiveCab, 1 )
|
||||||
+ ", Fb: " + to_string( tmp->MoverParameters->Fb * 0.001f, 1 )
|
+ ", Fb: " + to_string( tmp->MoverParameters->Fb * 0.001f, 1 )
|
||||||
+ ", Fr: " + to_string( tmp->MoverParameters->RunningTrack.friction, 2 )
|
+ ", Fr: " + to_string( tmp->MoverParameters->Adhesive(tmp->MoverParameters->RunningTrack.friction), 2 )
|
||||||
+ ( tmp->MoverParameters->SlippingWheels ? " (!)" : "" );
|
+ ( tmp->MoverParameters->SlippingWheels ? " (!)" : "" );
|
||||||
|
|
||||||
uitextline2 +=
|
uitextline2 +=
|
||||||
@@ -1680,15 +1680,15 @@ TWorld::Update_UI() {
|
|||||||
if( tmp == nullptr ) {
|
if( tmp == nullptr ) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
uitextline1 =
|
||||||
uitextline1 =
|
"vel: " + to_string(tmp->GetVelocity(), 2) + "/" + to_string(tmp->MoverParameters->nrot* M_PI * tmp->MoverParameters->WheelDiameter * 3.6, 2)
|
||||||
"vel: " + to_string( tmp->GetVelocity(), 2 ) + " km/h" + ( tmp->MoverParameters->SlippingWheels ? " (!)" : "" )
|
+ " km/h" + (tmp->MoverParameters->SlippingWheels ? " (!)" : " ")
|
||||||
+ "; dist: " + to_string( tmp->MoverParameters->DistCounter, 2 ) + " km"
|
+ "; dist: " + to_string(tmp->MoverParameters->DistCounter, 2) + " km"
|
||||||
+ "; pos: ("
|
+ "; pos: ("
|
||||||
+ to_string( tmp->GetPosition().x, 2 ) + ", "
|
+ to_string(tmp->GetPosition().x, 2) + ", "
|
||||||
+ to_string( tmp->GetPosition().y, 2 ) + ", "
|
+ to_string(tmp->GetPosition().y, 2) + ", "
|
||||||
+ to_string( tmp->GetPosition().z, 2 )
|
+ to_string(tmp->GetPosition().z, 2) + "), PM="
|
||||||
+ ")";
|
+ to_string(tmp->MoverParameters->WheelFlat, 1) + " mm";
|
||||||
|
|
||||||
uitextline2 =
|
uitextline2 =
|
||||||
"HamZ=" + to_string( tmp->MoverParameters->fBrakeCtrlPos, 1 )
|
"HamZ=" + to_string( tmp->MoverParameters->fBrakeCtrlPos, 1 )
|
||||||
|
|||||||
Reference in New Issue
Block a user