16
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-07-18 00:49:19 +02:00

Konwersja na UTF-8

Konwersja na UTF-8

Dodany nowy warunek dla formatera aby nie sortował includów.
This commit is contained in:
firleju
2017-01-23 15:31:40 +01:00
parent 81aad5d1ae
commit 79302d6677
8 changed files with 1284 additions and 1285 deletions

View File

@@ -11,4 +11,5 @@ AllowShortBlocksOnASingleLine: false
AllowShortIfStatementsOnASingleLine: false AllowShortIfStatementsOnASingleLine: false
AllowShortFunctionsOnASingleLine: Empty AllowShortFunctionsOnASingleLine: Empty
ColumnLimit: 100 ColumnLimit: 100
SortIncludes: false
--- ---

View File

@@ -32,14 +32,14 @@ bool TLPT::Connect(int port)
OutPort = (OutPortType)GetProcAddress(hDLL, "Out32"); OutPort = (OutPortType)GetProcAddress(hDLL, "Out32");
} }
else else
return false; // MessageBox(NULL,"ERROR","B³¹d przy ³adowaniu pliku",MB_OK); return false; // MessageBox(NULL,"ERROR","Błąd przy ładowaniu pliku",MB_OK);
address = address =
port; //&0xFFFFFC; //ostatnie 2 bity maj¹ byæ zerowe -> a niech sobie OUT-uj¹, gdzie chc¹ port; //&0xFFFFFC; //ostatnie 2 bity mają być zerowe -> a niech sobie OUT-ują, gdzie chcą
switch (address) // nie dotyczy 0x3BC switch (address) // nie dotyczy 0x3BC
{ {
case 0x0378: case 0x0378:
case 0x0278: case 0x0278:
OutPort(address + 0x402, 0); // SPP, czyli jednokierunkowe wyjœcie OutPort(address + 0x402, 0); // SPP, czyli jednokierunkowe wyjście
break; break;
case 0xBC00: case 0xBC00:
case 0xBD00: case 0xBD00:
@@ -49,6 +49,6 @@ bool TLPT::Connect(int port)
}; };
void TLPT::Out(int x) void TLPT::Out(int x)
{ // wys³anie bajtu do portu { // wysłanie bajtu do portu
OutPort(address, x); OutPort(address, x);
}; };

View File

