Initial release
microbit_switch_if_wear.h
- Committer:
- masakjm
- Date:
- 2018-12-14
- Revision:
- 8:be1ae533ab8c
- Parent:
- 6:e2074d02065b
File content as of revision 8:be1ae533ab8c:
//================================= // microbit_switch_if_wear //================================= // A wearable BLE switch interface using micro bits // The MIT License (MIT) Copyright (c) 2018 Masatomo Kojima #include "mbed.h" #include "MicroBit.h" #include "ble/services/BatteryService.h" #include "KeyboardService.h" #include "Keyboard_types.h" #include "HIDServiceBase.h" #include "HIDDeviceInformationService.h" //---------------------- // Keybord //---------------------- const int KEY_BS = 8; /* Keyboard Backspace */ const int KEY_TAB = 9; /* Keyboard Tab */ const int KEY_ENTER = 10; /* Keyboard Return (Enter) */ //const int KEY_ESC = 27; /* Keyboard Escape */ const int KEY_SPACE = 32; /* Keyboard Space */ //---------------------- // Setting //---------------------- #define NUM_GROUP1 6 #define NUM_GROUP2 6 #define MODIFY_CTRL 0x100 #define MODIFY_SHIFT 0x200 #define MODIFY_OPTION 0x400 /* option or alt */ #define MODIFY_COMMAND 0x800 /* command or Windows */ const int keyCodeGroup1[NUM_GROUP1][3] = { // Switch 1 2 {KEY_SPACE, KEY_ENTER, MODIFY_COMMAND + 'h'}, {RIGHT_ARROW, LEFT_ARROW, MODIFY_COMMAND + 'h'}, {DOWN_ARROW, UP_ARROW, MODIFY_COMMAND + 'h'}, {MODIFY_OPTION + DOWN_ARROW, MODIFY_OPTION + UP_ARROW, MODIFY_COMMAND + 'h'}, {'1', '3', MODIFY_COMMAND + 'h'}, {'h', 'j', MODIFY_COMMAND + 'h'} }; //in "BLE_HID\Keyboad_types.h" //enum FUNCTION_KEY { // KEY_F1 = 128, /* F1 key */ // KEY_F2, /* F2 key */ // KEY_F3, /* F3 key */ // KEY_F4, /* F4 key */ // KEY_F5, /* F5 key */ // KEY_F6, /* F6 key */ // KEY_F7, /* F7 key */ // KEY_F8, /* F8 key */ // KEY_F9, /* F9 key */ // KEY_F10, /* F10 key */ // KEY_F11, /* F11 key */ // KEY_F12, /* F12 key */ // // KEY_PRINT_SCREEN, /* Print Screen key */ // KEY_SCROLL_LOCK, /* Scroll lock */ // KEY_CAPS_LOCK, /* caps lock */ // KEY_NUM_LOCK, /* num lock */ // KEY_INSERT, /* Insert key */ // KEY_HOME, /* Home key */ // KEY_PAGE_UP, /* Page Up key */ // KEY_PAGE_DOWN, /* Page Down key */ // // RIGHT_ARROW, /* Right arrow */ // LEFT_ARROW, /* Left arrow */ // DOWN_ARROW, /* Down arrow */ // UP_ARROW, /* Up arrow */ //}; //---------------------- // Display //---------------------- #define TIME_TURN_OFF 7.0 // 非表示モードに入るまでの時間 (s) #define SETTING_DISPLAY_WAIT 1.0 // 設定モード表示時間 (s) //---------------------- // State //---------------------- enum STATE { STATE_DESABLE_INPUT, // 入力無効時 STATE_SETTING, // パラメータ設定時 STATE_OPERATING, // 操作時 }; //---------------------- // Disable debug messages by setting NO_DEBUG //---------------------- #ifndef NO_DEBUG #define DEBUG(...) printf(__VA_ARGS__) #else #define DEBUG(...) #endif //---------------------- // BLE & HID //---------------------- /** * IO capabilities of the device. During development, you most likely want "JustWorks", which means * no IO capabilities. * It is also possible to use IO_CAPS_DISPLAY_ONLY to generate and show a pincode on the serial * output. */ #ifndef HID_SECURITY_IOCAPS #define HID_SECURITY_IOCAPS (SecurityManager::IO_CAPS_NONE) #endif /** * Security level. MITM disabled forces "Just Works". If you require MITM, HID_SECURITY_IOCAPS must * be at least IO_CAPS_DISPLAY_ONLY. */ #ifndef HID_SECURITY_REQUIRE_MITM #define HID_SECURITY_REQUIRE_MITM false #endif /** * Initialize security manager: set callback functions and required security level */ void initializeSecurity(BLE &_ble); /** * - Initialize auxiliary services required by the HID-over-GATT Profile. * - Initialize common Gap advertisement. * * Demos only have to set a custom device name and appearance, and their HID * service. */ void initializeHOGP(BLE &_ble); enum BLE_MESSAGE { BLE_NO_MESSAGE, // メッセージ無し BLE_CONNECTED, // BLE接続完了 BLE_PAIRING_SUCCESS, // ペアリング成功 BLE_PAIRING_FAILED, // ペアリング失敗 }; const char bleDispChar[]={0, 'C', 'P', 'F'};