2016-07-31 2 views
1

셀 스 트론 nexstar goto 시스템의 goto 펌웨어 버전을 받으려고합니다.Serialport nodejs 이상한 문자

serialport 라이브러리를 사용하여 일부 데이터가 수신되었지만 이상한 문자가 표시 될 수 있습니다. 흰둥이 만이 좋은 문자를 표시하는 유일한 소프트입니다.

다음은 내가받은 데이터의 예와 흰개미가 표시 한 데이터입니다. Node.js를 행

하여 SerialPort #

§ ♦

흰개미 [04] [15] 여기

#

마운트에 연결하고 상기 수신 된 데이터를 표시하는 코드이다

var telescope = new serial(port.comName, { 
    baudRate: 9600, 
    stopBits: 1, 
    parity: 'none' 
}); 

telescope.on('open', function() { 

    telescope.on('data', function (data) { 
     console.log('Data : ' + data); 
    }); 

    telescope.write('V'); 

}); 

좋은 데이터를 표시 할 방법이 있습니까? 내가 검색하고 이것이 인코딩 문제라고 생각합니다.

감사합니다.

+0

어떻게 '\ x5b \ x30 \ x34 \ x5d \ x5b \ x31 \ x35 \ x5d \ x23'로 변환할까요? ** **'♦ § #'? – dsgdfg

답변

0

여기에서 일어나는 현상은 흰머리가 [xx]의 형태로 제어 문자를 표시한다는 것입니다 (단, 예외는 있음). xx은 제어 문자의 16 진수 값입니다. 그러나 노드에서는 들어오는 데이터 전체를 UTF-8로 암시 적으로 처리합니다.

당신 각 바이트 값을 확인하고 제어 문자의 경우 괄호 안에 16 진수 값을 인쇄하거나 표준 출력에 문자를 작성하여 흰개미의 행동을 모방 할 수있다.

+0

오 그래, 조금 복잡해 보입니다. D는 다른 파서 (필자는 원시 파서를 사용합니다)를 작성하거나 사용해야 했습니까? –

+0

당신이 다루는 데이터의 종류에 달려 있습니다. 바이너리 데이터 인 경우 원시 파서를 계속 사용하는 것이 가장 좋습니다. 쉘 세션이나 기타 텍스트 데이터라면 라인 파서가 더 좋을 것입니다. – mscdex