From 85e65bfe662153776c635ffa3c0dfb053d4cf07d Mon Sep 17 00:00:00 2001 From: Firleju Date: Wed, 6 May 2015 21:23:25 +0200 Subject: [PATCH] Added python vars for display more vehicles in train. Added missing python libs. --- Dokumentacja zmiennych Python.docx | Bin 19597 -> 19876 bytes PyInt.h | 1 + Train.cpp | 13 +++++++++++++ Train.h | 1 + 4 files changed, 15 insertions(+) diff --git a/Dokumentacja zmiennych Python.docx b/Dokumentacja zmiennych Python.docx index f509f279e0eaa70db075b2201b528bc38cb118b9..f421014b541c0ad11f6369681f4c428a33d56795 100644 GIT binary patch delta 5084 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 delta 4784 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 diff --git a/PyInt.h b/PyInt.h index 4228e049..12e6755b 100644 --- a/PyInt.h +++ b/PyInt.h @@ -11,6 +11,7 @@ #define PyGetFloat(param) PyFloat_FromDouble(param >= 0 ? param : -param) #define PyGetInt(param) PyInt_FromLong(param) +#define PyGetFloatS(param) PyFloat_FromDouble(param) #define PyGetBool(param) param ? Py_True : Py_False struct ltstr diff --git a/Train.cpp b/Train.cpp index c24aad4a..48973198 100644 --- a/Train.cpp +++ b/Train.cpp @@ -290,6 +290,15 @@ PyObject *TTrain::GetTrainState() PyDict_SetItemString(dict, "minutes", PyGetInt(GlobalTime->mm)); PyDict_SetItemString(dict, "seconds", PyGetInt(GlobalTime->mr)); PyDict_SetItemString(dict, "velocity_desired", PyGetFloat(DynamicObject->Mechanik->VelDesired)); + Char* TXTT[10] = { "fd", "fdt", "fdb", "pd", "pdt", "pdb", "itothv", "1", "2", "3" }; + Char* TXTC[10] = { "fr", "frt", "frb", "pr", "prt", "prb", "im", "vm", "ihv", "uhv" }; + for (int j = 0; j<10; j++) + PyDict_SetItemString(dict, (AnsiString("eimp_t_") + AnsiString(TXTT[j])).c_str(), PyGetFloatS(fEIMParams[0][j])); + for (int i = 0; i<8; i++) + for (int j = 0; j<10; j++) + PyDict_SetItemString(dict, (AnsiString("eimp_c") + IntToStr(i + 1) + AnsiString("_") + AnsiString(TXTC[j])).c_str(), PyGetFloatS(fEIMParams[i + 1][j])); + PyDict_SetItemString(dict, "car_no", PyGetInt(iCarNo)); + PyDict_SetItemString(dict, "power_no", PyGetInt(iPowerNo)); return dict; } @@ -2572,6 +2581,8 @@ bool TTrain::Update() TDynamicObject *p = DynamicObject->GetFirstDynamic(mvOccupied->ActiveCab < 0 ? 1 : 0); int in = 0; fEIMParams[0][6] = 0; + iCarNo = 0; + iPowerNo = 0; for (int i = 0; i < 20; i++) { if (p) @@ -2595,8 +2606,10 @@ bool TTrain::Update() fEIMParams[1 + in][9] = p->MoverParameters->Voltage; fEIMParams[0][6] += fEIMParams[1 + in][8]; in++; + iPowerNo = in; } p = p->NextC(4); + iCarNo = i; } else { diff --git a/Train.h b/Train.h index 090e71ed..5ccb3ac3 100644 --- a/Train.h +++ b/Train.h @@ -379,6 +379,7 @@ class TTrain float fHCurrent[4]; // pr?dy: suma i amperomierze 1,2,3 float fEngine[4]; // obroty te? trzeba pobra? float fPress[20][3]; // cisnienia dla wszystkich czlonow + int iCarNo, iPowerNo; //liczba pojazdow i czlonow napednych bool bDoors[20]; // drzwi dla wszystkich czlonow // McZapkie: do syczenia float fPPress, fNPress;