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

1. Licencje dodane - jeżeli uważasz, że źle to daj znać jak to naprawić ;)

2. Przy zamykaniu połączenia ustawiam zera i wysyłam żeby cały pulpit się wyłączył (lampki, kontrolki, buczki), hasler przestał kręcić itd. 
3. Ramek do sterowania nie ma: sama specyfikacja RS-232 określa tylko ramkę danych (nie ma rozróżneinia między danymi a sterowaniem) i sygnałami sterującymi takimi jak RTS, CTS. Na razie nie wykorzystuję RTS ale prawdopodobnie będę go dorzucał jako dodatkowy sygnał.
4. Emulacja klawiatury: najpierw "wciskam" przycisk na klawiaturze i żeby nie generować opuźnienia puszczam go dopiero w następnej obsłudze. Obsługa wszystkiego na raz (wciskanie i puszczanie) nie działa bo za szybko się to robi ;)
5. Funkcja emulacji klawiatury działa następująco: przesyłasz numer przycisku do wciśnięcia i (teraz już boola) czy ma być wciśnięty czy puszczony.
This commit is contained in:
maciek001
2016-12-11 14:56:04 +01:00
parent 008ae4a1dd
commit 1647256564
2 changed files with 41 additions and 14 deletions

View File

@@ -1,9 +1,18 @@
/*
Program obsługi portu COM i innych na potrzeby sterownika MWDevise
dla Symulatora Pojazdów Szynowych MaSzyna
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/.
*/
author: Maciej Witek 2016
wszelkie prawa zastrzeżone!
/*
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!
*/
#include "MWD.h"
@@ -110,20 +119,20 @@ bool MWDComm::Open() // otwieranie portu COM
return TRUE;
}
bool MWDComm::Close() // zamykanie portu COM
bool MWDComm::Close() // zamykanie portu COM
{
WriteLog("zamykam COM-a");
WriteLog("COM Port is closing...");
int i = 0;
while(i<BYTETOWRITE)
while(i<BYTETOWRITE) // zerowanie danych...
{
WriteDataBuff[i] = 0;
i++;
}
Sleep(100);
SendData();
SendData(); // wysyłanie do pulpitu: zatrzymanie haslera i zgaszenie lampek
Sleep(700);
CloseHandle(hComm);
WriteLog("COM zamkniety");
WriteLog("COM is close!");
return TRUE;
}
@@ -169,7 +178,7 @@ bool MWDComm::Run() // wywo
return 1;
}else
{
WriteLog("Port COM: blad polaczenia!");
WriteLog("Port COM: connection ERROR!");
// może spróbować się połączyć znowu?
return 0;
}
@@ -653,7 +662,7 @@ bool MWDComm::CheckData() // sprawdzanie wej
else WriteDataBuff[6] &= ~(1<<3);
}
bool MWDComm::KeyBoard(int key, int s) // emulacja klawiatury
void MWDComm::KeyBoard(int key, bool s) // emulacja klawiatury
{
INPUT ip;
// Set up a generic keyboard event.
@@ -664,7 +673,7 @@ bool MWDComm::KeyBoard(int key, int s) // emulacja klawiatury
ip.ki.wVk = key; // virtual-key code for the "a" key
if(s!=0){// Press the "A" key
if(s){// Press the "A" key
ip.ki.dwFlags = 0; // 0 for key press
SendInput(1, &ip, sizeof(INPUT));
}else{
@@ -672,7 +681,7 @@ bool MWDComm::KeyBoard(int key, int s) // emulacja klawiatury
SendInput(1, &ip, sizeof(INPUT));
}
return 1;
//return 1;
}

View File

@@ -1,3 +1,21 @@
/*
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
//---------------------------------------------------------------------------
@@ -16,7 +34,7 @@ private:
bool ReadData(); //BYTE *pReadDataBuff);
bool SendData(); //BYTE *pWriteDataBuff);
bool CheckData(); //sprawdzanie zmian wejść i kontrola mazaków HASLERA
bool KeyBoard(int key, int s);
void KeyBoard(int key, bool s);
bool bRysik1H;
bool bRysik1L;