@@ -8,11 +8,11 @@ http://mozilla.org/MPL/2.0/.
*/ */
/* /*
Program obsługi portu COM i innych na potrzeby sterownika MWDevice Program obsługi portu COM i innych na potrzeby sterownika MWDevice
(oraz innych wykorzystujących komunikację przez port COM) (oraz innych wykorzystujących komunikację przez port COM)
dla Symulatora Pojazdów Szynowych MaSzyna dla Symulatora Pojazdów Szynowych MaSzyna
author: Maciej Witek 2016 author: Maciej Witek 2016
Autor nie ponosi odpowiedzialności za niewłaciwe używanie lub działanie programu! Autor nie ponosi odpowiedzialności za niewłaciwe używanie lub działanie programu!
*/ */
#include "stdafx.h" #include "stdafx.h"
#include "MWD.h" #include "MWD.h"
@@ -22,8 +22,8 @@ http://mozilla.org/MPL/2.0/.
#include <windows.h> #include <windows.h>
#define BYTETOWRITE 31 /* ilość bajtów przesyłanych z MaSzyny*/ #define BYTETOWRITE 31 /* ilość bajtów przesyłanych z MaSzyny*/
#define BYTETOREAD 16 /* ilość bajtów przesyłanych do MaSzyny*/ #define BYTETOREAD 16 /* ilość bajtów przesyłanych do MaSzyny*/
HANDLE hComm; HANDLE hComm;
@@ -32,7 +32,7 @@ MWDComm::MWDComm() // konstruktor
MWDTime = 0; MWDTime = 0;
bSHPstate = false; bSHPstate = false;
bPrzejazdSHP = false; bPrzejazdSHP = false;
bKabina1 = true; // pasuje wyciągnąć dane na temat kabiny i ustawiać te dwa parametry! bKabina1 = true; // pasuje wyciągnąć dane na temat kabiny i ustawiać te dwa parametry!
bKabina2 = false; bKabina2 = false;
bHamowanie = false; bHamowanie = false;
bCzuwak = false; bCzuwak = false;
@@ -134,7 +134,7 @@ bool MWDComm::Close() // zamykanie portu COM
i++; i++;
} }
Sleep(100); Sleep(100);
SendData(); // wysyłanie do pulpitu: zatrzymanie haslera i zgaszenie lampek SendData(); // wysyłanie do pulpitu: zatrzymanie haslera i zgaszenie lampek
Sleep(700); Sleep(700);
CloseHandle(hComm); CloseHandle(hComm);
WriteLog("COM is close!"); WriteLog("COM is close!");
@@ -156,7 +156,7 @@ bool MWDComm::ReadData() // odbieranie danych + odczyta danych analogowych i zap
fAnalog[0] = fAnalog[0] =
(float)((ReadDataBuff[9] << 8) + ReadDataBuff[8]) / (float)((ReadDataBuff[9] << 8) + ReadDataBuff[8]) /
Global::fMWDAnalogCalib[0][3]; // 4095.0f; //max wartosc wynikająca z rozdzielczości Global::fMWDAnalogCalib[0][3]; // 4095.0f; //max wartosc wynikająca z rozdzielczości
fAnalog[1] = fAnalog[1] =
(float)((ReadDataBuff[11] << 8) + ReadDataBuff[10]) / Global::fMWDAnalogCalib[1][3]; (float)((ReadDataBuff[11] << 8) + ReadDataBuff[10]) / Global::fMWDAnalogCalib[1][3];
fAnalog[2] = fAnalog[2] =
@@ -168,7 +168,7 @@ bool MWDComm::ReadData() // odbieranie danych + odczyta danych analogowych i zap
return TRUE; return TRUE;
} }
bool MWDComm::SendData() // wysyłanie danych bool MWDComm::SendData() // wysyłanie danych
{ {
DWORD bytes_write; DWORD bytes_write;
DWORD fdwEvtMask; DWORD fdwEvtMask;
@@ -178,7 +178,7 @@ bool MWDComm::SendData() // wysy
return TRUE; return TRUE;
} }
bool MWDComm::Run() // wywoływanie obsługi MWD + generacja większego opóźnienia bool MWDComm::Run() // wywoływanie obsługi MWD + generacja większego opóźnienia
{ {
MWDTime++; MWDTime++;
if (!(MWDTime % 5)) if (!(MWDTime % 5))
@@ -193,14 +193,14 @@ bool MWDComm::Run() // wywo
else else
{ {
WriteLog("Port COM: connection ERROR!"); WriteLog("Port COM: connection ERROR!");
// może spróbować się połączyć znowu? // może spróbować się połączyć znowu?
return 0; return 0;
} }
MWDTime = 0; MWDTime = 0;
} }
} }
void MWDComm::CheckData() // sprawdzanie wejść cyfrowych i odpowiednie sterowanie maszyną void MWDComm::CheckData() // sprawdzanie wejść cyfrowych i odpowiednie sterowanie maszyną
{ {
int i = 0; int i = 0;
while (i < 6) while (i < 6)
@@ -210,23 +210,23 @@ void MWDComm::CheckData() // sprawdzanie wej
i++; i++;
} }
/* /*
Rozpiska portów! Rozpiska portów!
Port0: 0 NC odblok. przek. sprężarki i wentyl. oporów Port0: 0 NC odblok. przek. sprężarki i wentyl. oporów
1 M wyłącznik wył. szybkiego 1 M wyłącznik wył. szybkiego
2 Shift+M impuls załączający wył. szybki 2 Shift+M impuls załączający wył. szybki
3 N odblok. przekaźników nadmiarowych 3 N odblok. przekaźników nadmiarowych
i różnicowego obwodu głównego i różnicowego obwodu głównego
4 NC rezerwa 4 NC rezerwa
5 Ctrl+N odblok. przek. nadmiarowych 5 Ctrl+N odblok. przek. nadmiarowych
przetwornicy, ogrzewania pociągu i różnicowych obw. pomocniczych przetwornicy, ogrzewania pociągu i różnicowych obw. pomocniczych
6 L wył. styczników liniowych 6 L wył. styczników liniowych
7 SPACE kasowanie czuwaka 7 SPACE kasowanie czuwaka
Port1: 0 NC Port1: 0 NC
1 (Shift) X przetwornica 1 (Shift) X przetwornica
2 (Shift) C sprężarka 2 (Shift) C sprężarka
3 S piasecznice 3 S piasecznice
4 (Shift) H ogrzewanie składu 4 (Shift) H ogrzewanie składu
5 przel. hamowania Shift+B 5 przel. hamowania Shift+B
pspbpwy Ctrl+B pospieszny B towarowy pspbpwy Ctrl+B pospieszny B towarowy
6 przel. hamowania 6 przel. hamowania
@@ -234,10 +234,10 @@ void MWDComm::CheckData() // sprawdzanie wej
Port2: 0 (Shift) P pantograf przedni Port2: 0 (Shift) P pantograf przedni
1 (Shift) O pantograf tylni 1 (Shift) O pantograf tylni
2 ENTER przyhamowanie przy poślizgu 2 ENTER przyhamowanie przy poślizgu
3 () przyciemnienie świateł 3 () przyciemnienie świateł
4 () przyciemnienie świateł 4 () przyciemnienie świateł
5 NUM6 odluźniacz 5 NUM6 odluźniacz
6 a syrena lok W 6 a syrena lok W
7 A syrena lok N 7 A syrena lok N
@@ -251,18 +251,18 @@ void MWDComm::CheckData() // sprawdzanie wej
7 7
*/ */
/* po przełączeniu bistabilnego najpierw wciskamy klawisz i przy następnym /* po przełączeniu bistabilnego najpierw wciskamy klawisz i przy następnym
wejściu w pętlę MWD puszczamy bo inaczej nie działa wejściu w pętlę MWD puszczamy bo inaczej nie działa
*/ */
// wciskanie przycisków klawiatury // wciskanie przycisków klawiatury
/*PORT0*/ /*PORT0*/
if (maskData[0] & 0x02 && lastStateData[0] & 0x02) if (maskData[0] & 0x02 && lastStateData[0] & 0x02)
KeyBoard('M', 1); // wyłączenie wyłącznika szybkiego KeyBoard('M', 1); // wyłączenie wyłącznika szybkiego
else else
KeyBoard('M', 0); // monostabilny KeyBoard('M', 0); // monostabilny
if (maskData[0] & 0x04 && lastStateData[0] & 0x04) if (maskData[0] & 0x04 && lastStateData[0] & 0x04)
{ // impuls załączający wyłącznik szybki { // impuls załączający wyłącznik szybki
KeyBoard(0x10, 1); // monostabilny KeyBoard(0x10, 1); // monostabilny
KeyBoard('M', 1); KeyBoard('M', 1);
} }
@@ -272,12 +272,12 @@ void MWDComm::CheckData() // sprawdzanie wej
KeyBoard(0x10, 0); KeyBoard(0x10, 0);
} }
if (maskData[0] & 0x08 && lastStateData[0] & 0x08) if (maskData[0] & 0x08 && lastStateData[0] & 0x08)
KeyBoard('N', 1); // odblok nadmiarowego silników trakcyjnych KeyBoard('N', 1); // odblok nadmiarowego silników trakcyjnych
else else
KeyBoard('N', 0); // monostabilny KeyBoard('N', 0); // monostabilny
if (maskData[0] & 0x20 && lastStateData[0] & 0x20) if (maskData[0] & 0x20 && lastStateData[0] & 0x20)
{ // odblok nadmiarowego przetwornicy, ogrzewania poc. { // odblok nadmiarowego przetwornicy, ogrzewania poc.
KeyBoard(0x11, 1); // różnicowego obwodów pomocniczych KeyBoard(0x11, 1); // różnicowego obwodów pomocniczych
KeyBoard('N', 1); // monostabilny KeyBoard('N', 1); // monostabilny
} }
else else
@@ -286,7 +286,7 @@ void MWDComm::CheckData() // sprawdzanie wej
KeyBoard(0x11, 0); KeyBoard(0x11, 0);
} }
if (maskData[0] & 0x40 && lastStateData[0] & 0x40) if (maskData[0] & 0x40 && lastStateData[0] & 0x40)
KeyBoard('L', 1); // wył. styczników liniowych KeyBoard('L', 1); // wył. styczników liniowych
else else
KeyBoard('L', 0); // monostabilny KeyBoard('L', 0); // monostabilny
if (maskData[0] & 0x80 && lastStateData[0] & 0x80) if (maskData[0] & 0x80 && lastStateData[0] & 0x80)
@@ -365,7 +365,7 @@ void MWDComm::CheckData() // sprawdzanie wej
KeyBoard('X', 1); KeyBoard('X', 1);
} }
if (maskData[1] & 0x04 && lastStateData[1] & 0x04) if (maskData[1] & 0x04 && lastStateData[1] & 0x04)
{ // sprężarka { // sprężarka
KeyBoard(0x10, 1); // bistabilny KeyBoard(0x10, 1); // bistabilny
KeyBoard('C', 1); KeyBoard('C', 1);
maskSwitch[1] |= 0x04; maskSwitch[1] |= 0x04;
@@ -382,7 +382,7 @@ void MWDComm::CheckData() // sprawdzanie wej
else else
KeyBoard('S', 0); // monostabilny KeyBoard('S', 0); // monostabilny
if (maskData[1] & 0x10 && lastStateData[1] & 0x10) if (maskData[1] & 0x10 && lastStateData[1] & 0x10)
{ // ogrzewanie składu { // ogrzewanie składu
KeyBoard(0x11, 1); // bistabilny KeyBoard(0x11, 1); // bistabilny
KeyBoard('H', 1); KeyBoard('H', 1);
maskSwitch[1] |= 0x10; maskSwitch[1] |= 0x10;
@@ -395,7 +395,7 @@ void MWDComm::CheckData() // sprawdzanie wej
KeyBoard('H', 1); KeyBoard('H', 1);
} }
if (maskData[1] & 0x20 || maskData[1] & 0x40) if (maskData[1] & 0x20 || maskData[1] & 0x40)
{ // przełącznik hamowania { // przełącznik hamowania
if (lastStateData[1] & 0x20) if (lastStateData[1] & 0x20)
{ // Shift+B { // Shift+B
KeyBoard(0x10, 1); KeyBoard(0x10, 1);
@@ -475,7 +475,7 @@ void MWDComm::CheckData() // sprawdzanie wej
KeyBoard('O', 1); KeyBoard('O', 1);
} }
if (maskData[2] & 0x04 && lastStateData[2] & 0x04) if (maskData[2] & 0x04 && lastStateData[2] & 0x04)
{ // przyhamowanie przy poślizgu { // przyhamowanie przy poślizgu
KeyBoard(0x10, 1); // monostabilny KeyBoard(0x10, 1); // monostabilny
KeyBoard(0x0D, 1); KeyBoard(0x0D, 1);
} }
@@ -485,7 +485,7 @@ void MWDComm::CheckData() // sprawdzanie wej
KeyBoard(0x0D, 0); KeyBoard(0x0D, 0);
KeyBoard(0x10, 0); KeyBoard(0x10, 0);
} }
/*if(maskData[2] & 0x08 && lastStateData[2] & 0x08){ // przyciemnienie świateł /*if(maskData[2] & 0x08 && lastStateData[2] & 0x08){ // przyciemnienie świateł
KeyBoard(' ',0); // bistabilny KeyBoard(' ',0); // bistabilny
KeyBoard(0x10,1); KeyBoard(0x10,1);
KeyBoard(' ',1); KeyBoard(' ',1);
@@ -494,7 +494,7 @@ void MWDComm::CheckData() // sprawdzanie wej
KeyBoard(0x10,0); KeyBoard(0x10,0);
KeyBoard(' ',1); KeyBoard(' ',1);
} }
if(maskData[2] & 0x10 && lastStateData[2] & 0x10) { // przyciemnienie świateł if(maskData[2] & 0x10 && lastStateData[2] & 0x10) { // przyciemnienie świateł
KeyBoard(' ',0); // bistabilny KeyBoard(' ',0); // bistabilny
KeyBoard(0x11,1); KeyBoard(0x11,1);
KeyBoard(' ',1); KeyBoard(' ',1);
@@ -504,7 +504,7 @@ void MWDComm::CheckData() // sprawdzanie wej
KeyBoard(' ',1); KeyBoard(' ',1);
}*/ }*/
if (maskData[2] & 0x20 && lastStateData[2] & 0x20) if (maskData[2] & 0x20 && lastStateData[2] & 0x20)
KeyBoard(0x66, 1); // odluźniacz KeyBoard(0x66, 1); // odluźniacz
else else
KeyBoard(0x66, 0); // monostabilny KeyBoard(0x66, 0); // monostabilny
if (maskData[2] & 0x40 && lastStateData[2] & 0x40) if (maskData[2] & 0x40 && lastStateData[2] & 0x40)
@@ -713,28 +713,28 @@ void MWDComm::CheckData() // sprawdzanie wej
{ {
bnkMask |= 1; bnkMask |= 1;
nastawnik++; nastawnik++;
KeyBoard(0x6B, 1); // wciśnij + i dodaj 1 do nastawnika KeyBoard(0x6B, 1); // wciśnij + i dodaj 1 do nastawnika
} }
if (nastawnik > ReadDataBuff[6]) if (nastawnik > ReadDataBuff[6])
{ {
bnkMask |= 2; bnkMask |= 2;
nastawnik--; nastawnik--;
KeyBoard(0x6D, 1); // wciśnij - i odejmij 1 do nastawnika KeyBoard(0x6D, 1); // wciśnij - i odejmij 1 do nastawnika
} }
if (bocznik < ReadDataBuff[7]) if (bocznik < ReadDataBuff[7])
{ {
bnkMask |= 4; bnkMask |= 4;
bocznik++; bocznik++;
KeyBoard(0x6F, 1); // wciśnij / i dodaj 1 do bocznika KeyBoard(0x6F, 1); // wciśnij / i dodaj 1 do bocznika
} }
if (bocznik > ReadDataBuff[7]) if (bocznik > ReadDataBuff[7])
{ {
bnkMask |= 8; bnkMask |= 8;
bocznik--; bocznik--;
KeyBoard(0x6A, 1); // wciśnij * i odejmij 1 do bocznika KeyBoard(0x6A, 1); // wciśnij * i odejmij 1 do bocznika
} }
/* Obsługa HASLERA */ /* Obsługa HASLERA */
if (ReadDataBuff[0] & 0x80) if (ReadDataBuff[0] & 0x80)
bCzuwak = true; bCzuwak = true;

