如何在JavaScript中将字符串转换为ASCII格式?

时间:2016-08-21 03:59:23

标签: javascript node.js serial-port

我想将常规字符串转换为ASCII format。这是因为我尝试与锁控制器通信,它不仅可以读取ASCII format.

中的命令

以下是代码:

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 个答案:

答案 0 :(得分:0)

假设您正在使用this SerialPort modulewrite函数接受

  

接受Buffer对象或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');
});