ble nano hid over gatt
Dependencies: BLE_API mbed-dev nRF51822
Diff: test_keymap.txt
- Revision:
- 47:5bf2ae8cc710
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test_keymap.txt Mon Aug 29 12:38:32 2016 +0000 @@ -0,0 +1,77 @@ +//#!clang++ -O2 -std=c++1y test_keymap.txt -o /tmp/a.out && /tmp/a.out ; ;: + +#include <stdio.h> +#include <stdint.h> +#include <iostream> +static unsigned tap_n = 0; +template <class T, class U> +void is(T got, U expected, const char* desc = "") { + if (tap_n++ == 0) { + std::atexit([]{ + std::cout << "1.." << tap_n << std::endl; + }); + } + + if (got == expected) { + std::cout << "ok " << tap_n; + if (desc[0]) std::cout << " - " << desc; + std::cout << std::endl; + } else { + std::cout << "not ok " << tap_n; + if (desc[0]) std::cout << " - " << desc; + std::cout << std::endl; + std::cout << "# got:" << got << " expected:" << expected << std::endl; + } +} + +static uint8_t lastAppendKey; +static uint8_t lastDeleteKey; +class HIDController { +public: + static void appendReportData(uint8_t key) { + lastAppendKey = key; + } + + static void deleteReportData(uint8_t key) { + lastDeleteKey = key; + } +}; + +#define DEBUG_PRINTF_KEYEVENT(...) printf(__VA_ARGS__) + +#include "keymap.h" + +int main() { + printf("test\n"); + + Keymap keymap = new Keymap(); + + keymap->execute(1, 1, true); + is(lastAppendKey, _1); + keymap->execute(1, 1, false); + is(lastDeleteKey, _1); + keymap->execute(1, 0, true); + is(lastAppendKey, _esc); + + keymap->execute(2, 14, true); + is((int)lastAppendKey, _bracketL); + keymap->execute(2, 14, false); + + // Fn + keymap->execute(5, 14, true); + keymap->execute(2, 14, true); + is((int)lastAppendKey, _arrowU); + // 先に Fn を離す + keymap->execute(5, 14, false); + keymap->execute(2, 14, false); + is((int)lastDeleteKey, _arrowU); + + return 0; +} + + +// レイヤーの仕様 +// +// 切替えキー (例: Fn) はそのあと押したキーにしか効かない +// 切替えキーが途中で離されても、押されたキーが離されるまでそのまま +//