View File

@@ -8,11 +8,11 @@ http://mozilla.org/MPL/2.0/.
*/ */
/* /*
Program obsługi portu COM i innych na potrzeby sterownika MWDevice Program obsługi portu COM i innych na potrzeby sterownika MWDevice
(oraz innych wykorzystujących komunikację przez port COM) (oraz innych wykorzystujących komunikację przez port COM)
dla Symulatora Pojazdów Szynowych MaSzyna dla Symulatora Pojazdów Szynowych MaSzyna
author: Maciej Witek 2016 author: Maciej Witek 2016
Autor nie ponosi odpowiedzialności za niewłaciwe używanie lub działanie programu! Autor nie ponosi odpowiedzialności za niewłaciwe używanie lub działanie programu!
*/ */
#ifndef MWDH #ifndef MWDH
@@ -32,7 +32,7 @@ class MWDComm
bool ReadData(); // BYTE *pReadDataBuff); bool ReadData(); // BYTE *pReadDataBuff);
bool SendData(); // BYTE *pWriteDataBuff); bool SendData(); // BYTE *pWriteDataBuff);
void CheckData(); // sprawdzanie zmian wejść i kontrola mazaków HASLERA void CheckData(); // sprawdzanie zmian wejść i kontrola mazaków HASLERA
void KeyBoard(int key, bool s); void KeyBoard(int key, bool s);
bool bRysik1H; bool bRysik1H;
@@ -42,11 +42,11 @@ class MWDComm
public: public:
bool Open(); // Otwarcie portu bool Open(); // Otwarcie portu
bool Close(); // Zamknięcie portu bool Close(); // Zamknięcie portu
bool Run(); // Obsługa portu bool Run(); // Obsługa portu
bool GetMWDState(); // sprawdź czy port jest otwarty, 0 zamknięty, 1 otwarty bool GetMWDState(); // sprawdź czy port jest otwarty, 0 zamknięty, 1 otwarty
// zmienne do rysików HASLERA // zmienne do rysików HASLERA
bool bSHPstate; bool bSHPstate;
bool bPrzejazdSHP; bool bPrzejazdSHP;
bool bKabina1; bool bKabina1;
@@ -54,7 +54,7 @@ class MWDComm
bool bHamowanie; bool bHamowanie;
bool bCzuwak; bool bCzuwak;
float fAnalog[4]; // trzymanie danych z wejść analogowych float fAnalog[4]; // trzymanie danych z wejść analogowych
BYTE ReadDataBuff[17]; // bufory danych BYTE ReadDataBuff[17]; // bufory danych
BYTE WriteDataBuff[31]; BYTE WriteDataBuff[31];
@@ -65,37 +65,37 @@ class MWDComm
#endif #endif
/* /*
INFO - zmiany dokonane w innych plikach niezbędne do prawidłowego działania: INFO - zmiany dokonane w innych plikach niezbędne do prawidłowego działania:
Console.cpp: Console.cpp:
Console::AnalogCalibrateGet - obsługa kranów hamulców Console::AnalogCalibrateGet - obsługa kranów hamulców
Console::Update - wywoływanie obsługi MWD Console::Update - wywoływanie obsługi MWD
Console::ValueSet - obsługa manometrów, mierników WN (PWM-y) Console::ValueSet - obsługa manometrów, mierników WN (PWM-y)
Console::BitsUpdate - ustawiania lampek Console::BitsUpdate - ustawiania lampek
Console::Off - zamykanie portu COM Console::Off - zamykanie portu COM
Console::On - otwieranie portu COM Console::On - otwieranie portu COM
Console::~Console - usuwanie MWD (jest też w Console OFF) Console::~Console - usuwanie MWD (jest też w Console OFF)
MWDComm * Console::MWD = NULL; - luzem, obiekt i wskaźnik(?) MWDComm * Console::MWD = NULL; - luzem, obiekt i wskaźnik(?)
dodatkowo zmieniłem int na long int dla BitSet i BitClear oraz iBits dodatkowo zmieniłem int na long int dla BitSet i BitClear oraz iBits
Train.cpp: Train.cpp:
if (Global::iFeedbackMode == 5) - pobieranie prędkości, manometrów i mierników WN if (Global::iFeedbackMode == 5) - pobieranie prędkości, manometrów i mierników WN
if (ggBrakeCtrl.SubModel) - możliwość sterowania hamulcem zespolonym if (ggBrakeCtrl.SubModel) - możliwość sterowania hamulcem zespolonym
if (ggLocalBrake.SubModel) - możliwość sterowania hamulcem lokomotywy if (ggLocalBrake.SubModel) - możliwość sterowania hamulcem lokomotywy
Globals.h: Globals.h:
dodano zmienne dla MWD dodano zmienne dla MWD
Globals.cpp: Globals.cpp:
dodano inicjalizaję zmiennych i odczyt z ini ustawień dodano inicjalizaję zmiennych i odczyt z ini ustawień
Wpisy do pliku eu07.ini Wpisy do pliku eu07.ini
//maciek001 MWD //maciek001 MWD
comportname COM3 // wybór portu COM comportname COM3 // wybór portu COM
mwdbaudrate 500000 mwdbaudrate 500000
mwdbreakenable yes // czy załączyć sterowanie hamulcami? blokuje klawiature mwdbreakenable yes // czy załączyć sterowanie hamulcami? blokuje klawiature
mwdbreak 1 255 0 255 // hamulec zespolony mwdbreak 1 255 0 255 // hamulec zespolony
mwdbreak 2 255 0 255 // hamulec lokomotywy mwdbreak 2 255 0 255 // hamulec lokomotywy

View File

@@ -32,7 +32,7 @@ TPoKeys55::TPoKeys55()
fAnalog[0] = fAnalog[1] = fAnalog[2] = fAnalog[3] = fAnalog[4] = fAnalog[5] = fAnalog[6] = -1.0; fAnalog[0] = fAnalog[1] = fAnalog[2] = fAnalog[3] = fAnalog[4] = fAnalog[5] = fAnalog[6] = -1.0;
iPWM[0] = iPWM[1] = iPWM[2] = iPWM[3] = iPWM[4] = iPWM[5] = iPWM[6] = 0; iPWM[0] = iPWM[1] = iPWM[2] = iPWM[3] = iPWM[4] = iPWM[5] = iPWM[6] = 0;
iPWM[7] = 4096; iPWM[7] = 4096;
iInputs[0] = 0; // czy normalnie s¹ w stanie wysokim? iInputs[0] = 0; // czy normalnie są w stanie wysokim?
iRepeats = 0; iRepeats = 0;
bNoError = true; bNoError = true;
}; };
@@ -43,7 +43,7 @@ TPoKeys55::~TPoKeys55()
}; };
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
void TPoKeys55::Close() void TPoKeys55::Close()
{ // roz³¹czenie komunikacji { // rozłączenie komunikacji
if (WriteHandle != INVALID_HANDLE_VALUE) if (WriteHandle != INVALID_HANDLE_VALUE)
CloseHandle(WriteHandle); CloseHandle(WriteHandle);
WriteHandle = INVALID_HANDLE_VALUE; WriteHandle = INVALID_HANDLE_VALUE;
@@ -53,10 +53,10 @@ void TPoKeys55::Close()
}; };
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
bool TPoKeys55::Connect() bool TPoKeys55::Connect()
{ // Ra: to jest do wyczyszcznia z niepotrzebnych zmiennych i komunikatów { // Ra: to jest do wyczyszcznia z niepotrzebnych zmiennych i komunikatów
Close(); Close();
GUID InterfaceClassGuid = {0x4d1e55b2, 0xf16f, 0x11cf, 0x88, 0xcb, 0x00, GUID InterfaceClassGuid = {0x4d1e55b2, 0xf16f, 0x11cf, 0x88, 0xcb, 0x00,
0x11, 0x11, 0x00, 0x00, 0x30}; // wszystkie HID tak maj¹ 0x11, 0x11, 0x00, 0x00, 0x30}; // wszystkie HID tak mają
HDEVINFO DeviceInfoTable; HDEVINFO DeviceInfoTable;
PSP_DEVICE_INTERFACE_DATA InterfaceDataStructure = new SP_DEVICE_INTERFACE_DATA; PSP_DEVICE_INTERFACE_DATA InterfaceDataStructure = new SP_DEVICE_INTERFACE_DATA;
PSP_DEVICE_INTERFACE_DETAIL_DATA DetailedInterfaceDataStructure = PSP_DEVICE_INTERFACE_DETAIL_DATA DetailedInterfaceDataStructure =
@@ -192,7 +192,7 @@ bool TPoKeys55::Connect()
} }
SetupDiDestroyDeviceInfoList( SetupDiDestroyDeviceInfoList(
DeviceInfoTable); // Clean up the old structure we no longer need. DeviceInfoTable); // Clean up the old structure we no longer need.
iRepeats = 0; // nowe szanse na pod³¹czenie iRepeats = 0; // nowe szanse na podłączenie
return true; return true;
} }
InterfaceIndex++; InterfaceIndex++;
@@ -209,15 +209,15 @@ bool TPoKeys55::Write(unsigned char c, unsigned char b3, unsigned char b4, unsig
OutputBuffer[0] = 0; // The first byte is the "Report ID" and does not get transmitted over the OutputBuffer[0] = 0; // The first byte is the "Report ID" and does not get transmitted over the
// USB bus. Always set=0. // USB bus. Always set=0.
OutputBuffer[1] = 0xBB; // 0xBB - bajt rozpoznawczy dla PoKeys55 OutputBuffer[1] = 0xBB; // 0xBB - bajt rozpoznawczy dla PoKeys55
OutputBuffer[2] = iLastCommand = c; // operacja: 0x31: blokowy odczyt wejœæ OutputBuffer[2] = iLastCommand = c; // operacja: 0x31: blokowy odczyt wejść
OutputBuffer[3] = b3; // np. numer pinu (o 1 mniej ni¿ numer na p³ytce) OutputBuffer[3] = b3; // np. numer pinu (o 1 mniej niż numer na płytce)
OutputBuffer[4] = b4; OutputBuffer[4] = b4;
OutputBuffer[5] = b5; OutputBuffer[5] = b5;
OutputBuffer[6] = 0; OutputBuffer[6] = 0;
OutputBuffer[7] = ++cRequest; // numer ¿¹dania OutputBuffer[7] = ++cRequest; // numer żądania
OutputBuffer[8] = 0; OutputBuffer[8] = 0;
for (int i = 0; i < 8; ++i) for (int i = 0; i < 8; ++i)
OutputBuffer[8] += OutputBuffer[i]; // czy sumowaæ te¿ od 9 do 64? OutputBuffer[8] += OutputBuffer[i]; // czy sumować też od 9 do 64?
// The basic Windows I/O functions WriteFile() and ReadFile() can be used to read and write to // The basic Windows I/O functions WriteFile() and ReadFile() can be used to read and write to
// HID class USB devices // HID class USB devices
//(once we have the read and write handles to the device, which are obtained with CreateFile()). //(once we have the read and write handles to the device, which are obtained with CreateFile()).
@@ -225,7 +225,7 @@ bool TPoKeys55::Write(unsigned char c, unsigned char b3, unsigned char b4, unsig
WriteFile(WriteHandle, &OutputBuffer, 65, &BytesWritten, WriteFile(WriteHandle, &OutputBuffer, 65, &BytesWritten,
0); // Blocking function, unless an "overlapped" structure is used 0); // Blocking function, unless an "overlapped" structure is used
return (BytesWritten == 65); return (BytesWritten == 65);
// Read(); //odczyt trzeba zrobiæ inaczej - w tym miejscu bêdzie za szybko i nic siê nie odczyta // Read(); //odczyt trzeba zrobić inaczej - w tym miejscu będzie za szybko i nic się nie odczyta
} }
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
@@ -246,18 +246,18 @@ bool TPoKeys55::Read()
} }
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
bool TPoKeys55::ReadLoop(int i) bool TPoKeys55::ReadLoop(int i)
{ // próbuje odczytaæ (i) razy { // próbuje odczytać (i) razy
do do
{ {
if (Read()) if (Read())
return true; return true;
Sleep(1); // trochê poczekaæ, a¿ odpowie Sleep(1); // trochę poczekać, aż odpowie
} while (--i); } while (--i);
return false; return false;
} }
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
std::string TPoKeys55::Version() std::string TPoKeys55::Version()
{ // zwraca numer wersji, funkcja nieoptymalna czasowo (czeka na odpowiedŸ) { // zwraca numer wersji, funkcja nieoptymalna czasowo (czeka na odpowiedź)
if (!WriteHandle) if (!WriteHandle)
return ""; return "";
Write(0x00, 0); // 0x00 - Read serial number, version Write(0x00, 0); // 0x00 - Read serial number, version
@@ -266,17 +266,17 @@ std::string TPoKeys55::Version()
std::string s = "PoKeys55 #" + std::to_string((InputBuffer[3] << 8) + InputBuffer[4]); std::string s = "PoKeys55 #" + std::to_string((InputBuffer[3] << 8) + InputBuffer[4]);
s += " v" + std::to_string(1 + (InputBuffer[5] >> 4)) + "." + std::to_string(InputBuffer[5] & 15) + s += " v" + std::to_string(1 + (InputBuffer[5] >> 4)) + "." + std::to_string(InputBuffer[5] & 15) +
"." + std::to_string(InputBuffer[6]); "." + std::to_string(InputBuffer[6]);
/* //Ra: pozyskiwanie daty mo¿na sobie darowaæ, jest poniek¹d bez sensu /* //Ra: pozyskiwanie daty można sobie darować, jest poniekąd bez sensu
Write(0x04,0); //0x04 - Read build date: drugi argument zmieniaæ od 0 do 2, uzyskuj¹c Write(0x04,0); //0x04 - Read build date: drugi argument zmieniać od 0 do 2, uzyskując
kolejno po 4 znaki kolejno po 4 znaki
if (ReadLoop(5)) if (ReadLoop(5))
{//2: 0x04; 3-6: char 1-4, 5-8, 9-11; (83-65-112-32-32-49-32-50-48-49-49-0=="Sep 1 2011") {//2: 0x04; 3-6: char 1-4, 5-8, 9-11; (83-65-112-32-32-49-32-50-48-49-49-0=="Sep 1 2011")
s+=" ("+AnsiString((char*)InputBuffer+3,4); s+=" ("+AnsiString((char*)InputBuffer+3,4);
Write(0x04,1); //0x04 - Read build date: drugi argument zmieniaæ od 0 do 2, uzyskuj¹c Write(0x04,1); //0x04 - Read build date: drugi argument zmieniać od 0 do 2, uzyskując
kolejno po 4 znaki kolejno po 4 znaki
if (ReadLoop(5)) if (ReadLoop(5))
{s+=AnsiString((char*)InputBuffer+3,4); {s+=AnsiString((char*)InputBuffer+3,4);
Write(0x04,2); //0x04 - Read build date: drugi argument zmieniaæ od 0 do 2, uzyskuj¹c Write(0x04,2); //0x04 - Read build date: drugi argument zmieniać od 0 do 2, uzyskując
kolejno po 4 znaki kolejno po 4 znaki
if (ReadLoop(5)) if (ReadLoop(5))
s+=AnsiString((char*)InputBuffer+3,3); s+=AnsiString((char*)InputBuffer+3,3);
@@ -297,16 +297,16 @@ bool TPoKeys55::PWM(int x, float y)
} }
bool TPoKeys55::Update(bool pause) bool TPoKeys55::Update(bool pause)
{ // funkcja powinna byæ wywo³ywana regularnie, np. raz w ka¿dej ramce ekranowej { // funkcja powinna być wywoływana regularnie, np. raz w każdej ramce ekranowej
if (pause) if (pause)
{ // specjalna procedura, jeœli utracone po³¹czenie spowodowa³o pauzê { // specjalna procedura, jeśli utracone połączenie spowodowało pauzę
iLastCommand = 0; // po³¹czenie zosta³o na nowo otwarte iLastCommand = 0; // połączenie zostało na nowo otwarte
// iFaza=0; //jeden b³¹d i podtrzymanie pauzy jest kontynuowane // iFaza=0; //jeden błąd i podtrzymanie pauzy jest kontynuowane
} }
switch (iFaza) switch (iFaza)
{ {
case 0: // uaktualnienie PWM raz na jakiœ czas case 0: // uaktualnienie PWM raz na jakiś czas
OutputBuffer[9] = 0x3F; // maska u¿ytych PWM OutputBuffer[9] = 0x3F; // maska użytych PWM
*((int *)(OutputBuffer + 10)) = iPWM[0]; // PWM1 (pin 22) *((int *)(OutputBuffer + 10)) = iPWM[0]; // PWM1 (pin 22)
*((int *)(OutputBuffer + 14)) = iPWM[1]; // PWM2 (pin 21) *((int *)(OutputBuffer + 14)) = iPWM[1]; // PWM2 (pin 21)
*((int *)(OutputBuffer + 18)) = iPWM[2]; // PWM3 (pin 20) *((int *)(OutputBuffer + 18)) = iPWM[2]; // PWM3 (pin 20)
@@ -314,16 +314,16 @@ bool TPoKeys55::Update(bool pause)
*((int *)(OutputBuffer + 26)) = iPWM[4]; // PWM5 (pin 18) *((int *)(OutputBuffer + 26)) = iPWM[4]; // PWM5 (pin 18)
*((int *)(OutputBuffer + 30)) = iPWM[5]; // PWM6 (pin 17) *((int *)(OutputBuffer + 30)) = iPWM[5]; // PWM6 (pin 17)
*((int *)(OutputBuffer + 34)) = iPWM[7]; // PWM period *((int *)(OutputBuffer + 34)) = iPWM[7]; // PWM period
if (Write(0xCB, 1)) // wys³anie ustawieñ (1-ustaw, 0-odczyt) if (Write(0xCB, 1)) // wysłanie ustawień (1-ustaw, 0-odczyt)
iRepeats = 0; // informacja, ¿e posz³o dobrze iRepeats = 0; // informacja, że poszło dobrze
++iFaza; // ta faza zosta³a zakoñczona ++iFaza; // ta faza została zakończona
// iRepeats=0; // iRepeats=0;
break; break;
case 1: // odczyt wejœæ analogowych - komenda i przetwarzanie case 1: // odczyt wejść analogowych - komenda i przetwarzanie
if (iLastCommand != 0x3A) // asynchroniczne ustawienie kontrolki mo¿e namieszaæ if (iLastCommand != 0x3A) // asynchroniczne ustawienie kontrolki może namieszać
Write(0x3A, 0); // 0x3A - Analog inputs reading all analog inputs in one command Write(0x3A, 0); // 0x3A - Analog inputs reading all analog inputs in one command
else if (Read()) else if (Read())
{ // jest odebrana ramka i zgodnoœæ numeru ¿¹dania { // jest odebrana ramka i zgodność numeru żądania
fAnalog[0] = ((InputBuffer[21] << 8) + InputBuffer[22]) / 4095.0f; // pin 47 fAnalog[0] = ((InputBuffer[21] << 8) + InputBuffer[22]) / 4095.0f; // pin 47
fAnalog[1] = ((InputBuffer[19] << 8) + InputBuffer[20]) / 4095.0f; // pin 46 fAnalog[1] = ((InputBuffer[19] << 8) + InputBuffer[20]) / 4095.0f; // pin 46
fAnalog[2] = ((InputBuffer[17] << 8) + InputBuffer[18]) / 4095.0f; // pin 45 fAnalog[2] = ((InputBuffer[17] << 8) + InputBuffer[18]) / 4095.0f; // pin 45
@@ -331,44 +331,44 @@ bool TPoKeys55::Update(bool pause)
fAnalog[4] = ((InputBuffer[13] << 8) + InputBuffer[14]) / 4095.0f; // pin 43 fAnalog[4] = ((InputBuffer[13] << 8) + InputBuffer[14]) / 4095.0f; // pin 43
fAnalog[5] = ((InputBuffer[11] << 8) + InputBuffer[12]) / 4095.0f; // pin 42 fAnalog[5] = ((InputBuffer[11] << 8) + InputBuffer[12]) / 4095.0f; // pin 42
fAnalog[6] = ((InputBuffer[9] << 8) + InputBuffer[10]) / 4095.0f; // pin 41 fAnalog[6] = ((InputBuffer[9] << 8) + InputBuffer[10]) / 4095.0f; // pin 41
++iFaza; // skoro odczytano, mo¿na przejœæ do kolejnej fazy ++iFaza; // skoro odczytano, można przejść do kolejnej fazy
iRepeats = 0; // zerowanie licznika prób iRepeats = 0; // zerowanie licznika prób
} }
else else
++iRepeats; // licznik nieudanych prób ++iRepeats; // licznik nieudanych prób
break; break;
case 2: // odczyt wejœæ cyfrowych - komenda i przetwarzanie case 2: // odczyt wejść cyfrowych - komenda i przetwarzanie
if (iLastCommand != 0x31) // asynchroniczne ustawienie kontrolki mo¿e namieszaæ if (iLastCommand != 0x31) // asynchroniczne ustawienie kontrolki może namieszać
Write(0x31, 0); // 0x31: blokowy odczyt wejœæ Write(0x31, 0); // 0x31: blokowy odczyt wejść
else if (Read()) else if (Read())
{ // jest odebrana ramka i zgodnoœæ numeru ¿¹dania { // jest odebrana ramka i zgodność numeru żądania
iInputs[0] = *((int *)(InputBuffer + 3)); // odczyt 32 bitów iInputs[0] = *((int *)(InputBuffer + 3)); // odczyt 32 bitów
iFaza = 3; // skoro odczytano, mo¿na kolejny cykl iFaza = 3; // skoro odczytano, można kolejny cykl
iRepeats = 0; // zerowanie licznika prób iRepeats = 0; // zerowanie licznika prób
} }
else else
++iRepeats; // licznik nieudanych prób ++iRepeats; // licznik nieudanych prób
break; break;
case 3: // ustawienie wyjœæ analogowych, 0..4095 mapowaæ na 0..65520 (<<4) case 3: // ustawienie wyjść analogowych, 0..4095 mapować na 0..65520 (<<4)
if (Write(0x41, 43 - 1, (iPWM[6] >> 4), (iPWM[6] << 4))) // wys³anie ustawieñ if (Write(0x41, 43 - 1, (iPWM[6] >> 4), (iPWM[6] << 4))) // wysłanie ustawień
iRepeats = 0; // informacja, ¿e posz³o dobrze iRepeats = 0; // informacja, że poszło dobrze
iFaza = 0; //++iFaza; //ta faza zosta³a zakoñczona iFaza = 0; //++iFaza; //ta faza została zakończona
// powinno jeszcze przyjœæ potwierdzenie o kodzie 0x41 // powinno jeszcze przyjść potwierdzenie o kodzie 0x41
break; break;
default: default:
iFaza = 0; // na wypadek, gdyby zb³¹dzi³o po jakichœ zmianach w kodzie iFaza = 0; // na wypadek, gdyby zbłądziło po jakichś zmianach w kodzie
// iRepeats=0; // iRepeats=0;
} }
if (!iRepeats) if (!iRepeats)
bNoError = true; // jest OK bNoError = true; // jest OK
else if (iRepeats >= 10) // youBy 2014-07: przy 5 powtórzeniach sieje mi pauz¹ po 2 razy na else if (iRepeats >= 10) // youBy 2014-07: przy 5 powtórzeniach sieje mi pauzą po 2 razy na
// sekundê, a przy 10 jest ok // sekundę, a przy 10 jest ok
{ // przekroczenie liczby prób wymusza kolejn¹ fazê { // przekroczenie liczby prób wymusza kolejną fazę
++iFaza; ++iFaza;
iRepeats = 1; // w nowej fazie nowe szanse, ale nie od 0! iRepeats = 1; // w nowej fazie nowe szanse, ale nie od 0!
bNoError = false; // zg³osiæ b³¹d bNoError = false; // zgłosić błąd
} }
return (bNoError); // true oznacza prawid³owe dzia³anie return (bNoError); // true oznacza prawidłowe działanie
// czy w przypadku b³êdu komunikacji z PoKeys w³¹czaæ pauzê? // czy w przypadku błędu komunikacji z PoKeys włączać pauzę?
// dopiero poprawne pod³¹czenie zeruje licznik prób // dopiero poprawne podłączenie zeruje licznik prób
}; };

View File

@@ -11,18 +11,18 @@ http://mozilla.org/MPL/2.0/.
#include <string> #include <string>
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
class TPoKeys55 class TPoKeys55
{ // komunikacja z PoKeys bez okreœlania przeznaczenia pinów { // komunikacja z PoKeys bez określania przeznaczenia pinów
unsigned char cRequest; // numer ¿¹dania do sprawdzania odpowiedzi unsigned char cRequest; // numer żądania do sprawdzania odpowiedzi
unsigned char OutputBuffer[65]; // Allocate a memory buffer equal to our endpoint size + 1 unsigned char OutputBuffer[65]; // Allocate a memory buffer equal to our endpoint size + 1
unsigned char InputBuffer[65]; // Allocate a memory buffer equal to our endpoint size + 1 unsigned char InputBuffer[65]; // Allocate a memory buffer equal to our endpoint size + 1
int iPWM[8]; // 0-5:wyjœcia PWM,6:analogowe,7:czêstotliwoœc PWM int iPWM[8]; // 0-5:wyjścia PWM,6:analogowe,7:częstotliwośc PWM
int iPWMbits; int iPWMbits;
int iLastCommand; int iLastCommand;
int iFaza; int iFaza;
int iRepeats; // liczba powtórzeñ int iRepeats; // liczba powtórzeń
bool bNoError; // zerowany po przepe³nieniu licznika powtórzeñ, ustawiany po udanej operacji bool bNoError; // zerowany po przepełnieniu licznika powtórzeń, ustawiany po udanej operacji
public: public:
float fAnalog[7]; // wejœcia analogowe, stan <0.0,1.0> float fAnalog[7]; // wejścia analogowe, stan <0.0,1.0>
int iInputs[8]; int iInputs[8];
TPoKeys55(); TPoKeys55();
~TPoKeys55(); ~TPoKeys55();

2227
DynObj.cpp

File diff suppressed because it is too large Load Diff

View File

@@ -69,8 +69,8 @@ int InitGL(GLvoid) // All Setup For OpenGL Goes Here
glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_NORMAL_ARRAY); glEnableClientState(GL_NORMAL_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY); glEnableClientState(GL_TEXTURE_COORD_ARRAY);
Global::pWorld = &World; // Ra: wska<EFBFBD>nik potrzebny do usuwania pojazd<EFBFBD>w Global::pWorld = &World; // Ra: wskaźnik potrzebny do usuwania pojazdów
return World.Init(hWnd, hDC); // true je<EFBFBD>li wszystko p<EFBFBD>jdzie dobrze return World.Init(hWnd, hDC); // true jeśli wszystko pójdzie dobrze
} }
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
@@ -403,22 +403,22 @@ LRESULT CALLBACK WndProc(HWND hWnd, // handle for this window
RECT rect; RECT rect;
switch (uMsg) // check for windows messages switch (uMsg) // check for windows messages
{ {
case WM_PASTE: //[Ctrl]+[V] potrzebujemy do innych cel<EFBFBD>w case WM_PASTE: //[Ctrl]+[V] potrzebujemy do innych celów
return 0; return 0;
case WM_COPYDATA: // obs<EFBFBD>uga danych przes<EFBFBD>anych przez program steruj<EFBFBD>cy case WM_COPYDATA: // obsługa danych przesłanych przez program sterujący
pDane = (PCOPYDATASTRUCT)lParam; pDane = (PCOPYDATASTRUCT)lParam;
if (pDane->dwData == 'EU07') // sygnatura danych if (pDane->dwData == 'EU07') // sygnatura danych
World.OnCommandGet((DaneRozkaz *)(pDane->lpData)); World.OnCommandGet((DaneRozkaz *)(pDane->lpData));
break; break;
case WM_ACTIVATE: // watch for window activate message case WM_ACTIVATE: // watch for window activate message
// case WM_ACTIVATEAPP: // case WM_ACTIVATEAPP:
{ // Ra: uzale<EFBFBD>nienie aktywno<EFBFBD>ci od bycia na wierzchu { // Ra: uzależnienie aktywności od bycia na wierzchu
Global::bActive = (LOWORD(wParam) != WA_INACTIVE); Global::bActive = (LOWORD(wParam) != WA_INACTIVE);
if (Global::bInactivePause) // je<EFBFBD>li ma by<EFBFBD> pauzowanie okna w tle if (Global::bInactivePause) // jeśli ma być pauzowanie okna w tle
if (Global::bActive) if (Global::bActive)
Global::iPause &= ~4; // odpauzowanie, gdy jest na pierwszym planie Global::iPause &= ~4; // odpauzowanie, gdy jest na pierwszym planie
else else
Global::iPause |= 4; // w<EFBFBD><EFBFBD>czenie pauzy, gdy nieaktywy Global::iPause |= 4; // włączenie pauzy, gdy nieaktywy
if (Global::bActive) if (Global::bActive)
SetCursorPos(mx, my); SetCursorPos(mx, my);
ShowCursor(!Global::bActive); ShowCursor(!Global::bActive);
@@ -472,8 +472,8 @@ LRESULT CALLBACK WndProc(HWND hWnd, // handle for this window
case WM_KEYDOWN: case WM_KEYDOWN:
if (Global::bActive) if (Global::bActive)
{ {
if (wParam != 17) // bo naci<EFBFBD>ni<EFBFBD>cia [Ctrl] nie ma po co przekazywa<EFBFBD> if (wParam != 17) // bo naciśnięcia [Ctrl] nie ma po co przekazywać
if (wParam != 145) //[Scroll Lock] te<EFBFBD> nie if (wParam != 145) //[Scroll Lock] też nie
World.OnKeyDown(wParam); World.OnKeyDown(wParam);
switch (wParam) switch (wParam)
{ {
@@ -481,27 +481,27 @@ LRESULT CALLBACK WndProc(HWND hWnd, // handle for this window
if (DebugModeFlag) if (DebugModeFlag)
break; break;
case 19: //[Pause] case 19: //[Pause]
if (Global::iPause & 1) // je<EFBFBD>li pauza startowa if (Global::iPause & 1) // jeśli pauza startowa
Global::iPause &= ~1; // odpauzowanie, gdy po wczytaniu mia<EFBFBD>o nie startowa<EFBFBD> Global::iPause &= ~1; // odpauzowanie, gdy po wczytaniu miało nie startować
else if (!(Global::iMultiplayer & 2)) // w multiplayerze pauza nie ma sensu else if (!(Global::iMultiplayer & 2)) // w multiplayerze pauza nie ma sensu
if (!Console::Pressed(VK_CONTROL)) // z [Ctrl] to radiostop jest if (!Console::Pressed(VK_CONTROL)) // z [Ctrl] to radiostop jest
// Ra: poni<EFBFBD>sze nie ma sensu, bo brak komunikacji natychmiast zapauzuje // Ra: poniższe nie ma sensu, bo brak komunikacji natychmiast zapauzuje
// ponownie // ponownie
// if (Global::iPause&8) //je<EFBFBD>li pauza zwi<EFBFBD>zana z brakiem komunikacji z // if (Global::iPause&8) //jeśli pauza związana z brakiem komunikacji z
// PoKeys // PoKeys
// Global::iPause&=~10; //odpauzowanie pauzy PoKeys (chyba nic nie da) i // Global::iPause&=~10; //odpauzowanie pauzy PoKeys (chyba nic nie da) i
// ewentualnie klawiszowej r<EFBFBD>wnie<EFBFBD> // ewentualnie klawiszowej również
// else // else
Global::iPause ^= 2; // zmiana stanu zapauzowania Global::iPause ^= 2; // zmiana stanu zapauzowania
if (Global::iPause) // jak pauza if (Global::iPause) // jak pauza
Global::iTextMode = VK_F1; // to wy<EFBFBD>wietli<EFBFBD> zegar i informacj<EFBFBD> Global::iTextMode = VK_F1; // to wyświetlić zegar i informację
break; break;
case VK_F7: case VK_F7:
if (DebugModeFlag) if (DebugModeFlag)
{ // siatki wy<EFBFBD>wietlane tyko w trybie testowym { // siatki wyświetlane tyko w trybie testowym
Global::bWireFrame = !Global::bWireFrame; Global::bWireFrame = !Global::bWireFrame;
++Global::iReCompile; // od<EFBFBD>wie<EFBFBD>y<EFBFBD> siatki ++Global::iReCompile; // odświeżyć siatki
// Ra: jeszcze usun<EFBFBD><EFBFBD> siatki ze skompilowanych obiekt<EFBFBD>w! // Ra: jeszcze usunąć siatki ze skompilowanych obiektów!
} }
break; break;
} }
@@ -578,9 +578,9 @@ int WINAPI WinMain(HINSTANCE hInstance, // instance
MSG msg; // windows message structure MSG msg; // windows message structure
BOOL done = FALSE; // bool variable to exit loop BOOL done = FALSE; // bool variable to exit loop
fullscreen = true; fullscreen = true;
DeleteFile("errors.txt"); // usuni<EFBFBD>cie starego DeleteFile("errors.txt"); // usunięcie starego
Global::LoadIniFile("eu07.ini"); // teraz dopiero mo<EFBFBD>na przejrze<EFBFBD> plik z ustawieniami Global::LoadIniFile("eu07.ini"); // teraz dopiero można przejrzeć plik z ustawieniami
Global::InitKeys("keys.ini"); // wczytanie mapowania klawiszy - jest na sta<EFBFBD>e Global::InitKeys("keys.ini"); // wczytanie mapowania klawiszy - jest na stałe
// hunter-271211: ukrywanie konsoli // hunter-271211: ukrywanie konsoli
if (Global::iWriteLogEnabled & 2) if (Global::iWriteLogEnabled & 2)
@@ -590,7 +590,7 @@ int WINAPI WinMain(HINSTANCE hInstance, // instance
} }
std::string commandline( lpCmdLine ); // parametry uruchomienia std::string commandline( lpCmdLine ); // parametry uruchomienia
if( false == commandline.empty() ) if( false == commandline.empty() )
{ // analizowanie parametr<EFBFBD>w { // analizowanie parametr�w
cParser parser( commandline ); cParser parser( commandline );
std::string token; std::string token;
do { do {
@@ -609,15 +609,15 @@ int WINAPI WinMain(HINSTANCE hInstance, // instance
parser >> Global::asHumanCtrlVehicle; parser >> Global::asHumanCtrlVehicle;
} }
else if( token == "-modifytga" ) else if( token == "-modifytga" )
{ // wykonanie modyfikacji wszystkich plik<EFBFBD>w TGA { // wykonanie modyfikacji wszystkich plików TGA
Global::iModifyTGA = -1; // specjalny tryb wykonania totalnej modyfikacji Global::iModifyTGA = -1; // specjalny tryb wykonania totalnej modyfikacji
} }
else if( token == "-e3d" ) else if( token == "-e3d" )
{ // wygenerowanie wszystkich plik<EFBFBD>w E3D { // wygenerowanie wszystkich plików E3D
if (Global::iConvertModels > 0) if (Global::iConvertModels > 0)
Global::iConvertModels = -Global::iConvertModels; // specjalny tryb Global::iConvertModels = -Global::iConvertModels; // specjalny tryb
else else
Global::iConvertModels = -7; // z optymalizacj<EFBFBD>, bananami i prawid<EFBFBD>owym Opacity Global::iConvertModels = -7; // z optymalizacją, bananami i prawidłowym Opacity
} }
else else
Error( Error(
@@ -644,9 +644,9 @@ int WINAPI WinMain(HINSTANCE hInstance, // instance
return 0; // quit if window was not created return 0; // quit if window was not created
SetForegroundWindow(hWnd); SetForegroundWindow(hWnd);
// McZapkie: proba przeplukania klawiatury // McZapkie: proba przeplukania klawiatury
Console *pConsole = new Console(); // Ra: nie wiem, czy ma to sens, ale jako<EFBFBD> zainicjowac trzeba Console *pConsole = new Console(); // Ra: nie wiem, czy ma to sens, ale jakoś zainicjowac trzeba
while (Console::Pressed(VK_F10)) while (Console::Pressed(VK_F10))
Error("Keyboard buffer problem - press F10"); // na Windows 98 lubi si<EFBFBD> to pojawia<EFBFBD> Error("Keyboard buffer problem - press F10"); // na Windows 98 lubi się to pojawiać
int iOldSpeed, iOldDelay; int iOldSpeed, iOldDelay;
SystemParametersInfo(SPI_GETKEYBOARDSPEED, 0, &iOldSpeed, 0); SystemParametersInfo(SPI_GETKEYBOARDSPEED, 0, &iOldSpeed, 0);
SystemParametersInfo(SPI_GETKEYBOARDDELAY, 0, &iOldDelay, 0); SystemParametersInfo(SPI_GETKEYBOARDDELAY, 0, &iOldDelay, 0);
@@ -656,20 +656,20 @@ int WINAPI WinMain(HINSTANCE hInstance, // instance
WriteLog("No joystick"); WriteLog("No joystick");
if (Global::iModifyTGA < 0) if (Global::iModifyTGA < 0)
{ // tylko modyfikacja TGA, bez uruchamiania symulacji { // tylko modyfikacja TGA, bez uruchamiania symulacji
Global::iMaxTextureSize = 64; //<EFBFBD>eby nie zamula<EFBFBD> pami<EFBFBD>ci Global::iMaxTextureSize = 64; //żeby nie zamulać pamięci
World.ModifyTGA(); // rekurencyjne przegl<EFBFBD>danie katalog<EFBFBD>w World.ModifyTGA(); // rekurencyjne przeglądanie katalogów
} }
else else
{ {
if (Global::iConvertModels < 0) if (Global::iConvertModels < 0)
{ {
Global::iConvertModels = -Global::iConvertModels; Global::iConvertModels = -Global::iConvertModels;
World.CreateE3D("models\\"); // rekurencyjne przegl<EFBFBD>danie katalog<EFBFBD>w World.CreateE3D("models\\"); // rekurencyjne przeglądanie katalogów
World.CreateE3D("dynamic\\", true); World.CreateE3D("dynamic\\", true);
} // po zrobieniu E3D odpalamy normalnie sceneri<EFBFBD>, by j<EFBFBD> zobaczy<EFBFBD> } // po zrobieniu E3D odpalamy normalnie scenerię, by ją zobaczyć
// else // else
//{//g<EFBFBD><EFBFBD>wna p<EFBFBD>tla programu //{//główna pętla programu
Console::On(); // w<EFBFBD><EFBFBD>czenie konsoli Console::On(); // włączenie konsoli
while (!done) // loop that runs while done=FALSE while (!done) // loop that runs while done=FALSE
{ {
if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) // is there a message waiting? if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) // is there a message waiting?
@@ -689,14 +689,14 @@ int WINAPI WinMain(HINSTANCE hInstance, // instance
// draw the scene, watch for quit messages // draw the scene, watch for quit messages
// DrawGLScene() // DrawGLScene()
// if (!pause) // if (!pause)
// if (Global::bInactivePause?Global::bActive:true) //tak nie, bo spada z g<EFBFBD>ry // if (Global::bInactivePause?Global::bActive:true) //tak nie, bo spada z góry
if (World.Update()) // Was There A Quit Received? if (World.Update()) // Was There A Quit Received?
SwapBuffers(hDC); // Swap Buffers (Double Buffering) SwapBuffers(hDC); // Swap Buffers (Double Buffering)
else else
done = true; //[F10] or DrawGLScene signalled a quit done = true; //[F10] or DrawGLScene signalled a quit
} }
} }
Console::Off(); // wy<EFBFBD><EFBFBD>czenie konsoli (komunikacji zwrotnej) Console::Off(); // wyłączenie konsoli (komunikacji zwrotnej)
} }
SystemParametersInfo(SPI_SETKEYBOARDSPEED, iOldSpeed, NULL, 0); SystemParametersInfo(SPI_SETKEYBOARDSPEED, iOldSpeed, NULL, 0);
SystemParametersInfo(SPI_SETKEYBOARDDELAY, iOldDelay, NULL, 0); SystemParametersInfo(SPI_SETKEYBOARDDELAY, iOldDelay, NULL, 0);
@@ -705,6 +705,3 @@ int WINAPI WinMain(HINSTANCE hInstance, // instance
KillGLWindow(); // kill the window KillGLWindow(); // kill the window
return (msg.wParam); // exit the program return (msg.wParam); // exit the program
} }