[C++] zdefiniowanie sekwencji zdarzeń

0

Witam!

Na początku zaznaczę, że nie znam się na programowaniu ani C++, więc z góry przepraszam za nie fachowe nazewnictwo.

Używamy w firmie skanerów kodów kreskowych Motorola Symbol MC3000. Działają one na systemie Windows CE. Klawiatura tych urządzeń posiada 2 programowalne klawisze funkcyjne. Z dokumentacji wynika, że by zaprogramować te klawisze należy wprowadzić zmiany w kodzie niewielkiego programiku który generuje pliki mapowania klawiatury. Do sprawniejszego poruszania się po opcjach programów chciałbym pod jednym ustawić klawisz TAB pod drugim SHIFT+TAB. I tu pojawia się problem. O ile z TABem poradziłem sobie bez problemu, SHIFT+TAB jest dla mnie zagadką. Zauważyłem, że kody klawiszy zdefiniowane są w pliku scancode.h i wygląda to tak (nie wklejam całego pliku lecz skróconą wersję do 3 klawiszy)

#ifndef SCANCODE_H
#define SCANCODE_H

#define SC_LSHIFT       0x2a
#define SC_TABKEY       0x0f

#define SC_SHIFTTAB       0xF    /*dodane przeze mnie

#endif // SCANCODE_H

natomiast samo mapowanie ustawione jest w pliku MC3000Key28S.cpp i wygląda tak (również skrócona wersja)

#include "scancode.h"
#include "makebins.h"

char MC3000Key28ScanCodeData[COUNT_SCAN_CODES] =
{
	
	SC_LSHIFT,		// 23 Shift Key
	SC_TABKEY,		// 30 Red Key (zdefiniowany przeze mnie kalwisz TAB)
	SC_SHIFTTAB,		// 30 Green Key (niedziałający SHIFT+TAB)

};

Z racji tego, że klawiatura w takim urządzeniu nie działa tak jak normalna do zdefiniowania SHIFT+TAB należałoby (tak przypuszczam) zdefiniować sekwencję znaków, tzn najpierw SHIFT potem TAB i taką sekwencje podpiąć pod to pod SC_SHIFTTAB. I w tym miejscu prosiłbym waszą pomoc. Nie wiem jak zrobić taką sekwencję, a szczerze powiedziawszy nie jestem nawet pewny czy tak to powinno wyglądać. Będę wdzięczny za wszelką pomoc i wszelkie sugestie.

Załączam kod źródłowy do tego programiku. Znajdują się tam pliki konfiguracyjne dla 3 modeli tego urządzenia (z klawiaturą 28, 38 i 48 klawiszową). Mnie interesuje wersja dla 28 klawiszowej klawiatury czyli plik MC3000Key28S.cpp.
http://files.myopera.com/lssl/files/kbtool.zip

Dzięki!
Marek

0

zwroc uwage, ze to nawet nie jest remapper.. prawdziwe tlumaczenie odbywa sie gdzies indziej, to co tutaj masz to jedynie generator konfiguracji remappera.. a z tej konfiguracji nigdzie nie widac jako by mial mozliwosci wieksze niz przemapowanie kodow jeden-w-jeden.. zeby rozszerzyc remappera o sekwencje, musialbys go zmienic, a nie tylko jego konfiguracje!

ah.. a co do plikow, to plikow, to wydaje mi sie ze:

  • scancodes.h nie jest przeznaczony do edycji
  • pliki *S.cpp sa najbardziej niskopoziomowe i okreslaja jakie klawisze znajduja sie na danej pozycji na klawiaturze [przypisanie scancode'ow fizycznym klawiszom]
  • pliki *R.cpp slusza remapping'om - pozwalaja wyraznie danej pozycji przypisac inny kod logicznego klawisza
  • idei plikow *M.cpp nie zalapalem.. multimapping? moze wlasnie one pozwalaja na sekwencje? ale nie widac tego w przykladowych plikach..

1 użytkowników online, w tym zalogowanych: 0, gości: 1