//--------------------------------------------------------------------------- #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