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
AllowShortFunctionsOnASingleLine: Empty
ColumnLimit: 100
SortIncludes: false
---

View File

@@ -32,14 +32,14 @@ bool TLPT::Connect(int port)
OutPort = (OutPortType)GetProcAddress(hDLL, "Out32");
}
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 =
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
{
case 0x0378:
case 0x0278:
OutPort(address + 0x402, 0); // SPP, czyli jednokierunkowe wyjœcie
OutPort(address + 0x402, 0); // SPP, czyli jednokierunkowe wyjście
break;
case 0xBC00:
case 0xBD00:
@@ -49,6 +49,6 @@ bool TLPT::Connect(int port)
};
void TLPT::Out(int x)
{ // wys³anie bajtu do portu
{ // wysłanie bajtu do portu
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
(oraz innych wykorzystujących komunikację przez port COM)
dla Symulatora Pojazdów Szynowych MaSzyna
Program obsługi portu COM i innych na potrzeby sterownika MWDevice
(oraz innych wykorzystujących komunikację przez port COM)
dla Symulatora Pojazdów Szynowych MaSzyna
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 "MWD.h"
@@ -22,8 +22,8 @@ http://mozilla.org/MPL/2.0/.
#include <windows.h>
#define BYTETOWRITE 31 /* ilość bajtów przesyłanych z MaSzyny*/
#define BYTETOREAD 16 /* ilość bajtów przesyłanych do MaSzyny*/
#define BYTETOWRITE 31 /* ilość bajtów przesyłanych z MaSzyny*/
#define BYTETOREAD 16 /* ilość bajtów przesyłanych do MaSzyny*/
HANDLE hComm;
@@ -32,7 +32,7 @@ MWDComm::MWDComm() // konstruktor
MWDTime = 0;
bSHPstate = 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;
bHamowanie = false;
bCzuwak = false;
@@ -134,7 +134,7 @@ bool MWDComm::Close() // zamykanie portu COM
i++;
}
Sleep(100);
SendData(); // wysyłanie do pulpitu: zatrzymanie haslera i zgaszenie lampek
SendData(); // wysyłanie do pulpitu: zatrzymanie haslera i zgaszenie lampek
Sleep(700);
CloseHandle(hComm);
WriteLog("COM is close!");
@@ -156,7 +156,7 @@ bool MWDComm::ReadData() // odbieranie danych + odczyta danych analogowych i zap
fAnalog[0] =
(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] =
(float)((ReadDataBuff[11] << 8) + ReadDataBuff[10]) / Global::fMWDAnalogCalib[1][3];
fAnalog[2] =
@@ -168,7 +168,7 @@ bool MWDComm::ReadData() // odbieranie danych + odczyta danych analogowych i zap
return TRUE;
}
bool MWDComm::SendData() // wysyłanie danych
bool MWDComm::SendData() // wysyłanie danych
{
DWORD bytes_write;
DWORD fdwEvtMask;
@@ -178,7 +178,7 @@ bool MWDComm::SendData() // wysy
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++;
if (!(MWDTime % 5))
@@ -193,14 +193,14 @@ bool MWDComm::Run() // wywo
else
{
WriteLog("Port COM: connection ERROR!");
// może spróbować się połączyć znowu?
// może spróbować się połączyć znowu?
return 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;
while (i < 6)
@@ -210,23 +210,23 @@ void MWDComm::CheckData() // sprawdzanie wej
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
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
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
2 (Shift) C sprężarka
3 S piasecznice
4 (Shift) H ogrzewanie składu
4 (Shift) H ogrzewanie składu
5 przel. hamowania Shift+B
pspbpwy Ctrl+B pospieszny B towarowy
6 przel. hamowania
@@ -234,10 +234,10 @@ void MWDComm::CheckData() // sprawdzanie wej
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
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
@@ -251,18 +251,18 @@ void MWDComm::CheckData() // sprawdzanie wej
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
// wciskanie przycisków klawiatury
/*PORT0*/
if (maskData[0] & 0x02 && lastStateData[0] & 0x02)
KeyBoard('M', 1); // wyłączenie wyłącznika szybkiego
KeyBoard('M', 1); // wyłączenie wyłącznika szybkiego
else
KeyBoard('M', 0); // monostabilny
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('M', 1);
}
@@ -272,12 +272,12 @@ void MWDComm::CheckData() // sprawdzanie wej
KeyBoard(0x10, 0);
}
if (maskData[0] & 0x08 && lastStateData[0] & 0x08)
KeyBoard('N', 1); // odblok nadmiarowego silników trakcyjnych
KeyBoard('N', 1); // odblok nadmiarowego silników trakcyjnych
else
KeyBoard('N', 0); // monostabilny
if (maskData[0] & 0x20 && lastStateData[0] & 0x20)
{ // 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
}
else
@@ -286,7 +286,7 @@ void MWDComm::CheckData() // sprawdzanie wej
KeyBoard(0x11, 0);
}
if (maskData[0] & 0x40 && lastStateData[0] & 0x40)
KeyBoard('L', 1); // wył. styczników liniowych
KeyBoard('L', 1); // wył. styczników liniowych
else
KeyBoard('L', 0); // monostabilny
if (maskData[0] & 0x80 && lastStateData[0] & 0x80)
@@ -365,7 +365,7 @@ void MWDComm::CheckData() // sprawdzanie wej
KeyBoard('X', 1);
}
if (maskData[1] & 0x04 && lastStateData[1] & 0x04)
{ // sprężarka
{ // sprężarka
KeyBoard(0x10, 1); // bistabilny
KeyBoard('C', 1);
maskSwitch[1] |= 0x04;
@@ -382,7 +382,7 @@ void MWDComm::CheckData() // sprawdzanie wej
else
KeyBoard('S', 0); // monostabilny
if (maskData[1] & 0x10 && lastStateData[1] & 0x10)
{ // ogrzewanie składu
{ // ogrzewanie składu
KeyBoard(0x11, 1); // bistabilny
KeyBoard('H', 1);
maskSwitch[1] |= 0x10;
@@ -395,7 +395,7 @@ void MWDComm::CheckData() // sprawdzanie wej
KeyBoard('H', 1);
}
if (maskData[1] & 0x20 || maskData[1] & 0x40)
{ // przełącznik hamowania
{ // przełącznik hamowania
if (lastStateData[1] & 0x20)
{ // Shift+B
KeyBoard(0x10, 1);
@@ -475,7 +475,7 @@ void MWDComm::CheckData() // sprawdzanie wej
KeyBoard('O', 1);
}
if (maskData[2] & 0x04 && lastStateData[2] & 0x04)
{ // przyhamowanie przy poślizgu
{ // przyhamowanie przy poślizgu
KeyBoard(0x10, 1); // monostabilny
KeyBoard(0x0D, 1);
}
@@ -485,7 +485,7 @@ void MWDComm::CheckData() // sprawdzanie wej
KeyBoard(0x0D, 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(0x10,1);
KeyBoard(' ',1);
@@ -494,7 +494,7 @@ void MWDComm::CheckData() // sprawdzanie wej
KeyBoard(0x10,0);
KeyBoard(' ',1);
}
if(maskData[2] & 0x10 && lastStateData[2] & 0x10) { // przyciemnienie świateł
if(maskData[2] & 0x10 && lastStateData[2] & 0x10) { // przyciemnienie świateł
KeyBoard(' ',0); // bistabilny
KeyBoard(0x11,1);
KeyBoard(' ',1);
@@ -504,7 +504,7 @@ void MWDComm::CheckData() // sprawdzanie wej
KeyBoard(' ',1);
}*/
if (maskData[2] & 0x20 && lastStateData[2] & 0x20)
KeyBoard(0x66, 1); // odluźniacz
KeyBoard(0x66, 1); // odluźniacz
else
KeyBoard(0x66, 0); // monostabilny
if (maskData[2] & 0x40 && lastStateData[2] & 0x40)
@@ -713,28 +713,28 @@ void MWDComm::CheckData() // sprawdzanie wej
{
bnkMask |= 1;
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])
{
bnkMask |= 2;
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])
{
bnkMask |= 4;
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])
{
bnkMask |= 8;
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)
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
(oraz innych wykorzystujących komunikację przez port COM)
dla Symulatora Pojazdów Szynowych MaSzyna
Program obsługi portu COM i innych na potrzeby sterownika MWDevice
(oraz innych wykorzystujących komunikację przez port COM)
dla Symulatora Pojazdów Szynowych MaSzyna
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
@@ -32,7 +32,7 @@ class MWDComm
bool ReadData(); // BYTE *pReadDataBuff);
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);
bool bRysik1H;
@@ -42,11 +42,11 @@ class MWDComm
public:
bool Open(); // Otwarcie portu
bool Close(); // Zamknięcie portu
bool Run(); // Obsługa portu
bool GetMWDState(); // sprawdź czy port jest otwarty, 0 zamknięty, 1 otwarty
bool Close(); // Zamknięcie portu
bool Run(); // Obsługa portu
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 bPrzejazdSHP;
bool bKabina1;
@@ -54,7 +54,7 @@ class MWDComm
bool bHamowanie;
bool bCzuwak;
float fAnalog[4]; // trzymanie danych z wejść analogowych
float fAnalog[4]; // trzymanie danych z wejść analogowych
BYTE ReadDataBuff[17]; // bufory danych
BYTE WriteDataBuff[31];
@@ -65,37 +65,37 @@ class MWDComm
#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::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::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)
Console::~Console - usuwanie MWD (jest też w Console OFF)
MWDComm * Console::MWD = NULL; - luzem, obiekt i wskaźnik(?)
dodatkowo zmieniłem int na long int dla BitSet i BitClear oraz iBits
MWDComm * Console::MWD = NULL; - luzem, obiekt i wskaźnik(?)
dodatkowo zmieniłem int na long int dla BitSet i BitClear oraz iBits
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
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
Globals.h:
dodano zmienne dla MWD
Globals.cpp:
dodano inicjalizaję zmiennych i odczyt z ini ustawień
dodano inicjalizaję zmiennych i odczyt z ini ustawień
Wpisy do pliku eu07.ini
//maciek001 MWD
comportname COM3 // wybór portu COM
comportname COM3 // wybór portu COM
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 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;
iPWM[0] = iPWM[1] = iPWM[2] = iPWM[3] = iPWM[4] = iPWM[5] = iPWM[6] = 0;
iPWM[7] = 4096;
iInputs[0] = 0; // czy normalnie s¹ w stanie wysokim?
iInputs[0] = 0; // czy normalnie są w stanie wysokim?
iRepeats = 0;
bNoError = true;
};
@@ -43,7 +43,7 @@ TPoKeys55::~TPoKeys55()
};
//---------------------------------------------------------------------------
void TPoKeys55::Close()
{ // roz³¹czenie komunikacji
{ // rozłączenie komunikacji
if (WriteHandle != INVALID_HANDLE_VALUE)
CloseHandle(WriteHandle);
WriteHandle = INVALID_HANDLE_VALUE;
@@ -53,10 +53,10 @@ void TPoKeys55::Close()
};
//---------------------------------------------------------------------------
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();
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;
PSP_DEVICE_INTERFACE_DATA InterfaceDataStructure = new SP_DEVICE_INTERFACE_DATA;
PSP_DEVICE_INTERFACE_DETAIL_DATA DetailedInterfaceDataStructure =
@@ -192,7 +192,7 @@ bool TPoKeys55::Connect()
}
SetupDiDestroyDeviceInfoList(
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;
}
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
// USB bus. Always set=0.
OutputBuffer[1] = 0xBB; // 0xBB - bajt rozpoznawczy dla PoKeys55
OutputBuffer[2] = iLastCommand = c; // operacja: 0x31: blokowy odczyt wejϾ
OutputBuffer[3] = b3; // np. numer pinu (o 1 mniej ni¿ numer na p³ytce)
OutputBuffer[2] = iLastCommand = c; // operacja: 0x31: blokowy odczyt wejść
OutputBuffer[3] = b3; // np. numer pinu (o 1 mniej niż numer na płytce)
OutputBuffer[4] = b4;
OutputBuffer[5] = b5;
OutputBuffer[6] = 0;
OutputBuffer[7] = ++cRequest; // numer ¿¹dania
OutputBuffer[7] = ++cRequest; // numer żądania
OutputBuffer[8] = 0;
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
// HID class USB devices
//(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,
0); // Blocking function, unless an "overlapped" structure is used
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)
{ // próbuje odczytaæ (i) razy
{ // próbuje odczytać (i) razy
do
{
if (Read())
return true;
Sleep(1); // trochê poczekaæ, a¿ odpowie
Sleep(1); // trochę poczekać, aż odpowie
} while (--i);
return false;
}
//---------------------------------------------------------------------------
std::string TPoKeys55::Version()
{ // zwraca numer wersji, funkcja nieoptymalna czasowo (czeka na odpowiedŸ)
{ // zwraca numer wersji, funkcja nieoptymalna czasowo (czeka na odpowiedź)
if (!WriteHandle)
return "";
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]);
s += " v" + std::to_string(1 + (InputBuffer[5] >> 4)) + "." + std::to_string(InputBuffer[5] & 15) +
"." + std::to_string(InputBuffer[6]);
/* //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
/* //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
kolejno po 4 znaki
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")
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
if (ReadLoop(5))
{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
if (ReadLoop(5))
s+=AnsiString((char*)InputBuffer+3,3);
@@ -297,16 +297,16 @@ bool TPoKeys55::PWM(int x, float y)
}
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)
{ // specjalna procedura, jeœli utracone po³¹czenie spowodowa³o pauzê
iLastCommand = 0; // po³¹czenie zosta³o na nowo otwarte
// iFaza=0; //jeden b³¹d i podtrzymanie pauzy jest kontynuowane
{ // specjalna procedura, jeśli utracone połączenie spowodowało pauzę
iLastCommand = 0; // połączenie zostało na nowo otwarte
// iFaza=0; //jeden błąd i podtrzymanie pauzy jest kontynuowane
}
switch (iFaza)
{
case 0: // uaktualnienie PWM raz na jakiœ czas
OutputBuffer[9] = 0x3F; // maska u¿ytych PWM
case 0: // uaktualnienie PWM raz na jakiś czas
OutputBuffer[9] = 0x3F; // maska użytych PWM
*((int *)(OutputBuffer + 10)) = iPWM[0]; // PWM1 (pin 22)
*((int *)(OutputBuffer + 14)) = iPWM[1]; // PWM2 (pin 21)
*((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 + 30)) = iPWM[5]; // PWM6 (pin 17)
*((int *)(OutputBuffer + 34)) = iPWM[7]; // PWM period
if (Write(0xCB, 1)) // wys³anie ustawieñ (1-ustaw, 0-odczyt)
iRepeats = 0; // informacja, ¿e posz³o dobrze
++iFaza; // ta faza zosta³a zakoñczona
if (Write(0xCB, 1)) // wysłanie ustawień (1-ustaw, 0-odczyt)
iRepeats = 0; // informacja, że poszło dobrze
++iFaza; // ta faza została zakończona
// iRepeats=0;
break;
case 1: // odczyt wejϾ analogowych - komenda i przetwarzanie
if (iLastCommand != 0x3A) // asynchroniczne ustawienie kontrolki mo¿e namieszaæ
Write(0x3A, 0); // 0x3A - Analog inputs reading all analog inputs in one command
case 1: // odczyt wejść analogowych - komenda i przetwarzanie
if (iLastCommand != 0x3A) // asynchroniczne ustawienie kontrolki może namieszać
Write(0x3A, 0); // 0x3A - Analog inputs reading all analog inputs in one command
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[1] = ((InputBuffer[19] << 8) + InputBuffer[20]) / 4095.0f; // pin 46
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[5] = ((InputBuffer[11] << 8) + InputBuffer[12]) / 4095.0f; // pin 42
fAnalog[6] = ((InputBuffer[9] << 8) + InputBuffer[10]) / 4095.0f; // pin 41
++iFaza; // skoro odczytano, mo¿na przejœæ do kolejnej fazy
iRepeats = 0; // zerowanie licznika prób
++iFaza; // skoro odczytano, można przejść do kolejnej fazy
iRepeats = 0; // zerowanie licznika prób
}
else
++iRepeats; // licznik nieudanych prób
++iRepeats; // licznik nieudanych prób
break;
case 2: // odczyt wejϾ cyfrowych - komenda i przetwarzanie
if (iLastCommand != 0x31) // asynchroniczne ustawienie kontrolki mo¿e namieszaæ
Write(0x31, 0); // 0x31: blokowy odczyt wejϾ
case 2: // odczyt wejść cyfrowych - komenda i przetwarzanie
if (iLastCommand != 0x31) // asynchroniczne ustawienie kontrolki może namieszać
Write(0x31, 0); // 0x31: blokowy odczyt wejść
else if (Read())
{ // jest odebrana ramka i zgodnoœæ numeru ¿¹dania
iInputs[0] = *((int *)(InputBuffer + 3)); // odczyt 32 bitów
iFaza = 3; // skoro odczytano, mo¿na kolejny cykl
iRepeats = 0; // zerowanie licznika prób
{ // jest odebrana ramka i zgodność numeru żądania
iInputs[0] = *((int *)(InputBuffer + 3)); // odczyt 32 bitów
iFaza = 3; // skoro odczytano, można kolejny cykl
iRepeats = 0; // zerowanie licznika prób
}
else
++iRepeats; // licznik nieudanych prób
++iRepeats; // licznik nieudanych prób
break;
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ñ
iRepeats = 0; // informacja, ¿e posz³o dobrze
iFaza = 0; //++iFaza; //ta faza zosta³a zakoñczona
// powinno jeszcze przyjϾ potwierdzenie o kodzie 0x41
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ń
iRepeats = 0; // informacja, że poszło dobrze
iFaza = 0; //++iFaza; //ta faza została zakończona
// powinno jeszcze przyjść potwierdzenie o kodzie 0x41
break;
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;
}
if (!iRepeats)
bNoError = true; // jest OK
else if (iRepeats >= 10) // youBy 2014-07: przy 5 powtórzeniach sieje mi pauz¹ po 2 razy na
// sekundê, a przy 10 jest ok
{ // przekroczenie liczby prób wymusza kolejn¹ fazê
else if (iRepeats >= 10) // youBy 2014-07: przy 5 powtórzeniach sieje mi pauzą po 2 razy na
// sekundę, a przy 10 jest ok
{ // przekroczenie liczby prób wymusza kolejną fazę
++iFaza;
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
// czy w przypadku b³êdu komunikacji z PoKeys w³¹czaæ pauzê?
// dopiero poprawne pod³¹czenie zeruje licznik prób
return (bNoError); // true oznacza prawidłowe działanie
// czy w przypadku błędu komunikacji z PoKeys włączać pauzę?
// dopiero poprawne podłączenie zeruje licznik prób
};

View File

@@ -11,18 +11,18 @@ http://mozilla.org/MPL/2.0/.
#include <string>
//---------------------------------------------------------------------------
class TPoKeys55
{ // komunikacja z PoKeys bez okreœlania przeznaczenia pinów
unsigned char cRequest; // numer ¿¹dania do sprawdzania odpowiedzi
{ // komunikacja z PoKeys bez określania przeznaczenia pinów
unsigned char cRequest; // numer żądania do sprawdzania odpowiedzi
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
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 iLastCommand;
int iFaza;
int iRepeats; // liczba powtórzeñ
bool bNoError; // zerowany po przepe³nieniu licznika powtórzeñ, ustawiany po udanej operacji
int iRepeats; // liczba powtórzeń
bool bNoError; // zerowany po przepełnieniu licznika powtórzeń, ustawiany po udanej operacji
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];
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_NORMAL_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
Global::pWorld = &World; // Ra: wska<EFBFBD>nik potrzebny do usuwania pojazd<EFBFBD>w
return World.Init(hWnd, hDC); // true je<EFBFBD>li wszystko p<EFBFBD>jdzie dobrze
Global::pWorld = &World; // Ra: wskaźnik potrzebny do usuwania pojazdów
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;
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;
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;
if (pDane->dwData == 'EU07') // sygnatura danych
World.OnCommandGet((DaneRozkaz *)(pDane->lpData));
break;
case WM_ACTIVATE: // watch for window activate message
// 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);
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)
Global::iPause &= ~4; // odpauzowanie, gdy jest na pierwszym planie
else
Global::iPause |= 4; // w<EFBFBD><EFBFBD>czenie pauzy, gdy nieaktywy
Global::iPause |= 4; // włączenie pauzy, gdy nieaktywy
if (Global::bActive)
SetCursorPos(mx, my);
ShowCursor(!Global::bActive);
@@ -472,8 +472,8 @@ LRESULT CALLBACK WndProc(HWND hWnd, // handle for this window
case WM_KEYDOWN:
if (Global::bActive)
{
if (wParam != 17) // bo naci<EFBFBD>ni<EFBFBD>cia [Ctrl] nie ma po co przekazywa<EFBFBD>
if (wParam != 145) //[Scroll Lock] te<EFBFBD> nie
if (wParam != 17) // bo naciśnięcia [Ctrl] nie ma po co przekazywać
if (wParam != 145) //[Scroll Lock] też nie
World.OnKeyDown(wParam);
switch (wParam)
{
@@ -481,27 +481,27 @@ LRESULT CALLBACK WndProc(HWND hWnd, // handle for this window
if (DebugModeFlag)
break;
case 19: //[Pause]
if (Global::iPause & 1) // je<EFBFBD>li pauza startowa
Global::iPause &= ~1; // odpauzowanie, gdy po wczytaniu mia<EFBFBD>o nie startowa<EFBFBD>
if (Global::iPause & 1) // jeśli pauza startowa
Global::iPause &= ~1; // odpauzowanie, gdy po wczytaniu miało nie startować
else if (!(Global::iMultiplayer & 2)) // w multiplayerze pauza nie ma sensu
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
// 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
// Global::iPause&=~10; //odpauzowanie pauzy PoKeys (chyba nic nie da) i
// ewentualnie klawiszowej r<EFBFBD>wnie<EFBFBD>
// ewentualnie klawiszowej również
// else
Global::iPause ^= 2; // zmiana stanu zapauzowania
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;
case VK_F7:
if (DebugModeFlag)
{ // siatki wy<EFBFBD>wietlane tyko w trybie testowym
{ // siatki wyświetlane tyko w trybie testowym
Global::bWireFrame = !Global::bWireFrame;
++Global::iReCompile; // od<EFBFBD>wie<EFBFBD>y<EFBFBD> siatki
// Ra: jeszcze usun<EFBFBD><EFBFBD> siatki ze skompilowanych obiekt<EFBFBD>w!
++Global::iReCompile; // odświeżyć siatki
// Ra: jeszcze usunąć siatki ze skompilowanych obiektów!
}
break;
}
@@ -578,9 +578,9 @@ int WINAPI WinMain(HINSTANCE hInstance, // instance
MSG msg; // windows message structure
BOOL done = FALSE; // bool variable to exit loop
fullscreen = true;
DeleteFile("errors.txt"); // usuni<EFBFBD>cie starego
Global::LoadIniFile("eu07.ini"); // teraz dopiero mo<EFBFBD>na przejrze<EFBFBD> plik z ustawieniami
Global::InitKeys("keys.ini"); // wczytanie mapowania klawiszy - jest na sta<EFBFBD>e
DeleteFile("errors.txt"); // usunięcie starego
Global::LoadIniFile("eu07.ini"); // teraz dopiero można przejrzeć plik z ustawieniami
Global::InitKeys("keys.ini"); // wczytanie mapowania klawiszy - jest na stałe
// hunter-271211: ukrywanie konsoli
if (Global::iWriteLogEnabled & 2)
@@ -590,7 +590,7 @@ int WINAPI WinMain(HINSTANCE hInstance, // instance
}
std::string commandline( lpCmdLine ); // parametry uruchomienia
if( false == commandline.empty() )
{ // analizowanie parametr<EFBFBD>w
{ // analizowanie parametr�w
cParser parser( commandline );
std::string token;
do {
@@ -609,15 +609,15 @@ int WINAPI WinMain(HINSTANCE hInstance, // instance
parser >> Global::asHumanCtrlVehicle;
}
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
}
else if( token == "-e3d" )
{ // wygenerowanie wszystkich plik<EFBFBD>w E3D
{ // wygenerowanie wszystkich plików E3D
if (Global::iConvertModels > 0)
Global::iConvertModels = -Global::iConvertModels; // specjalny tryb
else
Global::iConvertModels = -7; // z optymalizacj<EFBFBD>, bananami i prawid<EFBFBD>owym Opacity
Global::iConvertModels = -7; // z optymalizacją, bananami i prawidłowym Opacity
}
else
Error(
@@ -644,9 +644,9 @@ int WINAPI WinMain(HINSTANCE hInstance, // instance
return 0; // quit if window was not created
SetForegroundWindow(hWnd);
// 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))
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;
SystemParametersInfo(SPI_GETKEYBOARDSPEED, 0, &iOldSpeed, 0);
SystemParametersInfo(SPI_GETKEYBOARDDELAY, 0, &iOldDelay, 0);
@@ -656,20 +656,20 @@ int WINAPI WinMain(HINSTANCE hInstance, // instance
WriteLog("No joystick");
if (Global::iModifyTGA < 0)
{ // tylko modyfikacja TGA, bez uruchamiania symulacji
Global::iMaxTextureSize = 64; //<EFBFBD>eby nie zamula<EFBFBD> pami<EFBFBD>ci
World.ModifyTGA(); // rekurencyjne przegl<EFBFBD>danie katalog<EFBFBD>w
Global::iMaxTextureSize = 64; //żeby nie zamulać pamięci
World.ModifyTGA(); // rekurencyjne przeglądanie katalogów
}
else
{
if (Global::iConvertModels < 0)
{
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);
} // po zrobieniu E3D odpalamy normalnie sceneri<EFBFBD>, by j<EFBFBD> zobaczy<EFBFBD>
} // po zrobieniu E3D odpalamy normalnie scenerię, by ją zobaczyć
// else
//{//g<EFBFBD><EFBFBD>wna p<EFBFBD>tla programu
Console::On(); // w<EFBFBD><EFBFBD>czenie konsoli
//{//główna pętla programu
Console::On(); // włączenie konsoli
while (!done) // loop that runs while done=FALSE
{
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
// DrawGLScene()
// 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?
SwapBuffers(hDC); // Swap Buffers (Double Buffering)
else
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_SETKEYBOARDDELAY, iOldDelay, NULL, 0);
@@ -705,6 +705,3 @@ int WINAPI WinMain(HINSTANCE hInstance, // instance
KillGLWindow(); // kill the window
return (msg.wParam); // exit the program
}