mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-03-22 15:05:03 +01:00
113 lines
3.4 KiB
C++
113 lines
3.4 KiB
C++
/*
|
|
This Source Code Form is subject to the
|
|
terms of the Mozilla Public License, v.
|
|
2.0. If a copy of the MPL was not
|
|
distributed with this file, You can
|
|
obtain one at
|
|
http://mozilla.org/MPL/2.0/.
|
|
*/
|
|
|
|
/*
|
|
Program obsługi portu COM i innych na potrzeby sterownika MWDevice
|
|
(oraz innych wykorzystujących komunikację przez port COM)
|
|
dla Symulatora Pojazdów Szynowych MaSzyna
|
|
author: Maciej Witek 2016
|
|
Autor nie ponosi odpowiedzialności za niewłaciwe używanie lub działanie programu!
|
|
*/
|
|
|
|
#ifndef MWDH
|
|
#define MWDH
|
|
//---------------------------------------------------------------------------
|
|
|
|
#define BYTETOWRITE 31 // ilość bajtów przesyłanych z MaSzyny
|
|
#define BYTETOREAD 16 // ilość bajtów przesyłanych do MaSzyny
|
|
|
|
typedef unsigned char BYTE;
|
|
typedef unsigned long DWORD;
|
|
|
|
class TMWDComm
|
|
{
|
|
private:
|
|
int MWDTime; //
|
|
char lastStateData[6], maskData[6], maskSwitch[6], bitSwitch[6];
|
|
int bocznik, nastawnik, kierunek;
|
|
char bnkMask;
|
|
|
|
bool ReadData(); //BYTE *pReadDataBuff);
|
|
bool SendData(); //BYTE *pWriteDataBuff);
|
|
void CheckData(); //sprawdzanie zmian wejść i kontrola mazaków HASLERA
|
|
void KeyBoard(int key, bool s);
|
|
|
|
//void CheckData2();
|
|
|
|
bool bRysik1H;
|
|
bool bRysik1L;
|
|
bool bRysik2H;
|
|
bool bRysik2L;
|
|
|
|
public:
|
|
bool Open(); // Otwarcie portu
|
|
bool Close(); // Zamknięcie portu
|
|
bool Run(); // Obsługa portu
|
|
bool GetMWDState(); // sprawdź czy port jest otwarty, 0 zamknięty, 1 otwarty
|
|
|
|
// zmienne do rysików HASLERA
|
|
bool bSHPstate;
|
|
bool bPrzejazdSHP;
|
|
bool bKabina1;
|
|
bool bKabina2;
|
|
bool bHamowanie;
|
|
bool bCzuwak;
|
|
|
|
unsigned int uiAnalog[4]; // trzymanie danych z wejść analogowych
|
|
|
|
BYTE ReadDataBuff[BYTETOREAD]; //17]; // bufory danych
|
|
BYTE WriteDataBuff[BYTETOWRITE]; //31];
|
|
|
|
TMWDComm(); // konstruktor
|
|
~TMWDComm(); // destruktor
|
|
};
|
|
#endif
|
|
|
|
/*
|
|
INFO - zmiany dokonane w innych plikach niezbędne do prawidłowego działania:
|
|
|
|
Console.cpp:
|
|
Console::AnalogCalibrateGet - obsługa kranów hamulców
|
|
Console::Update - wywoływanie obsługi MWD
|
|
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(?)
|
|
dodatkowo zmieniłem int na long int dla BitSet i BitClear oraz iBits
|
|
|
|
Train.cpp:
|
|
if (Global::iFeedbackMode == 5) - pobieranie prędkości, manometrów i mierników WN
|
|
if (ggBrakeCtrl.SubModel) - możliwość sterowania hamulcem zespolonym
|
|
if (ggLocalBrake.SubModel) - możliwość sterowania hamulcem lokomotywy
|
|
|
|
Globals.h:
|
|
dodano zmienne dla MWD
|
|
Globals.cpp:
|
|
dodano inicjalizaję zmiennych i odczyt z ini ustawień
|
|
|
|
Wpisy do pliku eu07.ini
|
|
|
|
//maciek001 MWD
|
|
comportname COM3 // wybór portu COM
|
|
mwdbaudrate 500000
|
|
|
|
mwdbreakenable yes // czy załączyć sterowanie hamulcami? blokuje klawiature
|
|
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
|
|
*/
|