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

Add exit on bit 16 on PoKeys interface (buzzer SHP/CA).

This commit is contained in:
firleju
2016-01-20 22:27:43 +01:00
parent 7653ca1186
commit e8ac8a7d09
2 changed files with 18 additions and 4 deletions

View File

@@ -197,6 +197,7 @@ void Console::BitsSet(int mask, int entry)
int old = iBits; // poprzednie stany int old = iBits; // poprzednie stany
iBits |= mask; iBits |= mask;
BitsUpdate(old ^ iBits); // 1 dla bitów zmienionych BitsUpdate(old ^ iBits); // 1 dla bitów zmienionych
WriteLog("PoKeys::BitsSet: mask: " + AnsiString(mask) + " iBits: " + AnsiString(iBits));
} }
}; };
@@ -269,7 +270,9 @@ void Console::BitsUpdate(int mask)
PoKeys55[0]->Write(0x40, 52 - 1, iBits & 0x1000 ? 1 : 0); PoKeys55[0]->Write(0x40, 52 - 1, iBits & 0x1000 ? 1 : 0);
if (mask & 0x2000) // b13 Prąd na silnikach do odbijania w haslerze if (mask & 0x2000) // b13 Prąd na silnikach do odbijania w haslerze
PoKeys55[0]->Write(0x40, 53 - 1, iBits & 0x2000 ? 1 : 0); PoKeys55[0]->Write(0x40, 53 - 1, iBits & 0x2000 ? 1 : 0);
} if (mask & 0x4000) // b14 Brzęczyk SHP lub CA
PoKeys55[0]->Write(0x40, 16 - 1, iBits & 0x4000 ? 1 : 0);
}
break; break;
} }
}; };

View File

@@ -3763,14 +3763,20 @@ bool TTrain::Update()
TestFlag(mvOccupied->SecuritySystem.Status, s_SHPalarm)) TestFlag(mvOccupied->SecuritySystem.Status, s_SHPalarm))
{ {
dsbBuzzer->GetStatus(&stat); dsbBuzzer->GetStatus(&stat);
if (!(stat & DSBSTATUS_PLAYING)) if (!(stat & DSBSTATUS_PLAYING))
{
dsbBuzzer->Play(0, 0, DSBPLAY_LOOPING); dsbBuzzer->Play(0, 0, DSBPLAY_LOOPING);
Console::BitsSet(1 << 14); // ustawienie bitu 16 na PoKeys
}
} }
else else
{ {
dsbBuzzer->GetStatus(&stat); dsbBuzzer->GetStatus(&stat);
if (stat & DSBSTATUS_PLAYING) if (stat & DSBSTATUS_PLAYING)
{
dsbBuzzer->Stop(); dsbBuzzer->Stop();
Console::BitsClear(1 << 14); // ustawienie bitu 16 na PoKeys
}
} }
} }
else // wylaczone else // wylaczone
@@ -3778,8 +3784,11 @@ bool TTrain::Update()
btLampkaCzuwaka.TurnOff(); btLampkaCzuwaka.TurnOff();
btLampkaSHP.TurnOff(); btLampkaSHP.TurnOff();
dsbBuzzer->GetStatus(&stat); dsbBuzzer->GetStatus(&stat);
if (stat & DSBSTATUS_PLAYING) if (stat & DSBSTATUS_PLAYING)
{
dsbBuzzer->Stop(); dsbBuzzer->Stop();
Console::BitsClear(1 << 14); // ustawienie bitu 16 na PoKeys
}
} }
//****************************************** //******************************************
@@ -5063,6 +5072,8 @@ bool TTrain::InitializeCab(int NewCabNo, AnsiString asFileName)
// ggEngageRatio.Clear(); // ggEngageRatio.Clear();
ggMainGearStatus.Clear(); ggMainGearStatus.Clear();
ggIgnitionKey.Clear(); ggIgnitionKey.Clear();
// Jeœli ustawiamy now¹ wartoœæ dla PoKeys wolna jest 15
// Numer 14 jest u¿ywany dla buczka SHP w innym miejscu
btLampkaPoslizg.Clear(6); btLampkaPoslizg.Clear(6);
btLampkaStyczn.Clear(5); btLampkaStyczn.Clear(5);
btLampkaNadmPrzetw.Clear( btLampkaNadmPrzetw.Clear(