mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-22 22:09:19 +02:00
Merge pull request #8 from maciek001/mover_in_c++
Aktualizacja sterowania
This commit is contained in:
75
Console.cpp
75
Console.cpp
@@ -146,7 +146,7 @@ int Console::On()
|
|||||||
{ // załączenie konsoli (np. nawiązanie komunikacji)
|
{ // załączenie konsoli (np. nawiązanie komunikacji)
|
||||||
iSwitch[0] = iSwitch[1] = iSwitch[2] = iSwitch[3] = 0; // bity 0..127 - bez [Ctrl]
|
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]
|
iSwitch[4] = iSwitch[5] = iSwitch[6] = iSwitch[7] = 0; // bity 128..255 - z [Ctrl]
|
||||||
switch (iMode)
|
switch (iMode)
|
||||||
{
|
{
|
||||||
case 1: // kontrolki klawiatury
|
case 1: // kontrolki klawiatury
|
||||||
case 2: // kontrolki klawiatury
|
case 2: // kontrolki klawiatury
|
||||||
@@ -176,6 +176,7 @@ int Console::On()
|
|||||||
{ // połączenie nie wyszło, ma być NULL
|
{ // połączenie nie wyszło, ma być NULL
|
||||||
delete PoKeys55[0];
|
delete PoKeys55[0];
|
||||||
PoKeys55[0] = NULL;
|
PoKeys55[0] = NULL;
|
||||||
|
WriteLog("PoKeys not found!");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -324,29 +325,29 @@ void Console::BitsUpdate(int mask)
|
|||||||
else MWDComm->WriteDataBuff[4] &= ~(1 << 6);
|
else MWDComm->WriteDataBuff[4] &= ~(1 << 6);
|
||||||
if (mask & 0x0004) if (iBits & 4) MWDComm->WriteDataBuff[4] |= 1 << 1; // jazda na oporach rozruchowych
|
if (mask & 0x0004) if (iBits & 4) MWDComm->WriteDataBuff[4] |= 1 << 1; // jazda na oporach rozruchowych
|
||||||
else MWDComm->WriteDataBuff[4] &= ~(1 << 1);
|
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);
|
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);
|
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);
|
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);
|
else MWDComm->WriteDataBuff[4] &= ~(1 << 2);
|
||||||
if (mask & 0x0080) if (iBits & 0x80) MWDComm->WriteDataBuff[5] |= 1 << 2; // (nadmiarowy) przetwornicy? ++
|
if (mask & 0x0080) if (iBits & 0x80) MWDComm->WriteDataBuff[5] |= 1 << 2; // (nadmiarowy) przetwornicy? ++
|
||||||
else MWDComm->WriteDataBuff[5] &= ~(1 << 2);
|
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);
|
else MWDComm->WriteDataBuff[5] &= ~(1 << 7);
|
||||||
if (mask & 0x0200) if (iBits & 0x200) MWDComm->WriteDataBuff[2] |= 1 << 1; // wentylatory i opory
|
if (mask & 0x0200) if (iBits & 0x200) MWDComm->WriteDataBuff[2] |= 1 << 1; // wentylatory i opory
|
||||||
else MWDComm->WriteDataBuff[2] &= ~(1 << 1);
|
else MWDComm->WriteDataBuff[2] &= ~(1 << 1);
|
||||||
if (mask & 0x0400) if (iBits & 0x400) MWDComm->WriteDataBuff[2] |= 1 << 2; // wysoki rozruch
|
if (mask & 0x0400) if (iBits & 0x400) MWDComm->WriteDataBuff[2] |= 1 << 2; // wysoki rozruch
|
||||||
else MWDComm->WriteDataBuff[2] &= ~(1 << 2);
|
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);
|
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;
|
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);
|
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);
|
else MWDComm->WriteDataBuff[6] &= ~(1 << 7);
|
||||||
//if(mask & 0x8000) if(iBits & 0x8000) MWDComm->WriteDataBuff[1] |= 1<<7; (puste)
|
//if(mask & 0x8000) if(iBits & 0x8000) MWDComm->WriteDataBuff[1] |= 1<<7; (puste)
|
||||||
//else MWDComm->WriteDataBuff[0] &= ~(1<<7);
|
//else MWDComm->WriteDataBuff[0] &= ~(1<<7);
|
||||||
@@ -393,36 +394,50 @@ void Console::ValueSet(int x, double y)
|
|||||||
unsigned int iliczba;
|
unsigned int iliczba;
|
||||||
switch (x)
|
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[12] = (unsigned char)(iliczba >> 8);
|
||||||
MWDComm->WriteDataBuff[11] = (unsigned char)iliczba;
|
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;
|
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[10] = (unsigned char)(iliczba >> 8);
|
||||||
MWDComm->WriteDataBuff[9] = (unsigned char)iliczba;
|
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;
|
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[8] = (unsigned char)(iliczba >> 8);
|
||||||
MWDComm->WriteDataBuff[7] = (unsigned char)iliczba;
|
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;
|
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[14] = (unsigned char)(iliczba >> 8);
|
||||||
MWDComm->WriteDataBuff[13] = (unsigned char)iliczba;
|
MWDComm->WriteDataBuff[13] = (unsigned char)iliczba;
|
||||||
|
if (Global::bMWDmasterEnable && Global::iMWDDebugMode & 8) WriteLog("Hi Volt meter " + to_string(MWDComm->WriteDataBuff[14]) + " " + to_string(MWDComm->WriteDataBuff[13]));
|
||||||
break;
|
break;
|
||||||
case 4: iliczba = (unsigned int)floor((y / Global::fMWDamp[0] * Global::fMWDamp[1]) + 0.5); // amp WN 1
|
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[16] = (unsigned char)(iliczba >> 8);
|
||||||
MWDComm->WriteDataBuff[15] = (unsigned char)iliczba;
|
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;
|
break;
|
||||||
case 5: iliczba = (unsigned int)floor((y / Global::fMWDamp[0] * Global::fMWDamp[1]) + 0.5); // amp WN 2
|
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[18] = (unsigned char)(iliczba >> 8);
|
||||||
MWDComm->WriteDataBuff[17] = (unsigned char)iliczba;
|
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;
|
break;
|
||||||
case 6: iliczba = (unsigned int)floor((y / Global::fMWDamp[0] * Global::fMWDamp[1]) + 0.5); // amp WN 3
|
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[20] = (unsigned int)(iliczba >> 8);
|
||||||
MWDComm->WriteDataBuff[19] = (unsigned char)iliczba;
|
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;
|
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 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;
|
break;
|
||||||
|
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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -461,28 +476,20 @@ float Console::AnalogCalibrateGet(int x)
|
|||||||
{ // pobranie i kalibracja wartości analogowej, jeśli nie ma PoKeys zwraca NULL
|
{ // pobranie i kalibracja wartości analogowej, jeśli nie ma PoKeys zwraca NULL
|
||||||
if (iMode == 4 && PoKeys55[0])
|
if (iMode == 4 && PoKeys55[0])
|
||||||
{
|
{
|
||||||
float b = PoKeys55[0]->fAnalog[x];
|
float b = PoKeys55[0]->fAnalog[x];
|
||||||
return (((((Global::fCalibrateIn[x][5] * b) + Global::fCalibrateIn[x][4]) * b +
|
b = (((((Global::fCalibrateIn[x][5] * b) + Global::fCalibrateIn[x][4]) * b +
|
||||||
Global::fCalibrateIn[x][3]) *
|
Global::fCalibrateIn[x][3]) * b +
|
||||||
b +
|
Global::fCalibrateIn[x][2]) * b +
|
||||||
Global::fCalibrateIn[x][2]) *
|
Global::fCalibrateIn[x][1]) * b +
|
||||||
b +
|
Global::fCalibrateIn[x][0];
|
||||||
Global::fCalibrateIn[x][1]) *
|
if (x == 0) return (b + 2) / 8;
|
||||||
b +
|
if (x == 1) return b/10;
|
||||||
Global::fCalibrateIn[x][0];
|
else return b;
|
||||||
}
|
}
|
||||||
if (Global::bMWDmasterEnable && Global::bMWDBreakEnable)
|
if (Global::bMWDmasterEnable && Global::bMWDBreakEnable)
|
||||||
{
|
{
|
||||||
float b = (float)MWDComm->uiAnalog[x];
|
float b = (float)MWDComm->uiAnalog[x];
|
||||||
b = (b - Global::fMWDAnalogInCalib[x][0]) / (Global::fMWDAnalogInCalib[x][1] - Global::fMWDAnalogInCalib[x][0]);
|
return (b - Global::fMWDAnalogInCalib[x][0]) / (Global::fMWDAnalogInCalib[x][1] - Global::fMWDAnalogInCalib[x][0]);
|
||||||
switch (x)
|
|
||||||
{
|
|
||||||
case 0: return (b * 8 - 2);
|
|
||||||
break;
|
|
||||||
case 1: return (b * 10);
|
|
||||||
break;
|
|
||||||
default: return 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return -1.0; // odcięcie
|
return -1.0; // odcięcie
|
||||||
};
|
};
|
||||||
|
|||||||
471
Console/MWD.cpp
471
Console/MWD.cpp
@@ -29,8 +29,8 @@ TMWDComm::TMWDComm() // 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
|
||||||
bKabina2 = false;
|
bKabina2 = false; // i ustawiać te dwa parametry!
|
||||||
bHamowanie = false;
|
bHamowanie = false;
|
||||||
bCzuwak = false;
|
bCzuwak = false;
|
||||||
|
|
||||||
@@ -152,7 +152,7 @@ bool TMWDComm::Close() // zamykanie portu COM
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool TMWDComm::GetMWDState() // sprawdzanie otwarcia portu COM
|
bool TMWDComm::GetMWDState() // sprawdzanie otwarcia portu COM
|
||||||
{
|
{
|
||||||
if (hComm > 0)
|
if (hComm > 0)
|
||||||
return 1;
|
return 1;
|
||||||
@@ -164,7 +164,7 @@ bool TMWDComm::ReadData() // odbieranie danych + odczyta danych analogowych i za
|
|||||||
{
|
{
|
||||||
DWORD bytes_read;
|
DWORD bytes_read;
|
||||||
ReadFile(hComm, &ReadDataBuff[0], BYTETOREAD, &bytes_read, NULL);
|
ReadFile(hComm, &ReadDataBuff[0], BYTETOREAD, &bytes_read, NULL);
|
||||||
|
if (Global::bMWDdebugEnable && Global::iMWDDebugMode == 128) WriteLog("Data receive. Checking data...");
|
||||||
if (Global::bMWDBreakEnable)
|
if (Global::bMWDBreakEnable)
|
||||||
{
|
{
|
||||||
uiAnalog[0] = (ReadDataBuff[9] << 8) + ReadDataBuff[8];
|
uiAnalog[0] = (ReadDataBuff[9] << 8) + ReadDataBuff[8];
|
||||||
@@ -204,8 +204,11 @@ bool TMWDComm::Run() // wywoływanie obsługi MWD + generacja większego opóźn
|
|||||||
if (!(MWDTime % Global::iMWDdivider))
|
if (!(MWDTime % Global::iMWDdivider))
|
||||||
{
|
{
|
||||||
MWDTime = 0;
|
MWDTime = 0;
|
||||||
|
if (Global::bMWDdebugEnable && Global::iMWDDebugMode == 128) WriteLog("Sending data...");
|
||||||
SendData();
|
SendData();
|
||||||
|
if (Global::bMWDdebugEnable && Global::iMWDDebugMode == 128) WriteLog(" complet!\nReceiving data...");
|
||||||
ReadData();
|
ReadData();
|
||||||
|
if (Global::bMWDdebugEnable && Global::iMWDDebugMode == 128) WriteLog(" complet!");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -221,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ą
|
void TMWDComm::CheckData() // sprawdzanie wejść cyfrowych i odpowiednie sterowanie maszyną
|
||||||
{
|
{
|
||||||
int i = 0;
|
int i = 0;
|
||||||
while (i < 6)
|
while (i < 6)
|
||||||
{
|
{
|
||||||
maskData[i] = ReadDataBuff[i] ^ lastStateData[i];
|
maskData[i] = ReadDataBuff[i] ^ lastStateData[i];
|
||||||
lastStateData[i] = ReadDataBuff[i];
|
lastStateData[i] = ReadDataBuff[i];
|
||||||
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łównegoMMm
|
||||||
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
|
||||||
7 (Shift) F rozruch w/n
|
7 (Shift) F rozruch w/n
|
||||||
|
|
||||||
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
|
||||||
|
|
||||||
Port3: 0 Shift+J bateria
|
Port3: 0 Shift+J bateria
|
||||||
1
|
1
|
||||||
2
|
2
|
||||||
3
|
3
|
||||||
4
|
4
|
||||||
5
|
5
|
||||||
6
|
6
|
||||||
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) if (lastStateData[0] & 0x02) KeyBoard('M', 1); // wyłączenie wyłącznika szybkiego
|
if (maskData[0] & 0x02) if (lastStateData[0] & 0x02)
|
||||||
else KeyBoard('M', 0); // monostabilny
|
KeyBoard('M', 1); // wyłączenie wyłącznika szybkiego
|
||||||
if (maskData[0] & 0x04) if (lastStateData[0] & 0x04) { // impuls załączający wyłącznik szybki
|
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(0x10, 1); // monostabilny
|
||||||
KeyBoard('M', 1);
|
KeyBoard('M', 1);
|
||||||
}
|
}
|
||||||
else {
|
else
|
||||||
|
{
|
||||||
KeyBoard('M', 0);
|
KeyBoard('M', 0);
|
||||||
KeyBoard(0x10, 0);
|
KeyBoard(0x10, 0);
|
||||||
}
|
}
|
||||||
if (maskData[0] & 0x08) if (lastStateData[0] & 0x08) KeyBoard('N', 1); // odblok nadmiarowego silników trakcyjnych
|
if (maskData[0] & 0x08) if (lastStateData[0] & 0x08)
|
||||||
else KeyBoard('N', 0); // monostabilny
|
KeyBoard('N', 1); // odblok nadmiarowego silników trakcyjnych
|
||||||
if (maskData[0] & 0x20) if (lastStateData[0] & 0x20) { // odblok nadmiarowego przetwornicy, ogrzewania poc.
|
else KeyBoard('N', 0); // monostabilny
|
||||||
KeyBoard(0x11, 1); // różnicowego obwodów pomocniczych
|
if (maskData[0] & 0x20) if (lastStateData[0] & 0x20)
|
||||||
KeyBoard('N', 1); // monostabilny
|
{ // odblok nadmiarowego przetwornicy, ogrzewania poc.
|
||||||
|
KeyBoard(0x11, 1); // różnicowego obwodów pomocniczych
|
||||||
|
KeyBoard('N', 1); // monostabilny
|
||||||
}
|
}
|
||||||
else {
|
else
|
||||||
|
{
|
||||||
KeyBoard('N', 0);
|
KeyBoard('N', 0);
|
||||||
KeyBoard(0x11, 0);
|
KeyBoard(0x11, 0);
|
||||||
}
|
}
|
||||||
@@ -301,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
|
if (maskData[0] & 0x80) if (lastStateData[0] & 0x80) KeyBoard(0x20, 1); // kasowanie czuwaka/SHP
|
||||||
else KeyBoard(0x20, 0); // kasowanie czuwaka/SHP
|
else KeyBoard(0x20, 0); // kasowanie czuwaka/SHP
|
||||||
|
|
||||||
/*PORT1*/
|
/*PORT1*/
|
||||||
|
|
||||||
// puszczanie przycisku bistabilnego klawiatury
|
// puszczanie przycisku bistabilnego klawiatury
|
||||||
if (maskSwitch[1] & 0x02) {
|
if (maskSwitch[1] & 0x02)
|
||||||
if (bitSwitch[1] & 0x02) {
|
{
|
||||||
|
if (bitSwitch[1] & 0x02)
|
||||||
|
{
|
||||||
KeyBoard('X', 0);
|
KeyBoard('X', 0);
|
||||||
KeyBoard(0x10, 0);
|
KeyBoard(0x10, 0);
|
||||||
}
|
}
|
||||||
else KeyBoard('X', 0);
|
else KeyBoard('X', 0);
|
||||||
maskSwitch[1] &= ~0x02;
|
maskSwitch[1] &= ~0x02;
|
||||||
}
|
}
|
||||||
if (maskSwitch[1] & 0x04) {
|
if (maskSwitch[1] & 0x04) {
|
||||||
if (bitSwitch[1] & 0x04) {
|
if (bitSwitch[1] & 0x04) {
|
||||||
@@ -343,61 +354,78 @@ void TMWDComm::CheckData() // sprawdzanie wejść cyfrowych i odpowiednie sterow
|
|||||||
maskSwitch[1] &= ~0x80;
|
maskSwitch[1] &= ~0x80;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// przetwornica
|
||||||
if (maskData[1] & 0x02) if (lastStateData[1] & 0x02) { // przetwornica
|
if (maskData[1] & 0x02) if (lastStateData[1] & 0x02)
|
||||||
|
{
|
||||||
KeyBoard(0x10, 1); // bistabilny
|
KeyBoard(0x10, 1); // bistabilny
|
||||||
KeyBoard('X', 1);
|
KeyBoard('X', 1);
|
||||||
maskSwitch[1] |= 0x02;
|
maskSwitch[1] |= 0x02;
|
||||||
bitSwitch[1] |= 0x02;
|
bitSwitch[1] |= 0x02;
|
||||||
}
|
}
|
||||||
else {
|
else
|
||||||
|
{
|
||||||
maskSwitch[1] |= 0x02;
|
maskSwitch[1] |= 0x02;
|
||||||
bitSwitch[1] &= ~0x02;
|
bitSwitch[1] &= ~0x02;
|
||||||
KeyBoard('X', 1);
|
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(0x10, 1); // bistabilny
|
||||||
KeyBoard('C', 1);
|
KeyBoard('C', 1);
|
||||||
maskSwitch[1] |= 0x04;
|
maskSwitch[1] |= 0x04;
|
||||||
bitSwitch[1] |= 0x04;
|
bitSwitch[1] |= 0x04;
|
||||||
}
|
}
|
||||||
else {
|
else
|
||||||
|
{
|
||||||
maskSwitch[1] |= 0x04;
|
maskSwitch[1] |= 0x04;
|
||||||
bitSwitch[1] &= ~0x04;
|
bitSwitch[1] &= ~0x04;
|
||||||
KeyBoard('C', 1);
|
KeyBoard('C', 1);
|
||||||
}
|
}
|
||||||
if (maskData[1] & 0x08) if (lastStateData[1] & 0x08) KeyBoard('S', 1); // piasecznica
|
// piasecznica
|
||||||
else KeyBoard('S', 0); // monostabilny
|
if (maskData[1] & 0x08) if (lastStateData[1] & 0x08)
|
||||||
if (maskData[1] & 0x10) if (lastStateData[1] & 0x10) { // ogrzewanie składu
|
KeyBoard('S', 1);
|
||||||
|
else
|
||||||
|
KeyBoard('S', 0); // monostabilny
|
||||||
|
// ogrzewanie składu
|
||||||
|
if (maskData[1] & 0x10) if (lastStateData[1] & 0x10)
|
||||||
|
{
|
||||||
KeyBoard(0x11, 1); // bistabilny
|
KeyBoard(0x11, 1); // bistabilny
|
||||||
KeyBoard('H', 1);
|
KeyBoard('H', 1);
|
||||||
maskSwitch[1] |= 0x10;
|
maskSwitch[1] |= 0x10;
|
||||||
bitSwitch[1] |= 0x10;
|
bitSwitch[1] |= 0x10;
|
||||||
}
|
}
|
||||||
else {
|
else
|
||||||
|
{
|
||||||
maskSwitch[1] |= 0x10;
|
maskSwitch[1] |= 0x10;
|
||||||
bitSwitch[1] &= ~0x10;
|
bitSwitch[1] &= ~0x10;
|
||||||
KeyBoard('H', 1);
|
KeyBoard('H', 1);
|
||||||
}
|
}
|
||||||
if (maskData[1] & 0x20 || maskData[1] & 0x40) { // przełącznik hamowania
|
// przełącznik hamowania
|
||||||
if (lastStateData[1] & 0x20) { // Shift+B
|
if (maskData[1] & 0x20 || maskData[1] & 0x40)
|
||||||
|
{
|
||||||
|
if (lastStateData[1] & 0x20)
|
||||||
|
{ // Shift+B
|
||||||
KeyBoard(0x10, 1);
|
KeyBoard(0x10, 1);
|
||||||
maskSwitch[1] |= 0x20;
|
maskSwitch[1] |= 0x20;
|
||||||
}
|
}
|
||||||
else if (lastStateData[1] & 0x40) { // Ctrl+B
|
else if (lastStateData[1] & 0x40)
|
||||||
|
{ // Ctrl+B
|
||||||
KeyBoard(0x11, 1);
|
KeyBoard(0x11, 1);
|
||||||
maskSwitch[1] |= 0x40;
|
maskSwitch[1] |= 0x40;
|
||||||
}
|
}
|
||||||
KeyBoard('B', 1);
|
KeyBoard('B', 1);
|
||||||
}
|
}
|
||||||
|
// rozruch wysoki/niski
|
||||||
if (maskData[1] & 0x80) if (lastStateData[1] & 0x80) { // rozruch wysoki/niski
|
if (maskData[1] & 0x80) if (lastStateData[1] & 0x80)
|
||||||
|
{
|
||||||
KeyBoard(0x10, 1); // bistabilny
|
KeyBoard(0x10, 1); // bistabilny
|
||||||
KeyBoard('F', 1);
|
KeyBoard('F', 1);
|
||||||
maskSwitch[1] |= 0x80;
|
maskSwitch[1] |= 0x80;
|
||||||
bitSwitch[1] |= 0x80;
|
bitSwitch[1] |= 0x80;
|
||||||
}
|
}
|
||||||
else {
|
else
|
||||||
|
{
|
||||||
maskSwitch[1] |= 0x80;
|
maskSwitch[1] |= 0x80;
|
||||||
bitSwitch[1] &= ~0x80;
|
bitSwitch[1] &= ~0x80;
|
||||||
KeyBoard('F', 1);
|
KeyBoard('F', 1);
|
||||||
@@ -405,16 +433,20 @@ void TMWDComm::CheckData() // sprawdzanie wejść cyfrowych i odpowiednie sterow
|
|||||||
|
|
||||||
|
|
||||||
//PORT2
|
//PORT2
|
||||||
if (maskSwitch[2] & 0x01) {
|
if (maskSwitch[2] & 0x01)
|
||||||
if (bitSwitch[2] & 0x01) {
|
{
|
||||||
|
if (bitSwitch[2] & 0x01)
|
||||||
|
{
|
||||||
KeyBoard('P', 0);
|
KeyBoard('P', 0);
|
||||||
KeyBoard(0x10, 0);
|
KeyBoard(0x10, 0);
|
||||||
}
|
}
|
||||||
else KeyBoard('P', 0);
|
else KeyBoard('P', 0);
|
||||||
maskSwitch[2] &= ~0x01;
|
maskSwitch[2] &= ~0x01;
|
||||||
}
|
}
|
||||||
if (maskSwitch[2] & 0x02) {
|
if (maskSwitch[2] & 0x02)
|
||||||
if (bitSwitch[2] & 0x02) {
|
{
|
||||||
|
if (bitSwitch[2] & 0x02)
|
||||||
|
{
|
||||||
KeyBoard('O', 0);
|
KeyBoard('O', 0);
|
||||||
KeyBoard(0x10, 0);
|
KeyBoard(0x10, 0);
|
||||||
}
|
}
|
||||||
@@ -422,35 +454,41 @@ void TMWDComm::CheckData() // sprawdzanie wejść cyfrowych i odpowiednie sterow
|
|||||||
maskSwitch[2] &= ~0x02;
|
maskSwitch[2] &= ~0x02;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// pantograf przedni
|
||||||
if (maskData[2] & 0x01) if (lastStateData[2] & 0x01) { // pantograf przedni
|
if (maskData[2] & 0x01) if (lastStateData[2] & 0x01)
|
||||||
|
{
|
||||||
KeyBoard(0x10, 1); // bistabilny
|
KeyBoard(0x10, 1); // bistabilny
|
||||||
KeyBoard('P', 1);
|
KeyBoard('P', 1);
|
||||||
maskSwitch[2] |= 0x01;
|
maskSwitch[2] |= 0x01;
|
||||||
bitSwitch[2] |= 0x01;
|
bitSwitch[2] |= 0x01;
|
||||||
}
|
}
|
||||||
else {
|
else
|
||||||
|
{
|
||||||
maskSwitch[2] |= 0x01;
|
maskSwitch[2] |= 0x01;
|
||||||
bitSwitch[2] &= ~0x01;
|
bitSwitch[2] &= ~0x01;
|
||||||
KeyBoard('P', 1);
|
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(0x10, 1); // bistabilny
|
||||||
KeyBoard('O', 1);
|
KeyBoard('O', 1);
|
||||||
maskSwitch[2] |= 0x02;
|
maskSwitch[2] |= 0x02;
|
||||||
bitSwitch[2] |= 0x02;
|
bitSwitch[2] |= 0x02;
|
||||||
}
|
}
|
||||||
else {
|
else
|
||||||
|
{
|
||||||
maskSwitch[2] |= 0x02;
|
maskSwitch[2] |= 0x02;
|
||||||
bitSwitch[2] &= ~0x02;
|
bitSwitch[2] &= ~0x02;
|
||||||
KeyBoard('O', 1);
|
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(0x10, 1); // monostabilny
|
||||||
KeyBoard(0x0D, 1);
|
KeyBoard(0x0D, 1);
|
||||||
}
|
}
|
||||||
else {
|
else
|
||||||
|
{
|
||||||
KeyBoard(0x0D, 0);
|
KeyBoard(0x0D, 0);
|
||||||
KeyBoard(0x10, 0);
|
KeyBoard(0x10, 0);
|
||||||
}
|
}
|
||||||
@@ -472,178 +510,129 @@ void TMWDComm::CheckData() // sprawdzanie wejść cyfrowych i odpowiednie sterow
|
|||||||
KeyBoard(0x11,0);
|
KeyBoard(0x11,0);
|
||||||
KeyBoard(' ',1);
|
KeyBoard(' ',1);
|
||||||
}*/
|
}*/
|
||||||
if (maskData[2] & 0x20) if (lastStateData[2] & 0x20) KeyBoard(0x66, 1); // odluźniacz
|
// odluźniacz
|
||||||
else KeyBoard(0x66, 0); // monostabilny
|
if (maskData[2] & 0x20) if (lastStateData[2] & 0x20)
|
||||||
if (maskData[2] & 0x40) if (lastStateData[2] & 0x40) { // syrena wysoka
|
KeyBoard(0x66, 1);
|
||||||
|
else
|
||||||
|
KeyBoard(0x66, 0); // monostabilny
|
||||||
|
// syrena wysoka
|
||||||
|
if (maskData[2] & 0x40) if (lastStateData[2] & 0x40)
|
||||||
|
{
|
||||||
KeyBoard(0x10, 1); // monostabilny
|
KeyBoard(0x10, 1); // monostabilny
|
||||||
KeyBoard('A', 1);
|
KeyBoard('A', 1);
|
||||||
}
|
}
|
||||||
else {
|
else
|
||||||
|
{
|
||||||
KeyBoard('A', 0);
|
KeyBoard('A', 0);
|
||||||
KeyBoard(0x10, 0);
|
KeyBoard(0x10, 0);
|
||||||
}
|
}
|
||||||
if (maskData[2] & 0x80) if (lastStateData[2] & 0x80) KeyBoard('A', 1); // syrena niska
|
if (maskData[2] & 0x80) if (lastStateData[2] & 0x80)
|
||||||
else KeyBoard('A', 0); // monostabilny
|
KeyBoard('A', 1); // syrena niska
|
||||||
|
else
|
||||||
|
KeyBoard('A', 0); // monostabilny
|
||||||
|
|
||||||
|
|
||||||
//PORT3
|
//PORT3
|
||||||
|
|
||||||
if (maskSwitch[3] & 0x01) {
|
if (maskSwitch[3] & 0x01)
|
||||||
if (bitSwitch[3] & 0x01) {
|
{
|
||||||
|
if (bitSwitch[3] & 0x01)
|
||||||
|
{
|
||||||
KeyBoard('J', 0);
|
KeyBoard('J', 0);
|
||||||
KeyBoard(0x10, 0);
|
KeyBoard(0x10, 0);
|
||||||
}
|
}
|
||||||
else KeyBoard('J', 0);
|
else KeyBoard('J', 0);
|
||||||
maskSwitch[3] &= ~0x01;
|
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(0x10, 1); // bistabilny
|
||||||
KeyBoard('J', 1);
|
KeyBoard('J', 1);
|
||||||
maskSwitch[3] |= 0x01;
|
maskSwitch[3] |= 0x01;
|
||||||
bitSwitch[3] |= 0x01;
|
bitSwitch[3] |= 0x01;
|
||||||
}
|
}
|
||||||
else {
|
else
|
||||||
|
{
|
||||||
maskSwitch[3] |= 0x01;
|
maskSwitch[3] |= 0x01;
|
||||||
bitSwitch[3] &= ~0x01;
|
bitSwitch[3] &= ~0x01;
|
||||||
KeyBoard('J', 1);
|
KeyBoard('J', 1);
|
||||||
}
|
}
|
||||||
|
//Światło lewe
|
||||||
/*
|
if (maskData[3] & 0x02) if (lastStateData[3] & 0x02)
|
||||||
if(maskData[3] & 0x04 && lastStateData[1] & 0x04) { KeyBoard(0x10,1);
|
{
|
||||||
KeyBoard('C',1); //
|
KeyBoard(0x10, 1); // bistabilny
|
||||||
KeyBoard('C',0);
|
KeyBoard('Y', 1);
|
||||||
KeyBoard(0x10,0);
|
maskSwitch[3] |= 0x02;
|
||||||
}else{ KeyBoard('C',1); //
|
bitSwitch[3] |= 0x02;
|
||||||
KeyBoard('C',0);
|
}else
|
||||||
}
|
{
|
||||||
if(maskData[3] & 0x08 && lastStateData[1] & 0x08) KeyBoard('S',1); //
|
maskSwitch[3] |= 0x02;
|
||||||
else KeyBoard('S',0);
|
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 */
|
/* NASTAWNIK, BOCZNIK i KIERUNEK */
|
||||||
|
|
||||||
|
|||||||
@@ -61,8 +61,8 @@ public:
|
|||||||
|
|
||||||
unsigned int uiAnalog[4]; // trzymanie danych z wejść analogowych
|
unsigned int uiAnalog[4]; // trzymanie danych z wejść analogowych
|
||||||
|
|
||||||
BYTE ReadDataBuff[BYTETOREAD]; //17]; // bufory danych
|
BYTE ReadDataBuff[BYTETOREAD+2]; //17]; // bufory danych
|
||||||
BYTE WriteDataBuff[BYTETOWRITE]; //31];
|
BYTE WriteDataBuff[BYTETOWRITE+2]; //31];
|
||||||
|
|
||||||
TMWDComm(); // konstruktor
|
TMWDComm(); // konstruktor
|
||||||
~TMWDComm(); // destruktor
|
~TMWDComm(); // destruktor
|
||||||
@@ -70,43 +70,29 @@ public:
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
INFO - zmiany dokonane w innych plikach niezbędne do prawidłowego działania:
|
INFO - wpisy do eu07.ini:
|
||||||
|
|
||||||
Console.cpp:
|
mwdmasterenable yes // włącz MWD (master MWD Enable)
|
||||||
Console::AnalogCalibrateGet - obsługa kranów hamulców
|
mwddebugenable yes // włącz logowanie
|
||||||
Console::Update - wywoływanie obsługi MWD
|
mwddebugmode 4 // tryb debugowania (które logi)
|
||||||
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)
|
|
||||||
|
|
||||||
MWDComm * Console::MWD = NULL; - luzem, obiekt i wskaźnik(?)
|
mwdcomportname COM3 // nazwa portu
|
||||||
dodatkowo zmieniłem int na long int dla BitSet i BitClear oraz iBits
|
mwdbaudrate 500000 // prędkość transmisji
|
||||||
|
|
||||||
Train.cpp:
|
mwdinputenable yes // włącz wejścia (przyciski, przełączniki)
|
||||||
if (Global::iFeedbackMode == 5) - pobieranie prędkości, manometrów i mierników WN
|
mwdbreakenable yes // włącz hamulce (wejścia analogowe)
|
||||||
if (ggBrakeCtrl.SubModel) - możliwość sterowania hamulcem zespolonym
|
|
||||||
if (ggLocalBrake.SubModel) - możliwość sterowania hamulcem lokomotywy
|
|
||||||
|
|
||||||
Globals.h:
|
mwdmainbreakconfig 0 1023 // konfiguracja kranu zespolonego -> min, max (położenie kranu - odczyt z ADC)
|
||||||
dodano zmienne dla MWD
|
mwdlocbreakconfig 0 1023 // konfiguracja kranu maszynisty -> min, max (położenie kranu - odczyt z ADC)
|
||||||
Globals.cpp:
|
mwdanalogin2config 0 1023
|
||||||
dodano inicjalizaję zmiennych i odczyt z ini ustawień
|
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
|
mwdhivoltmeter 4000 1023 // max napięcie na woltomierzu WN
|
||||||
comportname COM3 // wybór portu COM
|
mwdhiampmeter 800 1023 // max prąd amperomierza WN
|
||||||
mwdbaudrate 500000
|
|
||||||
|
|
||||||
mwdbreakenable yes // czy załączyć sterowanie hamulcami? blokuje klawiature
|
mwddivider 5 // dzielnik - czym większy tym rzadziej czyta diwajs
|
||||||
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
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
34
Globals.cpp
34
Globals.cpp
@@ -204,6 +204,7 @@ double Global::fMWDpg[2] = { 0.8, 1023 };
|
|||||||
double Global::fMWDph[2] = { 0.6, 1023 };
|
double Global::fMWDph[2] = { 0.6, 1023 };
|
||||||
double Global::fMWDvolt[2] = { 4000, 1023 };
|
double Global::fMWDvolt[2] = { 4000, 1023 };
|
||||||
double Global::fMWDamp[2] = { 800, 1023 };
|
double Global::fMWDamp[2] = { 800, 1023 };
|
||||||
|
double Global::fMWDlowVolt[2] = { 150, 1023 };
|
||||||
int Global::iMWDdivider = 5;
|
int Global::iMWDdivider = 5;
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
@@ -856,46 +857,57 @@ void Global::ConfigParse(cParser &Parser)
|
|||||||
else if (token == "mwdlocbreakconfig") { // ustawienia hamulca lokomotywy
|
else if (token == "mwdlocbreakconfig") { // ustawienia hamulca lokomotywy
|
||||||
Parser.getTokens(2, false);
|
Parser.getTokens(2, false);
|
||||||
Parser >> fMWDAnalogInCalib[1][0] >> fMWDAnalogInCalib[1][1];
|
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
|
else if (token == "mwdanalogin1config") { // ustawienia hamulca zespolonego
|
||||||
Parser.getTokens(2, false);
|
Parser.getTokens(2, false);
|
||||||
Parser >> fMWDAnalogInCalib[2][0] >> fMWDAnalogInCalib[2][1];
|
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
|
else if (token == "mwdanalogin2config") { // ustawienia hamulca lokomotywy
|
||||||
Parser.getTokens(2, false);
|
Parser.getTokens(2, false);
|
||||||
Parser >> fMWDAnalogInCalib[3][0] >> fMWDAnalogInCalib[3][1];
|
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ść
|
else if (token == "mwdmaintankpress") { // max ciśnienie w zbiorniku głownym i rozdzielczość
|
||||||
Parser.getTokens(2, false);
|
Parser.getTokens(2, false);
|
||||||
Parser >> fMWDzg[0] >> fMWDzg[1];
|
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ść
|
else if (token == "mwdmainpipepress") { // max ciśnienie w przewodzie głownym i rozdzielczość
|
||||||
Parser.getTokens(2, false);
|
Parser.getTokens(2, false);
|
||||||
Parser >> fMWDpg[0] >> fMWDpg[1];
|
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ść
|
else if (token == "mwdbreakpress") { // max ciśnienie w hamulcach i rozdzielczość
|
||||||
Parser.getTokens(2, false);
|
Parser.getTokens(2, false);
|
||||||
Parser >> fMWDph[0] >> fMWDph[1];
|
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
|
else if (token == "mwdhivoltmeter") { // max napięcie na woltomierzu WN
|
||||||
Parser.getTokens(2, false);
|
Parser.getTokens(2, false);
|
||||||
Parser >> fMWDvolt[0] >> fMWDvolt[1];
|
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") {
|
else if (token == "mwdhiampmeter") {
|
||||||
Parser.getTokens(2, false);
|
Parser.getTokens(2, false);
|
||||||
Parser >> fMWDamp[0] >> fMWDamp[1];
|
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 == "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") {
|
else if (token == "mwddivider") {
|
||||||
Parser.getTokens(1, false);
|
Parser.getTokens(1, false);
|
||||||
Parser >> iMWDdivider;
|
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)
|
} while ((token != "") && (token != "endconfig")); //(!Parser->EndOfFile)
|
||||||
// na koniec trochę zależności
|
// na koniec trochę zależności
|
||||||
@@ -925,9 +937,9 @@ void Global::ConfigParse(cParser &Parser)
|
|||||||
/* this won't execute anymore with the old parser removed
|
/* this won't execute anymore with the old parser removed
|
||||||
// TBD: remove, or launch depending on passed flag?
|
// TBD: remove, or launch depending on passed flag?
|
||||||
if (qp)
|
if (qp)
|
||||||
{ // to poniżej wykonywane tylko raz, jedynie po wczytaniu eu07.ini
|
{ // to poniżej wykonywane tylko raz, jedynie po wczytaniu eu07.ini*/
|
||||||
Console::ModeSet(iFeedbackMode, iFeedbackPort); // tryb pracy konsoli sterowniczej
|
Console::ModeSet(iFeedbackMode, iFeedbackPort); // tryb pracy konsoli sterowniczej
|
||||||
iFpsRadiusMax = 0.000025 * fFpsRadiusMax *
|
/*iFpsRadiusMax = 0.000025 * fFpsRadiusMax *
|
||||||
fFpsRadiusMax; // maksymalny promień renderowania 3000.0 -> 225
|
fFpsRadiusMax; // maksymalny promień renderowania 3000.0 -> 225
|
||||||
if (iFpsRadiusMax > 400)
|
if (iFpsRadiusMax > 400)
|
||||||
iFpsRadiusMax = 400;
|
iFpsRadiusMax = 400;
|
||||||
|
|||||||
@@ -346,6 +346,7 @@ class Global
|
|||||||
static double fMWDph[2];
|
static double fMWDph[2];
|
||||||
static double fMWDvolt[2];
|
static double fMWDvolt[2];
|
||||||
static double fMWDamp[2];
|
static double fMWDamp[2];
|
||||||
|
static double fMWDlowVolt[2];
|
||||||
static int iMWDdivider;
|
static int iMWDdivider;
|
||||||
};
|
};
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|||||||
37
Train.cpp
37
Train.cpp
@@ -2842,6 +2842,20 @@ bool TTrain::Update( double const Deltatime )
|
|||||||
/// napędu
|
/// napędu
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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(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(6, fHCurrent[3]); // drugi amperomierz 3
|
||||||
|
Console::ValueSet(7, fTachoVelocity);
|
||||||
|
//Console::ValueSet(8, mvControlled->BatteryVoltage); // jeszcze nie pora ;)
|
||||||
|
}
|
||||||
|
|
||||||
// hunter-080812: wyrzucanie szybkiego na elektrykach gdy nie ma napiecia
|
// hunter-080812: wyrzucanie szybkiego na elektrykach gdy nie ma napiecia
|
||||||
// przy dowolnym ustawieniu kierunkowego
|
// przy dowolnym ustawieniu kierunkowego
|
||||||
// Ra: to już jest w T_MoverParameters::TractionForce(), ale zależy od
|
// Ra: to już jest w T_MoverParameters::TractionForce(), ale zależy od
|
||||||
@@ -3762,12 +3776,21 @@ bool TTrain::Update( double const Deltatime )
|
|||||||
false) // nie blokujemy AI
|
false) // nie blokujemy AI
|
||||||
{ // Ra: nie najlepsze miejsce, ale na początek gdzieś to dać trzeba
|
{ // Ra: nie najlepsze miejsce, ale na początek gdzieś to dać trzeba
|
||||||
// Firleju: dlatego kasujemy i zastepujemy funkcją w Console
|
// Firleju: dlatego kasujemy i zastepujemy funkcją w Console
|
||||||
if (((mvOccupied->BrakeHandle == FV4a) ||
|
if (mvOccupied->BrakeHandle == FV4a)
|
||||||
(mvOccupied->BrakeHandle == FVel6))) // może można usunąć ograniczenie do FV4a i FVel6?
|
|
||||||
{
|
{
|
||||||
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
|
b = Global::CutValueToRange(-2.0, b, mvOccupied->BrakeCtrlPosNo); // przycięcie zmiennej do granic
|
||||||
|
if (Global::bMWDdebugEnable && Global::iMWDDebugMode & 4) WriteLog("FV4a break position = " + to_string(b));
|
||||||
|
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 = b * 7 - 1;
|
||||||
|
b = Global::CutValueToRange(-1.0, b, mvOccupied->BrakeCtrlPosNo); // przycięcie zmiennej do granic
|
||||||
|
if (Global::bMWDdebugEnable && Global::iMWDDebugMode & 4) WriteLog("FVel6 break position = " + to_string(b));
|
||||||
ggBrakeCtrl.UpdateValue(b); // przesów bez zaokrąglenia
|
ggBrakeCtrl.UpdateValue(b); // przesów bez zaokrąglenia
|
||||||
mvOccupied->BrakeLevelSet(b);
|
mvOccupied->BrakeLevelSet(b);
|
||||||
}
|
}
|
||||||
@@ -3778,19 +3801,23 @@ bool TTrain::Update( double const Deltatime )
|
|||||||
// ggBrakeCtrl.UpdateValue(double(mvOccupied->BrakeCtrlPos));
|
// ggBrakeCtrl.UpdateValue(double(mvOccupied->BrakeCtrlPos));
|
||||||
ggBrakeCtrl.UpdateValue(mvOccupied->fBrakeCtrlPos);
|
ggBrakeCtrl.UpdateValue(mvOccupied->fBrakeCtrlPos);
|
||||||
ggBrakeCtrl.Update();
|
ggBrakeCtrl.Update();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
if (ggLocalBrake.SubModel)
|
if (ggLocalBrake.SubModel)
|
||||||
{
|
{
|
||||||
if (DynamicObject->Mechanik ?
|
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
|
false) // nie blokujemy AI
|
||||||
{ // Ra: nie najlepsze miejsce, ale na początek gdzieś to dać trzeba
|
{ // Ra: nie najlepsze miejsce, ale na początek gdzieś to dać trzeba
|
||||||
// Firleju: dlatego kasujemy i zastepujemy funkcją w Console
|
// Firleju: dlatego kasujemy i zastepujemy funkcją w Console
|
||||||
if ((mvOccupied->BrakeLocHandle == FD1))
|
if ((mvOccupied->BrakeLocHandle == FD1))
|
||||||
{
|
{
|
||||||
double b = Console::AnalogCalibrateGet(1);
|
double b = Console::AnalogCalibrateGet(1);
|
||||||
|
b *= 10;
|
||||||
b = Global::CutValueToRange(0.0, b, LocalBrakePosNo); // przycięcie zmiennej do granic
|
b = Global::CutValueToRange(0.0, b, LocalBrakePosNo); // przycięcie zmiennej do granic
|
||||||
ggLocalBrake.UpdateValue(b); // przesów bez zaokrąglenia
|
ggLocalBrake.UpdateValue(b); // przesów bez zaokrąglenia
|
||||||
|
if (Global::bMWDdebugEnable && Global::iMWDDebugMode & 4) WriteLog("FD1 break position = " + to_string(b));
|
||||||
mvOccupied->LocalBrakePos =
|
mvOccupied->LocalBrakePos =
|
||||||
int(1.09 * b); // sposób zaokrąglania jest do ustalenia
|
int(1.09 * b); // sposób zaokrąglania jest do ustalenia
|
||||||
}
|
}
|
||||||
@@ -4681,7 +4708,7 @@ bool TTrain::Update( double const Deltatime )
|
|||||||
if ((!Console::Pressed(Global::Keys[k_DecBrakeLevel])) &&
|
if ((!Console::Pressed(Global::Keys[k_DecBrakeLevel])) &&
|
||||||
(!Console::Pressed(Global::Keys[k_WaveBrake])) && (mvOccupied->BrakeCtrlPos == -1) &&
|
(!Console::Pressed(Global::Keys[k_WaveBrake])) && (mvOccupied->BrakeCtrlPos == -1) &&
|
||||||
(mvOccupied->BrakeHandle == FVel6) && (DynamicObject->Controller != AIdriver) &&
|
(mvOccupied->BrakeHandle == FVel6) && (DynamicObject->Controller != AIdriver) &&
|
||||||
(Global::iFeedbackMode != 4))
|
(Global::iFeedbackMode != 4) && (!(Global::bMWDmasterEnable && Global::bMWDBreakEnable)))
|
||||||
{
|
{
|
||||||
// mvOccupied->BrakeCtrlPos=(mvOccupied->BrakeCtrlPos)+1;
|
// mvOccupied->BrakeCtrlPos=(mvOccupied->BrakeCtrlPos)+1;
|
||||||
// mvOccupied->IncBrakeLevel();
|
// mvOccupied->IncBrakeLevel();
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
# Visual Studio 2013
|
# Visual Studio 14
|
||||||
VisualStudioVersion = 12.0.40629.0
|
VisualStudioVersion = 14.0.23107.0
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "maszyna", "maszyna.vcxproj", "{8E0232E5-1C67-442F-9E04-45ED2DDFC960}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "maszyna", "maszyna.vcxproj", "{8E0232E5-1C67-442F-9E04-45ED2DDFC960}"
|
||||||
EndProject
|
EndProject
|
||||||
@@ -19,7 +19,4 @@ Global
|
|||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(Performance) = preSolution
|
|
||||||
HasPerformanceSessions = true
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
EndGlobal
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
@@ -13,17 +13,18 @@
|
|||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
<ProjectGuid>{8E0232E5-1C67-442F-9E04-45ED2DDFC960}</ProjectGuid>
|
<ProjectGuid>{8E0232E5-1C67-442F-9E04-45ED2DDFC960}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
|
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<PlatformToolset>v120_xp</PlatformToolset>
|
<PlatformToolset>v140_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<PlatformToolset>v120_xp</PlatformToolset>
|
<PlatformToolset>v140_xp</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
<ImportGroup Label="ExtensionSettings">
|
<ImportGroup Label="ExtensionSettings">
|
||||||
@@ -36,14 +37,14 @@
|
|||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<PropertyGroup Label="UserMacros" />
|
<PropertyGroup Label="UserMacros" />
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<TargetName>eu07++</TargetName>
|
<TargetName>mhEU07-201702debug</TargetName>
|
||||||
<IntDir>$(SolutionDir)tmp\$(PlatformShortName)-$(Configuration)\$(ProjectName)\</IntDir>
|
<IntDir>E:\Gry\EU07\eu07 exe\tmj-cpp-hamulec</IntDir>
|
||||||
<OutDir>$(SolutionDir)bin\</OutDir>
|
<OutDir>E:\Gry\EU07\eu07 exe\tmj-cpp</OutDir>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<TargetName>eu07++</TargetName>
|
<TargetName>mkEU07-20170308</TargetName>
|
||||||
<IntDir>$(SolutionDir)tmp\$(PlatformShortName)-$(Configuration)\$(ProjectName)\</IntDir>
|
<IntDir>$(SolutionDir)tmp\$(PlatformShortName)-$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<OutDir>$(SolutionDir)bin\</OutDir>
|
<OutDir>E:\Gry\EU07\MaSzyna_16_08</OutDir>
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
@@ -55,7 +56,8 @@
|
|||||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
<MinimalRebuild>false</MinimalRebuild>
|
<MinimalRebuild>false</MinimalRebuild>
|
||||||
<FloatingPointExceptions>true</FloatingPointExceptions>
|
<FloatingPointExceptions>false</FloatingPointExceptions>
|
||||||
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
<TargetMachine>MachineX86</TargetMachine>
|
||||||
@@ -67,7 +69,7 @@
|
|||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<AdditionalIncludeDirectories>$(SolutionDir);$(SolutionDir)console;$(SolutionDir)mczapkie;$(SolutionDir)opengl;$(SolutionDir)python/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(SolutionDir);$(SolutionDir)console;$(SolutionDir)mczapkie;$(SolutionDir)opengl;$(SolutionDir)python/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
|||||||
Reference in New Issue
Block a user