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

标签 javascript node.js serial-port

我想将常规字符串转换为 ASCII 格式。这是因为我尝试与锁 Controller 通信,但它不能仅读取 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) {

最佳答案

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

Accepts a Buffer object, or a type that is accepted by the Buffer constructor (ex. an array of bytes or a string).

当你从字符串构造一个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');
});

关于javascript - 如何在 JavaScript 中将字符串转换为 ASCII 格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39060727/

相关文章:

javascript - 如何执行过滤器和包含

javascript - 如何使用生命周期方法 getDerivedStateFromProps 而不是 componentWillReceiveProps

javascript - 如何获取我的 nodemailer 电子邮件作为变量?

javascript - 来自 Alexa 开发人员控制台的 Alexa 技能 : is it possible to have Alexa play a . mp3 - Alexa 托管?

c# - 计算串行通信的 block 校验字符 (BCC)

javascript - js 中的 ATM 货币面额程序,可以灵活地处理和分配最少的纸币

javascript - 将 markdown 文本转换为 React 组件

javascript - 等价于 LINQ 的 Enumerable.First(predicate)

c - 将串行数据重定向到以太网数据

c - 制作文件以写入来自serialPort的所有信息