2016-08-21 65 views
0

我想將常規字符串轉換爲ASCII format。這是因爲我想用鎖控制器進行通信,並在ASCII format.如何在JavaScript中將字符串轉換爲ASCII格式?

下面它不僅可以讀取命令是代碼:

var port = new SerialPort("COM5", { 
    baudRate: 38400 
}); 

    port.on('open', function() { 
     port.write('close1', function(err) { 
     if (err) { 
      return console.log('Error on write: ', err.message); 
     } 
     console.log('message written'); 
     }); 
    }); 

基本上我想確保close1以ASCII格式進行通信而不是字符串格式。

port.write('close1', function(err) { 
+1

你是什麼意思 「ASCII格式」?請[編輯]您的問題以顯示示例輸入字符串和相應的輸出ASCII格式。 – nnnnnn

+0

除非您的字符串包含ASCII字符集之外的字符,否則您將以ASCII格式進行通信。 – Barmar

+0

你正在使用什麼'SerialPort'模塊?它可能很重要。 –

回答

0

假設你使用this SerialPort module,所述write函數接受

接受一個Buffer對象,或由該緩衝器構造接受一個類型(例如:一個字節數組或一個字符串) 。

當你從一個字符串構造一個Buffer時,你可以告訴NodeJS使用什麼編碼;允許的編碼之一是ascii(缺省值是utf-8,它是字符32-127的ASCII)。

所以:

// NodeJS v4 and earlier 
port.write(new Buffer('close1', 'ascii'), function(err) { 
    if (err) { 
    return console.log('Error on write: ', err.message); 
    } 
    console.log('message written'); 
}); 

至於V6發動機,我們應該使用Buffer.from代替:

// NodeJS v6 and later 
port.write(Buffer.from('close1', 'ascii'), function(err) { 
    if (err) { 
    return console.log('Error on write: ', err.message); 
    } 
    console.log('message written'); 
}); 
+0

謝謝。比方說,我想聽命令的迴應,我將如何登錄到控制檯?例如,如果我發送一個命令status1或status2,它應該返回打開/關閉。 – John

+0

@John:如果你使用的是我上面鏈接的那個,你會聽'data'事件(根據文檔,我沒有使用它)。 –

+0

因此console.log(數據)?在console.log之後(寫信息) – John

相關問題