mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-03-22 15:05:03 +01:00
55 lines
2.2 KiB
C++
55 lines
2.2 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 __fastcall 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:
|
|
__fastcall Console();
|
|
__fastcall ~Console();
|
|
static void __fastcall ModeSet(int m, int h = 0);
|
|
static void __fastcall BitsSet(int mask, int entry = 0);
|
|
static void __fastcall BitsClear(int mask, int entry = 0);
|
|
static int __fastcall On();
|
|
static void __fastcall Off();
|
|
static bool __fastcall Pressed(int x);
|
|
static void __fastcall ValueSet(int x, double y);
|
|
static void __fastcall Update();
|
|
static float __fastcall AnalogGet(int x);
|
|
static unsigned char __fastcall DigitalGet(int x);
|
|
static void __fastcall OnKeyDown(int k);
|
|
static void __fastcall OnKeyUp(int k);
|
|
static int __fastcall KeyDownConvert(int k);
|
|
static int __fastcall KeyUpConvert(int k);
|
|
};
|
|
|
|
#endif
|