国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用 Web HID API 在瀏覽器中進行HID設(shè)備交互(純前端)

這篇具有很好參考價值的文章主要介紹了使用 Web HID API 在瀏覽器中進行HID設(shè)備交互(純前端)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目的

最近在搞HID透傳 《STM32 USB使用記錄:HID類設(shè)備(后篇)》 。

市面上的各種測試工具都或多或少存在問題,所以就自己寫一個工具進行測試。目前來說純前端方案編寫這個工具應(yīng)該是最方便的,這里對 Web HID API 相關(guān)內(nèi)容做個記錄。

基礎(chǔ)說明

Web HID API 相關(guān)內(nèi)容參考如下:
https://developer.mozilla.org/en-US/docs/Web/API/WebHID_API
https://developer.mozilla.org/en-US/docs/Web/API/HID
https://developer.mozilla.org/en-US/docs/Web/API/HIDDevice
https://developer.mozilla.org/en-US/docs/Web/API/HIDInputReportEvent
https://wicg.github.io/webhid/

這個API目前還處于實驗性質(zhì),只有電腦上的Chrome、Edge、Opera等瀏覽器支持:
webhidapi教程,Web與JS相關(guān),前端,嵌入式硬件,USB,HID,透傳

另外還需要注意的是從網(wǎng)頁操作設(shè)備是比較容易產(chǎn)生安全風險的,所以這個API只支持本地調(diào)用或者是HTTPS方式調(diào)用。

使用下面方法可以偵測電腦上HID設(shè)備插入與拔出:

// 全局HID設(shè)備插入事件
navigator.hid.onconnect = (event) => {
    console.log("HID connected: ", event.device);
};

// 全局HID設(shè)備拔出事件
navigator.hid.ondisconnect = (event) => {
    console.log("HID connected: ", event.device);
};

使用下面方法可以顯示電腦上的HID設(shè)備選擇授權(quán),或者顯示已授權(quán)的HID設(shè)備列表:

// requestDevice方法將顯示一個包含已連接設(shè)備列表的對話框,用戶選擇可以并授予其中一個設(shè)備訪問權(quán)限
const devices = await navigator.hid.requestDevice({ filters: [] });
// 注意這里返回的是一個數(shù)組

// const devices = await navigator.hid.requestDevice({
//     filters: [{
//         vendorId: 0xabcd,  // 根據(jù)VID進行過濾
//         productId: 0x1234, // 根據(jù)PID進行過濾
//         usagePage: 0x0c,   // 根據(jù)usagePage進行過濾
//         usage: 0x01,       // 根據(jù)usage進行過濾
//     },],
// });

// getDevices方法可以返回已連接的授權(quán)過的設(shè)備列表
// let devices = await navigator.hid.getDevices(); 

使用下面方法可以打開或關(guān)閉HID設(shè)備等:

if (!device.opened) { // 檢查設(shè)備是否打開
    await device.open(); // 打開設(shè)備
}
// await device.close(); // 關(guān)閉設(shè)備
// await device.forget() // 遺忘設(shè)備

使用下面可以讀寫數(shù)據(jù):
對于HID設(shè)備而言主要有 feature 、 input 、 output 三項可以用來數(shù)據(jù)讀寫交互的當然前提是設(shè)備自身支持。

// 讀取Feature
const dataView = await device.receiveFeatureReport(reportId);

// 寫Feature
await device.sendFeatureReport(reportId, data);

// 向HID設(shè)備發(fā)送數(shù)據(jù)
await device.sendReport(reportId, data); // reportId寫0表示不適用reportId

// 監(jiān)聽來自HID設(shè)備的數(shù)據(jù)(input)
device.oninputreport = (event) => {
    console.log(event); // event中包含device、reportId、data等內(nèi)容
};

示例工程(HID透傳測試工具)

代碼與說明:《基于 Web HID API 的HID透傳測試工具(純前端)》
項目地址:https://github.com/NaisuXu/HID_Passthrough_Tool
webhidapi教程,Web與JS相關(guān),前端,嵌入式硬件,USB,HID,透傳

總結(jié)

使用 Web HID API 訪問HID設(shè)備非常方便,目前來說唯一的問題是這還是實驗性質(zhì)的功能,可能之后接口還會變動,等根據(jù)實際情況進行調(diào)整。文章來源地址http://www.zghlxwxcb.cn/news/detail-803194.html

