ElectronJS 未连接串口

问题描述 投票:0回答:1

该应用程序是一个 Angular 应用程序,在 Chrome/Edge/Mogilla 中,浏览器要求我连接到设备。 这是我的代码:

connect() {

    if (!this.port) {
      this.serial.connect((port: any) => {
        this.port = port;
      });
    }
}

电子抛出:

main.b0202a271531c6f7.js:1 Requesting port error: NotFoundError: Failed to execute 'requestPort' on 'Serial': No port selected by the user.

堆栈闪电战

有什么建议吗?

angular electron serial-port
1个回答
0
投票

问题出在

ngx-serial
项目内部,当我单击连接然后没有选择任何端口并给出取消时,我能够复制该问题,这应该在 github 存储库中引发一个错误,在检查错误,它看起来像一个非阻塞错误,这意味着,即使收到此错误,您仍然可以工作。

对于这个错误,没有什么办法,除了在 github 上提出问题,来处理用户没有选择任何端口的情况!

public async connect(callback:Function) {
      this.keepReading = true;
      if ("serial" in navigator) {
        // The Web Serial API is supported by the browser.
        let nav: any = navigator;
        const ports = await nav.serial.getPorts();
  
        try {
          this.port = await nav.serial.requestPort();
  
        } catch (error) {
          console.error("Requesting port error: " + error); // <-------------------- problem here!
          return;
        }
  
        try {
         await this.port.open(this.options);
  
  
        } catch (error) {
          console.error("Opening port error: " + error);
          return;
        }
  
        const textEncoder = new TextEncoderStream();
        this.writableStreamClosed = textEncoder.readable.pipeTo(this.port.writable);
        this.writer = textEncoder.writable.getWriter();
  
        this.readLoop();
  
        callback(this.port);
  
      } else {
        console.error("This browser does NOT support the Web Serial API");
      }
  
    }
  }
© www.soinside.com 2019 - 2024. All rights reserved.