簡體   English   中英

Javascript和串口通信

[英]Javascript and serial port communication

我正在進行串口通信。 要求是使用javascript通過串口與硬件進行通信。 我正在研究chrome WEB-USB-API

使用此API,我能夠連接到設備。 現在我想向連接的設備發送命令有人可以指導我嗎?

device.controlTransferOut({requestType: 'class',recipient:'interface',request: 0x22,value: 0x01,index: 0x02})

上面的代碼在web-usb-api文檔頁面上給出,但無法了解如何通過它發送任何命令。

任何與javascript和串口通信相關的指南都會非常有用。

有關USB協議和USB CDC-ACM(“串行”協議的精美名稱)協議的一些背景知識是必需的:控制傳輸發送和接收的少量數據,通常用於啟用和禁用設備功能。 在上面的代碼段中發送的控制傳輸來自USB CDC-ACM協議,並且是SET_CONTROL_LINE_STATE命令。 當發送到實際的USB串行適配器時,它告訴適配器在串行線路上斷言DTR信號,這允許連接的串行設備檢測到主機已准備好接收數據。 在一個簡單模擬USB串行適配器的設備中,就像本例中編寫的那樣,它只是表明所有主機軟件已經初始化並且已准備好讓設備發送數據。

現在,有了這樣的背景,應該很清楚,這不是您將自己的命令發送到設備的方式。 設備希望它們作為虛擬串行端口上的數據發送,而不是作為有關其狀態的控制信號。 為此,您需要使用transferOut()函數。 這接受兩個參數,第一個是發送數據的端點號,第二個是數據本身。 在博客文章的示例中,僅使用transferIn()函數。 在此示例中,它從端點5讀取64個字節。雖然文章中未顯示,但是將數據發送回設備的端點是端點4.對於您自己的設備,您應檢查USB設備描述符以確定適當的端點用於發送和接收數據。 這些描述符在USBDevice對象的configurations屬性下可用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM