Chyba prościej jest komunikować się z mikrokontrolerem po USB, tak jak ma to miejsce w przypadku PoKeys.
Opisywałem właśnie komunikację po USB tylko, że zamiast pisać osobno sterownik jak w przypadku pokeysa (o którym nie ma nic na temat danych wymienianych z komputerem) można wykorzystać gotowy układ lub odpowiednio zaprogramować mikrokontroler, żeby był widziany jako port COM. Mamy wtedy możliwość pełnego sterowania kabiną. Pisałem o porcie COM bo jest to w miarę prosty i niezawodny sposób komunikacji. Nie sprawia większego problemu zarówno od strony mikrokontrolera (sterowanie pulpitem i czytanie danych z niego) jak i od strony PC-ta.
Wadą Pokeys-a jest to, że nie ma udostępnionych danych na jego temat. Ktoś ma wyłączność na niego i nie jestem w stanie wykorzystać jego oprogramowania do stworzenia własnego układu. Pokeys przetwarza dane z układu na kody klawiatury. Zmieniając sterowanie w maszynie na całkowicie inne tak jak piszesz RA możemy uniemożliwić wykorzystanie pokeys.
Tworząc nowy standard dla MASZYNY wykorzystujący virtual port COM mamy możliwość rozwoju samego symulatora bez potrzeby zmian w pulpitach wykonanych przez użytkowników.
Przykład - ramka danych przesyłana pomiędzy maszyną a pulpitem (nie jest istotne w jaki sposób tylko sam sens wiadomości):
Wysyłamy przez port COM znaki ASCII:
$LO,N2,n1,B0,h2,H1;
$ - znak początku transmisji danych (synchronizacja)
LO - typ danych (parametry lokomotywy)
, - znak rozgraniczający parametry
N - nawrotnik
2 - pozycja nawrotnika
n- nastawnik kierunku jazdy
1 - pozycja
B - bocznik
h - hamulec pomocniczy
H - -//- zasadniczy
; - znak końca transmisji danych
Jest to przykładowa ramka jaką w bardzo prosty sposób można wygenerować zarówno w komputerze jak i w mikrokontrolerze. Jeżeli projekt byłby realizowany z chęcią pomogę jeżeli chodzi o tworzenie ramek danych, typy danych, komunikację z mikrokontrolerem i przetwarzanie przez niego danych wejściowych z komputera jak i z panelu maszynisty.
Wydaje mi się, że nie jest to prowizorka, biorąc pod uwagę, że wykorzystujemy port USB do komunikacji (to, że jest widziany akurat jako virtualny port COM nie jest żadnym problemem i jeżeli jest ktoś chętny do napisania sterownika pod windowsa możemy zrobić to inaczej).