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.
Fork of USBDevice by
Revision 72:8c3160323201, committed 2018-08-18
- Comitter:
- Lybfip
- Date:
- Sat Aug 18 06:37:49 2018 +0000
- Parent:
- 8:335f2506f422
- Child:
- 73:803bc631881e
- Commit message:
- PS4???????????
Changed in this revision
| USBHID/USBKeyboard.cpp | Show annotated file Show diff for this revision Revisions of this file |
| USBHID/USBKeyboard.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/USBHID/USBKeyboard.cpp Fri Mar 01 13:10:29 2013 +0000
+++ b/USBHID/USBKeyboard.cpp Sat Aug 18 06:37:49 2018 +0000
@@ -23,14 +23,14 @@
#define REPORT_ID_KEYBOARD 1
#define REPORT_ID_VOLUME 3
-
+/// キーマップ構造体 ///
typedef struct {
unsigned char usage;
unsigned char modifier;
} KEYMAP;
#ifdef US_KEYBOARD
-/* US keyboard (as HID standard) */
+/* US キーボード (as HID 標準) */
#define KEYMAP_SIZE (152)
const KEYMAP keymap[KEYMAP_SIZE] = {
{0, 0}, /* NUL */
@@ -191,7 +191,7 @@
};
#else
-/* UK keyboard */
+/* UK キーボード */
#define KEYMAP_SIZE (152)
const KEYMAP keymap[KEYMAP_SIZE] = {
{0, 0}, /* NUL */
@@ -352,24 +352,27 @@
};
#endif
+///
+/// reportDesc
+///
uint8_t * USBKeyboard::reportDesc() {
static uint8_t reportDescriptor[] = {
- USAGE_PAGE(1), 0x01, // Generic Desktop
- USAGE(1), 0x06, // Keyboard
- COLLECTION(1), 0x01, // Application
+ USAGE_PAGE(1), 0x01, // 標準デスクトップ
+ USAGE(1), 0x06, // キーボード
+ COLLECTION(1), 0x01, // アプリケーション
REPORT_ID(1), REPORT_ID_KEYBOARD,
- USAGE_PAGE(1), 0x07, // Key Codes
+ USAGE_PAGE(1), 0x07, // キーコード
USAGE_MINIMUM(1), 0xE0,
USAGE_MAXIMUM(1), 0xE7,
LOGICAL_MINIMUM(1), 0x00,
LOGICAL_MAXIMUM(1), 0x01,
REPORT_SIZE(1), 0x01,
REPORT_COUNT(1), 0x08,
- INPUT(1), 0x02, // Data, Variable, Absolute
+ INPUT(1), 0x02, // データ, 変数, 絶対値
REPORT_COUNT(1), 0x01,
REPORT_SIZE(1), 0x08,
- INPUT(1), 0x01, // Constant
+ INPUT(1), 0x01, // 定数
REPORT_COUNT(1), 0x05,
@@ -377,20 +380,20 @@
USAGE_PAGE(1), 0x08, // LEDs
USAGE_MINIMUM(1), 0x01,
USAGE_MAXIMUM(1), 0x05,
- OUTPUT(1), 0x02, // Data, Variable, Absolute
+ OUTPUT(1), 0x02, // データ, 変数, 絶対値
REPORT_COUNT(1), 0x01,
REPORT_SIZE(1), 0x03,
- OUTPUT(1), 0x01, // Constant
+ OUTPUT(1), 0x01, // 定数
REPORT_COUNT(1), 0x06,
REPORT_SIZE(1), 0x08,
LOGICAL_MINIMUM(1), 0x00,
LOGICAL_MAXIMUM(1), 0x65,
- USAGE_PAGE(1), 0x07, // Key Codes
+ USAGE_PAGE(1), 0x07, // キーコード
USAGE_MINIMUM(1), 0x00,
USAGE_MAXIMUM(1), 0x65,
- INPUT(1), 0x00, // Data, Array
+ INPUT(1), 0x00, // データ, 配列
END_COLLECTION(0),
// Media Control
@@ -403,14 +406,14 @@
LOGICAL_MAXIMUM(1), 0x01,
REPORT_SIZE(1), 0x01,
REPORT_COUNT(1), 0x07,
- USAGE(1), 0xB5, // Next Track
- USAGE(1), 0xB6, // Previous Track
- USAGE(1), 0xB7, // Stop
- USAGE(1), 0xCD, // Play / Pause
- USAGE(1), 0xE2, // Mute
- USAGE(1), 0xE9, // Volume Up
- USAGE(1), 0xEA, // Volume Down
- INPUT(1), 0x02, // Input (Data, Variable, Absolute)
+ USAGE(1), 0xB5, // 次のトラック
+ USAGE(1), 0xB6, // 前のトラック
+ USAGE(1), 0xB7, // ストップ
+ USAGE(1), 0xCD, // プレイ / ポーズ
+ USAGE(1), 0xE2, // ミュート
+ USAGE(1), 0xE9, // ボリュームアップ
+ USAGE(1), 0xEA, // ボリュームダウン
+ INPUT(1), 0x02, // 入力 (データ, 変数, 絶対値)
REPORT_COUNT(1), 0x01,
INPUT(1), 0x01,
END_COLLECTION(0),
@@ -419,31 +422,42 @@
return reportDescriptor;
}
-
+///
+/// EP1_OUT_callback
+///
bool USBKeyboard::EP1_OUT_callback() {
uint32_t bytesRead = 0;
uint8_t led[65];
USBDevice::readEP(EPINT_OUT, led, &bytesRead, MAX_HID_REPORT_SIZE);
- // we take led[1] because led[0] is the report ID
+ // led[0]はレポートIDなので、我々はled[1]を取ります。
lock_status = led[1] & 0x07;
- // We activate the endpoint to be able to recceive data
+ // データを受信できるようにエンドポイントをアクティブ化します。
if (!readStart(EPINT_OUT, MAX_HID_REPORT_SIZE))
return false;
return true;
}
+///
+/// ロックステータスを返す
+///
uint8_t USBKeyboard::lockStatus() {
return lock_status;
}
+///
+/// 文字を送信する
+///
int USBKeyboard::_putc(int c) {
return keyCode(c, keymap[c].modifier);
}
+///
+/// キーコード
+///
bool USBKeyboard::keyCode(uint8_t key, uint8_t modifier) {
- // Send a simulated keyboard keypress. Returns true if successful.
+ // シミューレートされたキーボードキーを送信します。成功した場合はtrueを返します。
HID_REPORT report;
report.data[0] = REPORT_ID_KEYBOARD;
@@ -473,7 +487,9 @@
}
-
+///
+/// メディアコントロール
+///
bool USBKeyboard::mediaControl(MEDIA_KEY key) {
HID_REPORT report;
@@ -501,6 +517,9 @@
+ (1 * HID_DESCRIPTOR_LENGTH) \
+ (2 * ENDPOINT_DESCRIPTOR_LENGTH))
+///
+/// Descの設定
+///
uint8_t * USBKeyboard::configurationDesc() {
static uint8_t configurationDescriptor[] = {
CONFIGURATION_DESCRIPTOR_LENGTH,// bLength
--- a/USBHID/USBKeyboard.h Fri Mar 01 13:10:29 2013 +0000
+++ b/USBHID/USBKeyboard.h Sat Aug 18 06:37:49 2018 +0000
@@ -93,7 +93,7 @@
public:
/**
- * Constructor
+ * コンストラクタ
*
*
* @param leds Leds bus: first: NUM_LOCK, second: CAPS_LOCK, third: SCROLL_LOCK
