Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: microbit_switch_if_3sw.h
- Revision:
- 4:4fe5674bf409
- Child:
- 5:80cb8f9db01e
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/microbit_switch_if_3sw.h Sun Nov 25 04:41:15 2018 +0000
@@ -0,0 +1,153 @@
+//=================================
+// microbit_switch_if_3sw
+//=================================
+// BLE switch interface with 3 tact switches for micro:bit
+// 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 keyCodeGroup0[3] = { // Button A, Button B, Button A&B
+ RIGHT_ARROW,
+ LEFT_ARROW,
+ MODIFY_COMMAND + 'h' // アプリ終了
+};
+const int keyCodeGroup1[NUM_GROUP1][2] = { // Switch 1 2
+ {KEY_SPACE, KEY_ENTER},
+ {RIGHT_ARROW, LEFT_ARROW},
+ {DOWN_ARROW, UP_ARROW},
+ {MODIFY_OPTION + DOWN_ARROW, MODIFY_OPTION + UP_ARROW},
+ {'1', '3'},
+ {'h', 'j'}
+};
+const int keyCodeGroup2[NUM_GROUP2]= { // Switch 3
+ KEY_TAB,
+ 0,
+ 0,
+ MODIFY_COMMAND + 'r', // 再読み込み
+ 0,
+ 0
+};
+
+//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'};
+
\ No newline at end of file