mirror of
https://github.com/meshtastic/firmware.git
synced 2025-04-26 01:52:48 +00:00
Try manual scancode for SYM
This commit is contained in:
parent
5c7c1cd253
commit
7b1aeb60cd
@ -22,6 +22,8 @@
|
|||||||
#define CFG_NUMLOCK_INT (1 << 3)
|
#define CFG_NUMLOCK_INT (1 << 3)
|
||||||
#define CFG_KEY_INT (1 << 4)
|
#define CFG_KEY_INT (1 << 4)
|
||||||
#define CFG_PANIC_INT (1 << 5)
|
#define CFG_PANIC_INT (1 << 5)
|
||||||
|
#define CFG_REPORT_MODS (1 << 6)
|
||||||
|
#define CFG_USE_MODS (1 << 7)
|
||||||
|
|
||||||
#define INT_OVERFLOW (1 << 0)
|
#define INT_OVERFLOW (1 << 0)
|
||||||
#define INT_CAPSLOCK (1 << 1)
|
#define INT_CAPSLOCK (1 << 1)
|
||||||
@ -66,6 +68,8 @@ void BBQ10Keyboard::reset()
|
|||||||
writeCallback(m_addr, _REG_RST, &data, 0);
|
writeCallback(m_addr, _REG_RST, &data, 0);
|
||||||
}
|
}
|
||||||
delay(100);
|
delay(100);
|
||||||
|
writeRegister(_REG_CFG, readRegister8(_REG_CFG) | CFG_REPORT_MODS);
|
||||||
|
delay(100);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BBQ10Keyboard::attachInterrupt(uint8_t pin, void (*func)(void)) const
|
void BBQ10Keyboard::attachInterrupt(uint8_t pin, void (*func)(void)) const
|
||||||
|
@ -3,6 +3,11 @@
|
|||||||
#include "configuration.h"
|
#include "configuration.h"
|
||||||
#include <Wire.h>
|
#include <Wire.h>
|
||||||
|
|
||||||
|
#define KEY_MOD_ALT (0x1A)
|
||||||
|
#define KEY_MOD_SHL (0x1B)
|
||||||
|
#define KEY_MOD_SHR (0x1C)
|
||||||
|
#define KEY_MOD_SYM (0x1D)
|
||||||
|
|
||||||
class BBQ10Keyboard
|
class BBQ10Keyboard
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -78,21 +78,48 @@ int32_t KbI2cBase::runOnce()
|
|||||||
e.inputEvent = meshtastic_ModuleConfig_CannedMessageConfig_InputEventChar_BACK;
|
e.inputEvent = meshtastic_ModuleConfig_CannedMessageConfig_InputEventChar_BACK;
|
||||||
e.kbchar = key.key;
|
e.kbchar = key.key;
|
||||||
break;
|
break;
|
||||||
case 0x12: // sym shift+2
|
case 'e': // sym e
|
||||||
e.inputEvent = meshtastic_ModuleConfig_CannedMessageConfig_InputEventChar_UP;
|
case '2': // sym shift+2
|
||||||
e.kbchar = 0xb5;
|
if (is_sym) {
|
||||||
|
e.inputEvent = meshtastic_ModuleConfig_CannedMessageConfig_InputEventChar_UP;
|
||||||
|
e.kbchar = 0xb5;
|
||||||
|
} else {
|
||||||
|
e.inputEvent = ANYKEY;
|
||||||
|
e.kbchar = key.key;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 0x18: // sym shift+8
|
case 'x': // sym x
|
||||||
e.inputEvent = meshtastic_ModuleConfig_CannedMessageConfig_InputEventChar_DOWN;
|
case '8': // sym shift+8
|
||||||
e.kbchar = 0xb6;
|
if (is_sym) {
|
||||||
|
e.inputEvent = meshtastic_ModuleConfig_CannedMessageConfig_InputEventChar_DOWN;
|
||||||
|
e.kbchar = 0xb6;
|
||||||
|
} else {
|
||||||
|
e.inputEvent = ANYKEY;
|
||||||
|
e.kbchar = key.key;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 0x14: // Left (sym shift+4)
|
case 's': // sym s
|
||||||
e.inputEvent = meshtastic_ModuleConfig_CannedMessageConfig_InputEventChar_LEFT;
|
case '4': // Left (sym shift+4)
|
||||||
e.kbchar = 0x00; // tweak for destSelect
|
if (is_sym) {
|
||||||
|
e.inputEvent = meshtastic_ModuleConfig_CannedMessageConfig_InputEventChar_LEFT;
|
||||||
|
e.kbchar = 0x00; // tweak for destSelect
|
||||||
|
} else {
|
||||||
|
e.inputEvent = ANYKEY;
|
||||||
|
e.kbchar = key.key;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 0x16: // Right (sym shift+6)
|
case 'f': // sym f
|
||||||
e.inputEvent = meshtastic_ModuleConfig_CannedMessageConfig_InputEventChar_RIGHT;
|
case '6': // Right (sym shift+6)
|
||||||
e.kbchar = 0x00; // tweak for destSelect
|
if (is_sym) {
|
||||||
|
e.inputEvent = meshtastic_ModuleConfig_CannedMessageConfig_InputEventChar_RIGHT;
|
||||||
|
e.kbchar = 0x00; // tweak for destSelect
|
||||||
|
} else {
|
||||||
|
e.inputEvent = ANYKEY;
|
||||||
|
e.kbchar = key.key;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case KEY_MOD_SYM: // toggle SYM Key
|
||||||
|
is_sym = !is_sym;
|
||||||
break;
|
break;
|
||||||
case 0x0d: // Enter
|
case 0x0d: // Enter
|
||||||
case 0x0a: // apparently Enter on Q10 is a line feed instead of carriage return
|
case 0x0a: // apparently Enter on Q10 is a line feed instead of carriage return
|
||||||
|
@ -19,4 +19,5 @@ class KbI2cBase : public Observable<const InputEvent *>, public concurrency::OST
|
|||||||
TwoWire *i2cBus = 0;
|
TwoWire *i2cBus = 0;
|
||||||
|
|
||||||
BBQ10Keyboard Q10keyboard;
|
BBQ10Keyboard Q10keyboard;
|
||||||
|
bool is_sym = false;
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user