Javascript,串口不能输出数字,只能ascii
Javascript, serialport can't output numbers, just ascii
所以我希望我的程序将一个 int 传递到串行端口,但是 javascript 使所有数字都浮点数,这很糟糕。
如果我尝试更多
sp.write(255)//outputs 0x080000010000000000000000020000
sp.write(256)//outputs infinitely
我把它连接到盗版巴士上,所以我可以检查输出
如果我将数字转换为十六进制字符串,那么串行端口会发送与我的数字等效的字符,这也很糟糕。
var hex=(0xFF).toString(8);
sp.write(hex); //out=0x333737 which is 377=>0x0255 oh and not 8 bits...
hex=(0xFF).toString(16);
sp.write(hex); //out=0x6666 which is FF so at least that one makes some sense
hex=0b10101010; // error... binary does work when i run javascript in html though
但它确实输出 asci 字符,以便我在另一侧获得正确的十六进制
我试过了
function hex2a(hexx) {
var hex = hexx.toString();//force conversion
var str = '';
for (var i = 0; i < hex.length; i += 2)
str += String.fromCharCode(parseInt(hex.substr(i, 2), 16));
return str;
}
但是对于那个 0xff=>0x2505
我也试过
hex = String.fromCharCode(hex)
它完美地工作到 127,之后它是 2 个字节,第一个字节是 194 或 195
我需要能够将 8 个字节的整数位数据发送到 arduino。
var buffer = new Buffer([ 8, 6, 7, 5, 3, 0, 9]);
适用于 0 到 255 之间的任何值。
感谢 Traktor53 指出它是一个缓冲区对象
https://docs.nodejitsu.com/articles/advanced/buffers/how-to-use-buffers
用于确认如何构建缓冲区
所以我希望我的程序将一个 int 传递到串行端口,但是 javascript 使所有数字都浮点数,这很糟糕。 如果我尝试更多
sp.write(255)//outputs 0x080000010000000000000000020000
sp.write(256)//outputs infinitely
我把它连接到盗版巴士上,所以我可以检查输出
如果我将数字转换为十六进制字符串,那么串行端口会发送与我的数字等效的字符,这也很糟糕。
var hex=(0xFF).toString(8);
sp.write(hex); //out=0x333737 which is 377=>0x0255 oh and not 8 bits...
hex=(0xFF).toString(16);
sp.write(hex); //out=0x6666 which is FF so at least that one makes some sense
hex=0b10101010; // error... binary does work when i run javascript in html though
但它确实输出 asci 字符,以便我在另一侧获得正确的十六进制
我试过了
function hex2a(hexx) {
var hex = hexx.toString();//force conversion
var str = '';
for (var i = 0; i < hex.length; i += 2)
str += String.fromCharCode(parseInt(hex.substr(i, 2), 16));
return str;
}
但是对于那个 0xff=>0x2505
我也试过
hex = String.fromCharCode(hex)
它完美地工作到 127,之后它是 2 个字节,第一个字节是 194 或 195
我需要能够将 8 个字节的整数位数据发送到 arduino。
var buffer = new Buffer([ 8, 6, 7, 5, 3, 0, 9]);
适用于 0 到 255 之间的任何值。
感谢 Traktor53 指出它是一个缓冲区对象 https://docs.nodejitsu.com/articles/advanced/buffers/how-to-use-buffers 用于确认如何构建缓冲区