mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-03-22 15:05:03 +01:00
55 lines
2.1 KiB
C++
55 lines
2.1 KiB
C++
//---------------------------------------------------------------------------
|
|
|
|
#ifndef ConsoleH
|
|
#define ConsoleH
|
|
//---------------------------------------------------------------------------
|
|
class TConsoleDevice; // urządzenie podłączalne za pomocą DLL
|
|
class TPoKeys55;
|
|
class TLPT;
|
|
|
|
// klasy konwersji znaków wprowadzanych z klawiatury
|
|
class TKeyTrans
|
|
{ // przekodowanie kodu naciśnięcia i zwolnienia klawisza
|
|
public:
|
|
short int iDown, iUp;
|
|
};
|
|
|
|
class Console
|
|
{ // Ra: klasa statyczna gromadząca sygnały sterujące oraz informacje zwrotne
|
|
// Ra: stan wejścia zmieniany klawiaturą albo dedykowanym urządzeniem
|
|
// Ra: stan wyjścia zmieniany przez symulację (mierniki, kontrolki)
|
|
private:
|
|
static int iMode; // tryb pracy
|
|
static int iConfig; // dodatkowa informacja o sprzęcie (np. numer LPT)
|
|
static int iBits; // podstawowy zestaw lampek
|
|
static TPoKeys55 *PoKeys55[2]; // może ich być kilka
|
|
static TLPT *LPT;
|
|
static void BitsUpdate(int mask);
|
|
// zmienne dla trybu "jednokabinowego", potrzebne do współpracy z pulpitem (PoKeys)
|
|
// używając klawiatury, każdy pojazd powinien mieć własny stan przełączników
|
|
// bazowym sterowaniem jest wirtualny strumień klawiatury
|
|
// przy zmianie kabiny z PoKeys, do kabiny są wysyłane stany tych przycisków
|
|
static int iSwitch[8]; // bistabilne w kabinie, załączane z [Shift], wyłączane bez
|
|
static int iButton[8]; // monostabilne w kabinie, załączane podczas trzymania klawisza
|
|
static TKeyTrans ktTable[4 * 256]; // tabela wczesnej konwersji klawiatury
|
|
public:
|
|
Console();
|
|
~Console();
|
|
static void ModeSet(int m, int h = 0);
|
|
static void BitsSet(int mask, int entry = 0);
|
|
static void BitsClear(int mask, int entry = 0);
|
|
static int On();
|
|
static void Off();
|
|
static bool Pressed(int x);
|
|
static void ValueSet(int x, double y);
|
|
static void Update();
|
|
static float AnalogGet(int x);
|
|
static unsigned char DigitalGet(int x);
|
|
static void OnKeyDown(int k);
|
|
static void OnKeyUp(int k);
|
|
static int KeyDownConvert(int k);
|
|
static int KeyUpConvert(int k);
|
|
};
|
|
|
|
#endif
|