programing

브라우저가 최소화된 경우 직렬 포트의 데이터 전송

prostudy 2022. 3. 31. 20:46
반응형

브라우저가 최소화된 경우 직렬 포트의 데이터 전송

나는 내 웹 에서 웹 시리얼을 사용하고 싶다.내가 가지고 있는 한 가지 문제는 사용자가 브라우저를 변경하거나 최소화할 때 데이터 송수신을 위한 타이머가 중지된다는 것이다.나는 웹 작업자를 테스트해서 이것을 받았다.
어떻게 하면 이것을 고칠 수 있을까? 내 코드는 이렇고 rxjs 타이머를 사용한다.

      //user give access to serial port
     const port = await navigator.serial.requestPort();
 
     await port.open({ baudRate: 9600 });

     const textDecoder = new TextDecoderStream();
     const readableStreamClosed = port.readable.pipeTo(textDecoder.writable);
     const reader = textDecoder.readable.getReader();
     const textEncoder = new TextEncoderStream();
     const writableStreamClosed = textEncoder.readable.pipeTo(port.writable);
     const writer = textEncoder.writable.getWriter();

     timer(40, 100).subscribe(async (c) => {
        await writer.write("{Config:1,0,0,0,0,0,0,0,0,0}");
        console.log((await reader.read()).value);
     });

업데이트 setInterval을 사용하지만 작동하지 않음 내 코드는 다음과 같다.

    const textDecoder = new TextDecoderStream();
    const readableStreamClosed = this.port.readable.pipeTo(textDecoder.writable);
    this.reader = textDecoder.readable.getReader();
    const textEncoder = new TextEncoderStream();
    const writableStreamClosed = textEncoder.readable.pipeTo(this.port.writable);
    this.writer = textEncoder.writable.getWriter();

    setInterval( async () => {
      await this.writer.write("{Config:1,0,0,0,0,0,0,0,0,0}");
      console.log((await this.reader.read().value);
    },100);

참조URL: https://stackoverflow.com/questions/67590738/transfer-data-in-serial-port-when-browser-minimized

반응형