簡體   English   中英

通過serialPort進行串行通信 web API

[英]Serial communication via the serialPort web API

我在 Angular 做一個項目,我需要通過串行輸入(數據輸入和輸出)連接到秤。 我正在使用串行端口 web API。

我已經啟用了我的瀏覽器的實驗性 web 平台功能。 Chrome 版本是 86.0.4240.198。

我的系統正在顯示可用的條目。 但是,當我執行 an.open 時,它無法建立連接。

這是我的代碼:

...

reader: ReadableStreamDefaultReader;
writer: WritableStreamDefaultWriter;
encoder = new TextEncoder();
decoder = new TextDecoder();

...

async init() {
    if ('serial' in navigator) {
      try {
        const port = await (navigator as any).serial.requestPort();
        await console.log(port)
        await port.open({ baudrate: 4800 });
        this.reader = port.readable.getReader();
        this.writer = port.writable.getWriter();

        this.verificacao = true;
      } catch(err) {
        console.error('There was an error opening the serial port:', err);
        this.verificacao = false;
      }
    } else {
      console.error('Web serial doesn\'t seem to be enabled in your browser. Try enabling it by visiting:')
      console.error('chrome://flags/#enable-experimental-web-platform-features');
      console.error('opera://flags/#enable-experimental-web-platform-features');
      console.error('edge://flags/#enable-experimental-web-platform-features');
    }
  }

...

我可以識別串行輸入:

串行端口列表

但是會發生這個錯誤:

無法在“SerialPort”上執行“open”:所需成員 baudRate 未定義。

選擇串行輸入時,端口變量返回:

可變端口

我自己仍在尋找一個干凈的解決方案。 @Otavia Koike 設置波特率的問題是因為變量已從波特率重命名為波特率。 所以, await port.open({ baudRate: 4800 }); 會讓他們克服這個特殊的障礙。

即使我不確定我是否可以在我的環境中使用它,這里有一個鏈接到 serialport.io 在 GitHub 上的示例電子串行端口項目。 希望這可以幫助某人,任何人!

暫無
暫無

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

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