到了這里,關(guān)于使用 Web HID API 在瀏覽器中進行HID設(shè)備交互(純前端)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • web3:智能合約瀏覽器版本的 IDE - remix 使用教程

    如果你是一位web3行業(yè)的從業(yè)者,那么智能合約一定是要接觸的,這里我們就智能合約瀏覽器版本的 IDE-remix來介紹一下,及簡單的使用操作 Remix 是一個開源的 Solidity 智能合約開發(fā)環(huán)境,是一款瀏覽器版本的 IDE,提供基本的編譯、部署至本地或測試網(wǎng)絡(luò)、執(zhí)行合約等功能。S

    2024年02月06日
    瀏覽(34)
  • 使用Socket技術(shù)進行數(shù)據(jù)傳輸、傳輸文件;瀏覽器訪問Socket服務(wù)器

    使用Socket技術(shù)進行數(shù)據(jù)傳輸、傳輸文件;瀏覽器訪問Socket服務(wù)器

    利用通信線路和通信設(shè)備,將地理位置不同的、功能獨立的多臺計算機互連起來,以功能完善的網(wǎng)絡(luò)軟件來實現(xiàn)資源共享和信息傳遞,就構(gòu)成了計算機網(wǎng)絡(luò)系統(tǒng) IP地址和端口 通過IP地址,區(qū)分不同的計算機 每一臺電腦在一個網(wǎng)絡(luò)上擁有一個獨屬于自己的IP地址,用于區(qū)別其他

    2024年02月07日
    瀏覽(54)
  • 使用可視化docker瀏覽器,輕松實現(xiàn)分布式web自動化

    使用可視化docker瀏覽器,輕松實現(xiàn)分布式web自動化

    順著docker的發(fā)展,很多測試的同學(xué)也已經(jīng)在測試工作上使用docker作為環(huán)境基礎(chǔ)去進行一些自動化測試,這篇文章主要講述我們在docker中使用瀏覽器進行自動化測試如果可以實現(xiàn)可視化,同時可以對瀏覽器進行相關(guān)的操作。 首先我們先了解什么是有頭瀏覽器和無頭瀏覽器的區(qū)別

    2024年02月14日
    瀏覽(27)
  • 使用在 Web 瀏覽器中運行的 VSCode 實現(xiàn) ROS2 測程法

    使用在 Web 瀏覽器中運行的 VSCode 實現(xiàn) ROS2 測程法

    ? ? ? ? ? ? ? ??Hadabot是軟件工程師學(xué)習(xí)ROS2和機器人技術(shù)的機器人套件。我們距離Hadabot套件的測試版還有一周左右的時間。我們將在本文末尾披露有關(guān)如何注冊的更多信息。 ????????新的Hadabot套件完全支持ROS2。除了硬件套件外,Hadabot軟件環(huán)境將主要基于Web瀏覽器,以

    2024年02月12日
    瀏覽(18)
  • win10進行安裝使用11ie瀏覽器——遇到問題合集解決(執(zhí)行一遍、問題解決)

    win10進行安裝使用11ie瀏覽器——遇到問題合集解決(執(zhí)行一遍、問題解決)

    因為需要訪問的頁面,只能兼容使用對應(yīng)的ie進行訪問,所以才開始安裝并使用ie。再次總結(jié)自己踩的坑。 切記注意 操作完 一下步驟 請重啟電腦 首先使用ie的前提就是需要確保自己的電腦上是有ie的 檢驗方式之一 之間進行——“開始”——進行搜索。 或者檢驗這個地方 打

    2024年02月04日
    瀏覽(85)
  • 使用瀏覽器訪問西門子S7-1200PLC_Web服務(wù)器設(shè)置

    使用瀏覽器訪問西門子S7-1200PLC_Web服務(wù)器設(shè)置

    平常都是用觸摸屏或者上位機監(jiān)控在線查看PLC的數(shù)據(jù),在西門子S7-1200中,可以使用博途配置web服務(wù)器,通過瀏覽器進行登錄,訪問PLC的運行狀態(tài)及需要監(jiān)控的數(shù)據(jù)信息。 打開博途,新建一個項目,選擇一個常用的PLC型號,進入編程界面,上述步驟不再贅述;右擊mian,點擊屬

    2024年02月16日
    瀏覽(43)
  • web3:使用Docker-compose方式部署blockscout瀏覽器+charts圖表

    最近做的項目,需要blockscout來部署一個區(qū)塊鏈瀏覽器,至于blockscout是什么,咱們稍后出一篇文章專門介紹下,本次就先介紹一下如何使用Docker-compose方式部署blockscout,以及過程中遇到的種種坑

    2024年02月11日
    瀏覽(29)
  • 如何給自己的項目加上域名,在瀏覽器中被別人訪問,使用支付寶進行沙箱支付

    如何給自己的項目加上域名,在瀏覽器中被別人訪問,使用支付寶進行沙箱支付

    NATAPP-內(nèi)網(wǎng)穿透 基于ngrok的國內(nèi)高速內(nèi)網(wǎng)映射工具 每個人可以申請兩條隧道,建議選擇一條web和一條tcp隧道 這個就是網(wǎng)絡(luò)地址 訪問時在用網(wǎng)絡(luò)地址替換本地地址就行了(訪問的時候一定要把這個窗口打開) 以前 localhost/front/page/login.html 現(xiàn)在 ?http://g3zjqu.natappfree.cc/front/page/login.h

    2024年02月06日
    瀏覽(28)
  • Mac系統(tǒng)下使用Charles對android手機的app或者瀏覽器進行數(shù)據(jù)包抓取

    Mac系統(tǒng)下使用Charles對android手機的app或者瀏覽器進行數(shù)據(jù)包抓取

    ? ? ? ? ?手機完成解鎖、打開開發(fā)者模式,打開root權(quán)限 ? ? ? ? ?參考地址: xiaomi5c手機解鎖、刷機、打開開發(fā)者模式,打開root權(quán)限_小悟哦的博客-CSDN博客 1)手機的Wi-Fi設(shè)置上,添加一個代理,代理的地址上面的“192.168.1.5”,端口:8888 2)手機瀏覽器上,輸入 http://chl

    2024年02月09日
    瀏覽(23)
  • Java 中,使用 HttpServletResponse 對象將服務(wù)器上的文件響應(yīng)到客戶端瀏覽器進行下載

    在服務(wù)器端,使用 FileInputStream 打開要下載的文件,并將其讀取到字節(jié)數(shù)組中。 2.設(shè)置 HttpServletResponse 的響應(yīng)頭信息,告訴瀏覽器需要下載文件,并指定文件名和文件類型 其中,Content-Type 表示響應(yīng)內(nèi)容的類型,這里設(shè)置為 application/octet-stream,表示二進制流。Content-Length 表示

    2024年02月13日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包