16
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-07-21 19:29: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

@@ -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
};