maxyman wrote:Удалось ли разобраться с проблемой клавиатурных модификаторов, изложенной Vel?
На всякий случай опишу свой случай.
Задача: триммер мамбы должен генерировать комбинации клавиш RCrl+KBDown и RCrl+KBUp.
Описание проблемы:
- settings.png - настройки логических кнопок
- keyboard_log.png - срабатывания кнопок мамбы в тестере
- BoS.png - так определяются кнопки в Битве за Сталинград
Иными словами игра не опознает нажатия модификатора, а определяет последовательность как KBDown вместо RCrl+KBDown.
Это глюк настроек БзС((. Непонятно распознают кнопки джойстика, замапленные на клавиши с модификаторами. Я где-то давал рекомендации - назначать управление раздельно. То есть в БзС настраивать органы управления, используя (нажимая) именно живые клавиши с модификаторами. В конфигураторе мапить кнопки обычным образом, но их при настройке управления в БзС НЕ нажимать, поскольку там они распознаются как клавиши БЕЗ модификаторов. У меня именно так настроены триммеры. Ctrl/Shift+L, Ctrl/Shift+P.
Вот автоматически сгенертрованный файл мапинга
Последние четыре строки.
This file generated by VKB Device Configurator
**********************************************
TEST BUTTONS = OFF
MAPPER of logical layer = ON
Number of logical buttons : 128
Number of HATs : 0
Number of input lines: = 48
MOUSE - Not used ON/OFF - Swichted by button
Virtual Keyboard : active
Multimedia Controls : not used
Windows system Controls : not used
**********************************************
# 1 (Reg: 1 Line: 1) : BUTTON (momentary аction) -> 1 -> #1 Joystick button (Automapped)
# 2 (Reg: 1 Line: 2) : BUTTON (momentary аction) -> 2 -> #2 Joystick button (Automapped)
# 3 (Reg: 1 Line: 3) : BUTTON (momentary аction) -> 3 -> #3 Joystick button (Automapped)
# 4 (Reg: 1 Line: 4) : BUTTON (momentary аction) -> 4 -> #4 Joystick button (Automapped)
# 5 (Reg: 1 Line: 5) : (Line: 6) : Encoder-trimmer type 4/4
Bind to physical axis #:6 Multiplier: 256
Virtual encoder-trimmer with SHIFT1
Bind to physical axis #:6 Multiplier: 256
Virtual encoder-trimmer with SHIFT2
Bind to physical axis #:6 Multiplier: 256
# 7 (Reg: 1 Line: 7) : Trimmer RESET button, Axes mask:32
# 8 (Reg: 1 Line:
: BUTTON (momentary аction) -> 8 -> #8 Joystick button (Automapped)
# 9 (Reg: 2 Line: 1) : BUTTON (momentary аction) -> 9 -> #9 Joystick button (Automapped)
# 10 (Reg: 2 Line: 2) : BUTTON (momentary аction) -> 10 -> Keyboard button : KEY_C + SHIFT LEFT
# 11 (Reg: 2 Line: 3) : BUTTON (momentary аction) -> 11 -> Keyboard button : KEY_U + SHIFT LEFT
# 12 (Reg: 2 Line: 4) : BUTTON (momentary аction) -> 12 -> Keyboard button : KEY_G
# 13 (Reg: 2 Line: 5) : Generator (monostable) 48 pulses -> 13 -> Keyboard button : KEY_G + CONTROL LEFT
# 14 (Reg: 2 Line: 6) : Generator (monostable) 48 pulses -> 14 -> Keyboard button : KEY_G + SHIFT LEFT
# 15 (Reg: 2 Line: 7) : BUTTON (momentary аction) -> 15 -> Keyboard button : KEY_W + SHIFT LEFT
# 16 (Reg: 2 Line:
: BUTTON (momentary аction) -> 16 -> #1 Joystick button
Virtual button with SHIFT1 -> 80 -> Button not mapped !!!
# 17 (Reg: 3 Line: 1) : (Line: 2) : Encoder-trimmer type 4/4
Bind to physical axis #:7 Multiplier: 256
Virtual encoder-trimmer with SHIFT1
Bind to physical axis #:7 Multiplier: 256
Virtual encoder-trimmer with SHIFT2
Bind to physical axis #:7 Multiplier: 256
# 19 (Reg: 3 Line: 3) : Trimmer RESET button, Axes mask:64
# 20 (Reg: 3 Line: 4) : BUTTON (momentary аction) -> 20 -> #20 Joystick button (Automapped)
# 21 (Reg: 3 Line: 5) : BUTTON (momentary аction) -> 21 -> #21 Joystick button (Automapped)
# 22 (Reg: 3 Line: 6) : Trimmer RESET button, Axes mask:128
# 23 (Reg: 3 Line: 7) : (Line:
: Encoder-trimmer type 4/4
Bind to physical axis #:8 Multiplier: 256
Virtual encoder-trimmer with SHIFT1
Bind to physical axis #:8 Multiplier: 256
Virtual encoder-trimmer with SHIFT2
Bind to physical axis #:8 Multiplier: 256
# 25 (Reg: 4 Line: 1) : BUTTON (momentary аction) -> 25 -> #25 Joystick button (Automapped)
# 26 (Reg: 4 Line: 2) : BUTTON (momentary аction) -> 26 -> Keyboard button : KEY_I
Virtual button with SHIFT1 -> 58 -> Keyboard button : KEY_W
# 27 (Reg: 4 Line: 3) : SHIFT1 (momentary аction) -> 27 -> Keyboard button : KEY_B
# 28 (Reg: 4 Line: 4) : BUTTON (momentary аction) -> 28 -> Keyboard button : KEY_B + SHIFT LEFT
Virtual button with SHIFT1 -> 68 -> Keyboard button : KEY_G + ALT LEFT
# 29 (Reg: 4 Line: 5) : BUTTON (momentary аction) -> 29 -> Keyboard button : KEY_Q
# 30 (Reg: 4 Line: 6) : BUTTON (momentary аction) -> 30 -> #30 Joystick button (Automapped)
# 31 (Reg: 4 Line: 7) : BUTTON (momentary аction) -> 31 -> Keyboard button : KEY_F1
Virtual button with SHIFT1 -> 121 -> Keyboard button : KEY_F2
# 32 (Reg: 4 Line:
: BUTTON (momentary аction) -> 32 -> #32 Joystick button (Automapped)
# 33 (Reg: 5 Line: 1) : BUTTON (momentary аction) -> 33 -> Keyboard button : KEY_R
# 34 (Reg: 5 Line: 2) : BUTTON (momentary аction) -> 34 -> Keyboard button : KEY_Spacebar + ALT LEFT
# 35 (Reg: 5 Line: 3) : BUTTON (momentary аction) -> 35 -> #35 Joystick button (Automapped)
# 36 (Reg: 5 Line: 4) : BUTTON (momentary аction) -> 36 -> Keyboard button : KEY_Spacebar
# 37 (Reg: 5 Line: 5) : BUTTON (momentary аction) -> 37 -> Keyboard button : KEY_F9
Virtual button with SHIFT1 -> 69 -> Keyboard button : KEY_S + ALT LEFT
# 38 (Reg: 5 Line: 6) : BUTTON (momentary аction) -> 38 -> Keyboard button : KEY_F1 + SHIFT LEFT
Virtual button with SHIFT1 -> 70 -> #10 Joystick button
# 39 (Reg: 5 Line: 7) : BUTTON (momentary аction) -> 39 -> Keyboard button : KEY_M
Virtual button with SHIFT1 -> 71 -> Keyboard button : KEY_S + SHIFT LEFT
# 40 (Reg: 5 Line:
: BUTTON (momentary аction) -> 40 -> Keyboard button : KEY_S
# 41 (Reg: 6 Line: 1) : BUTTON (momentary аction) -> 41 -> Keyboard button : KEY_F2 + CONTROL LEFT
# 42 (Reg: 6 Line: 2) : Generator (multivibrator) 1 pulses -> 42 -> Keyboard button : KEY_PageUp
# 43 (Reg: 6 Line: 3) : BUTTON (momentary аction) -> 43 -> Keyboard button : KEY_F2 + SHIFT LEFT
# 44 (Reg: 6 Line: 4) : Generator (multivibrator) 1 pulses -> 44 -> Keyboard button : KEY_PageDown
# 45 (Reg: 6 Line: 5) : BUTTON (momentary аction) -> 45 -> Keyboard button : KEY_L + SHIFT LEFT
# 46 (Reg: 6 Line: 6) : BUTTON (momentary аction) -> 46 -> Keyboard button : KEY_P + SHIFT LEFT
# 47 (Reg: 6 Line: 7) : BUTTON (momentary аction) -> 47 -> Keyboard button : KEY_L + CONTROL LEFT
# 48 (Reg: 6 Line:
: BUTTON (momentary аction) -> 48 -> Keyboard button : KEY_P + CONTROL LEFT
**********************************************
Statistics:
**********************************************
Used physical lines:48
Used buttons:34
Used virtual buttons:9
Used toggles:0
Used encoders:3
Used virtual encoders:6
Summary logical buttons:0
**********************************************