我想将常规字符串转换为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) {
答案 0 :(得分:0)
假设您正在使用this SerialPort
module,write
函数接受
接受
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');
});