SYNOPSIS
kbdhandle:setMap(map)
DESCRIPTION
Configures the key to unicode mapping of a matrix keypad. The parameter map is a list of codepoints for all keys in the matrix.
Starting with SDK 2.91.0, this call is mandatory to use a matrix keypad.
There is no default mapping.
This is necessary so the GPIO pins of the keypad matrix can be used for other purposes if there is no keypad.
To disable keypad scanning, call with an explicit nil: kbdhandle:setMap(nil)
EXAMPLE
For example, the keypad connector on the V4½ is numbered like this:
COL0 | COL1 | COL2 | COL3 | |
---|---|---|---|---|
ROW0 | 1 | 2 | 3 | 4 |
ROW1 | 5 | 6 | 7 | 8 |
ROW2 | 9 | 10 | 11 | 12 |
ROW3 | 13 | 14 | 15 | 16 |
A typical keypad available from multiple sources has this arrangement:
COL0 | COL1 | COL2 | COL3 | |
---|---|---|---|---|
ROW0 | 1 | 4 | 7 | A |
ROW1 | 2 | 5 | 8 | 0 |
ROW2 | 3 | 6 | 9 | B |
ROW3 | F | E | D | C |
Which will result in a map table of:
map = { '1', '4', '7', 'A',
'2', '5', '8', '0',
'3', '6', '9', 'B',
'F', 'E', 'D', 'C',
}