HIDDevice
å©ç¨å¯è½æ§ã¯éå®ç
ãã®æ©è½ã¯ãã¼ã¹ã©ã¤ã³ã§ã¯ããã¾ãããæãåºã使ç¨ããã¦ãããã©ã¦ã¶ã¼ã®ä¸é¨ã§åä½ãã¾ããã
å®å ¨ãªã³ã³ããã¹ãç¨: ãã®æ©è½ã¯ä¸é¨ã¾ãã¯ãã¹ã¦ã®å¯¾å¿ãã¦ãããã©ã¦ã¶ã¼ã«ããã¦ãå®å ¨ãªã³ã³ããã¹ã (HTTPS) ã§ã®ã¿å©ç¨ã§ãã¾ãã
Experimental: ããã¯å®é¨çãªæ©è½ã§ãã
æ¬çªã§ä½¿ç¨ããåã«ãã©ã¦ã¶ã¼äºææ§ä¸è¦§è¡¨ããã§ãã¯ãã¦ãã ããã
WebHID API ã® HIDDevice ã¤ã³ã¿ã¼ãã§ã¤ã¹ã¯ HID ããã¤ã¹ã表ãã¾ããããã¤ã¹ã«é¢ããæ
å ±ã«ã¢ã¯ã»ã¹ããããã®ããããã£ã¨ãæ¥ç¶ãéãããéãããããã¡ã½ãããããã¦ã¬ãã¼ãã®éåä¿¡ãè¡ãã¡ã½ãããæä¾ãã¾ãã
ã¤ã³ã¹ã¿ã³ã¹ããããã£
ãã®ã¤ã³ã¿ã¼ãã§ã¤ã¹ã«ã¯ãEventTarget ããç¶æ¿ããããããã£ãããã¾ãã
HIDDevice.openedèªåå°ç¨-
Booleanãè¿ãã¾ãããã®ããã¤ã¹ã¨ã®æ¥ç¶ãéããã¦ããã¨ãtrueã«ãªãã¾ãã HIDDevice.vendorIdèªåå°ç¨-
ãã® HID ããã¤ã¹ã®ãã³ãã¼ ID ãè¿ãã¾ãã
HIDDevice.productIdèªåå°ç¨-
ãã® HID ããã¤ã¹ã®ãããã¯ã ID ãè¿ãã¾ãã
HIDDevice.productNameèªåå°ç¨-
ãã® HID ããã¤ã¹ã®è£½ååã®æååãè¿ãã¾ãã
HIDDevice.collectionsèªåå°ç¨-
ãã® HID ããã¤ã¹ã®ã¬ãã¼ãå½¢å¼ã®é åãè¿ãã¾ãã
ã¤ãã³ã
inputreport-
ã¬ãã¼ããããã¤ã¹ããéããã¦ããæãçºç«ãã¾ãã
ã¤ã³ã¹ã¿ã³ã¹ã¡ã½ãã
ãã®ã¤ã³ã¿ã¼ãã§ã¤ã¹ã«ã¯ãEventTarget ããç¶æ¿ããã¡ã½ãããããã¾ãã
HIDDevice.open()-
ãã® HID ããã¤ã¹ã¨ã®æ¥ç¶ãéãã¾ããæ¥ç¶ã«æåããã解決ãã
Promiseãè¿ãã¾ãã HIDDevice.close()-
ãã® HID ããã¤ã¹ã¨ã®æ¥ç¶ãéãã¾ããæä½ãå®äºããã解決ãã
Promiseãè¿ãã¾ãã HIDDevice.forget()-
ãã® HID ããã¤ã¹ã¨ã®æ¥ç¶ãéããã¢ã¯ã»ã¹ã®è¨±å¯ããªã»ãããã¾ããæä½ãå®äºããã解決ãã
Promiseãè¿ãã¾ãã HIDDevice.sendReport()-
ãã® HID ããã¤ã¹ã« Output ã¬ãã¼ããéä¿¡ãã¾ããæä½ãå®äºããã解決ãã
Promiseãè¿ãã¾ãã HIDDevice.sendFeatureReport()-
ãã® HID ããã¤ã¹ã« Feature ã¬ãã¼ããéä¿¡ãã¾ããæä½ãå®äºããã解決ãã
Promiseãè¿ãã¾ãã HIDDevice.receiveFeatureReport()-
ãã® HID ããã¤ã¹ãã Feature ã¬ãã¼ããã
DataViewã§è§£æ±ºããPromiseã¨ãã¦åä¿¡ãã¾ããããã«ãããã¡ãã»ã¼ã¸ã®å 容ã«åãç¨ãã¦ã¢ã¯ã»ã¹ã§ãã¾ãã
ä¾
ãã®ä¾ã§ã¯ãã¢ããªã±ã¼ã·ã§ã³ã Joy-Con Right ããã¤ã¹ã§ã©ã®ãã¿ã³ãæ¼ãããããæ¤åºããããã« inputReport ã¤ãã³ããç£è¦ããæ¹æ³ã示ãã¾ãã
device.addEventListener("inputreport", (event) => {
const { data, device, reportId } = event;
// Joy-Con Right ããã¤ã¹ã§ããã¤ç¹å®ã®ã¬ãã¼ã ID ã®ã¤ãã³ãã®ã¿ãæ±ãã¾ãã
if (device.productId !== 0x2007 && reportId !== 0x3f) return;
const value = data.getUint8(0);
if (value === 0) return;
const someButtons = { 1: "A", 2: "X", 4: "B", 8: "Y" };
console.log(`ã¦ã¼ã¶ã¼ããã¿ã³ ${someButtons[value]} ãæ¼ãã¾ããã`);
});
ãã®ä¾ã§ã¯ãããã¤ã¹ãç¹æ»
ãããããã« sendFeatureReport ã使ç¨ãã¾ãã
const reportId = 1;
for (let i = 0; i < 10; i++) {
// æ¶ç¯ããã¾ã
await device.sendFeatureReport(reportId, Uint32Array.from([0, 0]));
await waitFor(100);
// ç¹ç¯ããã¾ã
await device.sendFeatureReport(reportId, Uint32Array.from([512, 0]));
await waitFor(100);
}
è¨äº Connecting to uncommon HID devices ã§ä»ã®ä¾ãåããã¢ãè¦ããã¨ãã§ãã¾ãã
仿§æ¸
| 仿§æ¸ |
|---|
| WebHID API > # dom-hiddevice > |