반응형
앞서 개발했던 DNC에서 첫 번째 시련에 봉착했다.
이 화면에서 serialport의 세팅 값을 설정한 걸 로컬 스토리지에 저장하고,
이 화면의 우측 2번째 버튼인 포트버튼을 누르면 바뀐 세팅 값으로 적용하려고 한다.
// renderer.js
let portname, baudrate, databits, stopbits, Parity, RTSCTS;
let portOpen = false;
const port = new serialport('COM4', {
baudRate: baudrate,
dataBits: databits,
stopBits: stopbits,
parity: Parity,
rtscts: RTSCTS,
autoOpen: false,
})
portBtn.addEventListener('click', () => {
if(portOpen === false) {
portOpen = !portOpen;
portStatus.innerText = '포트 : ON';
portStatus.style.color = '#00c853';
portStatusIcon.style.color = '#00c853';
console.log('portBtn open!');
port.open(function (err) {
if (err) {
console.log(err);
} else {
if(baudrate !=9600) {
port.update({baudRate: baudrate, stopBits: stopbits, stopBits: stopbits,})
}
console.log('port open');
//read
port.on('data', function (data) {
text.append(data);
text.scrollTop = text.scrollHeight;
});
//write
sendBtn.addEventListener('click', () => {
port.write(text.value);
});
}
})
} else {
port.close();
portOpen = !portOpen;
portStatus.innerText = '포트 : OFF';
portStatus.style.color = 'white';
portStatusIcon.style.color = 'white';
console.log('port close!');
}
});
해당 코드대로 electron에서 실행 시 serialport의 세팅 값이 정해지지 않아서 오류가 난다.
그래서
차선책으로
let portname = 'COM4', baudrate = 9600, databits = 8, stopbits = 1, Parity = 'none', RTSCTS = false;
미리 값을 주고 close상태일때 값을 변경시킨 후,
open 시키는 것을 생각했으나 변경이 되지 않는다.
ps. 유일하게 변경되는 건 port.update({baudRate: baudrate}) 이것 밖엔 없다.
나는 databits, stopbits, parity, rtscts도 변경하고 싶은데...
나의 생각으로는
JS가 컴파일 될 때 이미 port는 해당 parameters를 가진 채로
대기 상태에 들어가 있는 것 같다.
유일하게 update가 baudRate만 변경할 수 있게 지정한 이유는 뭘까??
stackoverflow와 github의 Q&A에 올리긴 했으니 뭔가 나오지 않을까.... 하는 막연한 기대감이 있다.
혹시 이 글을 보는 이런 문제점을 맞닥뜨린 경험자가 있다면 댓글로 조언 꼭 부탁드립니다.
만약 해결책을 찾는다면 다른 포스팅으로 올리겠다. 끝!
'Study & Project ✏️ > electron 🐣' 카테고리의 다른 글
[라즈베리파이 크로스컴파일] electron 앱 개발 중 textarea에서 serial data read 문제 발견! 그리고 해결 (0) | 2022.01.26 |
---|---|
[라즈베리파이 크로스컴파일] electron Node.js serialport 첫 번째 시련 해결! (0) | 2022.01.26 |
[라즈베리파이 크로스컴파일] electron을 이용한 앱 개발일지 (2) | 2022.01.18 |
[라즈베리파이 크로스컴파일] 6. electron-builder를 통한 윈도우 -> 라즈베리파이 크로스컴파일 하기 (0) | 2022.01.17 |
[라즈베리파이 크로스컴파일] 5. electron serialport 예제 (2) | 2022.01.07 |