From 59ac66c6f8e2ba4fc3b69d7a3d8245259c1cfa9c Mon Sep 17 00:00:00 2001 From: maciek001 Date: Sun, 19 Feb 2017 01:51:30 +0100 Subject: [PATCH 01/10] dodane logowanie przebiegu pracy (RUN) --- Console/MWD.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/Console/MWD.cpp b/Console/MWD.cpp index 67e08f46..e6a93008 100644 --- a/Console/MWD.cpp +++ b/Console/MWD.cpp @@ -133,9 +133,11 @@ bool TMWDComm::Open() // otwieranie portu COM bool TMWDComm::Close() // zamykanie portu COM { - Global::bMWDmasterEnable = false; // główne włączenie portu! - Global::bMWDInputEnable = false; // włącz wejścia - Global::bMWDBreakEnable = false; // włącz wejścia analogowe + Global::bMWDmasterEnable = false; // wyłącz SerialPort + Global::bMWDInputEnable = false; // wyłącz wejścia + Global::bMWDBreakEnable = false; // wyłącz wejścia analogowe + Global::bMWDdebugEnable = false; // wyłącz debugowanie + Global::iMWDDebugMode = 0; // wyłącz debugMode! WriteLog("COM Port is closing..."); int i = 0; @@ -164,7 +166,7 @@ bool TMWDComm::ReadData() // odbieranie danych + odczyta danych analogowych i za { DWORD bytes_read; ReadFile(hComm, &ReadDataBuff[0], BYTETOREAD, &bytes_read, NULL); - + if (Global::bMWDdebugEnable && Global::iMWDDebugMode == 128) WriteLog("Data receive. Checking data..."); if (Global::bMWDBreakEnable) { uiAnalog[0] = (ReadDataBuff[9] << 8) + ReadDataBuff[8]; @@ -204,8 +206,11 @@ bool TMWDComm::Run() // wywoływanie obsługi MWD + generacja większego opóźn if (!(MWDTime % Global::iMWDdivider)) { MWDTime = 0; + if (Global::bMWDdebugEnable && Global::iMWDDebugMode == 128) WriteLog("Sending data..."); SendData(); + if (Global::bMWDdebugEnable && Global::iMWDDebugMode == 128) WriteLog(" complet!\nReceiving data..."); ReadData(); + if (Global::bMWDdebugEnable && Global::iMWDDebugMode == 128) WriteLog(" complet!"); return 1; } } From d9860dbdb2a518f1ea1c2e75bda615f331665c1a Mon Sep 17 00:00:00 2001 From: maciek001 Date: Sun, 19 Feb 2017 02:12:07 +0100 Subject: [PATCH 02/10] =?UTF-8?q?przerobione=20hamulce:=20teraz=20AnalogCa?= =?UTF-8?q?librateGet()zwraca=20warto=C5=9B=C4=87=20od=200=20do=201=20i=20?= =?UTF-8?q?dopiero=20w=20Train=20przeliczana=20jest=20warto=C5=9B=C4=87=20?= =?UTF-8?q?na=20po=C5=82o=C5=BCenie=20hamulca.=20Osobno=20hamulec=20FV4a?= =?UTF-8?q?=20i=20osobno=20FVel6.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Console.cpp | 11 +---------- Train.cpp | 16 +++++++++++++--- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/Console.cpp b/Console.cpp index d38bb4e9..0000c790 100644 --- a/Console.cpp +++ b/Console.cpp @@ -474,16 +474,7 @@ float Console::AnalogCalibrateGet(int x) if (Global::bMWDmasterEnable && Global::bMWDBreakEnable) { float b = (float)MWDComm->uiAnalog[x]; - b = (b - Global::fMWDAnalogInCalib[x][0]) / (Global::fMWDAnalogInCalib[x][1] - Global::fMWDAnalogInCalib[x][0]); - switch (x) - { - case 0: if (Global::bMWDdebugEnable && Global::iMWDDebugMode & 4) WriteLog("Pozycja kranu = " + to_string(b * 8 - 2)); - return (b * 8 - 2); - break; - case 1: return (b * 10); - break; - default: return 0; - } + return (b - Global::fMWDAnalogInCalib[x][0]) / (Global::fMWDAnalogInCalib[x][1] - Global::fMWDAnalogInCalib[x][0]); } return -1.0; // odcięcie }; diff --git a/Train.cpp b/Train.cpp index e557dcbe..a4b0488d 100644 --- a/Train.cpp +++ b/Train.cpp @@ -3762,11 +3762,20 @@ bool TTrain::Update( double const Deltatime ) false) // nie blokujemy AI { // Ra: nie najlepsze miejsce, ale na początek gdzieś to dać trzeba // Firleju: dlatego kasujemy i zastepujemy funkcją w Console - if (((mvOccupied->BrakeHandle == FV4a) || - (mvOccupied->BrakeHandle == FVel6))) // może można usunąć ograniczenie do FV4a i FVel6? + if (mvOccupied->BrakeHandle == FV4a) + { + double b = Console::AnalogCalibrateGet(0); + b = b * 8 - 2; + b = Global::CutValueToRange(-2.0, b, mvOccupied->BrakeCtrlPosNo); // przycięcie zmiennej do granic + + ggBrakeCtrl.UpdateValue(b); // przesów bez zaokrąglenia + mvOccupied->BrakeLevelSet(b); + } + if (mvOccupied->BrakeHandle == FVel6) // może można usunąć ograniczenie do FV4a i FVel6? { double b = Console::AnalogCalibrateGet(0); - b = Global::CutValueToRange(-2.0, b, mvOccupied->BrakeCtrlPosNo); // przycięcie zmiennej do granic + b = b * 7 - 1; + b = Global::CutValueToRange(-1.0, b, mvOccupied->BrakeCtrlPosNo); // przycięcie zmiennej do granic ggBrakeCtrl.UpdateValue(b); // przesów bez zaokrąglenia mvOccupied->BrakeLevelSet(b); @@ -3789,6 +3798,7 @@ bool TTrain::Update( double const Deltatime ) if ((mvOccupied->BrakeLocHandle == FD1)) { double b = Console::AnalogCalibrateGet(1); + b *= 10; b = Global::CutValueToRange(0.0, b, LocalBrakePosNo); // przycięcie zmiennej do granic ggLocalBrake.UpdateValue(b); // przesów bez zaokrąglenia mvOccupied->LocalBrakePos = From e3811fe9953093e9506b431f0793dd001695459b Mon Sep 17 00:00:00 2001 From: maciek001 Date: Sun, 19 Feb 2017 02:20:23 +0100 Subject: [PATCH 03/10] dodano loga pozycji kranu hamula zespolonego --- Train.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Train.cpp b/Train.cpp index a4b0488d..78a512d7 100644 --- a/Train.cpp +++ b/Train.cpp @@ -3767,7 +3767,7 @@ bool TTrain::Update( double const Deltatime ) double b = Console::AnalogCalibrateGet(0); b = b * 8 - 2; b = Global::CutValueToRange(-2.0, b, mvOccupied->BrakeCtrlPosNo); // przycięcie zmiennej do granic - + if (Global::bMWDdebugEnable && Global::iMWDDebugMode & 4) WriteLog("Pozycja kranu = " + to_string(b)); ggBrakeCtrl.UpdateValue(b); // przesów bez zaokrąglenia mvOccupied->BrakeLevelSet(b); } @@ -3776,7 +3776,7 @@ bool TTrain::Update( double const Deltatime ) double b = Console::AnalogCalibrateGet(0); b = b * 7 - 1; b = Global::CutValueToRange(-1.0, b, mvOccupied->BrakeCtrlPosNo); // przycięcie zmiennej do granic - + if (Global::bMWDdebugEnable && Global::iMWDDebugMode & 4) WriteLog("Pozycja kranu = " + to_string(b)); ggBrakeCtrl.UpdateValue(b); // przesów bez zaokrąglenia mvOccupied->BrakeLevelSet(b); } From da4755c3cc53550a5333abef85a5853b56a90b88 Mon Sep 17 00:00:00 2001 From: maciek001 Date: Sun, 19 Feb 2017 02:37:40 +0100 Subject: [PATCH 04/10] =?UTF-8?q?pr=C4=99dko=C5=9B=C4=87=200=20gdy=20pauza?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Console.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Console.cpp b/Console.cpp index 0000c790..93263ed4 100644 --- a/Console.cpp +++ b/Console.cpp @@ -421,7 +421,8 @@ void Console::ValueSet(int x, double y) MWDComm->WriteDataBuff[20] = (unsigned int)(iliczba >> 8); MWDComm->WriteDataBuff[19] = (unsigned char)iliczba; break; - case 7: MWDComm->WriteDataBuff[0] = (unsigned char)floor(y); // prędkość + case 7: if (Global::iPause) MWDComm->WriteDataBuff[0] = 0; //skoro pauza to hasler stoi i nie nabija kilometrów + else MWDComm->WriteDataBuff[0] = (unsigned char)floor(y); // prędkość dla np haslera break; } } From 01dff9b85c1951a61b8d4559a6f177a1581a4b6d Mon Sep 17 00:00:00 2001 From: maciek001 Date: Sun, 19 Feb 2017 13:41:11 +0100 Subject: [PATCH 05/10] =?UTF-8?q?dodane=20uzale=C5=BCnienia=20do=20cofania?= =?UTF-8?q?=20famulca=20FVel6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Train.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Train.cpp b/Train.cpp index 78a512d7..ff800230 100644 --- a/Train.cpp +++ b/Train.cpp @@ -3791,7 +3791,7 @@ bool TTrain::Update( double const Deltatime ) if (ggLocalBrake.SubModel) { if (DynamicObject->Mechanik ? - (DynamicObject->Mechanik->AIControllFlag ? false : (Global::iFeedbackMode == 4 || Global::bMWDmasterEnable)) : + (DynamicObject->Mechanik->AIControllFlag ? false : (Global::iFeedbackMode == 4 || (Global::bMWDmasterEnable && Global::bMWDBreakEnable))) : false) // nie blokujemy AI { // Ra: nie najlepsze miejsce, ale na początek gdzieś to dać trzeba // Firleju: dlatego kasujemy i zastepujemy funkcją w Console @@ -4691,7 +4691,7 @@ bool TTrain::Update( double const Deltatime ) if ((!Console::Pressed(Global::Keys[k_DecBrakeLevel])) && (!Console::Pressed(Global::Keys[k_WaveBrake])) && (mvOccupied->BrakeCtrlPos == -1) && (mvOccupied->BrakeHandle == FVel6) && (DynamicObject->Controller != AIdriver) && - (Global::iFeedbackMode != 4)) + (Global::iFeedbackMode != 4 || !(Global::bMWDmasterEnable && Global::bMWDBreakEnable))) { // mvOccupied->BrakeCtrlPos=(mvOccupied->BrakeCtrlPos)+1; // mvOccupied->IncBrakeLevel(); From e06c6b79434793af1c39ad6dc586085a509250e3 Mon Sep 17 00:00:00 2001 From: maciek001 Date: Sun, 19 Feb 2017 13:41:50 +0100 Subject: [PATCH 06/10] =?UTF-8?q?dodane=20info=20na=20ko=C5=84cu=20o=20wpi?= =?UTF-8?q?sach=20do=20ini?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Console/MWD.h | 50 ++++++++++++++++++-------------------------------- 1 file changed, 18 insertions(+), 32 deletions(-) diff --git a/Console/MWD.h b/Console/MWD.h index ad35ee87..ef2ec632 100644 --- a/Console/MWD.h +++ b/Console/MWD.h @@ -70,43 +70,29 @@ public: #endif /* - INFO - zmiany dokonane w innych plikach niezbędne do prawidłowego działania: +INFO - wpisy do eu07.ini: - Console.cpp: - Console::AnalogCalibrateGet - obsługa kranów hamulców - Console::Update - wywoływanie obsługi MWD - Console::ValueSet - obsługa manometrów, mierników WN (PWM-y) - Console::BitsUpdate - ustawiania lampek - Console::Off - zamykanie portu COM - Console::On - otwieranie portu COM - Console::~Console - usuwanie MWD (jest też w Console OFF) +mwdmasterenable yes // włącz MWD (master MWD Enable) +mwddebugenable yes // włącz logowanie +mwddebugmode 4 // tryb debugowania (które logi) - MWDComm * Console::MWD = NULL; - luzem, obiekt i wskaźnik(?) - dodatkowo zmieniłem int na long int dla BitSet i BitClear oraz iBits +mwdcomportname COM3 // nazwa portu +mwdbaudrate 500000 // prędkość transmisji - Train.cpp: - if (Global::iFeedbackMode == 5) - pobieranie prędkości, manometrów i mierników WN - if (ggBrakeCtrl.SubModel) - możliwość sterowania hamulcem zespolonym - if (ggLocalBrake.SubModel) - możliwość sterowania hamulcem lokomotywy +mwdinputenable yes // włącz wejścia (przyciski, przełączniki) +mwdbreakenable yes // włącz hamulce (wejścia analogowe) - Globals.h: - dodano zmienne dla MWD - Globals.cpp: - dodano inicjalizaję zmiennych i odczyt z ini ustawień +mwdmainbreakconfig 0 1023 // konfiguracja kranu zespolonego -> min, max (położenie kranu - odczyt z ADC) +mwdlocbreakconfig 0 1023 // konfiguracja kranu maszynisty -> min, max (położenie kranu - odczyt z ADC) +mwdanalogin2config 0 1023 +mwdanalogin2config 0 1023 - Wpisy do pliku eu07.ini +mwdmaintankpress 0.9 1023 // max ciśnienie w zbiorniku głownym i rozdzielczość +mwdmainpipepress 0.7 1023 // max ciśnienie w przewodzie głównym i rozdzielczość +mwdbreakpress 0.5 1023 // max ciśnienie w cylindrach hamulcowych i rozdzielczość - //maciek001 MWD - comportname COM3 // wybór portu COM - mwdbaudrate 500000 +mwdhivoltmeter 4000 1023 // max napięcie na woltomierzu WN +mwdhiampmeter 800 1023 // max prąd amperomierza WN - mwdbreakenable yes // czy załączyć sterowanie hamulcami? blokuje klawiature - mwdbreak 1 255 0 255 // hamulec zespolony - mwdbreak 2 255 0 255 // hamulec lokomotywy - - mwdzbiornikglowny 0.82 255 - mwdprzewodglowny 0.7 255 - mwdcylinderhamulcowy 0.43 255 - mwdwoltomierzwn 4000 255 - mwdamperomierzwn 800 255 +mwddivider 5 // dzielnik - czym większy tym rzadziej czyta diwajs */ From 1c8bfe067e45454c8594c2b0000b19703d942652 Mon Sep 17 00:00:00 2001 From: maciek001 Date: Mon, 20 Feb 2017 13:21:14 +0100 Subject: [PATCH 07/10] =?UTF-8?q?Poprawka=20kranu=20FVel6=20-=20ju=C5=BC?= =?UTF-8?q?=20nie=20cofa=20na=20analogowym?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Train.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Train.cpp b/Train.cpp index ff800230..f4dfdc18 100644 --- a/Train.cpp +++ b/Train.cpp @@ -4691,7 +4691,7 @@ bool TTrain::Update( double const Deltatime ) if ((!Console::Pressed(Global::Keys[k_DecBrakeLevel])) && (!Console::Pressed(Global::Keys[k_WaveBrake])) && (mvOccupied->BrakeCtrlPos == -1) && (mvOccupied->BrakeHandle == FVel6) && (DynamicObject->Controller != AIdriver) && - (Global::iFeedbackMode != 4 || !(Global::bMWDmasterEnable && Global::bMWDBreakEnable))) + Global::iFeedbackMode != 4 && (!(Global::bMWDmasterEnable && Global::bMWDBreakEnable))) { // mvOccupied->BrakeCtrlPos=(mvOccupied->BrakeCtrlPos)+1; // mvOccupied->IncBrakeLevel(); From b383b536da163339bb30cae54ccbdb41ebe128ec Mon Sep 17 00:00:00 2001 From: maciek001 Date: Mon, 20 Feb 2017 13:23:08 +0100 Subject: [PATCH 08/10] =?UTF-8?q?kosmetyka=20wcze=C5=9Bniejszego?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Train.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Train.cpp b/Train.cpp index f4dfdc18..035a5524 100644 --- a/Train.cpp +++ b/Train.cpp @@ -4691,7 +4691,7 @@ bool TTrain::Update( double const Deltatime ) if ((!Console::Pressed(Global::Keys[k_DecBrakeLevel])) && (!Console::Pressed(Global::Keys[k_WaveBrake])) && (mvOccupied->BrakeCtrlPos == -1) && (mvOccupied->BrakeHandle == FVel6) && (DynamicObject->Controller != AIdriver) && - Global::iFeedbackMode != 4 && (!(Global::bMWDmasterEnable && Global::bMWDBreakEnable))) + (Global::iFeedbackMode != 4) && (!(Global::bMWDmasterEnable && Global::bMWDBreakEnable))) { // mvOccupied->BrakeCtrlPos=(mvOccupied->BrakeCtrlPos)+1; // mvOccupied->IncBrakeLevel(); From 8baefd69b00bcedac208e19c804332c7d33cc4f0 Mon Sep 17 00:00:00 2001 From: maciek001 Date: Mon, 20 Feb 2017 13:29:00 +0100 Subject: [PATCH 09/10] kosmetyka przy kranie --- maszyna.sln | 7 ++----- maszyna.vcxproj | 19 ++++++++++--------- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/maszyna.sln b/maszyna.sln index 1c19b757..24fa39aa 100644 --- a/maszyna.sln +++ b/maszyna.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.40629.0 +# Visual Studio 14 +VisualStudioVersion = 14.0.23107.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "maszyna", "maszyna.vcxproj", "{8E0232E5-1C67-442F-9E04-45ED2DDFC960}" EndProject @@ -19,7 +19,4 @@ Global GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(Performance) = preSolution - HasPerformanceSessions = true - EndGlobalSection EndGlobal diff --git a/maszyna.vcxproj b/maszyna.vcxproj index 2797b436..50c6e3cd 100644 --- a/maszyna.vcxproj +++ b/maszyna.vcxproj @@ -1,5 +1,5 @@  - + Debug @@ -13,17 +13,18 @@ {8E0232E5-1C67-442F-9E04-45ED2DDFC960} Win32Proj + 8.1 Application true - v120_xp + v140_xp Application false - v120_xp + v140_xp @@ -36,14 +37,14 @@ - eu07++ - $(SolutionDir)tmp\$(PlatformShortName)-$(Configuration)\$(ProjectName)\ - $(SolutionDir)bin\ + mhEU07-201702debug + E:\Gry\EU07\eu07 exe\tmj-cpp-hamulec + E:\Gry\EU07\eu07 exe\tmj-cpp - eu07++ + mhEU07-201702relase $(SolutionDir)tmp\$(PlatformShortName)-$(Configuration)\$(ProjectName)\ - $(SolutionDir)bin\ + E:\Gry\EU07\eu07 exe\tmj-cpp-hamulec false @@ -55,7 +56,7 @@ Use true false - true + false MachineX86 From 64bb5048e5a4bb4bf30081aac69849fbfcc1a9fa Mon Sep 17 00:00:00 2001 From: maciek001 Date: Mon, 20 Feb 2017 17:08:56 +0100 Subject: [PATCH 10/10] =?UTF-8?q?AnalogCalibrateGet=20dla=20PoKeys=20zwrac?= =?UTF-8?q?a=20=20warto=C5=9B=C4=87=20od=200=20do=201=20bez=20konieczno?= =?UTF-8?q?=C5=9Bci=20zmiany=20wpis=C3=B3w=20kalibracyjnych=20do=20eu07.in?= =?UTF-8?q?i?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Console.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/Console.cpp b/Console.cpp index 93263ed4..bf8950bb 100644 --- a/Console.cpp +++ b/Console.cpp @@ -463,14 +463,23 @@ float Console::AnalogCalibrateGet(int x) if (iMode == 4 && PoKeys55[0]) { float b = PoKeys55[0]->fAnalog[x]; - return (((((Global::fCalibrateIn[x][5] * b) + Global::fCalibrateIn[x][4]) * b + + /*return (((((Global::fCalibrateIn[x][5] * b) + Global::fCalibrateIn[x][4]) * b + Global::fCalibrateIn[x][3]) * b + Global::fCalibrateIn[x][2]) * b + Global::fCalibrateIn[x][1]) * b + - Global::fCalibrateIn[x][0]; + Global::fCalibrateIn[x][0];*/ + b = (((((Global::fCalibrateIn[x][5] * b) + Global::fCalibrateIn[x][4]) * b + + Global::fCalibrateIn[x][3]) * + b + + Global::fCalibrateIn[x][2]) * + b + + Global::fCalibrateIn[x][1]) * + b + + Global::fCalibrateIn[x][0]; + return (b + 2) / 8; } if (Global::bMWDmasterEnable && Global::bMWDBreakEnable) {