From 741d1743e0718244d7b76aa3700d563b424143ba Mon Sep 17 00:00:00 2001 From: maciek001 Date: Thu, 16 Feb 2017 14:26:32 +0100 Subject: [PATCH 01/29] Zabezpieczenie przed dzieleniem modulo przez zero! (iMWDdivider) --- Globals.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Globals.cpp b/Globals.cpp index d8cabf78..7c31e329 100644 --- a/Globals.cpp +++ b/Globals.cpp @@ -896,6 +896,12 @@ void Global::ConfigParse(cParser &Parser) else if (token == "mwddivider") { Parser.getTokens(1, false); Parser >> iMWDdivider; + if (iMWDdivider == 0) + { + WriteLog("Dzielnik nie może być równy ZERO! Ustawiam na 1!"); + iMWDdivider = 1; + } + if (bMWDdebugEnable) WriteLog("Divider = " + to_string(iMWDdivider)); } } while ((token != "") && (token != "endconfig")); //(!Parser->EndOfFile) // na koniec trochę zależności From b3e8002290861a6cab7405a84b938d8b76c273d9 Mon Sep 17 00:00:00 2001 From: maciek001 Date: Thu, 16 Feb 2017 14:40:15 +0100 Subject: [PATCH 02/29] =?UTF-8?q?Poprawione=20b=C5=82=C4=99dy=20log=C3=B3w?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Console/MWD.cpp | 4 ++-- Globals.cpp | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Console/MWD.cpp b/Console/MWD.cpp index 5f546ce3..2c8c891b 100644 --- a/Console/MWD.cpp +++ b/Console/MWD.cpp @@ -29,8 +29,8 @@ TMWDComm::TMWDComm() // konstruktor MWDTime = 0; bSHPstate = false; bPrzejazdSHP = false; - bKabina1 = true; // pasuje wyciągnąć dane na temat kabiny i ustawiać te dwa parametry! - bKabina2 = false; + bKabina1 = true; // pasuje wyciągnąć dane na temat kabiny + bKabina2 = false; // i ustawiać te dwa parametry! bHamowanie = false; bCzuwak = false; diff --git a/Globals.cpp b/Globals.cpp index 7c31e329..14f3968f 100644 --- a/Globals.cpp +++ b/Globals.cpp @@ -856,42 +856,42 @@ void Global::ConfigParse(cParser &Parser) else if (token == "mwdlocbreakconfig") { // ustawienia hamulca lokomotywy Parser.getTokens(2, false); Parser >> fMWDAnalogInCalib[1][0] >> fMWDAnalogInCalib[1][1]; - if (bMWDdebugEnable) WriteLog("Locomotive break settings: " + to_string(fMWDAnalogInCalib[1][0]) + to_string(" ") + to_string(fMWDAnalogInCalib[1][1])); + if (bMWDdebugEnable) WriteLog("Locomotive break settings: " + to_string(fMWDAnalogInCalib[1][0]) + (" ") + to_string(fMWDAnalogInCalib[1][1])); } else if (token == "mwdanalogin1config") { // ustawienia hamulca zespolonego Parser.getTokens(2, false); Parser >> fMWDAnalogInCalib[2][0] >> fMWDAnalogInCalib[2][1]; - if (bMWDdebugEnable) WriteLog("Analog input 1 settings: " + to_string(fMWDAnalogInCalib[2][0]) + to_string(" ") + to_string(fMWDAnalogInCalib[2][1])); + if (bMWDdebugEnable) WriteLog("Analog input 1 settings: " + to_string(fMWDAnalogInCalib[2][0]) + (" ") + to_string(fMWDAnalogInCalib[2][1])); } else if (token == "mwdanalogin2config") { // ustawienia hamulca lokomotywy Parser.getTokens(2, false); Parser >> fMWDAnalogInCalib[3][0] >> fMWDAnalogInCalib[3][1]; - if (bMWDdebugEnable) WriteLog("Analog input 2 settings: " + to_string(fMWDAnalogInCalib[3][0]) + to_string(" ") + to_string(fMWDAnalogInCalib[3][1])); + if (bMWDdebugEnable) WriteLog("Analog input 2 settings: " + to_string(fMWDAnalogInCalib[3][0]) + (" ") + to_string(fMWDAnalogInCalib[3][1])); } else if (token == "mwdmaintankpress") { // max ciśnienie w zbiorniku głownym i rozdzielczość Parser.getTokens(2, false); Parser >> fMWDzg[0] >> fMWDzg[1]; - if (bMWDdebugEnable) WriteLog("MainAirTank settings: " + to_string(fMWDzg[0]) + to_string(" ") + to_string(fMWDzg[1])); + if (bMWDdebugEnable) WriteLog("MainAirTank settings: " + to_string(fMWDzg[0]) + (" ") + to_string(fMWDzg[1])); } else if (token == "mwdmainpipepress") { // max ciśnienie w przewodzie głownym i rozdzielczość Parser.getTokens(2, false); Parser >> fMWDpg[0] >> fMWDpg[1]; - if (bMWDdebugEnable) WriteLog("MainAirPipe settings: " + to_string(fMWDpg[0]) + to_string(" ") + to_string(fMWDpg[1])); + if (bMWDdebugEnable) WriteLog("MainAirPipe settings: " + to_string(fMWDpg[0]) + (" ") + to_string(fMWDpg[1])); } else if (token == "mwdbreakpress") { // max ciśnienie w hamulcach i rozdzielczość Parser.getTokens(2, false); Parser >> fMWDph[0] >> fMWDph[1]; - if (bMWDdebugEnable) WriteLog("AirPipe settings: " + to_string(fMWDph[0]) + to_string(" ") + to_string(fMWDph[1])); + if (bMWDdebugEnable) WriteLog("AirPipe settings: " + to_string(fMWDph[0]) + (" ") + to_string(fMWDph[1])); } else if (token == "mwdhivoltmeter") { // max napięcie na woltomierzu WN Parser.getTokens(2, false); Parser >> fMWDvolt[0] >> fMWDvolt[1]; - if (bMWDdebugEnable) WriteLog("VoltMeter settings: " + to_string(fMWDvolt[0]) + to_string(" ") + to_string(fMWDvolt[1])); + if (bMWDdebugEnable) WriteLog("VoltMeter settings: " + to_string(fMWDvolt[0]) + (" ") + to_string(fMWDvolt[1])); } else if (token == "mwdhiampmeter") { Parser.getTokens(2, false); Parser >> fMWDamp[0] >> fMWDamp[1]; - if (bMWDdebugEnable) WriteLog("Amp settings: " + to_string(fMWDamp[0]) + to_string(" ") + to_string(fMWDamp[1])); + if (bMWDdebugEnable) WriteLog("Amp settings: " + to_string(fMWDamp[0]) + (" ") + to_string(fMWDamp[1])); } else if (token == "mwddivider") { Parser.getTokens(1, false); From b7c728155ada861372d8c373581d71798fec7f0d Mon Sep 17 00:00:00 2001 From: maciek001 Date: Thu, 16 Feb 2017 18:08:55 +0100 Subject: [PATCH 03/29] poprawa logowania pozycji kranu zespolonego --- Console.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Console.cpp b/Console.cpp index 00157d5f..d38bb4e9 100644 --- a/Console.cpp +++ b/Console.cpp @@ -477,7 +477,8 @@ float Console::AnalogCalibrateGet(int x) b = (b - Global::fMWDAnalogInCalib[x][0]) / (Global::fMWDAnalogInCalib[x][1] - Global::fMWDAnalogInCalib[x][0]); switch (x) { - case 0: return (b * 8 - 2); + 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; From b93d673edea7d378aa1fcc858c77ed7785d3d5a6 Mon Sep 17 00:00:00 2001 From: maciek001 Date: Fri, 17 Feb 2017 23:04:16 +0100 Subject: [PATCH 04/29] kosmetyka --- Console/MWD.cpp | 56 ++++++++++++++++++++++++------------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/Console/MWD.cpp b/Console/MWD.cpp index 2c8c891b..0bcddb9c 100644 --- a/Console/MWD.cpp +++ b/Console/MWD.cpp @@ -231,43 +231,43 @@ void TMWDComm::CheckData() // sprawdzanie wejść cyfrowych i odpowiednie sterow /* Rozpiska portów! Port0: 0 NC odblok. przek. sprężarki i wentyl. oporów - 1 M wyłącznik wył. szybkiego - 2 Shift+M impuls załączający wył. szybki - 3 N odblok. przekaźników nadmiarowych + 1 M wyłącznik wył. szybkiego + 2 Shift+M impuls załączający wył. szybki + 3 N odblok. przekaźników nadmiarowych i różnicowego obwodu głównego - 4 NC rezerwa - 5 Ctrl+N odblok. przek. nadmiarowych + 4 NC rezerwa + 5 Ctrl+N odblok. przek. nadmiarowych przetwornicy, ogrzewania pociągu i różnicowych obw. pomocniczych - 6 L wył. styczników liniowych - 7 SPACE kasowanie czuwaka + 6 L wył. styczników liniowych + 7 SPACE kasowanie czuwaka Port1: 0 NC - 1 (Shift) X przetwornica - 2 (Shift) C sprężarka - 3 S piasecznice - 4 (Shift) H ogrzewanie składu - 5 przel. hamowania Shift+B + 1 (Shift) X przetwornica + 2 (Shift) C sprężarka + 3 S piasecznice + 4 (Shift) H ogrzewanie składu + 5 przel. hamowania Shift+B pspbpwy Ctrl+B pospieszny B towarowy - 6 przel. hamowania - 7 (Shift) F rozruch w/n + 6 przel. hamowania + 7 (Shift) F rozruch w/n Port2: 0 (Shift) P pantograf przedni - 1 (Shift) O pantograf tylni - 2 ENTER przyhamowanie przy poślizgu - 3 () przyciemnienie świateł - 4 () przyciemnienie świateł - 5 NUM6 odluźniacz - 6 a syrena lok W - 7 A syrena lok N + 1 (Shift) O pantograf tylni + 2 ENTER przyhamowanie przy poślizgu + 3 () przyciemnienie świateł + 4 () przyciemnienie świateł + 5 NUM6 odluźniacz + 6 a syrena lok W + 7 A syrena lok N Port3: 0 Shift+J bateria - 1 - 2 - 3 - 4 - 5 - 6 - 7 + 1 + 2 + 3 + 4 + 5 + 6 + 7 */ /* po przełączeniu bistabilnego najpierw wciskamy klawisz i przy następnym From 4ae03170f39accdebc93ae0b09c2fa8d6be034e6 Mon Sep 17 00:00:00 2001 From: maciek001 Date: Sat, 18 Feb 2017 16:11:46 +0100 Subject: [PATCH 05/29] =?UTF-8?q?usun=C4=85=C5=82em=20"inline"=20przy=20Ge?= =?UTF-8?q?tMWEState=20-=20powodowa=C5=82=20b=C5=82=C4=85d=20linkera=20prz?= =?UTF-8?q?y=20budowaniu=20RELASE'a?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Console/MWD.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Console/MWD.cpp b/Console/MWD.cpp index 0bcddb9c..67e08f46 100644 --- a/Console/MWD.cpp +++ b/Console/MWD.cpp @@ -152,7 +152,7 @@ bool TMWDComm::Close() // zamykanie portu COM return TRUE; } -inline bool TMWDComm::GetMWDState() // sprawdzanie otwarcia portu COM +bool TMWDComm::GetMWDState() // sprawdzanie otwarcia portu COM { if (hComm > 0) return 1; From 59ac66c6f8e2ba4fc3b69d7a3d8245259c1cfa9c Mon Sep 17 00:00:00 2001 From: maciek001 Date: Sun, 19 Feb 2017 01:51:30 +0100 Subject: [PATCH 06/29] 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 8cace6f4da35a75e6bd1e65cc98a87e9fa8d4d52 Mon Sep 17 00:00:00 2001 From: maciek001 Date: Sun, 19 Feb 2017 01:54:22 +0100 Subject: [PATCH 07/29] dodane logi --- Console/MWD.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Console/MWD.cpp b/Console/MWD.cpp index 67e08f46..8aca11a0 100644 --- a/Console/MWD.cpp +++ b/Console/MWD.cpp @@ -204,8 +204,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 08/29] =?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 09/29] 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 10/29] =?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 658a05a976cff77ce8993bc95f65ba7ca0fa14ff Mon Sep 17 00:00:00 2001 From: maciek001 Date: Sun, 19 Feb 2017 12:49:30 +0100 Subject: [PATCH 11/29] =?UTF-8?q?wy=C5=82=C4=85czanie=20debugowania=20przy?= =?UTF-8?q?=20wy=C5=82=C4=85czaniu=20komunikacji?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Console/MWD.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Console/MWD.cpp b/Console/MWD.cpp index 8aca11a0..020af603 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; // główne włączenie portu! + Global::bMWDInputEnable = false; // włącz wejścia + Global::bMWDBreakEnable = false; // włącz wejścia analogowe + Global::bMWDdebugEnable = false; // wyłącz debugowanie + Global::iMWDDebugMode = 0; // wyłącz debugMode! WriteLog("COM Port is closing..."); int i = 0; From 01dff9b85c1951a61b8d4559a6f177a1581a4b6d Mon Sep 17 00:00:00 2001 From: maciek001 Date: Sun, 19 Feb 2017 13:41:11 +0100 Subject: [PATCH 12/29] =?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 13/29] =?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 14/29] =?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 76fd3487a6d4c774e037426af23439e26b7c006b Mon Sep 17 00:00:00 2001 From: maciek001 Date: Mon, 20 Feb 2017 13:22:26 +0100 Subject: [PATCH 15/29] Poprawa FVel6 - cofanie z -1 --- Train.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Train.cpp b/Train.cpp index e557dcbe..faea72d9 100644 --- a/Train.cpp +++ b/Train.cpp @@ -4681,7 +4681,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 b383b536da163339bb30cae54ccbdb41ebe128ec Mon Sep 17 00:00:00 2001 From: maciek001 Date: Mon, 20 Feb 2017 13:23:08 +0100 Subject: [PATCH 16/29] =?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 17/29] 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 74cd2585eb646019f24dacd6af1145d94d13740f Mon Sep 17 00:00:00 2001 From: maciek001 Date: Mon, 20 Feb 2017 16:32:43 +0100 Subject: [PATCH 18/29] - --- Console/MWD.h | 4 ++-- maszyna.sln | 7 ++----- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/Console/MWD.h b/Console/MWD.h index ad35ee87..773e3ad6 100644 --- a/Console/MWD.h +++ b/Console/MWD.h @@ -61,8 +61,8 @@ public: unsigned int uiAnalog[4]; // trzymanie danych z wejść analogowych - BYTE ReadDataBuff[BYTETOREAD]; //17]; // bufory danych - BYTE WriteDataBuff[BYTETOWRITE]; //31]; + BYTE ReadDataBuff[BYTETOREAD+2]; //17]; // bufory danych + BYTE WriteDataBuff[BYTETOWRITE+2]; //31]; TMWDComm(); // konstruktor ~TMWDComm(); // destruktor 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 From 64bb5048e5a4bb4bf30081aac69849fbfcc1a9fa Mon Sep 17 00:00:00 2001 From: maciek001 Date: Mon, 20 Feb 2017 17:08:56 +0100 Subject: [PATCH 19/29] =?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) { From 540c6ad28e6cd81fd0f67f9ea0c912b46927f135 Mon Sep 17 00:00:00 2001 From: maciek001 Date: Mon, 20 Feb 2017 17:53:36 +0100 Subject: [PATCH 20/29] =?UTF-8?q?dodane=20kana=C5=82y=20pwm=20i=20pr=C4=99?= =?UTF-8?q?dko=C5=9B=C4=87=20ale=20nie=20testowane!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Console.cpp | 10 +++++++++- Console/MWD.cpp | 8 +++----- Train.cpp | 16 ++++++++++++++-- 3 files changed, 26 insertions(+), 8 deletions(-) diff --git a/Console.cpp b/Console.cpp index bf8950bb..0480cd93 100644 --- a/Console.cpp +++ b/Console.cpp @@ -396,33 +396,41 @@ void Console::ValueSet(int x, double y) case 0: iliczba = (unsigned int)floor((y / (Global::fMWDzg[0] * 10) * Global::fMWDzg[1]) + 0.5); // zbiornik g??wny MWDComm->WriteDataBuff[12] = (unsigned char)(iliczba >> 8); MWDComm->WriteDataBuff[11] = (unsigned char)iliczba; + if (Global::bMWDmasterEnable && Global::iMWDDebugMode & 8) WriteLog("Main tank presure " + to_string(MWDComm->WriteDataBuff[12]) + " " + to_string(MWDComm->WriteDataBuff[11])); break; case 1: iliczba = (unsigned int)floor((y / (Global::fMWDpg[0] * 10) * Global::fMWDpg[1]) + 0.5); // przew?d g??wny MWDComm->WriteDataBuff[10] = (unsigned char)(iliczba >> 8); MWDComm->WriteDataBuff[9] = (unsigned char)iliczba; + if (Global::bMWDmasterEnable && Global::iMWDDebugMode & 8) WriteLog("Main pipe presure " + to_string(MWDComm->WriteDataBuff[10]) + " " + to_string(MWDComm->WriteDataBuff[9])); break; case 2: iliczba = (unsigned int)floor((y / (Global::fMWDph[0] * 10) * Global::fMWDph[1]) + 0.5); // cylinder hamulcowy MWDComm->WriteDataBuff[8] = (unsigned char)(iliczba >> 8); MWDComm->WriteDataBuff[7] = (unsigned char)iliczba; + if (Global::bMWDmasterEnable && Global::iMWDDebugMode & 8) WriteLog("Break presure " + to_string(MWDComm->WriteDataBuff[8]) + " " + to_string(MWDComm->WriteDataBuff[7])); break; case 3: iliczba = (unsigned int)floor((y / Global::fMWDvolt[0] * Global::fMWDvolt[1]) + 0.5); // woltomierz WN MWDComm->WriteDataBuff[14] = (unsigned char)(iliczba >> 8); MWDComm->WriteDataBuff[13] = (unsigned char)iliczba; + if (Global::bMWDmasterEnable && Global::iMWDDebugMode & 8) WriteLog("Volt meter " + to_string(MWDComm->WriteDataBuff[14]) + " " + to_string(MWDComm->WriteDataBuff[13])); break; case 4: iliczba = (unsigned int)floor((y / Global::fMWDamp[0] * Global::fMWDamp[1]) + 0.5); // amp WN 1 MWDComm->WriteDataBuff[16] = (unsigned char)(iliczba >> 8); MWDComm->WriteDataBuff[15] = (unsigned char)iliczba; + if (Global::bMWDmasterEnable && Global::iMWDDebugMode & 8) WriteLog("Apm meter1 " + to_string(MWDComm->WriteDataBuff[16]) + " " + to_string(MWDComm->WriteDataBuff[15])); break; case 5: iliczba = (unsigned int)floor((y / Global::fMWDamp[0] * Global::fMWDamp[1]) + 0.5); // amp WN 2 MWDComm->WriteDataBuff[18] = (unsigned char)(iliczba >> 8); MWDComm->WriteDataBuff[17] = (unsigned char)iliczba; + if (Global::bMWDmasterEnable && Global::iMWDDebugMode & 8) WriteLog("Apm meter2 " + to_string(MWDComm->WriteDataBuff[18]) + " " + to_string(MWDComm->WriteDataBuff[17])); break; case 6: iliczba = (unsigned int)floor((y / Global::fMWDamp[0] * Global::fMWDamp[1]) + 0.5); // amp WN 3 MWDComm->WriteDataBuff[20] = (unsigned int)(iliczba >> 8); MWDComm->WriteDataBuff[19] = (unsigned char)iliczba; + if (Global::bMWDmasterEnable && Global::iMWDDebugMode & 8) WriteLog("Apm meter3 " + to_string(MWDComm->WriteDataBuff[20]) + " " + to_string(MWDComm->WriteDataBuff[19])); break; - case 7: if (Global::iPause) MWDComm->WriteDataBuff[0] = 0; //skoro pauza to hasler stoi i nie nabija kilometrów + case 7: if (Global::iPause) MWDComm->WriteDataBuff[0] = 0; //skoro pauza to hasler stoi i nie nabija kilometrów CHYBA NIE DZIAŁA! else MWDComm->WriteDataBuff[0] = (unsigned char)floor(y); // prędkość dla np haslera + if (Global::bMWDmasterEnable && Global::iMWDDebugMode & 8) WriteLog("Speed: " + to_string(MWDComm->WriteDataBuff[0])); break; } } diff --git a/Console/MWD.cpp b/Console/MWD.cpp index e6a93008..19564b8f 100644 --- a/Console/MWD.cpp +++ b/Console/MWD.cpp @@ -133,11 +133,9 @@ bool TMWDComm::Open() // otwieranie portu COM bool TMWDComm::Close() // zamykanie portu COM { - 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! + Global::bMWDmasterEnable = false; // główne włączenie portu! + Global::bMWDInputEnable = false; // włącz wejścia + Global::bMWDBreakEnable = false; // włącz wejścia analogowe WriteLog("COM Port is closing..."); int i = 0; diff --git a/Train.cpp b/Train.cpp index 035a5524..6436cc2f 100644 --- a/Train.cpp +++ b/Train.cpp @@ -2842,6 +2842,18 @@ bool TTrain::Update( double const Deltatime ) /// napędu } + if (Global::bMWDmasterEnable) // pobieranie danych dla pulpitu przez port szeregowy (COM) + { + Console::ValueSet(0, mvOccupied->Compressor); // zbiornik główny + Console::ValueSet(1, mvOccupied->PipePress); // przewód główny + Console::ValueSet(2, mvOccupied->BrakePress); // cylinder hamulcowy + Console::ValueSet(3, fHVoltage); // woltomierz wysokiego napięcia + Console::ValueSet(4, fHCurrent[3]); // drugi amperomierz 3 + Console::ValueSet(4, fHCurrent[2]); // drugi amperomierz 2 + Console::ValueSet(5, fHCurrent[(mvControlled->TrainType & dt_EZT) ? 0 : 1]); // pierwszy amperomierz; dla EZT prąd całkowity + Console::ValueSet(6, fTachoVelocity); + } + // hunter-080812: wyrzucanie szybkiego na elektrykach gdy nie ma napiecia // przy dowolnym ustawieniu kierunkowego // Ra: to już jest w T_MoverParameters::TractionForce(), ale zależy od @@ -3763,8 +3775,8 @@ bool TTrain::Update( double const Deltatime ) { // Ra: nie najlepsze miejsce, ale na początek gdzieś to dać trzeba // Firleju: dlatego kasujemy i zastepujemy funkcją w Console if (mvOccupied->BrakeHandle == FV4a) - { - double b = Console::AnalogCalibrateGet(0); + { + 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)); From 420428ce9bcbb76373e254e35f477e11206888c9 Mon Sep 17 00:00:00 2001 From: maciek001 Date: Mon, 20 Feb 2017 17:55:56 +0100 Subject: [PATCH 21/29] poprawki 2 --- Console.cpp | 6 +++--- Train.cpp | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Console.cpp b/Console.cpp index 0480cd93..9b44b661 100644 --- a/Console.cpp +++ b/Console.cpp @@ -396,17 +396,17 @@ void Console::ValueSet(int x, double y) case 0: iliczba = (unsigned int)floor((y / (Global::fMWDzg[0] * 10) * Global::fMWDzg[1]) + 0.5); // zbiornik g??wny MWDComm->WriteDataBuff[12] = (unsigned char)(iliczba >> 8); MWDComm->WriteDataBuff[11] = (unsigned char)iliczba; - if (Global::bMWDmasterEnable && Global::iMWDDebugMode & 8) WriteLog("Main tank presure " + to_string(MWDComm->WriteDataBuff[12]) + " " + to_string(MWDComm->WriteDataBuff[11])); + if (Global::bMWDmasterEnable && Global::iMWDDebugMode & 8) WriteLog("Main tank press " + to_string(MWDComm->WriteDataBuff[12]) + " " + to_string(MWDComm->WriteDataBuff[11])); break; case 1: iliczba = (unsigned int)floor((y / (Global::fMWDpg[0] * 10) * Global::fMWDpg[1]) + 0.5); // przew?d g??wny MWDComm->WriteDataBuff[10] = (unsigned char)(iliczba >> 8); MWDComm->WriteDataBuff[9] = (unsigned char)iliczba; - if (Global::bMWDmasterEnable && Global::iMWDDebugMode & 8) WriteLog("Main pipe presure " + to_string(MWDComm->WriteDataBuff[10]) + " " + to_string(MWDComm->WriteDataBuff[9])); + if (Global::bMWDmasterEnable && Global::iMWDDebugMode & 8) WriteLog("Main pipe press " + to_string(MWDComm->WriteDataBuff[10]) + " " + to_string(MWDComm->WriteDataBuff[9])); break; case 2: iliczba = (unsigned int)floor((y / (Global::fMWDph[0] * 10) * Global::fMWDph[1]) + 0.5); // cylinder hamulcowy MWDComm->WriteDataBuff[8] = (unsigned char)(iliczba >> 8); MWDComm->WriteDataBuff[7] = (unsigned char)iliczba; - if (Global::bMWDmasterEnable && Global::iMWDDebugMode & 8) WriteLog("Break presure " + to_string(MWDComm->WriteDataBuff[8]) + " " + to_string(MWDComm->WriteDataBuff[7])); + if (Global::bMWDmasterEnable && Global::iMWDDebugMode & 8) WriteLog("Break press " + to_string(MWDComm->WriteDataBuff[8]) + " " + to_string(MWDComm->WriteDataBuff[7])); break; case 3: iliczba = (unsigned int)floor((y / Global::fMWDvolt[0] * Global::fMWDvolt[1]) + 0.5); // woltomierz WN MWDComm->WriteDataBuff[14] = (unsigned char)(iliczba >> 8); diff --git a/Train.cpp b/Train.cpp index 6436cc2f..d32ec22e 100644 --- a/Train.cpp +++ b/Train.cpp @@ -2848,10 +2848,10 @@ bool TTrain::Update( double const Deltatime ) Console::ValueSet(1, mvOccupied->PipePress); // przewód główny Console::ValueSet(2, mvOccupied->BrakePress); // cylinder hamulcowy Console::ValueSet(3, fHVoltage); // woltomierz wysokiego napięcia - Console::ValueSet(4, fHCurrent[3]); // drugi amperomierz 3 - Console::ValueSet(4, fHCurrent[2]); // drugi amperomierz 2 - Console::ValueSet(5, fHCurrent[(mvControlled->TrainType & dt_EZT) ? 0 : 1]); // pierwszy amperomierz; dla EZT prąd całkowity - Console::ValueSet(6, fTachoVelocity); + Console::ValueSet(6, fHCurrent[3]); // drugi amperomierz 3 + Console::ValueSet(5, fHCurrent[2]); // drugi amperomierz 2 + Console::ValueSet(4, fHCurrent[(mvControlled->TrainType & dt_EZT) ? 0 : 1]); // pierwszy amperomierz; dla EZT prąd całkowity + Console::ValueSet(7, fTachoVelocity); } // hunter-080812: wyrzucanie szybkiego na elektrykach gdy nie ma napiecia From 746da9a5adabec64cefc46b1ac3d264b92e6a288 Mon Sep 17 00:00:00 2001 From: maciek001 Date: Tue, 21 Feb 2017 19:26:51 +0100 Subject: [PATCH 22/29] =?UTF-8?q?znalaz=C5=82em=20napi=C4=99cie=20na=20bat?= =?UTF-8?q?erii?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Train.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Train.cpp b/Train.cpp index d32ec22e..40893cb9 100644 --- a/Train.cpp +++ b/Train.cpp @@ -2852,6 +2852,7 @@ bool TTrain::Update( double const Deltatime ) Console::ValueSet(5, fHCurrent[2]); // drugi amperomierz 2 Console::ValueSet(4, fHCurrent[(mvControlled->TrainType & dt_EZT) ? 0 : 1]); // pierwszy amperomierz; dla EZT prąd całkowity Console::ValueSet(7, fTachoVelocity); + //mvControlled->BatteryVoltage; przyda się w przyszłości } // hunter-080812: wyrzucanie szybkiego na elektrykach gdy nie ma napiecia From 249fdc0f804ed8c11ac5ff3e25f12be0a07456de Mon Sep 17 00:00:00 2001 From: maciek001 Date: Wed, 22 Feb 2017 00:12:37 +0100 Subject: [PATCH 23/29] poprawka dla hamulca dodatkowego pokeys --- Console.cpp | 53 ++++++++++++++++++++++++++++++----------------------- Train.cpp | 11 +++++++---- 2 files changed, 37 insertions(+), 27 deletions(-) diff --git a/Console.cpp b/Console.cpp index 9b44b661..04291262 100644 --- a/Console.cpp +++ b/Console.cpp @@ -324,7 +324,7 @@ void Console::BitsUpdate(int mask) else MWDComm->WriteDataBuff[4] &= ~(1 << 6); if (mask & 0x0004) if (iBits & 4) MWDComm->WriteDataBuff[4] |= 1 << 1; // jazda na oporach rozruchowych else MWDComm->WriteDataBuff[4] &= ~(1 << 1); - if (mask & 0x0008) if (iBits & 8) MWDComm->WriteDataBuff[5] |= 1 << 5; // wy??cznik szybki + if (mask & 0x0008) if (iBits & 8) MWDComm->WriteDataBuff[5] |= 1 << 5; // wy??cznik szybki else MWDComm->WriteDataBuff[5] &= ~(1 << 5); if (mask & 0x0010) if (iBits & 0x10) MWDComm->WriteDataBuff[5] |= 1 << 4; // nadmiarowy silnik?w trakcyjnych else MWDComm->WriteDataBuff[5] &= ~(1 << 4); @@ -342,11 +342,11 @@ void Console::BitsUpdate(int mask) else MWDComm->WriteDataBuff[2] &= ~(1 << 2); if (mask & 0x0800) if (iBits & 0x800) MWDComm->WriteDataBuff[4] |= 1 << 0; // ogrzewanie poci?gu else MWDComm->WriteDataBuff[4] &= ~(1 << 0); - if (mask & 0x1000) if (iBits & 0x1000) MWDComm->bHamowanie = true; // hasler: ci?nienie w hamulcach HASLER rysik 2 + if (mask & 0x1000) if (iBits & 0x1000) MWDComm->bHamowanie = true; // hasler: ci?nienie w hamulcach HASLER rysik 2 else MWDComm->bHamowanie = false; - if (mask & 0x2000) if (iBits & 0x2000) MWDComm->WriteDataBuff[6] |= 1 << 4; // hasler: pr?d "na" silnikach HASLER rysik 3 + if (mask & 0x2000) if (iBits & 0x2000) MWDComm->WriteDataBuff[6] |= 1 << 4; // hasler: pr?d "na" silnikach HASLER rysik 3 else MWDComm->WriteDataBuff[6] &= ~(1 << 4); - if (mask & 0x4000) if (iBits & 0x4000) MWDComm->WriteDataBuff[6] |= 1 << 7; // brz?czyk SHP/CA + if (mask & 0x4000) if (iBits & 0x4000) MWDComm->WriteDataBuff[6] |= 1 << 7; // brz?czyk SHP/CA else MWDComm->WriteDataBuff[6] &= ~(1 << 7); //if(mask & 0x8000) if(iBits & 0x8000) MWDComm->WriteDataBuff[1] |= 1<<7; (puste) //else MWDComm->WriteDataBuff[0] &= ~(1<<7); @@ -432,6 +432,11 @@ void Console::ValueSet(int x, double y) else MWDComm->WriteDataBuff[0] = (unsigned char)floor(y); // prędkość dla np haslera if (Global::bMWDmasterEnable && Global::iMWDDebugMode & 8) WriteLog("Speed: " + to_string(MWDComm->WriteDataBuff[0])); break; + /* case 8: iliczba = (unsigned int)floor((y / Global::fMWDamp[0] * Global::fMWDamp[1]) + 0.5); // amp WN 3 + MWDComm->WriteDataBuff[20] = (unsigned int)(iliczba >> 8); + MWDComm->WriteDataBuff[19] = (unsigned char)iliczba; + if (Global::bMWDmasterEnable && Global::iMWDDebugMode & 8) WriteLog("Apm meter3 " + to_string(MWDComm->WriteDataBuff[20]) + " " + to_string(MWDComm->WriteDataBuff[19])); + break; */ // na razie nie działa więc nie odkomentować! } } }; @@ -470,25 +475,27 @@ float Console::AnalogCalibrateGet(int x) { // pobranie i kalibracja wartości analogowej, jeśli nie ma PoKeys zwraca NULL if (iMode == 4 && PoKeys55[0]) { - float b = PoKeys55[0]->fAnalog[x]; - /*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];*/ - 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; - } + float b = PoKeys55[0]->fAnalog[x]; + /*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];*/ + 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]; + if (x == 0) return (b + 2) / 8; + if (x == 1) return b/10; + else return b; + } if (Global::bMWDmasterEnable && Global::bMWDBreakEnable) { float b = (float)MWDComm->uiAnalog[x]; diff --git a/Train.cpp b/Train.cpp index 40893cb9..19ebccc9 100644 --- a/Train.cpp +++ b/Train.cpp @@ -2842,17 +2842,18 @@ bool TTrain::Update( double const Deltatime ) /// napędu } - if (Global::bMWDmasterEnable) // pobieranie danych dla pulpitu przez port szeregowy (COM) + if (Global::bMWDmasterEnable) // pobieranie danych dla pulpitu port (COM) { Console::ValueSet(0, mvOccupied->Compressor); // zbiornik główny Console::ValueSet(1, mvOccupied->PipePress); // przewód główny Console::ValueSet(2, mvOccupied->BrakePress); // cylinder hamulcowy Console::ValueSet(3, fHVoltage); // woltomierz wysokiego napięcia - Console::ValueSet(6, fHCurrent[3]); // drugi amperomierz 3 + Console::ValueSet(4, fHCurrent[(mvControlled->TrainType & dt_EZT) ? 0 : 1]); + // pierwszy amperomierz; dla EZT prąd całkowity Console::ValueSet(5, fHCurrent[2]); // drugi amperomierz 2 - Console::ValueSet(4, fHCurrent[(mvControlled->TrainType & dt_EZT) ? 0 : 1]); // pierwszy amperomierz; dla EZT prąd całkowity + Console::ValueSet(6, fHCurrent[3]); // drugi amperomierz 3 Console::ValueSet(7, fTachoVelocity); - //mvControlled->BatteryVoltage; przyda się w przyszłości + //Console::ValueSet(8, mvControlled->BatteryVoltage); // przyda się w przyszłości } // hunter-080812: wyrzucanie szybkiego na elektrykach gdy nie ma napiecia @@ -3800,6 +3801,8 @@ bool TTrain::Update( double const Deltatime ) // ggBrakeCtrl.UpdateValue(double(mvOccupied->BrakeCtrlPos)); ggBrakeCtrl.UpdateValue(mvOccupied->fBrakeCtrlPos); ggBrakeCtrl.Update(); + + } if (ggLocalBrake.SubModel) { From 9c242d3590d9c3a2b0b79a01ff0f7f20de1c75a2 Mon Sep 17 00:00:00 2001 From: maciek001 Date: Wed, 22 Feb 2017 22:36:01 +0100 Subject: [PATCH 24/29] Drobne dodatki i poprawki --- Console.cpp | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/Console.cpp b/Console.cpp index 04291262..f6ced4d2 100644 --- a/Console.cpp +++ b/Console.cpp @@ -146,7 +146,7 @@ int Console::On() { // załączenie konsoli (np. nawiązanie komunikacji) iSwitch[0] = iSwitch[1] = iSwitch[2] = iSwitch[3] = 0; // bity 0..127 - bez [Ctrl] iSwitch[4] = iSwitch[5] = iSwitch[6] = iSwitch[7] = 0; // bity 128..255 - z [Ctrl] - switch (iMode) + switch (iMode) { case 1: // kontrolki klawiatury case 2: // kontrolki klawiatury @@ -176,6 +176,7 @@ int Console::On() { // połączenie nie wyszło, ma być NULL delete PoKeys55[0]; PoKeys55[0] = NULL; + WriteLog("PoKeys not found!"); } break; } @@ -324,29 +325,29 @@ void Console::BitsUpdate(int mask) else MWDComm->WriteDataBuff[4] &= ~(1 << 6); if (mask & 0x0004) if (iBits & 4) MWDComm->WriteDataBuff[4] |= 1 << 1; // jazda na oporach rozruchowych else MWDComm->WriteDataBuff[4] &= ~(1 << 1); - if (mask & 0x0008) if (iBits & 8) MWDComm->WriteDataBuff[5] |= 1 << 5; // wy??cznik szybki + if (mask & 0x0008) if (iBits & 8) MWDComm->WriteDataBuff[5] |= 1 << 5; // wyłącznik szybki else MWDComm->WriteDataBuff[5] &= ~(1 << 5); - if (mask & 0x0010) if (iBits & 0x10) MWDComm->WriteDataBuff[5] |= 1 << 4; // nadmiarowy silnik?w trakcyjnych + if (mask & 0x0010) if (iBits & 0x10) MWDComm->WriteDataBuff[5] |= 1 << 4; // nadmiarowy silników trakcyjnych else MWDComm->WriteDataBuff[5] &= ~(1 << 4); if (mask & 0x0020) if (iBits & 0x20) MWDComm->WriteDataBuff[4] |= 1 << 0; // styczniki liniowe else MWDComm->WriteDataBuff[5] &= ~(1 << 0); - if (mask & 0x0040) if (iBits & 0x40) MWDComm->WriteDataBuff[4] |= 1 << 2; // po?lizg + if (mask & 0x0040) if (iBits & 0x40) MWDComm->WriteDataBuff[4] |= 1 << 2; // poślizg else MWDComm->WriteDataBuff[4] &= ~(1 << 2); if (mask & 0x0080) if (iBits & 0x80) MWDComm->WriteDataBuff[5] |= 1 << 2; // (nadmiarowy) przetwornicy? ++ else MWDComm->WriteDataBuff[5] &= ~(1 << 2); - if (mask & 0x0100) if (iBits & 0x100) MWDComm->WriteDataBuff[5] |= 1 << 7; // nadmiarowy spr??arki + if (mask & 0x0100) if (iBits & 0x100) MWDComm->WriteDataBuff[5] |= 1 << 7; // nadmiarowy sprężarki else MWDComm->WriteDataBuff[5] &= ~(1 << 7); if (mask & 0x0200) if (iBits & 0x200) MWDComm->WriteDataBuff[2] |= 1 << 1; // wentylatory i opory else MWDComm->WriteDataBuff[2] &= ~(1 << 1); if (mask & 0x0400) if (iBits & 0x400) MWDComm->WriteDataBuff[2] |= 1 << 2; // wysoki rozruch else MWDComm->WriteDataBuff[2] &= ~(1 << 2); - if (mask & 0x0800) if (iBits & 0x800) MWDComm->WriteDataBuff[4] |= 1 << 0; // ogrzewanie poci?gu + if (mask & 0x0800) if (iBits & 0x800) MWDComm->WriteDataBuff[4] |= 1 << 0; // ogrzewanie pociągu else MWDComm->WriteDataBuff[4] &= ~(1 << 0); - if (mask & 0x1000) if (iBits & 0x1000) MWDComm->bHamowanie = true; // hasler: ci?nienie w hamulcach HASLER rysik 2 + if (mask & 0x1000) if (iBits & 0x1000) MWDComm->bHamowanie = true; // hasler: ciśnienie w hamulcach HASLER rysik 2 else MWDComm->bHamowanie = false; - if (mask & 0x2000) if (iBits & 0x2000) MWDComm->WriteDataBuff[6] |= 1 << 4; // hasler: pr?d "na" silnikach HASLER rysik 3 + if (mask & 0x2000) if (iBits & 0x2000) MWDComm->WriteDataBuff[6] |= 1 << 4; // hasler: prąd "na" silnikach - HASLER rysik 3 else MWDComm->WriteDataBuff[6] &= ~(1 << 4); - if (mask & 0x4000) if (iBits & 0x4000) MWDComm->WriteDataBuff[6] |= 1 << 7; // brz?czyk SHP/CA + if (mask & 0x4000) if (iBits & 0x4000) MWDComm->WriteDataBuff[6] |= 1 << 7; // brzęczyk SHP/CA else MWDComm->WriteDataBuff[6] &= ~(1 << 7); //if(mask & 0x8000) if(iBits & 0x8000) MWDComm->WriteDataBuff[1] |= 1<<7; (puste) //else MWDComm->WriteDataBuff[0] &= ~(1<<7); @@ -393,25 +394,25 @@ void Console::ValueSet(int x, double y) unsigned int iliczba; switch (x) { - case 0: iliczba = (unsigned int)floor((y / (Global::fMWDzg[0] * 10) * Global::fMWDzg[1]) + 0.5); // zbiornik g??wny + case 0: iliczba = (unsigned int)floor((y / (Global::fMWDzg[0] * 10) * Global::fMWDzg[1]) + 0.5); // zbiornik główny MWDComm->WriteDataBuff[12] = (unsigned char)(iliczba >> 8); MWDComm->WriteDataBuff[11] = (unsigned char)iliczba; if (Global::bMWDmasterEnable && Global::iMWDDebugMode & 8) WriteLog("Main tank press " + to_string(MWDComm->WriteDataBuff[12]) + " " + to_string(MWDComm->WriteDataBuff[11])); break; - case 1: iliczba = (unsigned int)floor((y / (Global::fMWDpg[0] * 10) * Global::fMWDpg[1]) + 0.5); // przew?d g??wny + case 1: iliczba = (unsigned int)floor((y / (Global::fMWDpg[0] * 10) * Global::fMWDpg[1]) + 0.5); // przewód główny MWDComm->WriteDataBuff[10] = (unsigned char)(iliczba >> 8); MWDComm->WriteDataBuff[9] = (unsigned char)iliczba; if (Global::bMWDmasterEnable && Global::iMWDDebugMode & 8) WriteLog("Main pipe press " + to_string(MWDComm->WriteDataBuff[10]) + " " + to_string(MWDComm->WriteDataBuff[9])); break; - case 2: iliczba = (unsigned int)floor((y / (Global::fMWDph[0] * 10) * Global::fMWDph[1]) + 0.5); // cylinder hamulcowy + case 2: iliczba = (unsigned int)floor((y / (Global::fMWDph[0] * 10) * Global::fMWDph[1]) + 0.5); // cylinder hamulcowy MWDComm->WriteDataBuff[8] = (unsigned char)(iliczba >> 8); MWDComm->WriteDataBuff[7] = (unsigned char)iliczba; if (Global::bMWDmasterEnable && Global::iMWDDebugMode & 8) WriteLog("Break press " + to_string(MWDComm->WriteDataBuff[8]) + " " + to_string(MWDComm->WriteDataBuff[7])); break; - case 3: iliczba = (unsigned int)floor((y / Global::fMWDvolt[0] * Global::fMWDvolt[1]) + 0.5); // woltomierz WN + case 3: iliczba = (unsigned int)floor((y / Global::fMWDvolt[0] * Global::fMWDvolt[1]) + 0.5); // woltomierz WN MWDComm->WriteDataBuff[14] = (unsigned char)(iliczba >> 8); MWDComm->WriteDataBuff[13] = (unsigned char)iliczba; - if (Global::bMWDmasterEnable && Global::iMWDDebugMode & 8) WriteLog("Volt meter " + to_string(MWDComm->WriteDataBuff[14]) + " " + to_string(MWDComm->WriteDataBuff[13])); + if (Global::bMWDmasterEnable && Global::iMWDDebugMode & 8) WriteLog("Hi Volt meter " + to_string(MWDComm->WriteDataBuff[14]) + " " + to_string(MWDComm->WriteDataBuff[13])); break; case 4: iliczba = (unsigned int)floor((y / Global::fMWDamp[0] * Global::fMWDamp[1]) + 0.5); // amp WN 1 MWDComm->WriteDataBuff[16] = (unsigned char)(iliczba >> 8); @@ -432,11 +433,11 @@ void Console::ValueSet(int x, double y) else MWDComm->WriteDataBuff[0] = (unsigned char)floor(y); // prędkość dla np haslera if (Global::bMWDmasterEnable && Global::iMWDDebugMode & 8) WriteLog("Speed: " + to_string(MWDComm->WriteDataBuff[0])); break; - /* case 8: iliczba = (unsigned int)floor((y / Global::fMWDamp[0] * Global::fMWDamp[1]) + 0.5); // amp WN 3 - MWDComm->WriteDataBuff[20] = (unsigned int)(iliczba >> 8); - MWDComm->WriteDataBuff[19] = (unsigned char)iliczba; - if (Global::bMWDmasterEnable && Global::iMWDDebugMode & 8) WriteLog("Apm meter3 " + to_string(MWDComm->WriteDataBuff[20]) + " " + to_string(MWDComm->WriteDataBuff[19])); - break; */ // na razie nie działa więc nie odkomentować! + case 8: iliczba = (unsigned int)floor((y / Global::fMWDlowVolt[0] * Global::fMWDlowVolt[1]) + 0.5); // volt NN + MWDComm->WriteDataBuff[22] = (unsigned int)(iliczba >> 8); + MWDComm->WriteDataBuff[21] = (unsigned char)iliczba; + if (Global::bMWDmasterEnable && Global::iMWDDebugMode & 8) WriteLog("Low Volt meter " + to_string(MWDComm->WriteDataBuff[22]) + " " + to_string(MWDComm->WriteDataBuff[21])); + break; // przygotowane do wdrożenia, jeszcze nie wywoływane } } }; From b6c75afd257fcc5fcaacf8b15e7ab6763ed54a53 Mon Sep 17 00:00:00 2001 From: maciek001 Date: Wed, 22 Feb 2017 22:37:22 +0100 Subject: [PATCH 25/29] =?UTF-8?q?PRZYWR=C3=93CONO=20Console::ModeSet()!!!?= =?UTF-8?q?=20Nie=20dzia=C5=82a=C5=82=20przez=20to=20PoKeys!=20Dodano=20zm?= =?UTF-8?q?ienn=C4=85=20dla=20MWD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Globals.cpp | 12 +++++++++--- Globals.h | 1 + 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/Globals.cpp b/Globals.cpp index 14f3968f..0677fe18 100644 --- a/Globals.cpp +++ b/Globals.cpp @@ -204,6 +204,7 @@ double Global::fMWDpg[2] = { 0.8, 1023 }; double Global::fMWDph[2] = { 0.6, 1023 }; double Global::fMWDvolt[2] = { 4000, 1023 }; double Global::fMWDamp[2] = { 800, 1023 }; +double Global::fMWDlowVolt[2] = { 150, 1023 }; int Global::iMWDdivider = 5; //--------------------------------------------------------------------------- @@ -893,6 +894,11 @@ void Global::ConfigParse(cParser &Parser) Parser >> fMWDamp[0] >> fMWDamp[1]; if (bMWDdebugEnable) WriteLog("Amp settings: " + to_string(fMWDamp[0]) + (" ") + to_string(fMWDamp[1])); } + else if (token == "mwdlowvoltmeter") { + Parser.getTokens(2, false); + Parser >> fMWDlowVolt[0] >> fMWDlowVolt[1]; + if (bMWDdebugEnable) WriteLog("Low VoltMeter settings: " + to_string(fMWDlowVolt[0]) + (" ") + to_string(fMWDlowVolt[1])); + } else if (token == "mwddivider") { Parser.getTokens(1, false); Parser >> iMWDdivider; @@ -931,9 +937,9 @@ void Global::ConfigParse(cParser &Parser) /* this won't execute anymore with the old parser removed // TBD: remove, or launch depending on passed flag? if (qp) - { // to poniżej wykonywane tylko raz, jedynie po wczytaniu eu07.ini - Console::ModeSet(iFeedbackMode, iFeedbackPort); // tryb pracy konsoli sterowniczej - iFpsRadiusMax = 0.000025 * fFpsRadiusMax * + { // to poniżej wykonywane tylko raz, jedynie po wczytaniu eu07.ini*/ + Console::ModeSet(iFeedbackMode, iFeedbackPort); // tryb pracy konsoli sterowniczej + /*iFpsRadiusMax = 0.000025 * fFpsRadiusMax * fFpsRadiusMax; // maksymalny promień renderowania 3000.0 -> 225 if (iFpsRadiusMax > 400) iFpsRadiusMax = 400; diff --git a/Globals.h b/Globals.h index c2b2b708..cb8aecfd 100644 --- a/Globals.h +++ b/Globals.h @@ -346,6 +346,7 @@ class Global static double fMWDph[2]; static double fMWDvolt[2]; static double fMWDamp[2]; + static double fMWDlowVolt[2]; static int iMWDdivider; }; //--------------------------------------------------------------------------- From 4ea06d7512dd04239060f5a7a9d43105227d2caa Mon Sep 17 00:00:00 2001 From: maciek001 Date: Wed, 22 Feb 2017 22:39:01 +0100 Subject: [PATCH 26/29] Logi po angielsku --- Train.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Train.cpp b/Train.cpp index 19ebccc9..e2bf6407 100644 --- a/Train.cpp +++ b/Train.cpp @@ -2853,7 +2853,7 @@ bool TTrain::Update( double const Deltatime ) Console::ValueSet(5, fHCurrent[2]); // drugi amperomierz 2 Console::ValueSet(6, fHCurrent[3]); // drugi amperomierz 3 Console::ValueSet(7, fTachoVelocity); - //Console::ValueSet(8, mvControlled->BatteryVoltage); // przyda się w przyszłości + //Console::ValueSet(8, mvControlled->BatteryVoltage); // jeszcze nie pora ;) } // hunter-080812: wyrzucanie szybkiego na elektrykach gdy nie ma napiecia @@ -3781,7 +3781,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)); + if (Global::bMWDdebugEnable && Global::iMWDDebugMode & 4) WriteLog("FV4a break position = " + to_string(b)); ggBrakeCtrl.UpdateValue(b); // przesów bez zaokrąglenia mvOccupied->BrakeLevelSet(b); } @@ -3790,7 +3790,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)); + if (Global::bMWDdebugEnable && Global::iMWDDebugMode & 4) WriteLog("FVel6 break position = " + to_string(b)); ggBrakeCtrl.UpdateValue(b); // przesów bez zaokrąglenia mvOccupied->BrakeLevelSet(b); } @@ -3817,6 +3817,7 @@ bool TTrain::Update( double const Deltatime ) b *= 10; b = Global::CutValueToRange(0.0, b, LocalBrakePosNo); // przycięcie zmiennej do granic ggLocalBrake.UpdateValue(b); // przesów bez zaokrąglenia + if (Global::bMWDdebugEnable && Global::iMWDDebugMode & 4) WriteLog("FD1 break position = " + to_string(b)); mvOccupied->LocalBrakePos = int(1.09 * b); // sposób zaokrąglania jest do ustalenia } From 36ca4bc32f7e54e6c00a293f99ad523ff7f9dd1e Mon Sep 17 00:00:00 2001 From: maciek001 Date: Wed, 22 Feb 2017 22:45:15 +0100 Subject: [PATCH 27/29] =?UTF-8?q?zmiany=20ustawie=C5=84=20projektu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- maszyna.vcxproj | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/maszyna.vcxproj b/maszyna.vcxproj index 50c6e3cd..2178f72c 100644 --- a/maszyna.vcxproj +++ b/maszyna.vcxproj @@ -57,6 +57,7 @@ true false false + MultiThreadedDebug MachineX86 @@ -68,7 +69,7 @@ WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) - MultiThreadedDLL + MultiThreaded Level3 ProgramDatabase $(SolutionDir);$(SolutionDir)console;$(SolutionDir)mczapkie;$(SolutionDir)opengl;$(SolutionDir)python/include;%(AdditionalIncludeDirectories) From e7bf06e99b1e7b37151cd4f71f9d8a28e9b8da77 Mon Sep 17 00:00:00 2001 From: maciek001 Date: Thu, 23 Feb 2017 17:42:29 +0100 Subject: [PATCH 28/29] =?UTF-8?q?poprawa=20b=C5=82=C4=99dnego=20wpisu=20pr?= =?UTF-8?q?zy=20zapalaniu=20stycznika=20liniowego?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Console.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Console.cpp b/Console.cpp index f6ced4d2..d29f6f02 100644 --- a/Console.cpp +++ b/Console.cpp @@ -329,7 +329,7 @@ void Console::BitsUpdate(int mask) else MWDComm->WriteDataBuff[5] &= ~(1 << 5); if (mask & 0x0010) if (iBits & 0x10) MWDComm->WriteDataBuff[5] |= 1 << 4; // nadmiarowy silników trakcyjnych else MWDComm->WriteDataBuff[5] &= ~(1 << 4); - if (mask & 0x0020) if (iBits & 0x20) MWDComm->WriteDataBuff[4] |= 1 << 0; // styczniki liniowe + if (mask & 0x0020) if (iBits & 0x20) MWDComm->WriteDataBuff[5] |= 1 << 0; // styczniki liniowe else MWDComm->WriteDataBuff[5] &= ~(1 << 0); if (mask & 0x0040) if (iBits & 0x40) MWDComm->WriteDataBuff[4] |= 1 << 2; // poślizg else MWDComm->WriteDataBuff[4] &= ~(1 << 2); From d2ddf4e8711ec154b2736c752828f357c2873b84 Mon Sep 17 00:00:00 2001 From: maciek001 Date: Wed, 8 Mar 2017 19:33:49 +0100 Subject: [PATCH 29/29] =?UTF-8?q?dodane=20=C5=9Bwiat=C5=82a=20zewn=C4=99tr?= =?UTF-8?q?zne=20(YUI)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Console.cpp | 21 +-- Console/MWD.cpp | 460 +++++++++++++++++++++++------------------------- maszyna.vcxproj | 4 +- 3 files changed, 230 insertions(+), 255 deletions(-) diff --git a/Console.cpp b/Console.cpp index d29f6f02..df7e047c 100644 --- a/Console.cpp +++ b/Console.cpp @@ -477,22 +477,11 @@ 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 + - Global::fCalibrateIn[x][3]) * - b + - Global::fCalibrateIn[x][2]) * - b + - Global::fCalibrateIn[x][1]) * - b + - 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]; + 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]; if (x == 0) return (b + 2) / 8; if (x == 1) return b/10; else return b; diff --git a/Console/MWD.cpp b/Console/MWD.cpp index 19564b8f..6512dac3 100644 --- a/Console/MWD.cpp +++ b/Console/MWD.cpp @@ -224,78 +224,84 @@ bool TMWDComm::Run() // wywoływanie obsługi MWD + generacja większego opóźn void TMWDComm::CheckData() // sprawdzanie wejść cyfrowych i odpowiednie sterowanie maszyną { - int i = 0; - while (i < 6) - { - maskData[i] = ReadDataBuff[i] ^ lastStateData[i]; - lastStateData[i] = ReadDataBuff[i]; - i++; - } - /* - Rozpiska portów! - Port0: 0 NC odblok. przek. sprężarki i wentyl. oporów - 1 M wyłącznik wył. szybkiego - 2 Shift+M impuls załączający wył. szybki - 3 N odblok. przekaźników nadmiarowych - i różnicowego obwodu głównego - 4 NC rezerwa - 5 Ctrl+N odblok. przek. nadmiarowych - przetwornicy, ogrzewania pociągu i różnicowych obw. pomocniczych - 6 L wył. styczników liniowych - 7 SPACE kasowanie czuwaka + int i = 0; + while (i < 6) + { + maskData[i] = ReadDataBuff[i] ^ lastStateData[i]; + lastStateData[i] = ReadDataBuff[i]; + i++; + } + /* + Rozpiska portów! + Port0: 0 NC odblok. przek. sprężarki i wentyl. oporów + 1 M wyłącznik wył. szybkiego + 2 Shift+M impuls załączający wył. szybki + 3 N odblok. przekaźników nadmiarowych + i różnicowego obwodu głównegoMMm + 4 NC rezerwa + 5 Ctrl+N odblok. przek. nadmiarowych + przetwornicy, ogrzewania pociągu i różnicowych obw. pomocniczych + 6 L wył. styczników liniowych + 7 SPACE kasowanie czuwaka - Port1: 0 NC - 1 (Shift) X przetwornica - 2 (Shift) C sprężarka - 3 S piasecznice - 4 (Shift) H ogrzewanie składu - 5 przel. hamowania Shift+B - pspbpwy Ctrl+B pospieszny B towarowy - 6 przel. hamowania - 7 (Shift) F rozruch w/n + Port1: 0 NC + 1 (Shift) X przetwornica + 2 (Shift) C sprężarka + 3 S piasecznice + 4 (Shift) H ogrzewanie składu + 5 przel. hamowania Shift+B + pspbpwy Ctrl+B pospieszny B towarowy + 6 przel. hamowania + 7 (Shift) F rozruch w/n - Port2: 0 (Shift) P pantograf przedni - 1 (Shift) O pantograf tylni - 2 ENTER przyhamowanie przy poślizgu - 3 () przyciemnienie świateł - 4 () przyciemnienie świateł - 5 NUM6 odluźniacz - 6 a syrena lok W - 7 A syrena lok N + Port2: 0 (Shift) P pantograf przedni + 1 (Shift) O pantograf tylni + 2 ENTER przyhamowanie przy poślizgu + 3 () przyciemnienie świateł + 4 () przyciemnienie świateł + 5 NUM6 odluźniacz + 6 a syrena lok W + 7 A syrena lok N - Port3: 0 Shift+J bateria - 1 - 2 - 3 - 4 - 5 - 6 - 7 - */ + Port3: 0 Shift+J bateria + 1 + 2 + 3 + 4 + 5 + 6 + 7 + */ - /* po przełączeniu bistabilnego najpierw wciskamy klawisz i przy następnym - wejściu w pętlę MWD puszczamy bo inaczej nie działa - */ + /* po przełączeniu bistabilnego najpierw wciskamy klawisz i przy następnym + wejściu w pętlę MWD puszczamy bo inaczej nie działa + */ - // wciskanie przycisków klawiatury - /*PORT0*/ - if (maskData[0] & 0x02) if (lastStateData[0] & 0x02) KeyBoard('M', 1); // wyłączenie wyłącznika szybkiego - else KeyBoard('M', 0); // monostabilny - if (maskData[0] & 0x04) if (lastStateData[0] & 0x04) { // impuls załączający wyłącznik szybki + // wciskanie przycisków klawiatury + /*PORT0*/ + if (maskData[0] & 0x02) if (lastStateData[0] & 0x02) + KeyBoard('M', 1); // wyłączenie wyłącznika szybkiego + else KeyBoard('M', 0); // monostabilny + if (maskData[0] & 0x04) if (lastStateData[0] & 0x04) // impuls załączający wyłącznik szybki + { KeyBoard(0x10, 1); // monostabilny KeyBoard('M', 1); } - else { + else + { KeyBoard('M', 0); KeyBoard(0x10, 0); } - if (maskData[0] & 0x08) if (lastStateData[0] & 0x08) KeyBoard('N', 1); // odblok nadmiarowego silników trakcyjnych - else KeyBoard('N', 0); // monostabilny - if (maskData[0] & 0x20) if (lastStateData[0] & 0x20) { // odblok nadmiarowego przetwornicy, ogrzewania poc. - KeyBoard(0x11, 1); // różnicowego obwodów pomocniczych - KeyBoard('N', 1); // monostabilny + if (maskData[0] & 0x08) if (lastStateData[0] & 0x08) + KeyBoard('N', 1); // odblok nadmiarowego silników trakcyjnych + else KeyBoard('N', 0); // monostabilny + if (maskData[0] & 0x20) if (lastStateData[0] & 0x20) + { // odblok nadmiarowego przetwornicy, ogrzewania poc. + KeyBoard(0x11, 1); // różnicowego obwodów pomocniczych + KeyBoard('N', 1); // monostabilny } - else { + else + { KeyBoard('N', 0); KeyBoard(0x11, 0); } @@ -304,16 +310,18 @@ void TMWDComm::CheckData() // sprawdzanie wejść cyfrowych i odpowiednie sterow if (maskData[0] & 0x80) if (lastStateData[0] & 0x80) KeyBoard(0x20, 1); // kasowanie czuwaka/SHP else KeyBoard(0x20, 0); // kasowanie czuwaka/SHP - /*PORT1*/ + /*PORT1*/ - // puszczanie przycisku bistabilnego klawiatury - if (maskSwitch[1] & 0x02) { - if (bitSwitch[1] & 0x02) { + // puszczanie przycisku bistabilnego klawiatury + if (maskSwitch[1] & 0x02) + { + if (bitSwitch[1] & 0x02) + { KeyBoard('X', 0); KeyBoard(0x10, 0); } else KeyBoard('X', 0); - maskSwitch[1] &= ~0x02; + maskSwitch[1] &= ~0x02; } if (maskSwitch[1] & 0x04) { if (bitSwitch[1] & 0x04) { @@ -346,61 +354,78 @@ void TMWDComm::CheckData() // sprawdzanie wejść cyfrowych i odpowiednie sterow maskSwitch[1] &= ~0x80; } - - if (maskData[1] & 0x02) if (lastStateData[1] & 0x02) { // przetwornica + // przetwornica + if (maskData[1] & 0x02) if (lastStateData[1] & 0x02) + { KeyBoard(0x10, 1); // bistabilny KeyBoard('X', 1); maskSwitch[1] |= 0x02; bitSwitch[1] |= 0x02; } - else { + else + { maskSwitch[1] |= 0x02; bitSwitch[1] &= ~0x02; KeyBoard('X', 1); } - if (maskData[1] & 0x04) if (lastStateData[1] & 0x04) { // sprężarka + // sprężarka + if (maskData[1] & 0x04) if (lastStateData[1] & 0x04) + { KeyBoard(0x10, 1); // bistabilny KeyBoard('C', 1); maskSwitch[1] |= 0x04; bitSwitch[1] |= 0x04; } - else { + else + { maskSwitch[1] |= 0x04; bitSwitch[1] &= ~0x04; KeyBoard('C', 1); } - if (maskData[1] & 0x08) if (lastStateData[1] & 0x08) KeyBoard('S', 1); // piasecznica - else KeyBoard('S', 0); // monostabilny - if (maskData[1] & 0x10) if (lastStateData[1] & 0x10) { // ogrzewanie składu + // piasecznica + if (maskData[1] & 0x08) if (lastStateData[1] & 0x08) + KeyBoard('S', 1); + else + KeyBoard('S', 0); // monostabilny + // ogrzewanie składu + if (maskData[1] & 0x10) if (lastStateData[1] & 0x10) + { KeyBoard(0x11, 1); // bistabilny KeyBoard('H', 1); maskSwitch[1] |= 0x10; bitSwitch[1] |= 0x10; } - else { + else + { maskSwitch[1] |= 0x10; bitSwitch[1] &= ~0x10; KeyBoard('H', 1); } - if (maskData[1] & 0x20 || maskData[1] & 0x40) { // przełącznik hamowania - if (lastStateData[1] & 0x20) { // Shift+B + // przełącznik hamowania + if (maskData[1] & 0x20 || maskData[1] & 0x40) + { + if (lastStateData[1] & 0x20) + { // Shift+B KeyBoard(0x10, 1); maskSwitch[1] |= 0x20; } - else if (lastStateData[1] & 0x40) { // Ctrl+B + else if (lastStateData[1] & 0x40) + { // Ctrl+B KeyBoard(0x11, 1); maskSwitch[1] |= 0x40; } KeyBoard('B', 1); } - - if (maskData[1] & 0x80) if (lastStateData[1] & 0x80) { // rozruch wysoki/niski + // rozruch wysoki/niski + if (maskData[1] & 0x80) if (lastStateData[1] & 0x80) + { KeyBoard(0x10, 1); // bistabilny KeyBoard('F', 1); maskSwitch[1] |= 0x80; bitSwitch[1] |= 0x80; } - else { + else + { maskSwitch[1] |= 0x80; bitSwitch[1] &= ~0x80; KeyBoard('F', 1); @@ -408,16 +433,20 @@ void TMWDComm::CheckData() // sprawdzanie wejść cyfrowych i odpowiednie sterow //PORT2 - if (maskSwitch[2] & 0x01) { - if (bitSwitch[2] & 0x01) { + if (maskSwitch[2] & 0x01) + { + if (bitSwitch[2] & 0x01) + { KeyBoard('P', 0); KeyBoard(0x10, 0); } else KeyBoard('P', 0); maskSwitch[2] &= ~0x01; } - if (maskSwitch[2] & 0x02) { - if (bitSwitch[2] & 0x02) { + if (maskSwitch[2] & 0x02) + { + if (bitSwitch[2] & 0x02) + { KeyBoard('O', 0); KeyBoard(0x10, 0); } @@ -425,35 +454,41 @@ void TMWDComm::CheckData() // sprawdzanie wejść cyfrowych i odpowiednie sterow maskSwitch[2] &= ~0x02; } - - if (maskData[2] & 0x01) if (lastStateData[2] & 0x01) { // pantograf przedni + // pantograf przedni + if (maskData[2] & 0x01) if (lastStateData[2] & 0x01) + { KeyBoard(0x10, 1); // bistabilny KeyBoard('P', 1); maskSwitch[2] |= 0x01; bitSwitch[2] |= 0x01; } - else { + else + { maskSwitch[2] |= 0x01; bitSwitch[2] &= ~0x01; KeyBoard('P', 1); } - if (maskData[2] & 0x02) if (lastStateData[2] & 0x02) { // pantograf tylni + // pantograf tylni + if (maskData[2] & 0x02) if (lastStateData[2] & 0x02) + { KeyBoard(0x10, 1); // bistabilny KeyBoard('O', 1); maskSwitch[2] |= 0x02; bitSwitch[2] |= 0x02; } - else { + else + { maskSwitch[2] |= 0x02; bitSwitch[2] &= ~0x02; KeyBoard('O', 1); } - if (maskData[2] & 0x04) if (lastStateData[2] & 0x04) { // przyhamowanie przy poślizgu + // przyhamowanie przy poślizgu + if (maskData[2] & 0x04) if (lastStateData[2] & 0x04) { KeyBoard(0x10, 1); // monostabilny KeyBoard(0x0D, 1); } - else { - + else + { KeyBoard(0x0D, 0); KeyBoard(0x10, 0); } @@ -475,178 +510,129 @@ void TMWDComm::CheckData() // sprawdzanie wejść cyfrowych i odpowiednie sterow KeyBoard(0x11,0); KeyBoard(' ',1); }*/ - if (maskData[2] & 0x20) if (lastStateData[2] & 0x20) KeyBoard(0x66, 1); // odluźniacz - else KeyBoard(0x66, 0); // monostabilny - if (maskData[2] & 0x40) if (lastStateData[2] & 0x40) { // syrena wysoka + // odluźniacz + if (maskData[2] & 0x20) if (lastStateData[2] & 0x20) + KeyBoard(0x66, 1); + else + KeyBoard(0x66, 0); // monostabilny + // syrena wysoka + if (maskData[2] & 0x40) if (lastStateData[2] & 0x40) + { KeyBoard(0x10, 1); // monostabilny KeyBoard('A', 1); } - else { + else + { KeyBoard('A', 0); KeyBoard(0x10, 0); } - if (maskData[2] & 0x80) if (lastStateData[2] & 0x80) KeyBoard('A', 1); // syrena niska - else KeyBoard('A', 0); // monostabilny + if (maskData[2] & 0x80) if (lastStateData[2] & 0x80) + KeyBoard('A', 1); // syrena niska + else + KeyBoard('A', 0); // monostabilny - //PORT3 + //PORT3 - if (maskSwitch[3] & 0x01) { - if (bitSwitch[3] & 0x01) { + if (maskSwitch[3] & 0x01) + { + if (bitSwitch[3] & 0x01) + { KeyBoard('J', 0); KeyBoard(0x10, 0); } else KeyBoard('J', 0); maskSwitch[3] &= ~0x01; } + if (maskSwitch[3] & 0x02) + { + if (bitSwitch[3] & 0x02) + { + KeyBoard('Y', 0); + KeyBoard(0x10, 0); + } + else KeyBoard('Y', 0); + maskSwitch[3] &= ~0x02; + } + if (maskSwitch[3] & 0x04) + { + if (bitSwitch[3] & 0x04) + { + KeyBoard('U', 0); + KeyBoard(0x10, 0); + } + else KeyBoard('U', 0); + maskSwitch[3] &= ~0x04; + } + if (maskSwitch[3] & 0x08) + { + if (bitSwitch[3] & 0x08) + { + KeyBoard('I', 0); + KeyBoard(0x10, 0); + } + else KeyBoard('I', 0); + maskSwitch[3] &= ~0x08; + } - if (maskData[3] & 0x01) if (lastStateData[3] & 0x01) { // bateria + + // bateria + if (maskData[3] & 0x01) if (lastStateData[3] & 0x01) + { KeyBoard(0x10, 1); // bistabilny KeyBoard('J', 1); maskSwitch[3] |= 0x01; bitSwitch[3] |= 0x01; } - else { + else + { maskSwitch[3] |= 0x01; bitSwitch[3] &= ~0x01; KeyBoard('J', 1); } - - /* - if(maskData[3] & 0x04 && lastStateData[1] & 0x04) { KeyBoard(0x10,1); - KeyBoard('C',1); // - KeyBoard('C',0); - KeyBoard(0x10,0); - }else{ KeyBoard('C',1); // - KeyBoard('C',0); - } - if(maskData[3] & 0x08 && lastStateData[1] & 0x08) KeyBoard('S',1); // - else KeyBoard('S',0); + //Światło lewe + if (maskData[3] & 0x02) if (lastStateData[3] & 0x02) + { + KeyBoard(0x10, 1); // bistabilny + KeyBoard('Y', 1); + maskSwitch[3] |= 0x02; + bitSwitch[3] |= 0x02; + }else + { + maskSwitch[3] |= 0x02; + bitSwitch[3] &= ~0x02; + KeyBoard('Y', 1); + } + //światło górne + if (maskData[3] & 0x04) if (lastStateData[3] & 0x04) + { + KeyBoard(0x10, 1); // bistabilny + KeyBoard('U', 1); + maskSwitch[3] |= 0x04; + bitSwitch[3] |= 0x04; + } + else + { + maskSwitch[3] |= 0x04; + bitSwitch[3] &= ~0x04; + KeyBoard('U', 1); + } + //światło prawe + if (maskData[3] & 0x08) if (lastStateData[3] & 0x08) + { + KeyBoard(0x10, 1); // bistabilny + KeyBoard('I', 1); + maskSwitch[3] |= 0x08; + bitSwitch[3] |= 0x08; + } + else + { + maskSwitch[3] |= 0x08; + bitSwitch[3] &= ~0x08; + KeyBoard('I', 1); + } - if(maskData[3] & 0x10 && lastStateData[1] & 0x10) { - KeyBoard(0x11,1); - KeyBoard('H',1); - }else{ KeyBoard('H',0); - KeyBoard(0x11,0); - } - if(maskData[3] & 0x20 && lastStateData[1] & 0x20) { - KeyBoard(0x11,1); - KeyBoard(' ',1); - }else{ KeyBoard(' ',0); - KeyBoard(0x11,0); - } - if(maskData[3] & 0x40 && lastStateData[1] & 0x40) { - KeyBoard(0x10,1); - KeyBoard(' ',1); - }else{ KeyBoard(' ',0); - KeyBoard(0x10,0); - } - if(maskData[3] & 0x80 && lastStateData[1] & 0x80) { - KeyBoard(0x10,1); - KeyBoard('F',1); - }else{ KeyBoard('F',0); - KeyBoard(0x10,0); - } - - /*PORT4*/ /* - if(maskData[4] & 0x02 && lastStateData[1] & 0x02) { - KeyBoard(0x10,1); - KeyBoard('X',1); // - KeyBoard('X',0); - KeyBoard(0x10,0); - }else{ KeyBoard('X',1); // - KeyBoard('X',0); - } - if(maskData[4] & 0x04 && lastStateData[1] & 0x04) { - KeyBoard(0x10,1); - KeyBoard('C',1); // - KeyBoard('C',0); - KeyBoard(0x10,0); - }else{ KeyBoard('C',1); // - KeyBoard('C',0); - } - if(maskData[4] & 0x08 && lastStateData[1] & 0x08) KeyBoard('S',1); // - else KeyBoard('S',0); - - - if(maskData[4] & 0x10 && lastStateData[1] & 0x10) { - KeyBoard(0x11,1); - KeyBoard('H',1); - }else{ KeyBoard('H',0); - KeyBoard(0x11,0); - } - if(maskData[4] & 0x20 && lastStateData[1] & 0x20) { - KeyBoard(0x11,1); - KeyBoard(' ',1); - }else{ KeyBoard(' ',0); - KeyBoard(0x11,0); - } - if(maskData[4] & 0x40 && lastStateData[1] & 0x40) { - KeyBoard(0x10,1); - KeyBoard(' ',1); - }else{ KeyBoard(' ',0); - KeyBoard(0x10,0); - } - if(maskData[4] & 0x80 && lastStateData[1] & 0x80) { - KeyBoard(0x10,1); - KeyBoard('F',1); - }else{ KeyBoard('F',0); - KeyBoard(0x10,0); - } - - /*PORT5*/ /* - if(maskData[5] & 0x02 && lastStateData[1] & 0x02) { - KeyBoard(0x10,1); - KeyBoard('X',1); // - KeyBoard('X',0); - KeyBoard(0x10,0); - }else{ - KeyBoard('X',1); // - KeyBoard('X',0); - } - if(maskData[5] & 0x04 && lastStateData[1] & 0x04) { - KeyBoard(0x10,1); - KeyBoard('C',1); // - KeyBoard('C',0); - KeyBoard(0x10,0); - }else{ - KeyBoard('C',1); // - KeyBoard('C',0); - } - if(maskData[5] & 0x08 && lastStateData[1] & 0x08) KeyBoard('S',1); // - else - KeyBoard('S',0); - - - if(maskData[5] & 0x10 && lastStateData[1] & 0x10) { - KeyBoard(0x11,1); - KeyBoard('H',1); - }else{ - KeyBoard('H',0); - KeyBoard(0x11,0); - } - if(maskData[5] & 0x20 && lastStateData[1] & 0x20) { - KeyBoard(0x11,1); - KeyBoard(' ',1); - }else{ - KeyBoard(' ',0); - KeyBoard(0x11,0); - } - if(maskData[5] & 0x40 && lastStateData[1] & 0x40) { - KeyBoard(0x10,1); - KeyBoard(' ',1); - }else{ - KeyBoard(' ',0); - KeyBoard(0x10,0); - } - if(maskData[5] & 0x80 && lastStateData[1] & 0x80) { - KeyBoard(0x10,1); - KeyBoard('F',1); - }else{ - KeyBoard('F',0); - KeyBoard(0x10,0); - }//*/ /* NASTAWNIK, BOCZNIK i KIERUNEK */ diff --git a/maszyna.vcxproj b/maszyna.vcxproj index 2178f72c..58cbd888 100644 --- a/maszyna.vcxproj +++ b/maszyna.vcxproj @@ -42,9 +42,9 @@ E:\Gry\EU07\eu07 exe\tmj-cpp - mhEU07-201702relase + mkEU07-20170308 $(SolutionDir)tmp\$(PlatformShortName)-$(Configuration)\$(ProjectName)\ - E:\Gry\EU07\eu07 exe\tmj-cpp-hamulec + E:\Gry\EU07\MaSzyna_16_08 false